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

圖1 網關硬件的布置
1991年9月,標準的1.2版本的CAN協議修訂為新的2.0版本,新版本的技術關鍵是增加了信息標識符,也就是說,新的CAN2.0既支持標準的11位,也支持擴展后的29位信息標識。
CAN2.0實施新的信息位,標識擴展位(IDE位)使CAN操作裝置能區分標準和擴展格式,但大多數現存的標準CAN-1.2版本不能識別擴展后的信息格式,在實施過程中會響應錯誤信息。
為了能實施29位的信息標識,Intel公司開發了品種繁多的芯片,作為CAN的汽車用戶,需采用網關使網絡互連(圖2),在僅用CAN-l.2-11位信息標識的條件下,能正確響應29位標識。

圖2 Bosch CAN1.2與CAN2.0之間的網關連接圖

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

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

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

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