石聰、劉洋
(1.北汽福田汽車股份有限公司,北京 102200;2.北京汽車股份有限公司,北京 101300)
隨著科技的發(fā)展,現(xiàn)如今人們對車輛需求已不止于代步,智能化、網(wǎng)絡(luò)化、科技化成為人們關(guān)注的焦點。車輛智能化就意味著如駕駛輔助系統(tǒng)(ADAS)、環(huán)視監(jiān)控系統(tǒng)和車載影像系統(tǒng)(FCS)等高科技電子控制單元在車輛上應(yīng)用越來越普及,對于車內(nèi)電子控制單元之間的網(wǎng)絡(luò)通信速率要求也越來越高。傳統(tǒng)的CAN 總線已不能滿足信息高速傳輸要求,故引入了車載以太網(wǎng)技術(shù)。
DoIP(Diagnostic Communication over Internet Protocol,基于IP 的診斷協(xié)議)的主要作用是建立外部測試設(shè)備與車載網(wǎng)絡(luò)之間的診斷連接。在診斷服務(wù)中,DoIP 相對于傳統(tǒng)的CAN 診斷具有以下顯著優(yōu)勢。
(1)高速率。通常DoIP 診斷傳輸速率采用100 Mb/s,在復(fù)雜的診斷任務(wù)(如軟件刷寫、在線檢測或軟件升級等)中能夠?qū)崿F(xiàn)高速率傳輸,可節(jié)約時間,提高效率。
(2)低成本??墒褂贸墒斓囊蕴W(wǎng)標準硬件組件(如以太網(wǎng)控制器、Cat5 線纜和RJ-45 連接器),無需經(jīng)過硬件VCI,通過以太網(wǎng)接口連接電子控制單元即可實現(xiàn)通信,且能兼容CAN/CANFD 通信。
(3)應(yīng)用范圍廣。DoIP 技術(shù)可實現(xiàn)本地診斷、遠程診斷和空中下載技術(shù)(OTA)等功能。
DoIP 是位于OSI 模型中的應(yīng)用層,通過TCP/UDP 協(xié)議傳輸,物理層與數(shù)據(jù)鏈路層遵循ISO 13400 標準,應(yīng)用層遵循ISO 14229-5 標準。如DoIP 的網(wǎng)絡(luò)節(jié)點支持Internet 連接,則該節(jié)點應(yīng)支持基于IEEE 802 接口連接的遠程診斷。
車載以太網(wǎng)的DoIP 協(xié)議主要應(yīng)用于售后診斷、ECU 刷寫等場景,針對不同的應(yīng)用環(huán)境,連接方式也有一定差異。
段主任說:我不是說了嗎,像他這種情況,必須住院做個氣管鏡才能知道。你們商量一下,看看怎么辦吧?王姐又問:他們回去做行嗎?段主任點頭說:氣管鏡是小手術(shù),在哪兒做都行。王姐說:段主任,咱們商量一下唄,在這兒做,不住院行不行?段主任笑了,擺手說:這可不行,做氣管鏡,必須住院。再說做前還有許多化驗要做呢。
(1)直接點對點連接:用于車輛開發(fā)、測試和售后場景。點對點連接進行診斷通信時,車內(nèi)系統(tǒng)不會受到來自其他車輛或設(shè)備的干擾,外部測試設(shè)備也很明確對應(yīng)需要物理連接的車輛。
(2)通過網(wǎng)絡(luò)的點對點連接:適用于多臺車輛同時在維修店進行檢測、維修。車輛與外部測試設(shè)備都應(yīng)具備識別能力與自動接入到已存在的IP 網(wǎng)絡(luò)的能力,在局域網(wǎng)絡(luò)內(nèi)識別出所需要連接的對象,并拒絕來自其他車輛或者設(shè)備的請求信號。
(3)單個外部測試設(shè)備與多個車輛的網(wǎng)絡(luò)連接:適用于整批量汽車在制造工廠或售后維修店進行程序刷寫。此種連接方式只需外部測試設(shè)備有點對多連接的能力,車內(nèi)節(jié)點對外部測試設(shè)備進行響應(yīng)。
(4)多個外部測試設(shè)備與單個車輛的網(wǎng)絡(luò)連接:車內(nèi)節(jié)點同時有刷寫和診斷需求時,需要一臺外部設(shè)備對車內(nèi)節(jié)點進行刷寫,另一臺外部設(shè)備對另一節(jié)點進行診斷。此時車輛需要具備區(qū)分診斷請求以及反饋的能力。外部設(shè)備則需要有判斷當前車輛是否在與其他設(shè)備進行通訊的能力,根據(jù)實際情況判斷是進入等待或進入socket 連接。
車輛診斷構(gòu)架分為車內(nèi)網(wǎng)絡(luò)與車外網(wǎng)絡(luò)兩部分,其中車內(nèi)網(wǎng)絡(luò)包含以下幾部分。
(1)DoIP 節(jié)點:基于DoIP 協(xié)議通信的網(wǎng)絡(luò)節(jié)點,但只能作為通信節(jié)點,不能支持路由DoIP 報文。
(2)DoIP 網(wǎng)關(guān):車輛內(nèi)部網(wǎng)關(guān),實現(xiàn)DoIP 協(xié)議的主機節(jié)點;可路由其連接的子網(wǎng)與外部設(shè)備之間的報文。
(3)DoIP 邊緣節(jié)點網(wǎng)關(guān):負責路由外部設(shè)備和車內(nèi)子網(wǎng)之間信息,通過激活線與外部測試設(shè)備連接,需要以太網(wǎng)激活線先對及進行激活,才能實現(xiàn)通信。
車外網(wǎng)絡(luò)包括以下兩部分。
(1)外部測試設(shè)備:指支持DoIP 協(xié)議且具有強大存儲能力與處理能力的終端(如PC、筆記本電腦或手機)。外部測試設(shè)備通過DoIP 協(xié)議訪問車輛內(nèi)部網(wǎng)絡(luò)中的DoIP 實體。
(2)車外網(wǎng)絡(luò)節(jié)點:此類節(jié)點作為與DoIP 系統(tǒng)相關(guān)的網(wǎng)絡(luò)節(jié)點并不是必須存在的,是作為一些車聯(lián)網(wǎng)網(wǎng)絡(luò)中的其他功能節(jié)點。
DoIP診斷的車內(nèi)網(wǎng)絡(luò)與車外網(wǎng)絡(luò)架構(gòu)如圖1所示??梢钥吹剑獠繙y試設(shè)備與DoIP 邊緣節(jié)點之間除了通過物理介質(zhì)鏈接以外,還可以通過WLAN 技術(shù)進行無線網(wǎng)絡(luò)連接。
圖1 診斷DoIP 網(wǎng)絡(luò)架構(gòu)
測試設(shè)備(Tester)與DoIP 邊緣節(jié)點連接線由4 根支持100BASE-T 或10BASE-T 的數(shù)據(jù)傳輸線與激活線K 線組成,Tester端通過以太網(wǎng)網(wǎng)口連接,車輛通過OBD II 端口連接。外部測試設(shè)備是通過改變硬線激活線電壓來控制車內(nèi)DoIP 邊緣節(jié)點控制器的激活與停用。硬線激活線的電壓要求范圍如圖2所示。
圖2 激活電壓范圍
激活線的作用是降低功耗和抗電磁干擾,為避免由地面移位或電磁干擾引起的隨機誤激活,ISO 13400 標準中規(guī)定,激活線的禁用電壓閾值()為2 V。如以太網(wǎng)在已停用狀態(tài),DoIP 邊緣節(jié)點在低于2 V 的電壓時不會被激活。當激活電壓在5~32 V(~)并保持200 ms 后,邊緣節(jié)點硬件被激活。因此可在接收電路中設(shè)計一個小于200 ms 的濾波器時間常數(shù),能夠保持200 ms。當介于和之間時,以太網(wǎng)硬件應(yīng)保持激活狀態(tài)。激活線電壓低于的200 ms 后,邊緣節(jié)點失活,表明可以停用以太網(wǎng)硬件。當激活線處于“保持有效”狀態(tài)時,應(yīng)允許通信,但只有在檢測到鏈路后才能進行通信。
車輛DoIP 診斷接口采用標準的OBD II 接口,要求其不僅可支持傳統(tǒng)CAN 診斷,也可支持以太網(wǎng)DoIP 診斷。故而布置時也應(yīng)同時滿足以太網(wǎng)IEEE 802 標準與ISO 15031-3 標準(或SAE J1962 協(xié)議)。當前通用的端子布局有以下2 種模式。
第一種模式是1號和9號端子用于CAN診斷協(xié)議,3號、11號、12 號和13 號端子用于以太網(wǎng)DoIP 診斷協(xié)議,8 號端子用于布置DoIP 網(wǎng)絡(luò)激活線。
第二種模式是3號和11號端子用于CAN診斷協(xié)議,1號、9號、12 號和13 號端子用于DoIP 診斷協(xié)議。與第一種相同的是,8 號端子同樣用于布置DoIP 網(wǎng)絡(luò)激活線。
由于目前主機廠多采用3 號和11 號端子作為CAN 網(wǎng)絡(luò)診斷,故此處推薦第二種布置方式。
DoIP 協(xié)議支持IPv4 與IPv6 協(xié)議,以及對應(yīng)的地址解析ARP協(xié)議、NDP 協(xié)議以及控制報文協(xié)議ICMP。目前車載以太網(wǎng)仍以IPv4 協(xié)議為主,基于對網(wǎng)絡(luò)發(fā)展的考慮,隨著地址的增加,會逐漸過渡到IPv6 協(xié)議。所有統(tǒng)一網(wǎng)段的DoIP 都必須使用相同的IP協(xié)議版本。由于DoIP 在OSI 模型中位于應(yīng)用層,故DoIP 報文前要封裝ETH 首部、IP 首部及TCP/UDP 首部。DoIP 報文包括協(xié)議版本號、版本號取反、負載類型、負載長度及DoIP 數(shù)據(jù)。以太網(wǎng)報文封裝格式如圖3所示。
圖3 ETH 報文格式
版本號占1 個字節(jié),標識DoIP 協(xié)議版本編號,取值范圍為0x00 至0xFF,通常取0x02(ISO 13400-2-2012《道路車輛——互聯(lián)網(wǎng)協(xié)議的診斷通信(DoIP).第2 部分:傳輸協(xié)議和網(wǎng)絡(luò)層服務(wù)》)。
版本號取反占1個字節(jié),是版本號與0xFF邏輯運算異或的值。如版本號為0x02,則版本號取反則為0xFD。版本號取反值與版本號值配合起到協(xié)議驗證的作用,以確保接DoIP 報文的準確性。
負載類型占2 個字節(jié),用于判斷數(shù)據(jù)用途,其用途主要分成3 組:節(jié)點管理類報文、節(jié)點狀態(tài)類報文和診斷類報文。節(jié)點管理類報文0x0001 至0x0004 用于識別車輛請求,在外部測試設(shè)備與DoIP 邊緣節(jié)點建立診斷連接前的交互。0x0005 和0x0006 用于激活請求與響應(yīng),激活后socket 使能并建立socket 鏈接,才可以進行診斷通信;0x0007 和0x0008 用于檢查當前建立的診斷連接socket 是否仍然在使用,如果不再使用,則關(guān)閉socket 釋放資源。
節(jié)點狀態(tài)類報文0x4001 至0x4004,指示當前節(jié)點類型。診斷類報文0x8001 至0x8003,標識外部測試設(shè)備與DoIP 實體之間的診斷報文類型,分別代表診斷報文、診斷肯定響應(yīng)報文和診斷否定響應(yīng)報文。在DoIP 協(xié)議中,通過不同的負載類型來區(qū)分報文類型以實現(xiàn)不同具體的功能,其發(fā)送方式都是通過TCP/UDP 協(xié)議。
負載長度占4 個字節(jié),標識DoIP Payload 長度,不包括DoIP 首部長度。
DoIP Payload 可占0-4 294 967 295 個字節(jié),包括源地址、目標地址及User Data(如診斷報文)。該部分字節(jié)長度不是固定不變的,而是根據(jù)不同負載類型調(diào)整,要求根據(jù)數(shù)據(jù)負載類型的不同對Payload 長度進行計算,以保證數(shù)據(jù)傳輸?shù)耐暾浴?/p>
當外部測試設(shè)備與車內(nèi)DoIP 實體建立網(wǎng)絡(luò)連接時,首先進行物理連接,DHPC 自動配置IP 地址。其次由DoIP 實體主動發(fā)出3 次聲明報文,廣播其VIN、EID、GID 和邏輯地址,根據(jù)ISO 13400 標準規(guī)定,3 次報文間隔時間在0~500 ms。此時外部測試設(shè)備如果沒有收到或漏收了3 次聲明報文,則需要外部測試設(shè)備主動向車內(nèi)DoIP 實體發(fā)送請求,等待500 ms 的時間間隔后,收到DoIP 實體響應(yīng)。
外部測試設(shè)備選擇對應(yīng)的車輛,請求DoIP 實體打開TCP_DATA socket。DoIP 實體需確認當前申請socket 是否未被占用,接收報文的源地址是否被其他TCP_DATA socket 占用。如當前申請的TCP socket已被占用或SA已被其他TCP_DATA socket 占用,則發(fā)送激活否定響應(yīng)報文,關(guān)閉當前報文的socket;如均未被占用,則繼續(xù)進行初始化TCP_DATA socket。之后外部測試設(shè)備向DoIP 實體發(fā)送路由激活請求,DoIP 實體進行通用DoIP 首部處理和路由激活處理,注冊TCP_DATA socket,并對外部測試設(shè)備的激活請求進行響應(yīng),從而完成路由激活連接。
外部測試設(shè)備發(fā)送診斷報文到DoIP 實體,DoIP 實體經(jīng)過通用DoIP 首部處理及DoIP 診斷處理后,向外部測試設(shè)備發(fā)送確認接收的診斷響應(yīng)。再由DoIP 實體向車內(nèi)節(jié)點發(fā)送診斷請求,等待車內(nèi)節(jié)點反饋診斷響應(yīng)后,由DoIP 實體向外部測試設(shè)備發(fā)送診斷響應(yīng)。此處,DoIP 實體可以支持與車內(nèi)非DoIP 實體的電子控制單元ECU(Electronic Control Unit)通信。
如當前無診斷需求時,由外部測試設(shè)備向DoIP 實體發(fā)送關(guān)閉TCP_DATA socket 命令,DoIP 實體執(zhí)行釋放TCP_DATA socket,以備下一次診斷服務(wù)中使用。
目前,車載以太網(wǎng)已在多數(shù)車輛中應(yīng)用,本文主要針對車載以太網(wǎng)的DoIP 技術(shù)進行了研究。相比于CAN 診斷,DoIP 診斷技術(shù)通信帶寬大、傳輸速率高,可以提高軟件刷寫與故障診斷的效率,也是未來車輛診斷技術(shù)的發(fā)展趨勢。