朱雙華
(株洲職業(yè)技術(shù)學(xué)院,株洲 412001)
網(wǎng)關(guān)(Gateway)實(shí)際上就是一種模塊,它工作的好壞決定了不同的總線、模塊和網(wǎng)絡(luò)相互間通信的好壞。網(wǎng)關(guān)就像一個(gè)居民小區(qū)的門衛(wèi),在他讓任何客人進(jìn)大門之前,他得問問客人是否是應(yīng)邀前來,或者通知某位住戶有人來訪了。對(duì)不兼容但卻需要互相通信的總線和網(wǎng)絡(luò)來說,網(wǎng)關(guān)所起的作用就和門衛(wèi)一樣。
網(wǎng)關(guān)是連接異型網(wǎng)絡(luò)的接口裝置,它綜合了橋接器和路由器的功能,汽車網(wǎng)關(guān)主要能在OSI參考模型的物理層、數(shù)據(jù)鏈路層和應(yīng)用層上對(duì)雙方不同的協(xié)議進(jìn)行翻譯和解釋。
對(duì)于Bosch公司為奔馳600SEL等汽車開發(fā)的控制器局域網(wǎng)CAN1.2與CAN2.0協(xié)議之間的網(wǎng)關(guān),是指為處理多個(gè)ECU的核中核CPU之間的通信而提供的一種綜合接口裝置,實(shí)際上就是一個(gè)Intel-16位80C196單片微機(jī),而美國(guó)三大汽車公司采用的SAE1850網(wǎng)絡(luò)與Bosch-CAN網(wǎng)絡(luò)之間的網(wǎng)關(guān),實(shí)際上就是一個(gè)Intel-16位87C196KR單片微機(jī)。
一個(gè)網(wǎng)關(guān)必須具備有從一個(gè)網(wǎng)絡(luò)協(xié)議到另一個(gè)協(xié)議轉(zhuǎn)換信息的能力,對(duì)于CAN協(xié)議的網(wǎng)關(guān),應(yīng)能涉及CAN協(xié)議4種幀類型中的兩種,即數(shù)據(jù)幀和遠(yuǎn)程幀。另外兩種錯(cuò)誤幀和超限幀,由該網(wǎng)關(guān)的CAN芯片硬件控制,因此,可以說網(wǎng)關(guān)無附加的響應(yīng)性。當(dāng)然,網(wǎng)關(guān)必須具備有“狀態(tài)位”,即在任何一個(gè)網(wǎng)絡(luò)中發(fā)生的錯(cuò)誤太多時(shí),網(wǎng)關(guān)有報(bào)警狀態(tài)位或總線中斷狀態(tài)位,這樣,網(wǎng)關(guān)就像網(wǎng)絡(luò)中的節(jié)點(diǎn)那樣,可以調(diào)查總線狀態(tài)。
對(duì)于兩個(gè)網(wǎng)絡(luò)之間的網(wǎng)關(guān),其具備盡量少的傳輸?shù)却龝r(shí)間,信息丟失或超限差錯(cuò)最少,能處理總線出現(xiàn)的差錯(cuò)等特性。
如果兩個(gè)CAN網(wǎng)絡(luò)執(zhí)行器是兩片獨(dú)立的芯片(圖1),微控制器(單片微機(jī))作為網(wǎng)關(guān),那么,CAN芯片就像靈巧的隨機(jī)存儲(chǔ)器被網(wǎng)關(guān)讀寫。一旦接收到信息,網(wǎng)關(guān)就執(zhí)行接收CAN芯片的外部讀操作,接著執(zhí)行轉(zhuǎn)換信息的邏輯指令,然后執(zhí)行外部寫操作,對(duì)第二個(gè)網(wǎng)絡(luò)的CAN芯片作傳輸編程。
所以說,網(wǎng)關(guān)主要是執(zhí)行外部讀、寫操作和轉(zhuǎn)換信息標(biāo)識(shí)符,而執(zhí)行讀、寫操作的重要技術(shù)條件是時(shí)間,讀、寫所要求的時(shí)間又取決于網(wǎng)關(guān)在CAN芯片接口的定時(shí)特性。

