CAN/RS232接口卡的設計及實(shí)現方法
控制器局域網(wǎng)(Controller Area Network,CAN)屬于現場(chǎng)總線(xiàn)的范疇,其總線(xiàn)規范已被ISO國際標準化組織制定為國際標準,并被公認為是最有前途的現場(chǎng)總線(xiàn)之一。CAN總線(xiàn)廣泛應用于控制系統中的各檢測和執行機構之間的數據通信。因為CAN總線(xiàn)數據的傳輸和處理都由節點(diǎn)的單片機完成。這樣就使設計者和觀(guān)察者沒(méi)有辦法以比較直觀(guān)的方式掌握總線(xiàn)的運行情況。
本文引用地址:http://dyxdggzs.com/article/157543.htm現在市場(chǎng)上主要有兩種CAN的接口卡,使用PCI總線(xiàn)和使用USB接口。前者具有傳輸速度快的特點(diǎn),但卻要占用一個(gè)計算機的插槽,并且設計上十分困難;后者的傳輸速度也很快,且價(jià)格較便宜,但要花費很大的精力進(jìn)行USB的固件開(kāi)發(fā)和維護,并要編寫(xiě)復雜的驅動(dòng)程序。根據此,需要設計一種能夠方便讀取CAN總線(xiàn)數據,并通過(guò)RS 232串行口將數據送給PC機處理和顯示的接口卡;此外還需對其串行傳輸的協(xié)議進(jìn)行加強,以使能有效地降低傳輸過(guò)程中出現的錯誤。
1 接口卡的硬件設計
硬件部分主要包括主控制器、CAN總線(xiàn)控制器、CAN總線(xiàn)收發(fā)器以及與計算機的RS 232通信接口芯片等。系統的總體結構如圖1所示。主控制器通過(guò)CAN總線(xiàn)接口接收和緩存數據。根據PC機的命令進(jìn)行選擇性的數據傳輸。
1.1 與CAN總線(xiàn)接口
如圖2所示,接口卡的控制器選用Atmel公司的AT89S51,該單片機的引腳和功能與8051兼容,并且內部含有4 KB的FLASH ROM,支持在系統編程(ISP),這樣可以很方便地將應用程序下載到單片機里。
CAN總線(xiàn)控制器選用Philips公司生產(chǎn)的SJA1000,該芯片是PCA82C200CAN控制器的替代品,而且新增加了一種PeliCAN工作模式,能夠支持CAN 2.0B協(xié)議。它還支持錯誤中斷、報警限制、驗收濾波器擴展和自接收請求等功能。在系統中,將SJA1000的中斷輸出引腳INT接到單片機的中斷輸入引腳,這樣可以在接收數據或者總線(xiàn)錯誤時(shí)產(chǎn)生中斷,由控制器進(jìn)行相應的處理。SJA1000的片選CS端接單片機的P2.7引腳,這樣SJA1000的地址就確定為7F00H~7FFFH。
選用芯片82C250作為CAN控制器和物理總線(xiàn)間的驅動(dòng)接口,可以提供對總線(xiàn)的差動(dòng)發(fā)送能力和對CAN控制器的差動(dòng)接收能力,其最高速可達1 Mb/s。由于實(shí)際系統中存在干擾,故增加高速光隔6N137,以起到隔離的作用。電氣接口很簡(jiǎn)單,有CANH和CANL兩根線(xiàn),用以完成CAN的數據傳輸。在CAN總線(xiàn)的兩端有一個(gè)120Ω的電阻,其作用為匹配總線(xiàn)阻抗,用于提高數據通信的抗干擾性及可靠性。具體電路如圖2所示。
1.2 與RS 232接口
RS 232標準是美國電子工業(yè)聯(lián)合會(huì )(EIA)制定的一種串行物理接口標準,它適合于數據傳輸率在O~20 000 b/s范圍內的通信,目前廣泛用于計算機與終端或外設之間的近端連接。實(shí)際工作時(shí),應保證電平在5~15V之間。所以為了與單片機進(jìn)行通信。必須對其電平進(jìn)行轉換?,F在常用的轉換芯片是MAX232。MAX232內部有電壓倍增電路和轉換電路,只需5V電源便可實(shí)現TTL電平與RS 232電平的轉換,使用十分方便。串口接口電路如圖3所示。
2 接口卡的軟件設計
2.1 RS 232接口軟件設計
單片機與PC端的數據通信需要設計一個(gè)通信協(xié)議,采用同步通信方式進(jìn)行。將通信協(xié)議分成命令幀、應答幀和數據幀三種格式。每種幀都包含有起始字節、數據長(cháng)度、校驗字節和幀結束字節。具體格式如圖4所示。
評論