洪宇 孫宗姚 金釗 周幸達 張赫 張文杰 郭宗賓
(1.中國第一汽車股份有限公司 智能網聯開發院,長春130013;2.汽車振動噪聲與安全控制綜合技術國家重點實驗室,長春130013)
主題詞:汽車 遠程診斷 ODX OTX
縮略語
5G 5th-Generation
ACP Application Communication Protocol
CAN Controller Area Network
CANFD CAN with Flexible Data rate
ECU Electronic Control Unit
MQTT Message Queuing Telemetry Transport
OBD On Board Diagnostics
ODX Open Diagnostic Exchange Data
OTX Open Test sequence exchange format
SHA Secure Hash Algorithm
TLS Transport Layer Security
USB Universal Serial Bus
WIFI Wireless Fidelity
在當前5G 和大數據發展的背景下,世界各國車企都在大力推進網聯汽車的研發。作為網聯汽車的診斷技術領域,診斷方式也日益多樣化。傳統車輛主要診斷方式還是通過OBD 口外接診斷設備,包括USB連接診斷設備、WIFI 或藍牙連接3 種方式,操作人員在車輛現場對車輛進行診斷。
和傳統方式對比,遠程診斷在降低車輛問題排查成本、實時遠程診斷定位、收集實時數據并進行大數據分析、為預診斷提供數據基礎、遠程排故問題車輛這些方面有很大便利性和優勢。
隨著5G 技術快速應用,讓實現遠程的實時診斷成為現實,目前主要遠程診斷方式包括診斷模塊布置在云端,車端僅作為執行端;診斷模塊布置在車端,作為解析和執行診斷功能模塊,云端進行任務配置和推送功能2種方式。從目前通訊技術發展角度和新型電子電氣架構趨勢分析來看,車端布置診斷模塊是具有很大的性能優勢,也是目前各主機廠的主要開發方向。本文以車端布置診斷模塊為例進行方案說明。
這里先簡要介紹一下ODX文件和OTX文件。
ODX(Open Diagnostic Exchange Data)開放式診斷序列作為ISO 標準的診斷數據庫[1],可以滿足供應商、整車廠、設備供應商對診斷數據的使用要求,覆蓋從設計、研發、生產到售后全階段的數據交互。避免了由于各階段不同用戶使用不同的數據格式導致的數據偏差問題。ODX 文件主要包括ODX 通訊參數、診斷服務、刷寫、字典4部分。
OTX(Open Test sequence exchange format)作 為ISO 通用化的診斷測試序列標準[2],可以滿足開發、生產、售后各階段對診斷序列的使用要求,且格式統一、診斷數據通用,在診斷設備方面已經廣泛使用。
本項目正是基于ODX、OTX 的上述標準化特性,基于此類數據文件進行集成開發。
遠程診斷系統包括車端、云端、管端3部分主要內容。云端主要實現ODX、OTX 的編輯發布,實現診斷策略配置并推送到車端執行;管端使用MQTT[3]或ACP等傳輸協議實現數據傳輸;車端執行診斷代理功能,接收云端ODX、OTX 文件并執行策略,對執行結果進行反饋。遠程診斷系統拓撲結構如圖1所示。

圖1 遠程診斷方案拓撲
同時要考慮云端、數據鏈路及車端信息網絡安全機制,通過使用證書簽名、TLS、SHA256 等方式,以滿足遠程診斷系統的安全需求。
車端布置診斷模塊方案主要包括車端模塊方案、管端方案、云端方案3 部分內容。本文以車端布置診斷模塊為例介紹各部分主要開發功能。
車端布置診斷模塊方式有2 種方式,即可以布置在TBOX或者車載控制器內,如車內網關中。
車端診斷模塊需要根據云端發送的ODX、OTX 文件及云端配置診斷策略執行,并將結果反饋給云端處理。同時可實現與車端顯示交互策略,及對大數據的預處理策略(圖2)。