圖1 網(wǎng)關(guān)硬件的布置
1991年9月,標(biāo)準(zhǔn)的1.2版本的CAN協(xié)議修訂為新的2.0版本,新版本的技術(shù)關(guān)鍵是增加了信息標(biāo)識(shí)符,也就是說,新的CAN2.0既支持標(biāo)準(zhǔn)的11位,也支持?jǐn)U展后的29位信息標(biāo)識(shí)。
CAN2.0實(shí)施新的信息位,標(biāo)識(shí)擴(kuò)展位(IDE位)使CAN操作裝置能區(qū)分標(biāo)準(zhǔn)和擴(kuò)展格式,但大多數(shù)現(xiàn)存的標(biāo)準(zhǔn)CAN-1.2版本不能識(shí)別擴(kuò)展后的信息格式,在實(shí)施過程中會(huì)響應(yīng)錯(cuò)誤信息。
為了能實(shí)施29位的信息標(biāo)識(shí),Intel公司開發(fā)了品種繁多的芯片,作為CAN的汽車用戶,需采用網(wǎng)關(guān)使網(wǎng)絡(luò)互連(圖2),在僅用CAN-l.2-11位信息標(biāo)識(shí)的條件下,能正確響應(yīng)29位標(biāo)識(shí)。

圖2 Bosch CAN1.2與CAN2.0之間的網(wǎng)關(guān)連接圖

圖3 網(wǎng)關(guān)處理的內(nèi)容
網(wǎng)關(guān)主要“處理” 有關(guān)下面三部分的內(nèi)容(如圖3所示):從第一個(gè)網(wǎng)絡(luò)讀取所接收的信息,翻譯信息,向第二個(gè)網(wǎng)絡(luò)發(fā)送信息。圖中翻譯信息標(biāo)識(shí)符的含義如下:CAN1.2和CAN2.0 的網(wǎng)關(guān)可用于以下兩種情況;第一種是最簡(jiǎn)單的實(shí)施方式,即在兩個(gè)網(wǎng)絡(luò)之間不需要對(duì)信息標(biāo)識(shí)符翻譯,只是傳送標(biāo)準(zhǔn)信息,也就是說,這時(shí)的網(wǎng)關(guān)只起到互連CANl.2與CAN2.0,并讓這兩個(gè)網(wǎng)絡(luò)共享標(biāo)準(zhǔn)信息的任務(wù);第二種實(shí)施方式需要對(duì)信息標(biāo)識(shí)符作翻譯,也就是說,兩個(gè)網(wǎng)絡(luò)有各自的信息標(biāo)識(shí)符,例如,“發(fā)動(dòng)機(jī)溫度信息”在CAN1.2網(wǎng)絡(luò)上具有專用的11位標(biāo)準(zhǔn)信息標(biāo)識(shí)符,而在CAN2.0網(wǎng)絡(luò)上卻具有擴(kuò)展的29位信息標(biāo)識(shí)符,此時(shí)的網(wǎng)關(guān)需對(duì)這兩種信息標(biāo)識(shí)符通過計(jì)算或“查表”翻譯。
SAE選用CAN2.0協(xié)議作為“C級(jí)”串行控制和通信網(wǎng)絡(luò)的推薦實(shí)施標(biāo)準(zhǔn),由稱為SAE1939規(guī)范。CAN2.0每秒鐘的數(shù)據(jù)速率可達(dá)1Mbit/s, 也就是說,CAN2.0執(zhí)行相當(dāng)于SAE-C級(jí)的高速數(shù)據(jù)速率。可對(duì)于貨車的掛車或被牽引的機(jī)具來說,并不需要如此高CAN網(wǎng)絡(luò)均數(shù)據(jù)速率。由于高速率串行鏈路的電子元件和硬件的成本較昂貴,因此,就采用中速數(shù)據(jù)速率(B級(jí)) 41.6Kbitls的J1850網(wǎng)絡(luò)來管理掛車的牽引和制動(dòng),而CAN2.0只用于支持主車發(fā)動(dòng)機(jī)的各個(gè)ECU,這樣,在貨車和大客車上出現(xiàn)了連接異型網(wǎng)絡(luò)的網(wǎng)關(guān)(如圖4所示)。

圖4 CAN與J1850之間的關(guān)系
同樣原理,原實(shí)施SAE-J1850B級(jí)通信速率的小客車,感到發(fā)動(dòng)機(jī)、自動(dòng)變速器、ABS等系統(tǒng)的數(shù)據(jù)速率偏低,想提高通信速率以改善汽車的控制性能,又不能讓汽車成本增加太多,就將原實(shí)施J1850的汽車增加一個(gè)網(wǎng)關(guān)(如圖5所示),并將網(wǎng)關(guān)前方的總線修改為CAN總線。

