一種基于Salvo的通用CAN/LIN網(wǎng)關(guān)
1 引言
CAN(Controller Area Network,即控制器局域網(wǎng))是上世紀(jì)80年代初由德國Bosch公司提出專用于汽車的串行總線。由于其數(shù)據(jù)傳輸率高,傳輸距離遠(yuǎn),實時性好,可靠性高等眾多優(yōu)點(diǎn)已在汽車工業(yè)、航空工業(yè)、工業(yè)測控等領(lǐng)域廣泛應(yīng)用。在某些通信性能要求不高的場合為了降低網(wǎng)絡(luò)控制的成本,1998年由汽車制造商奧迪、寶馬等汽車公司、火山通信技術(shù)公司以及半導(dǎo)體生產(chǎn)商摩托羅拉(Motorola)公司共同創(chuàng)建了LIN協(xié)會,其目的是為汽車網(wǎng)絡(luò)系統(tǒng)提供一個開放的A類(低速率、低成本)串行總線通信標(biāo)準(zhǔn)。由于LIN總線性價比極高,非常適合用于車燈、車門、座位等對通信要求不高,對成本敏感的部件。
目前,高級汽車一般采用分級網(wǎng)絡(luò)控制,對發(fā)動機(jī)、傳動系統(tǒng)、制動系統(tǒng)等重要,且對通信性能要求高的部件采用CAN總線控制;對車身,如車燈、車門等對通信性能要求不高,而對成本敏感的部件采用LIN總線控制,CAN總線與LIN總線間通過CAN/LIN網(wǎng)關(guān)數(shù)據(jù)轉(zhuǎn)換以實現(xiàn)CAN設(shè)備與LIN設(shè)備的相互訪問。這種分級網(wǎng)絡(luò)控制模式也適用于工業(yè)控制、安全防護(hù)等領(lǐng)域。本文討論一種基于實時操作系統(tǒng)Salvo的通用CAN/LIN網(wǎng)關(guān)。
2 網(wǎng)關(guān)模型
網(wǎng)關(guān)是連接兩個通信協(xié)議和結(jié)構(gòu)不同的網(wǎng)絡(luò)設(shè)施。對于CAN/LIN網(wǎng)關(guān),它的工作就是對信息拆除封裝和重新封裝,以使它們能被CAN總線和LIN總線上的網(wǎng)絡(luò)節(jié)點(diǎn)讀取,即實現(xiàn)CAN總線和LIN總線之間協(xié)議數(shù)據(jù)單元(PDU)的轉(zhuǎn)換。CAN/LIN網(wǎng)關(guān)的模型如圖1所示。
依照國際標(biāo)準(zhǔn)化組織制定的開放系統(tǒng)互連參考模型OSI/RM,CAN總線和LIN總線都包括物理層和數(shù)據(jù)鏈路層。應(yīng)用層由各種應(yīng)用系統(tǒng)各自定義,其中CAN總線已有一些應(yīng)用較廣的高層協(xié)議,如CANOpen、NetDevice等。CAN/LIN網(wǎng)關(guān)的分層結(jié)構(gòu)如圖2所示。
3 網(wǎng)關(guān)硬件
CAN總線和LIN總線協(xié)議數(shù)據(jù)單元的數(shù)據(jù)量小,系統(tǒng)采用高速8位微處理器DDMicrochip新型增強(qiáng)FLASH單片機(jī)PIC18F4680。PIC18F4680片內(nèi)集成64KB FLASHROM作為程序存儲器、3KB RAM作為數(shù)據(jù)存儲器,能滿足處理CAN總線和LIN總線協(xié)議數(shù)據(jù)單元轉(zhuǎn)換所需的程序代碼和數(shù)據(jù)存儲的需求;PIC18F4680片內(nèi)集成1KB EEPROM可用于存放系統(tǒng)狀態(tài)信息,即使掉電重啟也能恢復(fù)到掉電前狀態(tài)。另外,PIC18F4680片內(nèi)集成支持CAN2.0B的CAN控制模塊,CAN數(shù)據(jù)鏈路層協(xié)議可由CAN控制模塊執(zhí)行,從而減輕MCU處理CAN協(xié)議的數(shù)據(jù)處理壓力;PIC18F4680還集成可支持LIN1.3的USART,進(jìn)一步減輕MCU處理LIN協(xié)議的數(shù)據(jù)處理壓力。
為增強(qiáng)CAN總線的抗干擾能力,CAN總線驅(qū)動器MCP2551與PIC18F4680間采用高速光偶6N137隔離,并且獨(dú)立供電,PIC18F4680采用LIN總線驅(qū)動器MCP201的電源模塊供電;MCP2551采用專用DC/DC變換器供電。
實時多任務(wù)系統(tǒng)對于相同優(yōu)先級任務(wù)采用以時隙為單位的時間片循環(huán)方式(round-robin)切換。為提高時隙精度,從而提高切換時間精度,PIC18F4680的定時計數(shù)器1(TMR1)外接標(biāo)準(zhǔn)時鐘晶振32768Hz。系統(tǒng)時基由TMR1通過標(biāo)準(zhǔn)時鐘晶振振蕩產(chǎn)生。網(wǎng)關(guān)硬件電路如圖3所示。
評論