一種基于AT89C51的三總線轉換裝置設計
4 硬件設計
本文引用地址:http://www.j9360.com/article/262210.htm電路中使用的微處理器是ATMEL公司生產的AT89C51型單片機,硬件連接如圖3所示,USBN9603的CLKOUT與AT89C51的XTAL1相連,USBN9603的時鐘輸出為AT89C51提供時鐘輸入。AT89C51通過并行地址/數據復用的方式訪問USBN9603,AT89C51的P2.0通過74HC14反向后片選USBN9603,其地址為0x00-0x1FF。選用SJA1000作為CAN微控制器,SJA1000集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的幀處理,其地址為0x000-0x0FF。AT82C50作為CAN控制器和物理總線之間的接口,用于提供總線的差動發送能力和CAN控制器差動接收能力。通過AT82C50的引腳3可選擇3種不同的工作方式(高速、斜率控制和待機)。該引腳接地為高速方式,高速光耦隔離用6N137實現,其作用是防止串入信號的干擾。MAX232用來完成RS232電平到微控制器接口電路的TTL電平轉換,同時還可進行一些總線端口的工作參數設置。

5 軟件設計
在微控制器的控制下,各總線之間進行數據交換,微控制器先對各個總線工作參數進行初始化,設置好時鐘、寄存器、波特率、并選擇合適的中斷方式,對于SJA1000,主要指對控制寄存器CR、驗收碼寄存器ACR、驗收屏蔽寄存器AMR、時鐘分頻寄存器CDR、總線定時寄存器BTR0、總線定時器BRT1等的設置。USB的傳輸方式有4種:控制傳輸、塊傳輸、同步傳輸和中斷傳輸。本設計中使用了控制傳輸和塊傳輸。USBN9603的內部寄存器和FIFO緩沖區分別對每個端點進行控制,當接到主機法來的IN標記包時,發送端點應自動向上發送數據。如果沒有數據發送,則回應NAK(Negative Acknowledegment)握手包。其主程序流程如圖4所示。

在設計軟件時,一定要正確選擇需要傳輸數據的2種總線,可以用軟件或硬件進行選擇。
6 結束語
這種3總線轉換器可方便地實現不同端口設備之間的數據通信,USB-CAN的轉換速率可以達到1Mb/s。如果現場條件要求較高且適應性要求較強,可采用雙CPU、加數據緩沖區RAM等措施來完善電路。這樣無形中增加了硬件電路 的復雜性和軟件設計的邏輯性。
評論