1 引言
隨著電子設(shè)備的大量出現(xiàn)及針對各種控制系統(tǒng)的實際需求,,各種通信網(wǎng)絡(luò)相繼產(chǎn)生,。由于它們的總線結(jié)構(gòu),通信協(xié)議及傳輸特點各不相同,,給不同設(shè)備之間的連接帶來很多麻煩,,因而急需各種總線之間的轉(zhuǎn)換裝置。目前較流行的現(xiàn)場通信網(wǎng)絡(luò)有RS-232,RS422/485,、HART,、Profield、Dupline,、CAN和LonWorks等,,本文闡述了一種USB-CAN-RS232三總線轉(zhuǎn)換裝置,電路設(shè)計簡單新穎,,并并且攜帶方便,,實用性很強。
2 各種總線的特點
2.1 CAN(Controller Area Netwrok)
CAN是控制器局域網(wǎng)絡(luò),,屬于工業(yè)現(xiàn)場總線的范疇,。與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性,、
實時性和靈活性,,具有較高的通信速率(最高達1Mb/s),較遠的通信距離(最遠達10km),,良好的抗電磁干擾能力,,而且采用總線仲裁技術(shù),通信方式靈活,,越來越受到人們的重視,,它在汽車領(lǐng)域的應(yīng)用最為廣泛,一些著名的汽車制造廠商如BENZ(奔馳),、BMW(寶馬),、PORSCHE(保時捷)、ROLLS-ROYCE(勞斯萊斯)和JAGUAR(美洲豹)等都采用CAN總線實現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測和執(zhí)行機構(gòu)間的數(shù)據(jù)通信,。
2.2 USB(Universal Serial Bus)
USB即"通用串行總線"是一種應(yīng)用在PC中的表型總線,,由Intel、Microsoft,、NEC等公司共同提出,他是一種新型的外接串聯(lián)口,,提出該規(guī)格的廠商希望用USB取代現(xiàn)有的外接設(shè)備接口,,它還具備連接單一化、軟件自動偵測以及熱插拔(即插即用)的功能,,USB具有以下特點:
1)數(shù)據(jù)傳輸速率高,。USB高速:480Mb/s;USB全速:12Mb/s,;USB低速:1.5Mb/s,。
2)數(shù)據(jù)傳輸可靠。USB事務(wù)處理包括錯誤檢測機制,可以確保數(shù)據(jù)無錯誤發(fā)送,,在發(fā)生錯誤時,,事務(wù)處理可以重新進行。
3)同時掛接多個USB設(shè)備,,每個USB總線支持127個設(shè)備的連接,。
4)USB接口能為設(shè)備供電。當(dāng)外界電源要求電壓為5V且電流小于500mA時,,可以直接從USB總線獲取電源,,這樣,USB設(shè)備無需專用電源線,,從而降低了設(shè)備成本,。
5)支持熱拔。USB實現(xiàn)了真正的"即插即用"功能,,設(shè)備連接后由USB自檢測,,并且由軟件自動配置,完成后立刻就能使用,,不需要用戶進行干涉,。
3 器件特性
3.1 SJA1000型CAN總線控制器
SJA1000是Philips公司早期PCA82C200型CAN控制器的代替品,功能更強,,具有如下特點:
完成兼容PCA82C200及其工作模式即BASICCAN模式,;
具有擴展的接收緩沖器,64字節(jié)的FIFO結(jié)構(gòu),;
支持CAN2.0B,;
支持11位和29位識別碼;
位速率可達1Mbit/s,;
時鐘頻率高達24M赫茲,;
支持與不同微處理器的接口; 可編程的CAN輸出驅(qū)動配置,;
工作溫度范圍寬(-40攝氏度~+125攝氏度),。
SJA1000的引腳排列如圖1所示,其內(nèi)部主要由接口管理邏輯IML,、信息緩沖器(含發(fā)送緩沖器TXB和接收緩沖器RXFIFO),、位流處理器BSP、接收過濾器ASP,、位時序處理邏輯BTL,、錯誤管理邏輯EML、內(nèi)部振蕩器及復(fù)位電路等構(gòu)成,,IML接收來自CPU的命令,,控制CAN寄存器的尋址并向控制提供中斷信息及狀態(tài)信息,,CPU的控制經(jīng)IML把要發(fā)送的數(shù)據(jù)寫入TXB,TXB中的數(shù)據(jù)由BSP處理后經(jīng)BTL輸出到CAN BUS,。BTL始終監(jiān)視CAN BUS,,當(dāng)檢測到有效的信息頭"隱性電平-控制電平"的轉(zhuǎn)換時啟動接收過程,接收的信息首先要由位流處理器DSP處理,,并由ASP過濾,,只有當(dāng)接收的信息的識別碼與ASP檢驗相符時,接收信息才最終被寫入RXB或RXFIFO中,,RXFIFO最多可以緩存64字節(jié)的數(shù)據(jù),,該數(shù)據(jù)可被CPU讀取,EML負責(zé)傳遞層中調(diào)制器的錯誤管制,,它接收BSP的出錯報告,,促使DSP和IML進行錯誤統(tǒng)計。
3.2 USBN9603型USB接口電路
USBN9603的引腳排列如圖2所示,,它是標(biāo)準的USB接口電路,,符合USB1.0和USB1.1協(xié)議。USBN9603集成了3.3V的穩(wěn)定電源,、串行接口引擎SIE,、多個USB端點緩沖FIFO、1個8位并行微處理器接口和1個時鐘源,。
USBN9603的性能如下:低電流,,低功能,外接24M赫茲晶體振蕩器,。
增強型的DMA機制支持數(shù)據(jù)快速自動傳輸,;
集成了64B的雙向FIFO存儲器;
外處理器接口模式可由軟件控制,;
支持24M赫茲晶體振蕩器和內(nèi)部48M赫茲時鐘產(chǎn)生電路,;
時鐘頻率可由軟件控制;
8位并行接口有兩種可選模式,,包括地址/數(shù)據(jù)復(fù)用型和非地址/數(shù)據(jù)復(fù)用型,;
接收和發(fā)送端的緩沖為64B;
4 硬件設(shè)計
電路中使用的微處理器是ATMEL公司生產(chǎn)的AT89C51型單片機,,硬件連接如圖3所示,,USBN9603的CLKOUT與AT89C51的XTAL1相連,USBN9603的時鐘輸出為AT89C51提供時鐘輸入,。AT89C51通過并行地址/數(shù)據(jù)復(fù)用的方式訪問USBN9603,AT89C51的P2.0通過74HC14反向后片選USBN9603,,其地址為0x00-0x1FF,。選用SJA1000作為CAN微控制器,,SJA1000集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的幀處理,,其地址為0x000-0x0FF,。AT82C50作為CAN控制器和物理總線之間的接口,用于提供總線的差動發(fā)送能力和CAN控制器差動接收能力,。通過AT82C50的引腳3可選擇3種不同的工作方式(高速,、斜率控制和待機)。該引腳接地為高速方式,,高速光耦隔離用6N137實現(xiàn),,其作用是防止串入信號的干擾。MAX232用來完成RS232電平到微控制器接口電路的TTL電平轉(zhuǎn)換,,同時還可進行一些總線端口的工作參數(shù)設(shè)置,。
5 軟件設(shè)計
在微控制器的控制下,各總線之間進行數(shù)據(jù)交換,,微控制器先對各個總線工作參數(shù)進行初始化,,設(shè)置好時鐘、寄存器,、波特率,、并選擇合適的中斷方式,對于SJA1000,,主要指對控制寄存器CR,、驗收碼寄存器ACR、驗收屏蔽寄存器AMR,、時鐘分頻寄存器CDR,、總線定時寄存器BTR0、總線定時器BRT1等的設(shè)置,。USB的傳輸方式有4種:控制傳輸,、塊傳輸、同步傳輸和中斷傳輸,。本設(shè)計中使用了控制傳輸和塊傳輸,。USBN9603的內(nèi)部寄存器和FIFO緩沖區(qū)分別對每個端點進行控制,當(dāng)接到主機法來的IN標(biāo)記包時,,發(fā)送端點應(yīng)自動向上發(fā)送數(shù)據(jù),。如果沒有數(shù)據(jù)發(fā)送,則回應(yīng)NAK(Negative Acknowledegment)握手包,。其主程序流程如圖4所示,。
在設(shè)計軟件時,一定要正確選擇需要傳輸數(shù)據(jù)的2種總線,,可以用軟件或硬件進行選擇,。
6 結(jié)束語
這種3總線轉(zhuǎn)換器可方便地實現(xiàn)不同端口設(shè)備之間的數(shù)據(jù)通信,,USB-CAN的轉(zhuǎn)換速率可以達到1Mb/s。如果現(xiàn)場條件要求較高且適應(yīng)性要求較強,,可采用雙CPU,、加數(shù)據(jù)緩沖區(qū)RAM等措施來完善電路。這樣無形中增加了硬件電路
的復(fù)雜性和軟件設(shè)計的邏輯性,。