圖2 車端方案示意
其中診斷模塊的客戶端主要實現:
(1)ODX、OTX 腳本接收和執行診斷策略,實現與其他ECU 的診斷交互功能,將車內控制器的反饋數據進行上傳。
(2)按照云端的配置策略,包括執行條件的判別、任務執行、執行異常及錯誤處理機制的功能。
OTX 模塊運行云端發送的OTX 操作序列,執行操作流程類指令。
D-Server[3]執行ODX 解析功能,將云端發送的ODX 文件進行解析并下發給車內各控制器,同時接收從控制器的響應報文。
通訊模塊完成與車內其他控制器的診斷通訊功能。通訊方式包括CAN、CANFD、以太網等總線方式。
車端方案還包括了對車內實時數據的預處理等功能,避免大量實時數據上傳云端,提高云端處理效率。
車云之間的傳輸協議,目前主要使用方式包括MQTT、ACP 兩種方式。本文以MQTT 為例進行簡要說明。
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)[4],是一個基于客戶端-服務器的消息發布/訂閱傳輸協議。
實現MQTT 協議需要客戶端和服務器端通訊完成,在通訊過程中,MQTT 協議中有3 種身份:發布者(Publish)、代理(Broker)(服務器)和訂閱者(Sub?scribe)。其中,消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。
MQTT傳輸的消息分為:主題(Topic)和負載(Pay?load)2部分。
(1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(Pay?load);
(2)Payload,可以理解為消息的內容,是指訂閱者具體要使用的內容。
MQTT 的數據包由固定頭(Fixed header)、可變頭(Variable header)和消息體(Payload)3部分構成。
車云之間通過使用MQTT 協議完成診斷數據的傳輸。并通過使用證書簽名等方式保證傳輸數據的信息安全要求。
云端主要功能包括ODX 模塊、OTX 模塊、車輛管理功能、診斷任務模塊、診斷策略模塊和診斷監控等主要功能模塊(圖3)。

圖3 云端主要功能模塊示意
圖3中(1)~(6)的模塊功能如下:
(1)OTX 模塊主要實現對流程序列的編輯,例如標定流程、匹配流程、刷寫流程等過程操作類指令。
(2)車輛管理用于對診斷車輛的管理。
(3)ODX 模塊主要實現對ODX 診斷數據庫文件的編輯功能,作為后續OTX的輸入數據。
(4)診斷任務用于實施任務的發布和管理。
(5)診斷策略包括診斷執行條件的判別、診斷優先級、診斷任務的發布等操作。
(6)診斷監控實現對整個遠程操作過程中的實時數據進行存儲,用于后續操作記錄追述。
除了以上功能模塊外,還有對數據處理等一些功能,這里不再贅述。
對于遠程診斷進行測試驗證,以保證此系統的可靠性和穩定性。
測試主要分為診斷接口調試、模擬環境測試和實車測試3個階段。
接口測試主要是對各診斷模塊的實現接口進行調試,滿足各模塊之間的調用和使用。模擬測試是在實車測試前進行的虛擬環境中對車管云端進行聯合調試,實現對各端功能進行模擬驗證,滿足上線前的要求。最后通過在實車上對所有診斷功能進行驗證,最終系統上線。
(1)隨著5G 技術的快速推廣及應用,車云結合的遠程診斷方式將成為后續遠程診斷發展的趨勢。
(2)ODX、OTX 通用的標準化模塊也將成為遠程診斷的主要因素。標準化操作可以使整車廠、零件供應商、診斷設備供應商各方面做到最大化資源共享,保持數據的一致性和可靠性,極大的提高開發效率。
(3)目前以奧迪為主的整車廠已經在新車型上全面實現了遠程診斷功能,并將陸續推廣到全系車型。國內一些主流車廠也啟動了相關技術研究,尤其是部分新勢力企業也都已經進行了遠程診斷相關技術的開發。
(4)隨著網絡技術的普及和5G 的發展,如何更好的結合云端、車端一體化技術實現遠程診斷的實時性、安全性及可靠性也為整車廠提出更高的要求和挑戰。