摘要:隨著汽車電子技術及網(wǎng)絡技術的不斷發(fā)展,汽車上的電子設備越來越多,人們對汽車安全性、可靠性的要求也越來越高,為解決由汽車電子元器件的增加而帶來的通信問題,要求采用一種高速、多路、共享的汽車通信網(wǎng)絡,文章主要從車身網(wǎng)絡控制系統(tǒng)方面介紹了CAN總線的應用。
關鍵詞:CAN/LIN總線;總線網(wǎng)絡設計;CAN/LIN總線軟硬件設計
一、CAN/LIN總線介紹
1.CAN總線
20世紀80年代末,德國BOSCH(博世)公司為解決現(xiàn)代汽車中眾多控制單元、測試儀器之間的實時數(shù)據(jù)交換,提出最初用于汽車電子裝置互聯(lián)的控制器局域網(wǎng)——CAN串行通信總線系統(tǒng),之后被汽車行業(yè)和控制領域廣泛應用,已成為國際標準(ISO11898)。到目前為止,世界上已擁有20多家CAN總線控制器芯片生產商,110多種CAN總線協(xié)議控制器芯片和集成CAN總線協(xié)議控制器的微控制器芯片。
CAN總線由于采用了獨特的設計和新的技術,與一般的通信總線相比,具有突出的可靠性、實時性和靈活性。CAN采用多主工作方式,成本低,且具有極高的總線利用率;CAN總線具有可靠的錯誤處理和檢錯機制,采用短幀結構,傳輸時間短,受干擾的概率低;采用非破壞性總線仲裁技術,節(jié)點在錯誤嚴重的情況下具有自動退出功能。
2.LIN總線
1998年,Audi、Motorola、BMW、DaimlerChrysler、VCT、Volvo和Volkswagen七家公司聯(lián)合提出了新型A類總線——LIN(Local Interconnect Network)。LIN是一種低成本短距離的低速網(wǎng)絡,旨在傳送開關設置和傳感器輸入等狀態(tài)的變化,并對這種變化做出響應,因此它只適用于對傳送時間要求不高的低速事件,并不適用于發(fā)動機控制等高速事件。
LIN總線成本低,基于通用的UART/SCI接口,LIN的傳輸速率可高達20Kb/s,總線長度最大可以達到40m;采用單主多從模式,不需要總線仲裁;在從節(jié)點中不需要晶體振蕩器和陶瓷振蕩器時鐘就能實現(xiàn)自同步;可預先計算確定性信號的傳播時間;無需改變LIN從節(jié)點的硬件和軟件就可以在網(wǎng)絡上增加或刪除節(jié)點等等。
二、整車系統(tǒng)通信網(wǎng)絡設計
因汽車上各種電器對網(wǎng)絡信息傳輸延遲敏感性差別很大,整車系統(tǒng)通信網(wǎng)絡以CAN總線為主,LIN總線為輔,其中發(fā)動機控制器、自動變速器控制器、ABS控制器、安全氣囊控制器等之間協(xié)調關系所要求實時性很強,需要采用高速CAN總線,其傳輸速率高達500kbps~1Mbps;而空調控制、儀表控制、雨刷控制、門窗控制、前后車燈開關、車門開閉、座位調節(jié)等簡單事件對信息傳輸延遲要求要寬松得多(傳輸延遲允10ms-100ms),可采用低速LIN總線,其傳輸速率為20kbps。
低速LIN總線對信息傳輸?shù)膶崟r性要求不高,但子系統(tǒng)數(shù)量較多,將這些低速子系統(tǒng)與高速子系統(tǒng)分開,有利于保證高速子系統(tǒng)的實時性,同時還可以降低成本。因為CAN和LIN總線相互獨立,通過主控制器(CAN/LIN網(wǎng)關)即可進行數(shù)據(jù)共享和數(shù)據(jù)交換。主控制器也是整車管理系統(tǒng)的核心,它的主要功能就是分析處理各種信息并發(fā)出指令,還起到協(xié)調汽車各個控制單元及電器設備工作的作用。
三、CAN/LIN總線硬件設計
1.CAN/LIN總線接口設計
CAN網(wǎng)絡中有很多的CAN節(jié)點,CAN節(jié)點就是車上的各種控制器單元(ECU),它們通過一個CAN接口網(wǎng)關實現(xiàn)CAN網(wǎng)絡的數(shù)據(jù)通信。通過CAN/LIN總線的接口,CAN、LIN數(shù)據(jù)通過中央控制器可以相互轉換,當LIN數(shù)據(jù)幀需要傳輸?shù)紺AN網(wǎng)絡時,控制器網(wǎng)關收到LIN總線數(shù)據(jù)幀后就會將LIN標志符轉換成CAN標志符,這樣數(shù)據(jù)就從LIN總線傳輸?shù)搅薈AN總線,反之數(shù)據(jù)也可以從CAN總線傳輸?shù)絃IN總線。CAN/LIN總線接口設計如下圖所示:
目前的發(fā)展趨勢是把CAN接口、發(fā)送/接收器與微控制器集成到一個芯片上,也就是單芯片CAN節(jié)點。例如:一個芯片加上一點輔助電路構成的控制單元,這種結構比較適合功能較簡單的控制單元。
2.CAN通信網(wǎng)絡硬件設計
圖3為CAN總線通信接口卡電路原理圖,系統(tǒng)采用P87C591芯片作為主控制器。電控單元的微控制器(P87C591)通過數(shù)據(jù)總線經過光電隔離器(6N137)與CAN總線控制器(SJA1000)直接相連。CAN總線控制器帶有一個接收緩沖器和一個發(fā)送緩沖器,CAN總線控制器的發(fā)送端口Tx0,接受端口Rx0、Rx1分別與CAN總線發(fā)送接收器的TxD、RxD、Vref端口直接相連,CAN總線的兩條差分接收發(fā)送線CAN_L和CAN_H各接一個120Ω的總線匹配電阻。當CAN總線被某個節(jié)點占用的時候,該節(jié)點的發(fā)送端接CAN_H,電平為3.5V,接收端接CAN_L,電平為1.5V,當CAN總線空閑時,CAN_H和CAN_L上的電平均為2.5V。
四、CAN/LIN總線軟件設計
CAN通信接口模塊程序主要包括三部分:初始化子程序、發(fā)送子程序(包括中斷服務程序)和接收子程序。程序開始時即進入程序初始化,進入初始化程序有三種方式:一是硬件復位,二是軟件復位,三是上電復位。初始化程序會對所有的報文對象進行初始化操作(所有值設置為0)。初始化結束之后,程序開始讀取開關狀態(tài),進入CAN發(fā)送子程序,在CAN發(fā)送子程序中,只有當發(fā)送緩沖器為空時才可以發(fā)送數(shù)據(jù),否則,將會等待直到發(fā)送緩沖器為空。接收子程序從接收緩沖器中讀取接收數(shù)據(jù),經程序處理后即可接收。
LIN通信接口模塊程序也主要包括三部分:LIN初始化子程序、發(fā)送子程序(包括中斷服務程序)和接收子程序。在初始化階段,對LIN收發(fā)器進行配置并將協(xié)議處理其變量賦初值。同CAN主節(jié)點軟件發(fā)送子程序一樣,只有在發(fā)送緩沖器為空時才可以發(fā)送數(shù)據(jù)。中央控制器節(jié)點是LIN總線的主節(jié)點,其他的都為從節(jié)點,所有的LIN幀都由主節(jié)點發(fā)送,且主節(jié)點負責LIN節(jié)點的監(jiān)控和管理。
五、結論
目前,CAN總線作為一種可靠的汽車計算機網(wǎng)絡總線已經在許多汽車上得到應用,并且我國許多的學者和廠家也都在研究開發(fā)國產的CAN總線。與CAN相比,LIN的成本較低,可作為低速CAN總線的替代產品,在汽車總線控制中也得到了應用。
參考文獻:
?。?] 袁文燕,遲瑞娟.基于CAN-LIN總線的汽車車身網(wǎng)絡的設計[J].拖拉機與農用運輸車,2006,33(6).
?。?] 任哲,尹智勇,等.汽車CAN總線控制器的設計[J].微計算機信息,2007,3-2:262-263.