【摘" 要】汽車行業(yè)發(fā)展使傳統(tǒng)CAN診斷燒寫難以滿足OEM車企需求,車載以太網(wǎng)診斷技術(shù)研發(fā)階段測試驗證不足,整車開發(fā)V流程中診斷驗證工具及汽車診斷信息安全測試缺乏。文章聚焦基于通信的工程診斷儀方案,開展研究與實現(xiàn)工作。深入探究工程診斷儀的界面和軟硬件方案設(shè)計,設(shè)計信息安全診斷的AES算法、診斷準入端身份校驗和數(shù)字簽名方案。利用Qt Designer進行前端UI開發(fā),基于Python完成后端DoIP協(xié)議的通信封裝與診斷燒寫功能實現(xiàn)。通過Python仿真測試和實車測試驗證診斷燒寫功能。結(jié)果顯示,此工程診斷儀可實現(xiàn)以太控制器DoIP診斷信息的診斷及燒寫功能驗證,支持自定義診斷序列定制化測試,為診斷領(lǐng)域研究人員提供新的研究思路。
【關(guān)鍵詞】工程診斷儀;DoIP技術(shù);診斷燒寫;信息安全;自動化測試
中圖分類號:U463.6" " 文獻標識碼:A" " 文章編號:1003-8639(2025)03-0086-05
Research and Implementation of Engineering Diagnostic Instrument Based on Ethernet Communication
【Abstract】The development of the automobile industry makes it difficult for traditional CAN diagnostic writing to meet the needs of OEM vehicle enterprises. The testing and verification of on-board Ethernet diagnostic technology in the research and development stage are insufficient,and the diagnostic verification tools and vehicle diagnostic information security testing in the vehicle development V process are insufficient. This paper focuses on the project of engineering diagnosis instrument based on communication,and carries out the research and implementation work. The interface and software and hardware design of the engineering diagnosis instrument are deeply studied,and the AES algorithm,identity verification and digital signature scheme of the diagnosis access terminal are designed. Qt Designer was used for front-end UI development,and the communication encapsulation and diagnostic burn function of back-end DoIP protocol was realized based on Python. The diagnostic burn function was verified by Python simulation test and real vehicle test. The results show that this engineering diagnostic instrument can realize the diagnosis and burn function verification of Ethernet controller DoIP diagnostic information,support custom diagnostic sequence customized testing,and provide a new research idea for researchers in the field of diagnosis.
【Key words】engineering diagnostic instrument;DoIP technology;diagnostic burning;information security;automated testing
1" 工程診斷儀現(xiàn)狀介紹
石聰[1]等人針對DoIP技術(shù)展開多維度研究,涵蓋通信應(yīng)用場景、車內(nèi)外診斷架構(gòu)、物理連接方式、報文組成格式以及DoIP通信方式等。黃志堅[2]等人依托TCP/IP相關(guān)通信機制,融合ISO 14229診斷協(xié)議與ISO 13400 DoIP協(xié)議,成功開發(fā)Bootloader刷新軟件,實現(xiàn)基于Ethernet的ECU在線軟件升級,顯著提升了ECU刷新的時間性能與效率。李志濤[3]等人基于產(chǎn)品開發(fā)V流程,對車載以太網(wǎng)DoIP協(xié)議測試展開系統(tǒng)性工作。在ECU級測試中,聚焦DoIP診斷協(xié)議;在系統(tǒng)級測試時,嚴格依據(jù)DoIP系統(tǒng)設(shè)計規(guī)范要求,開展關(guān)于正確性、準確性以及合理性的測試。涂孝軍[4]等人深入分析并總結(jié)汽車以太網(wǎng)技術(shù)的特點與現(xiàn)狀,指出基于域控制器的混合汽車網(wǎng)絡(luò)拓撲將是行業(yè)未來的發(fā)展趨勢。安康[5]等人剖析DoIP協(xié)議幀格式和通信流程,提出車載以太網(wǎng)診斷架構(gòu)模型,為構(gòu)建車載以太網(wǎng)診斷系統(tǒng)提供了極具價值的參考依據(jù)。
當前,行業(yè)內(nèi)占據(jù)主流地位的工程診斷儀,主要包括Softing公司的Q-test、Vector公司的Indigo以及恒潤科技的恒潤工程診斷儀(DDS)。這些工程診斷儀的主要功能、優(yōu)缺點詳見表1。
2" 基于以太通信的工程診斷儀方案設(shè)計
2.1" 工程診斷儀界面方案設(shè)計
為充分契合診斷燒寫以及信息安全診斷相關(guān)技術(shù)的測試需求,本文著手開展工程診斷儀界面方案設(shè)計工作,具體涵蓋診斷燒寫自動化測試方案設(shè)計與診斷信息安全方案設(shè)計兩大關(guān)鍵板塊。
2.1.1" 界面方案設(shè)計
工程診斷儀界面方案設(shè)計為1~4級界面,如圖1所示。1級界面顯示以太連接提示;2級界面顯示配置界面、通信建立測試界面、診斷界面、燒寫界面、售后功能測試界面和EOL測試界面,且需配置界面配置完成后方可進入其他界面;3級、4級界面的設(shè)計詳情可參考圖1。
2.1.2" 診斷燒寫自動化測試方案設(shè)計
診斷燒寫自動化測試方案包括UDS診斷自動化測試和UDS燒寫自動化測試兩部分。
2.1.3" 診斷信息安全方案設(shè)計
診斷信息安全整體方案測試包括DoIP設(shè)備認證測試和DoIP燒寫診斷信息安全測試兩部分。設(shè)備認證測試是為了保證外部設(shè)備接入車內(nèi)OBD口時需通過身份認證才可對車內(nèi)以太控制器進行診斷燒寫操作,保證診斷數(shù)據(jù)傳輸?shù)陌踩?。這一測試具體涉及設(shè)備認證算法、認證鎖定算法、DoIP診斷服務(wù)過濾算法。燒寫診斷信息安全測試是為了保證以太控制器燒寫及診斷功能滿足信息安全法規(guī)的相關(guān)要求。
2.2" 工程診斷儀軟硬件方案設(shè)計
2.2.1" 硬件連接及軟件框架設(shè)計
工程診斷儀的硬件連接采用網(wǎng)口轉(zhuǎn)車載OBD口的連接線方案,以此實現(xiàn)搭載工程診斷儀軟件的PC電腦與車輛之間的連接通信,通信連接采用靜態(tài)IP。OBD口和以太網(wǎng)網(wǎng)口轉(zhuǎn)接線如圖2所示。此線纜一端是OBD口,另一端是以太網(wǎng)網(wǎng)口,依靠這根線纜,能夠?qū)崿F(xiàn)支持DoIP通信的車輛與診斷上位機的物理連接。以太網(wǎng)連接功能主要由Etherent Rx+、Etherent Rx-、激活線、Etherent Tx+、Etherent Tx- 5根線構(gòu)成,分別對應(yīng)3、11、8、12、13針腳。診斷上位機通過OBD口連接邊緣節(jié)點,借助激活線來激活和停用控制器的DoIP功能。在開發(fā)過程中,所需的硬件設(shè)備包括OBD口和以太網(wǎng)網(wǎng)口轉(zhuǎn)接線、自帶以太網(wǎng)網(wǎng)口的PC電腦以及支持DoIP通信的車輛。
軟件整體開發(fā)設(shè)計架構(gòu)如圖3所示,采用前后端分離開發(fā)并集成的開發(fā)方式。前端使用PyQt工具包進行設(shè)計開發(fā),后端采用Python語言進行構(gòu)建開發(fā)。軟件架構(gòu)從下到上共分為4層,分別為物理連接層、通信連接層、應(yīng)用層和視圖層。物理連接層主要開發(fā)軟件與待測車輛之間的硬件連接方案,提供DoIP通信的物理連接基礎(chǔ);通信連接層集成了DoIP通信傳輸層及網(wǎng)絡(luò)層協(xié)議,實現(xiàn)診斷上位機軟件和車輛端DoIP實體間的TCP通信連接,并能建立起DoIP實體間的通信,從而進行路由激活及UDS診斷報文的傳輸;應(yīng)用層實現(xiàn)了基礎(chǔ)UDS服務(wù)的功能,提供給應(yīng)用層調(diào)用的接口進行相關(guān)服務(wù)消息的封裝傳輸,并實現(xiàn)工程診斷儀的通信配置、診斷功能、刷寫功能等業(yè)務(wù)功能邏輯;視圖層則主要實現(xiàn)軟件相關(guān)功能界面的設(shè)計開發(fā),并提供與應(yīng)用層功能交互的接口,采用PyQt進行開發(fā)設(shè)計。
軟件功能結(jié)構(gòu)如圖4所示,主要分為通信建立、ECU刷寫和ECU診斷三大功能。其中,通信建立包括Ping網(wǎng)絡(luò)連通性測試、DoIP通信連接建立和DoIP通信路由激活,實現(xiàn)軟件與車載ECU之間的通信建立及路由激活功能。ECU刷寫包括以太網(wǎng)控制器的有文件系統(tǒng)刷寫和無文件刷寫功能,通過ECU刷寫功能可以實現(xiàn)對以太網(wǎng)控制器的正常刷寫及異常刷寫測試,從而驗證控制器刷寫功能的品質(zhì)。ECU診斷包括ECU硬件版本號、軟件版本號、軟件編碼等信息讀取及故障碼信息讀取,并能通過診斷儀序列發(fā)送單條或多條組合的UDS服務(wù)去實現(xiàn)特定功能的診斷,便于ECU診斷問題的排查解決。
當診斷儀和DoIP實體連接至DoIP網(wǎng)絡(luò)中,其通信流程設(shè)計如圖5所示。
2.2.2" 前端界面開發(fā)設(shè)計
基于Qt Designer軟件,能夠?qū)崿F(xiàn)服務(wù)端與以太ECU之間的連接建立,其連接開發(fā)界面如圖6所示。在該界面中,ECU信息顯示了ECU的名稱、IP地址和邏輯地址。另外,還設(shè)置了輸入框,以便支持與列表中未覆蓋的ECU建立連接。在選中所要進行操作的ECU后,點擊Ping按鈕,服務(wù)端將會和對應(yīng)ECU進行Ping操作,用以確認物理鏈路的連通。點擊建立連接按鈕,服務(wù)端與ECU端建立連接。當用戶在界面中選中需要進行操作的ECU后,點擊“Ping”按鈕,服務(wù)端便會與對應(yīng)的ECU執(zhí)行Ping操作,通過這一操作可以確認兩者之間物理鏈路的連通性,為后續(xù)的穩(wěn)定通信奠定基礎(chǔ)。若點擊“建立連接”按鈕,服務(wù)端則會與ECU端正式建立連接,進而開啟數(shù)據(jù)交互與操作的流程。
Qt Designer自定義界面如圖7所示,點擊發(fā)送按鈕,服務(wù)端會按照序列的排序,將UDS服務(wù)命令發(fā)送給ECU,將ECU的回復解析在最右邊的窗口中。使用鼠標雙擊窗口2中的元素可修改自定義的UDS服務(wù)命令。
燒寫界面的UI設(shè)計如圖8所示,左上角的窗口設(shè)置了UDS服務(wù)的中文指令,鼠標點擊對應(yīng)的元素,左下方的輸入框出現(xiàn)對應(yīng)的信息,通過鼠標點擊輸入框修改服務(wù)內(nèi)容,點擊“添加到燒寫列表”按鈕可以將對應(yīng)內(nèi)容添加到中間的燒寫列表窗口中。
2.2.3" 后端開發(fā)設(shè)計
工程診斷儀軟件的后端開發(fā)設(shè)計以軟件整體開發(fā)設(shè)計架構(gòu)圖為基礎(chǔ),進行通信、數(shù)據(jù)處理、UDS服務(wù)及應(yīng)用層功能開發(fā)。自定義序列診斷仿真測試圖如圖9所示。其中,通信連接層的實現(xiàn)主要采用Python-DoIPClient通信包改寫封裝及Socket通信網(wǎng)絡(luò)編程,對應(yīng)代碼框架Communication中內(nèi)容,實現(xiàn)DoIP報文的通信傳輸。Python-DoIPClient通信包是一個使用Python語言編寫實現(xiàn)的DoIP客戶端通信接口,可用于車載以太網(wǎng)與ECU之間的通信,主要由Messages、Connectors和Client文件組成。Messages文件中主要通過DoIPMessage類實現(xiàn)了13400協(xié)議棧的底層所有消息格式定義。Connectors文件中通過繼承Udsoncan中的Baseconnection類實現(xiàn)了DoIPClient UDSConnector連接類,通過該類可以實現(xiàn)Udsoncan庫的連接并進行通信。Client文件實現(xiàn)了DoIPClient類,結(jié)合Messages文件實現(xiàn)DoIP報文的封裝,并通過Socket在以太網(wǎng)上發(fā)送和接收DoIP報文。
應(yīng)用層功能的開發(fā)主要實現(xiàn)對Python-Udsoncan開源庫UDS服務(wù)功能的調(diào)用封裝,對應(yīng)代碼框架中Udsoncan文件夾內(nèi)容。該庫使用Python 3對ISO 14229定義的統(tǒng)一診斷服務(wù)(UDS)協(xié)議進行完整實現(xiàn),提供了通用的標準診斷服務(wù)接口函數(shù),便于集成開發(fā)更為復雜的診斷功能軟件。應(yīng)用層功能針對診斷自定義序列發(fā)送、ECU信息讀取、故障碼信息讀取功能進行了后端封裝實現(xiàn),以企標定義的有文件系統(tǒng)和無文件系統(tǒng)燒寫規(guī)范為準則,實現(xiàn)了對以太網(wǎng)控制器的有文件系統(tǒng)燒寫和無文件系統(tǒng)燒寫后端邏輯。通過應(yīng)用層功能開發(fā)封裝并與前端接口連接,從而實現(xiàn)界面各應(yīng)用功能業(yè)務(wù)邏輯的實現(xiàn),便于前端代碼直接調(diào)用代碼框架中Application中內(nèi)容。
3" 仿真驗證
建立與仿真ECU節(jié)點的DoIP通信后,在圖9 ECU信息界面點擊讀取信息可讀取到所連ECU控制器的軟件編碼、軟件版本號和硬件版本號信息。自定義序列界面中,雙擊Server欄的診斷服務(wù),即可給所連ECU發(fā)送診斷命令。將Server欄和Service欄的相應(yīng)診斷服務(wù)拖拽到自定義列表欄,組成需要發(fā)送的一組自定義診斷序列,然后點擊發(fā)送按鈕,即可對所連ECU進行自定義序列診斷,完成相應(yīng)測試或標定功能。其中,軟件上位機發(fā)送和ECU回復的UDS診斷報文在ECU回復列表欄實時顯示,便于問題分析和查看。
DoIP的有文件系統(tǒng)燒寫仿真測試如圖10所示。在有文件燒寫界面,可自定義添加燒寫服務(wù)到燒寫列表中,生成燒寫測試列表,然后選擇燒寫包文件進行燒寫測試,燒寫的實時狀態(tài)日志及完成情況實時打印在燒寫日志實時顯示欄中。從圖中仿真驗證結(jié)果可以看出,軟件開發(fā)的有文件及無文件燒寫系統(tǒng)功能可完整實現(xiàn)對以太網(wǎng)控制器的軟件刷寫功能。
通過對DoIP工程診斷儀軟件的測試仿真驗證,驗證了軟件的各項功能。結(jié)果表明,仿真測試驗證可實現(xiàn)對DoIP控制器的診斷燒寫功能,為軟件實車驗證奠定了良好的條件。
4" 實車驗證
基于某兩款以太車型開展實車DoIP通信驗證,對以太控制器進行DoIP診斷及燒寫測試,試驗結(jié)果如圖11~圖13所示。試驗結(jié)果表明,工程診斷儀可以實現(xiàn)以太控制器的診斷和燒寫功能的測試驗證。
通過實車驗證以太網(wǎng)控制器建立DoIP連接、ECU信息讀取、自定義序列發(fā)送、有文件燒寫功能,結(jié)果表明DoIP工程診斷儀可實現(xiàn)DoIP的診斷和燒寫功能驗證,彌補整車開發(fā)V流程在研發(fā)階段缺少DoIP診斷驗證工具的現(xiàn)狀。
5" 結(jié)論與展望
本文基于DoIP診斷通信的診斷協(xié)議及通信流程,開展了DoIP通信的工程診斷儀方案設(shè)計,實現(xiàn)了以太控制器的DoIP診斷及燒寫功能的測試驗證,并開發(fā)自定義序列界面,可在研發(fā)階段定制化DoIP測試流程開展DoIP協(xié)議測試,為DoIP通信相關(guān)領(lǐng)域人員的研究提供參考。
參考文獻
[1] 石聰,劉洋.基于DoIP協(xié)議的車輛診斷技術(shù)研究[J].汽車與駕駛維修,2022(4):17-19.
[2] 黃志堅,姜立標.基于Ethernet的車載ECU診斷刷新研究[J].汽車零部件,2021(7):17-21.
[3] 李志濤,耿偉峰.車載以太網(wǎng) DoIP協(xié)議測試的研究與分析[J].汽車電器,2022(9):21-24.
[4] 涂孝軍,張瑩,李曉平.汽車以太網(wǎng)技術(shù)發(fā)展現(xiàn)狀與趨勢探究[J].汽車實用技術(shù),2021,46(5):35-38.
[5] 安康,韓光省,韓可強,等.基于DoIP協(xié)議的汽車診斷系統(tǒng)開發(fā)[J].汽車電器,2019(3):29-31.