一種基于AT89C51的三總線轉(zhuǎn)換裝置設(shè)計(jì)
4 硬件設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/262210.htm電路中使用的微處理器是ATMEL公司生產(chǎn)的AT89C51型單片機(jī),硬件連接如圖3所示,USBN9603的CLKOUT與AT89C51的XTAL1相連,USBN9603的時(shí)鐘輸出為AT89C51提供時(shí)鐘輸入。AT89C51通過(guò)并行地址/數(shù)據(jù)復(fù)用的方式訪問(wèn)USBN9603,AT89C51的P2.0通過(guò)74HC14反向后片選USBN9603,其地址為0x00-0x1FF。選用SJA1000作為CAN微控制器,SJA1000集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的幀處理,其地址為0x000-0x0FF。AT82C50作為CAN控制器和物理總線之間的接口,用于提供總線的差動(dòng)發(fā)送能力和CAN控制器差動(dòng)接收能力。通過(guò)AT82C50的引腳3可選擇3種不同的工作方式(高速、斜率控制和待機(jī))。該引腳接地為高速方式,高速光耦隔離用6N137實(shí)現(xiàn),其作用是防止串入信號(hào)的干擾。MAX232用來(lái)完成RS232電平到微控制器接口電路的TTL電平轉(zhuǎn)換,同時(shí)還可進(jìn)行一些總線端口的工作參數(shù)設(shè)置。
5 軟件設(shè)計(jì)
在微控制器的控制下,各總線之間進(jìn)行數(shù)據(jù)交換,微控制器先對(duì)各個(gè)總線工作參數(shù)進(jìn)行初始化,設(shè)置好時(shí)鐘、寄存器、波特率、并選擇合適的中斷方式,對(duì)于SJA1000,主要指對(duì)控制寄存器CR、驗(yàn)收碼寄存器ACR、驗(yàn)收屏蔽寄存器AMR、時(shí)鐘分頻寄存器CDR、總線定時(shí)寄存器BTR0、總線定時(shí)器BRT1等的設(shè)置。USB的傳輸方式有4種:控制傳輸、塊傳輸、同步傳輸和中斷傳輸。本設(shè)計(jì)中使用了控制傳輸和塊傳輸。USBN9603的內(nèi)部寄存器和FIFO緩沖區(qū)分別對(duì)每個(gè)端點(diǎn)進(jìn)行控制,當(dāng)接到主機(jī)法來(lái)的IN標(biāo)記包時(shí),發(fā)送端點(diǎn)應(yīng)自動(dòng)向上發(fā)送數(shù)據(jù)。如果沒(méi)有數(shù)據(jù)發(fā)送,則回應(yīng)NAK(Negative Acknowledegment)握手包。其主程序流程如圖4所示。
在設(shè)計(jì)軟件時(shí),一定要正確選擇需要傳輸數(shù)據(jù)的2種總線,可以用軟件或硬件進(jìn)行選擇。
6 結(jié)束語(yǔ)
這種3總線轉(zhuǎn)換器可方便地實(shí)現(xiàn)不同端口設(shè)備之間的數(shù)據(jù)通信,USB-CAN的轉(zhuǎn)換速率可以達(dá)到1Mb/s。如果現(xiàn)場(chǎng)條件要求較高且適應(yīng)性要求較強(qiáng),可采用雙CPU、加數(shù)據(jù)緩沖區(qū)RAM等措施來(lái)完善電路。這樣無(wú)形中增加了硬件電路 的復(fù)雜性和軟件設(shè)計(jì)的邏輯性。
評(píng)論