胡育瑞
【摘? 要】本文設(shè)計(jì)一款具有路由、OSEK網(wǎng)絡(luò)管理、診斷等基本功能的網(wǎng)關(guān),并對(duì)其進(jìn)行相關(guān)介紹,以便能進(jìn)一步提升車輛的安全、可靠及經(jīng)濟(jì)性,降低車內(nèi)網(wǎng)絡(luò)負(fù)載。
【關(guān)鍵詞】網(wǎng)關(guān);CAN總線;網(wǎng)絡(luò)管理;自動(dòng)化測(cè)試
中圖分類號(hào):U463.6? ? 文獻(xiàn)標(biāo)志碼:A? ? 文章編號(hào):1003-8639( 2023 )04-0032-03
【Abstract】This paper designs a gateway with routing,OSEK network management,diagnosis and other basic functions,and introduces it so as to further improve the safety,reliability and economy of vehicles and reduce the network load in vehicles.
【Key words】gateway;CAN bus;network management;automated testing
汽車電子電氣行業(yè)的不斷發(fā)展,使得車內(nèi)的控制器持續(xù)增加,整車有龐大的信息量需要控制器去采集、控制以及交互。CAN總線由于有良好的通信性能,同時(shí)能減少線束,降低故障率,成為了主流的汽車總線[1]。但隨著控制器的持續(xù)增加,信號(hào)負(fù)載率也持續(xù)增大,信號(hào)傳輸延時(shí)[2]。為了降低CAN總線負(fù)載,保障通信時(shí)效性,根據(jù)控制器的功能,進(jìn)一步將其劃分為多個(gè)網(wǎng)段,各網(wǎng)段之間通過網(wǎng)關(guān)相互通信,這對(duì)網(wǎng)關(guān)的功能也提出了更高的要求,既要確保各網(wǎng)段的通信負(fù)載滿足要求,還要保障各網(wǎng)段之間能正常通信。本文基于某款車的CAN總線通信開發(fā)要求,設(shè)計(jì)了一款多網(wǎng)段式,具有路由、OSEK網(wǎng)絡(luò)管理、診斷等基本功能的網(wǎng)關(guān),并利用自動(dòng)化測(cè)試工具對(duì)路由、OSEK網(wǎng)絡(luò)管理等重要功能進(jìn)行驗(yàn)證測(cè)試。
1? 系統(tǒng)概述
車載CAN網(wǎng)關(guān)作為整車網(wǎng)絡(luò)的核心,主要負(fù)責(zé)連接不同的CAN網(wǎng)段,具有應(yīng)用路由、診斷功能、網(wǎng)絡(luò)管理、電源管理、Bootloader刷寫、映射、防火墻等功能[3]。其中,路由功能是網(wǎng)關(guān)最主要的功能,是為了實(shí)現(xiàn)跨網(wǎng)段信號(hào)和報(bào)文的傳輸。OSEK網(wǎng)絡(luò)管理能實(shí)時(shí)監(jiān)控整車的網(wǎng)絡(luò)狀態(tài)和管理整車網(wǎng)絡(luò)的休眠喚醒。圖1是網(wǎng)關(guān)系統(tǒng)框圖。本網(wǎng)關(guān)共有5路CAN及2路LIN通道,其中2路LIN為設(shè)計(jì)預(yù)留,以便后期進(jìn)行ECU擴(kuò)充。根據(jù)控制器的功能,將5路CAN分為:動(dòng)力CAN網(wǎng)段(簡(jiǎn)稱PT-CAN)、底盤CAN網(wǎng)段(簡(jiǎn)稱ST-CAN)、車身CAN網(wǎng)段(簡(jiǎn)稱BD-CAN)、娛樂CAN(簡(jiǎn)稱INFOR-CAN)和診斷CAN網(wǎng)段(簡(jiǎn)稱D-CAN)。其中動(dòng)力CAN和底盤CAN的實(shí)時(shí)性要求較高,因此該兩路網(wǎng)段上的控制器的報(bào)文ID值小,根據(jù)CAN總線仲裁原則,這些通信報(bào)文具有優(yōu)先級(jí)[4]。網(wǎng)關(guān)工作的額定電壓為12V,正常工作電壓為9~16V,波特率為500kb/s。
1.1? 路由功能
路由是網(wǎng)關(guān)的最主要功能,通過CAN收發(fā)器上的Buffer存儲(chǔ)報(bào)文信號(hào)并發(fā)送,能夠從一個(gè)源網(wǎng)段向一個(gè)或多個(gè)目標(biāo)網(wǎng)段傳輸。當(dāng)路由從一個(gè)源網(wǎng)段向一個(gè)目標(biāo)網(wǎng)段傳輸,稱為1:1路由。當(dāng)源網(wǎng)段上的一個(gè)信號(hào)需要被多個(gè)目標(biāo)網(wǎng)段接收時(shí),稱為1:N路由,N表示目標(biāo)網(wǎng)段的數(shù)量。本網(wǎng)關(guān)支持1:N路由,可在連接的任意網(wǎng)絡(luò)的任何方向間執(zhí)行。路由方式包含報(bào)文路由和信號(hào)路由,報(bào)文路由即網(wǎng)關(guān)對(duì)接收到的報(bào)文不做任何處理,直接按照路由表轉(zhuǎn)發(fā)到指定的CAN目標(biāo)網(wǎng)段上,并采用“輸入觸發(fā)”操作,只在收到源網(wǎng)段的報(bào)文時(shí)才進(jìn)行路由。網(wǎng)關(guān)一旦接收到報(bào)文,就必須在目標(biāo)網(wǎng)段發(fā)送一次該報(bào)文。報(bào)文路由僅用于報(bào)文可直接被接收節(jié)點(diǎn)進(jìn)行處理的情景。對(duì)于部分目標(biāo)網(wǎng)段不需要報(bào)文中的全部信號(hào),僅需要部分信號(hào),此時(shí)就要采用信號(hào)路由的方式。信號(hào)路由將不同報(bào)文中的有效信號(hào)提取后重組成新的報(bào)文,發(fā)送至目標(biāo)網(wǎng)段。信號(hào)路由能降低網(wǎng)絡(luò)復(fù)雜率,但是轉(zhuǎn)發(fā)方式較復(fù)雜。本網(wǎng)關(guān)的信號(hào)路由,采用“輸入無(wú)關(guān)”操作,即發(fā)送模式的定義須與接收信號(hào)獨(dú)立定義,CAN ID、周期、排列方式、發(fā)送方式等信息參照信息矩陣的需求。如果輸入信號(hào)丟失,發(fā)送信號(hào)應(yīng)以無(wú)效值進(jìn)行發(fā)送。當(dāng)網(wǎng)關(guān)檢測(cè)到源網(wǎng)段已經(jīng)進(jìn)入網(wǎng)絡(luò)未啟動(dòng)狀態(tài)或網(wǎng)絡(luò)關(guān)閉狀態(tài)時(shí),網(wǎng)關(guān)以無(wú)效值發(fā)送所有信號(hào)。
1.2? 網(wǎng)絡(luò)管理功能
網(wǎng)絡(luò)管理是通過車載網(wǎng)絡(luò)各項(xiàng)命令規(guī)則對(duì)汽車控制器進(jìn)行協(xié)調(diào)管理,實(shí)現(xiàn)各個(gè)控制器的協(xié)同睡眠和喚醒,進(jìn)而保證控制器低功耗安全的通信工作。網(wǎng)絡(luò)管理分為間接網(wǎng)絡(luò)管理和直接網(wǎng)絡(luò)管理。間接網(wǎng)絡(luò)管理主要通過應(yīng)用報(bào)文間接的監(jiān)控節(jié)點(diǎn)與網(wǎng)絡(luò)狀態(tài),本網(wǎng)關(guān)主要是通過監(jiān)控PT-CAN和ST-CAN上的部分應(yīng)用報(bào)文,從而實(shí)現(xiàn)對(duì)部分節(jié)點(diǎn)進(jìn)行休眠喚醒控制,例如點(diǎn)火開關(guān)由非關(guān)閉擋位切換到關(guān)閉擋位后,部分節(jié)點(diǎn)立刻停止通信或者延時(shí)一段時(shí)間通信,如EMS、EPS、TCU、ESP等。直接網(wǎng)絡(luò)管理需要使用規(guī)定的網(wǎng)絡(luò)管理報(bào)文直接對(duì)節(jié)點(diǎn)和網(wǎng)絡(luò)狀態(tài)進(jìn)行監(jiān)控,確保網(wǎng)絡(luò)睡眠的同步。本網(wǎng)關(guān)基于OSEK NM直接網(wǎng)絡(luò)管理策略,對(duì)BD-CAN上節(jié)點(diǎn)進(jìn)行休眠喚醒控制,BD-CAN上的網(wǎng)絡(luò)實(shí)時(shí)性不高,且節(jié)點(diǎn)主要是KL30常電供電,在點(diǎn)火鑰匙為OFF時(shí)仍需進(jìn)行CAN通信,如BCM、PEPS等。OSEK直接網(wǎng)絡(luò)管理采用“令牌環(huán)”的機(jī)制,每一個(gè)節(jié)點(diǎn)都有特定的ID標(biāo)識(shí)符,即節(jié)點(diǎn)地址,按照ID標(biāo)識(shí)符的大小,從小ID標(biāo)識(shí)符向大ID標(biāo)識(shí)符依次傳遞環(huán)信息(Ring報(bào)文),直至最大的ID標(biāo)識(shí)符,最后再由最大的ID標(biāo)識(shí)符傳遞至最小的節(jié)點(diǎn)ID標(biāo)識(shí)符,形成一個(gè)閉合的邏輯令牌環(huán)。環(huán)消息都是以廣播的方式向每個(gè)節(jié)點(diǎn)發(fā)送,其余節(jié)點(diǎn)通過監(jiān)測(cè),并確定是否為上一個(gè)發(fā)送節(jié)點(diǎn)的后繼節(jié)點(diǎn),并更新運(yùn)行狀態(tài)等。
1.3? 刷寫功能
網(wǎng)關(guān)開發(fā)過程中,軟件功能需求變更以及功能很多,需要頻繁更新軟件升級(jí)程序,為了便于開發(fā)測(cè)試,網(wǎng)關(guān)設(shè)計(jì)了基于UDS協(xié)議的Bootloader刷寫功能。網(wǎng)關(guān)加入Bootloader之后可以理解劃分應(yīng)用程序?qū)雍虰ootloader層,Bootloader層負(fù)責(zé)日后的程序升級(jí)功能,Bootloader更新程序通常不會(huì)擦除自己的代碼塊區(qū)域,防止異常中斷而導(dǎo)致無(wú)法再次更新,所以是可以繼續(xù)中斷刷新。
主要刷寫流程包含預(yù)程序階段、程序刷寫階段及后程序階段。預(yù)程序階段主要是通過診斷命令檢查刷寫條件,關(guān)閉DTC和通信等;程序刷寫階段主要進(jìn)行安全訪問校驗(yàn)、身份識(shí)別、驅(qū)動(dòng)下載、數(shù)據(jù)下載、數(shù)據(jù)校驗(yàn)、ECU重啟等;后程序階段是使所有ECU返回至默認(rèn)會(huì)話模式。
1.4? 防火墻
車輛與外部實(shí)現(xiàn)遠(yuǎn)近場(chǎng)的通信主要通過遠(yuǎn)程連接和物理連接。遠(yuǎn)程連接包含如激光雷達(dá)傳感器、毫米波傳感器、RFID及DoIP等;物理連接主要是外部診斷設(shè)備與車輛OBD口的連接,進(jìn)而實(shí)現(xiàn)與車內(nèi)網(wǎng)的通信。任何車內(nèi)網(wǎng)與外部設(shè)備的連接,都會(huì)增加車輛網(wǎng)絡(luò)的安全隱患,任何未經(jīng)授權(quán)嘗試對(duì)車輛電子架構(gòu)訪問的行為都有可能會(huì)引起致命的后果。如車輛遠(yuǎn)程受控,惡意代碼注入,從而導(dǎo)致汽車數(shù)據(jù)被外界獲取或網(wǎng)絡(luò)被外界干擾[5]。為了維護(hù)數(shù)據(jù)的安全,保證數(shù)據(jù)的完整、保密以及確定外來身份的合法性,需要開發(fā)網(wǎng)關(guān)的防火墻功能。網(wǎng)關(guān)防火墻包含物理隔離和軟件隔離兩個(gè)方面。
1)物理隔離。將與外接可連接的ECU或接口隔離出來,置于非安全端口網(wǎng)段,本設(shè)計(jì)中將OBD單獨(dú)置于診斷D-CAN,而T-box單獨(dú)置于INFO-CAN。
2)軟件隔離。非安全端口路由報(bào)文至安全端口,需要滿足必要的條件:①ID過濾,非路由表中的ID不可以路由;②周期報(bào)文,周期異常(周期變快)不路由,恢復(fù)正常周期后可以路由,如T-box的周期報(bào)文;③特定報(bào)文在特殊工況下路由(如車速限制等),如T-box與PEPS的認(rèn)證報(bào)文和學(xué)習(xí)報(bào)文;④關(guān)鍵數(shù)據(jù)需要經(jīng)過有效校驗(yàn)后可路由(如軟件加密、硬件加密);⑤定義特定工況下,采用握手私有協(xié)議等。
2? 測(cè)試驗(yàn)證
本文主要對(duì)路由和網(wǎng)絡(luò)管理兩個(gè)主要功能進(jìn)行驗(yàn)證測(cè)試,包含手動(dòng)測(cè)試和自動(dòng)化測(cè)試,路由測(cè)試采用手動(dòng)測(cè)試,而網(wǎng)絡(luò)管理先采用自動(dòng)化測(cè)試腳本進(jìn)行全面測(cè)試,再通過手動(dòng)測(cè)試對(duì)個(gè)別測(cè)試案例進(jìn)行復(fù)測(cè)和對(duì)比。
2.1? 路由測(cè)試
測(cè)試設(shè)備:計(jì)算機(jī)配備CANoe軟件、直流供電電源(12V)、維克多VN1640、網(wǎng)關(guān)樣件、網(wǎng)關(guān)控制器插接件、若干DB9連接線。
測(cè)試方法:圖2為硬件連接圖。依據(jù)圖2連接好網(wǎng)關(guān)控制器、VN1640、電源以及計(jì)算機(jī)。隨后在CANoe上位機(jī)軟件中搭建測(cè)試環(huán)境,首先配置CAN通道,與VN1640上的硬件通道相對(duì)應(yīng),將各路的DBC文件導(dǎo)入各網(wǎng)段;其次添加并打開兩個(gè)Trace窗口,通過過濾器分別觀察源網(wǎng)段和目標(biāo)網(wǎng)段,驅(qū)動(dòng)外部電源,運(yùn)行CANoe軟件,開始測(cè)試。
在仿真窗口通過DBC模擬各網(wǎng)段的全部報(bào)文和信號(hào),對(duì)照車型的路由表,測(cè)試路由通路以及方向,觀察路由表中各信號(hào)和報(bào)文是否全部可正常路由至目標(biāo)網(wǎng)段。針對(duì)路由測(cè)試中的其他測(cè)試點(diǎn),例如數(shù)據(jù)場(chǎng)變化等,則需要通過IG模塊改變信號(hào)或報(bào)文值。圖3為測(cè)試結(jié)果的部分截圖。經(jīng)測(cè)試,所有信號(hào)和報(bào)文能夠按照路由表準(zhǔn)確及時(shí)進(jìn)行路由,網(wǎng)關(guān)控制器的路由功能正常。
2.2? 網(wǎng)絡(luò)管理測(cè)試
網(wǎng)關(guān)控制器的網(wǎng)絡(luò)管理測(cè)試采用自動(dòng)化進(jìn)行。
硬件環(huán)境:硬件包含待測(cè)網(wǎng)關(guān)控制器樣件、維克多VN1640(搭配CANoe軟件,CANoe軟件用來模擬除網(wǎng)關(guān)外其他節(jié)點(diǎn)發(fā)送和接收?qǐng)?bào)文;記錄監(jiān)控總線報(bào)文;對(duì)網(wǎng)關(guān)進(jìn)行ACK應(yīng)答)、CANstressDR(對(duì)總線報(bào)文進(jìn)行干擾、對(duì)總線實(shí)施最大電阻故障等)、程控電源VH1150(可通過測(cè)試腳本實(shí)現(xiàn)控制輸出電壓,電源通斷、總線故障注入及搭鐵偏移等功能)、若干DB9連接線、樣件插接件以及PC。連接圖如圖4所示。
軟件環(huán)境:打開CANoe軟件,導(dǎo)入測(cè)試腳本,并添加DBC文件。
測(cè)試方法:勾選測(cè)試用例,啟動(dòng)運(yùn)行測(cè)試腳本。
測(cè)試內(nèi)容(圖5):包含初始化測(cè)試、邏輯環(huán)測(cè)試、睡眠中斷測(cè)試、跛行狀態(tài)測(cè)試以及睡眠喚醒魯棒性測(cè)試。
初始化測(cè)試主要驗(yàn)證網(wǎng)絡(luò)啟動(dòng)和關(guān)閉時(shí),Alive、Ring和Limphome的報(bào)文格式以及時(shí)間參數(shù)是否滿足NM標(biāo)準(zhǔn)的要求。
邏輯環(huán)測(cè)試主要驗(yàn)證邏輯環(huán)是否穩(wěn)定和目標(biāo)地址是否正確,建環(huán)后出現(xiàn)節(jié)點(diǎn)跳過、節(jié)點(diǎn)丟失或者新節(jié)點(diǎn)加入時(shí),整個(gè)邏輯環(huán)是否滿足NM標(biāo)準(zhǔn)要求。在各種睡眠情況下,網(wǎng)關(guān)的相關(guān)NM報(bào)文是否滿足NM標(biāo)準(zhǔn)要求。
睡眠中斷測(cè)試主要驗(yàn)證各種睡眠中斷環(huán)境,網(wǎng)關(guān)的NM報(bào)文以及時(shí)間參數(shù)是否滿足NM標(biāo)準(zhǔn)。
跛行狀態(tài)測(cè)試主要驗(yàn)證Limphome狀態(tài)時(shí)網(wǎng)關(guān)收到網(wǎng)管報(bào)文時(shí)的狀態(tài)跳變是否滿足NM的標(biāo)準(zhǔn)要求。
睡眠喚醒魯棒性測(cè)試主要驗(yàn)證在頻繁睡眠喚醒或者長(zhǎng)時(shí)間睡眠情況下,網(wǎng)關(guān)仍然能夠正常睡眠或者喚醒。
由圖6的自動(dòng)化測(cè)試結(jié)果可知,網(wǎng)關(guān)的初始化測(cè)試、邏輯環(huán)測(cè)試、睡眠中斷測(cè)試、跛行狀態(tài)測(cè)試以及睡眠喚醒魯棒性測(cè)試全部通過,滿足車輛通信要求。
3? 結(jié)論
本文根據(jù)車型開發(fā)需求,設(shè)計(jì)了一款多網(wǎng)段式,具有路由、OSEK網(wǎng)絡(luò)管理、診斷等基本功能的網(wǎng)關(guān)控制器。利用手動(dòng)和自動(dòng)化方法,主要測(cè)試了路由功能和OSEK NM網(wǎng)絡(luò)管理功能,測(cè)試結(jié)果表明,網(wǎng)關(guān)滿足車輛通信和安全要求,降低了各網(wǎng)段負(fù)載,減少車輛通信延遲, 增強(qiáng)了車身網(wǎng)絡(luò)的可靠性。
參考文獻(xiàn):
[1] 胡紅兵. 汽車CAN網(wǎng)絡(luò)的應(yīng)用和分析[J]. 海峽科學(xué),2010(12):46-48.
[2] 趙公旗,馮寶存,趙紅玉,等. 淺談車載總線負(fù)載對(duì)網(wǎng)絡(luò)傳輸影響及優(yōu)化[J]. 汽車電器,2015(12):22-24.
[3] 王杰. 車載網(wǎng)關(guān)設(shè)計(jì)方法及其網(wǎng)絡(luò)管理技術(shù)研究[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2011.
[4] 袁遠(yuǎn). CAN網(wǎng)絡(luò)通信及實(shí)時(shí)性研究[D]. 蘭州:蘭州大學(xué),2010.
[5] 陳振威. 基于CAN總線的車載網(wǎng)關(guān)防火墻的研究與優(yōu)化[D]. 廣州:廣東工業(yè)大學(xué),2021.
(編輯? 凌? 波)