安 康, 韓光省, 韓可強, 朱永健, 郭 燦
(1.河北工業大學,天津 300310;2.中國汽車技術研究中心,天津 300300)
車載電子系統的復雜程度日益增加,不斷增加的控制器以及接口數量對帶寬的需求越來越大,車內不同的控制單元和不同的域之間彼此通信的需求越來越強。這意味著傳統總線已經無法滿足需求,整車制造商和供應商都需要更有效的車輛通信網絡。當前應用較多的總線主要有LIN、CAN、FlexRay、MOST、LVDS等,除了LVDS以外,其余的總線技術都是針對汽車行業制定的[1]。目前CAN、LIN是現役車載網絡最為廣泛的標準,但其帶寬水平在某些應用領域越來越力不從心;FlexRay在中高端車的線控系統和動力系統中應用較多,MOST主要服務于多媒體應用,但其開發成本相比較高;LVDS是一種電器數字信號系統,在汽車行業主要應用在屏幕和攝像頭間數據傳輸。所以目前正是一直被汽車行業拒之門外的以太網與汽車深度擁抱集成的契機。分和基于CAN總線診斷一樣采用ISO 14229實現,詳見表1。
DoIP全稱為基于IP網絡的診斷通信Diagnostic communication over Internet Protocol,由ISO 13400標準定義,是基于IP的汽車診斷協議[2]。DoIP診斷經由通用的統一診斷服務UDS協議引入診斷服務,通過傳輸控制協議TCP、用戶數據報協議UDP和以太網協議IP,完成外部測試設備與ECU間的診斷通信。在OSI 7層模型中,ISO 13400規定了DoIP的傳輸層、網絡層、數據鏈路層和物理層。應用層和會話層部

表1 基于OSI基本參考模型
DoIP報文由DoIP報頭和Payload(有效載荷)組成,完整格式如圖1所示。
1)DoIP報頭包含:DoIP協議版本號,目前為0x02(DoIP 2012)。
2)協議版本號取反,目前為0xFD。
3)Payload類型,分為3大類:①節點管理類,包含DoIP報頭否定應答、車輛聲明及標識、路由激活、在線檢查;②車輛信息類,包含DoIP實體狀態、診斷電源模式信息;③診斷數據類,包含診斷報文。
4)Payload長度,范圍為0-0xFFFFFFFF最大支持一次性傳輸4GB大小的數據。
每個DoIP實體 (實現了DoIP協議的節點)將按照圖2中指定的順序處理所有DoIP報文的通用DoIP報頭結構。

圖2 DoIP通用報頭處理程序
如果接收到來自DoIP實體不正確的DoIP報文,外部測試設備不得發送通用DoIP報頭的否定應答報文。通用DoIP報頭否定應答報文只能用于確定先前發送的DoIP報文的錯誤條件。
當一輛車和外部測試設備都連接到DoIP網絡中,并且IP地址配置完成,DoIP實體將通過車輛公告信息廣播其VIN、EID、GID和邏輯地址3次,外部測試設備通過廣播發送車輛識別請求來觸發車輛識別響應,從而完成車輛聲明及標識步驟。
打開Socket(套接字)是外部測試設備向車輛內部DoIP實體發起連接的第一步,必須在交換任何報文前完成,一旦建立了連接,必須執行一些初始化操作。為了激活初始化連接中的路由,外部測試設備將發送一個路由激活請求消息到DoIP實體。如果外部測試設備符合條件,DoIP實體將發送一個路由激活成功的響應,此時就可以對有效的DoIP報文 (如DoIP診斷報文)進行轉發或處理。DoIP會話示例見圖3。