圖5 轎車CAN網(wǎng)與J1850網(wǎng)絡(luò)之間的網(wǎng)關(guān)
由于幾種數(shù)據(jù)總線的傳輸速率不同,所以系統(tǒng)之間不能直接進(jìn)行數(shù)據(jù)交換。而事實(shí)上,在車輛處于正常工作狀態(tài)時(shí),不同的總線系統(tǒng)之間是需要有信息交流的,如發(fā)動(dòng)機(jī)系統(tǒng)(動(dòng)力總線)與空調(diào)系統(tǒng)(舒適總線)之間就有信息交流,發(fā)動(dòng)機(jī)控制單元會(huì)將節(jié)氣門開度、水溫、轉(zhuǎn)速等信號(hào)傳給空調(diào)控制單元,而空調(diào)控制單元需將壓縮機(jī)工作狀態(tài)傳遞給發(fā)動(dòng)機(jī)控制單元。為了解決此問題,特設(shè)置了網(wǎng)關(guān),即Gateway,又稱為網(wǎng)絡(luò)適配器。它能把各種總線系統(tǒng)的傳輸速度轉(zhuǎn)換成一個(gè)中間頻率,從而使所有連接在CAN總線上的控制單元之間都能進(jìn)行信息交流,整車的CAN總線系統(tǒng)就形成了一個(gè)有機(jī)的整體,如圖6所示。
在奧迪A4-B6 轎車上,Gateway只起到交換各種總線信息的作用, 這種Gateway稱為數(shù)據(jù)Gateway。而在Bora車上,Gateway 除起到交換信息的作用外,還能在不改變數(shù)據(jù)的前提下,將動(dòng)力總線、舒適總線和娛樂總線上的自診斷信息傳遞到K線上,這樣可以使系統(tǒng)進(jìn)行自診斷的速度加快。
當(dāng)更換某條CAN總線上的某個(gè)控制單元后,需進(jìn)行該條CAN總線的適配,其目的在于使Gateway認(rèn)識(shí)此新的控制單元并對(duì)其進(jìn)行數(shù)據(jù)轉(zhuǎn)換,否則該控制單元將不能參與CAN總線工作。每條CAN總線的每個(gè)控制單元都有一個(gè)固定的代碼數(shù)值,適配時(shí)需將CAN總線上所有控制單元的代碼數(shù)值加起來,輸入總和數(shù)值到適當(dāng)?shù)耐ǖ溃瑒t該CAN總線適配成功,如果去掉某一控制單元的數(shù)值,則該控制單元無法參與CAN總線工作。如果更換了組合儀表,由于Gateway安裝在組合儀表里,所以3條Gateway總線都需進(jìn)行適配。但例外的是安全氣囊控制單元,它不用編碼,即不在適配范圍之內(nèi),直接更換即可。
動(dòng)力總線的適配:用VAG1551或 VAS5051進(jìn)入地址碼“17”(儀表),然后選擇“10”功能(適配),進(jìn)入“060”通道,輸入相應(yīng)數(shù)值后“確認(rèn)”即可。各單元數(shù)值:發(fā)動(dòng)機(jī)為1,變速器為2,ESP為4,組合儀表為1024,如果該車是手動(dòng)變速器,則適配時(shí)應(yīng)輸入“1209”。
舒適總線的適配:進(jìn)入“061”通道輸入各控制單元代碼數(shù)值:汽車控制單元為1,舒適系統(tǒng)控制單元為2,組合儀表為256,轉(zhuǎn)向柱控制單元為1024,空調(diào)系統(tǒng)為2048,駐車加熱為32768。
信息娛樂總線的適配:進(jìn)入“062”通道輸入各控制單元代碼數(shù)值:收音機(jī)為1,電話為 2,電子導(dǎo)航為4,組合儀表為16。

圖6 奧迪A4-B6轎車CAN系統(tǒng)示意圖
[1] 張鳳山.奧迪系列轎車維修保養(yǎng)手冊(cè)[M].北京:機(jī)械工業(yè)出版社,2009.
[2] 李東江,張大成.汽車車載網(wǎng)絡(luò)系統(tǒng)原理與檢修[M].北京:機(jī)械工業(yè)出版社,2008.