圖3 DoIP會話示例
DoIP的應用場景具體有3個:①車輛檢查和維修,在售后模式下,診斷儀通過TCP/IP協議與車輛建立直接聯系,然后將相應的診斷請求發送給車輛DoIP實體,然后根據車內ECU的診斷響應反饋出故障信息。②車輛/ECU的軟件刷新,外部刷寫設備根據刷寫規范中定義的刷寫流程,將更新后的程序或標定文件寫入內部模塊中。在ECU開發階段,外部刷寫設備與DoIP實體間建立的通常是點對點的通信,但在下線時,通常通過刷寫設備對整車進行并行刷寫操作。③車輛/ECU的下線檢查和維修,在裝配車間,外部測試設備能夠按照相應的流程,確定車輛是否已通過裝配線準備狀態測試。正在裝配過程中的車輛,即使不是所有DoIP實體都安裝在車輛上,也應在IP網絡上能夠正確檢測到,從而對車輛進行診斷和維修。與售后模式不同的是,在裝配車間,外部測試設備和車輛之間通常進行多個并行的診斷通信。這包括一個或多個外部測試設備與車輛中的多個ECU建立多個邏輯連接。
外部通信方案有4種:①單輛車與單個外部測試設備直接物理連接,該方案能夠確保在進行IP診斷時,系統不會受到來自其他車輛或設備的干擾,一般用IP尋址或自動配置;②單輛車與單個外部測試設備網絡連接,在多部車或多個外部測試設備都連接到同一個網絡時 (例如維修車間網絡),外部測試設備和車輛都應該具備識別能力,能夠在網絡下識別出連接的對象,并拒絕來自其他車輛或外部測試設備的請求;③多輛車與單個外部測試設備網絡連接,該方案要求外部測試設備具備一對多連接的能力,例如在工廠或車間中某一個產線整車刷新服務器需要同時對多輛車同時進行刷寫升級;④單臺車與多個外部測試設備連接該方案要求車輛具備一對多連接的能力,能夠清楚地區分診斷請求和對每個邏輯連接負責的外部測試設備的響應。外部測試設備能夠判斷當前車輛是否在與其他設備進行通信,例如在下線時的服務器網絡重疊區域,某個外部設備需要對車輛刷寫升級,而另一個外部設備需要對該車輛進行故障檢修[3]。
DoIP架構模型必須實現以下特征:①車輛與測試設備能夠加入到網絡中并識別對方;②汽車具有聲明存在且被檢測到的能力;③獲取車輛基本狀態信息 (如Power Mode狀態);④通信建立,如雙方通信請求建立,保持,以及對網關的控制等;⑤汽車網關實現診斷設備與車輛子網組件之間的數據路由;⑥錯誤狀態處理[4]。
圖4描繪了車載網絡架構的示例。

圖4 車載網絡架構示意圖
如圖4所示,根據該拓撲結構,5個域控制器:車身、動力總成、底盤、信息娛樂、高級駕駛員輔助系統ADAS,通過以太網作為主干網連接,每個域內部均可使用不同網絡,當域與域之間需要信息交流時,報文可經由域控制器路由轉發到目標網絡。由于涉及到安全性等因素診斷網關需要支持如下特性:DoIP網關在所有連接中必須支持IPV4通信,在用于OBD以太網連接時必須支持IPV6通信,能夠將外部IP地址轉換為內部IP地址、將外部MAC地址轉換為內部MAC地址并提供防火墻從而保護內部通信;作為內部診斷設備的ECU應采用專門的IP地址,保證其與其他DoIP節點進行通信,該IP地址與用于與網關或外部測試設備進行DolP通信的IP地址不同;ECU可以使用UDP或者TCP端口用于DoIP通信,內部診斷設備可以發送UDP信息給DoIP節點或者和DoIP節點建立額外的TCP連接,這意味著UDP或者TCP的源端口可以動態隨機生成,目的端口均需設置為13400。
汽車的安全和可靠性離不開車載診斷系統的保障,隨著汽車電氣化的迅速發展,車內控制器數量在急劇增加的同時,其功能也在不斷地增加。傳統的網絡架構體系已經越來越不能滿足需求,以太網作為一個在工業上已經非常成熟的通信技術,通過完美轉型成為車載以太網為大勢所趨。相信在隨后的幾年中通過以太網作為車內主干網絡的架構體系,將會加快遠程診斷、OTA、車聯網甚至自動駕駛等技術的快速普及。