張晶
摘 要:本文主要介紹在汽車研發、生產、售后各環節診斷開發的主要工作內容以及相應的作用,智能診斷系統應用,為從事汽車診斷開發工作的工程師提供一定的參考。
關鍵詞:汽車 診斷 開發 設計 ECU 故障碼 遠程 軟件 升級
1 引言
隨著汽車電子技術的發展,越來越多的智能控制系統(ECU)應用于汽車,整車出現電器類相關的故障越來越越多,電器類故障與機械類故障相比,故障原因紛繁復雜,如果靠經驗以及拆解故障件去查找問題原因,往往很難定位問題原因且原因確認周期較長。故診斷開發及應用在汽車整個生命周期中的作用非常重要,它能幫助人們快速準確定位問題方向及查找問題原因。嚴重故障時,駕駛員通過觀察汽車人機交互接口的故障指示燈以及文字、聲音提示信息,來確認車輛安全與否,確保在安全的情況下駕駛車輛,出現問題后引導客戶及時對車聯進行維修。
2 汽車研發階段的診斷開發
車輛的診斷需要有診斷儀端和ECU端,診斷儀端和ECU端通過一問一答的形式進行通信,因而診斷儀端和ECU端都需要遵循同樣的診斷通信協議,在協議里面定義了診斷的請求,診斷響應的報文格式,以及ECU怎樣處理診斷請求報文,以及診斷服務的應用。
大部分主機廠都是基于ISO 14229、ISO 15765、ISO 15031、ISO 14230國際標準及基于主機廠策略細化具體要求來制定企業級別的通用診斷規范。主要內容包括:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層相應要求。本文著重介紹應用層要求。
2.1 診斷服務開發
如表1所列的診斷服務診斷開發階段所要進行具體定義的服務。本文著重介紹0x10、0x27、0x3E、0x22、0x2E、0x2F、0x14、0x19、0x31服務。
每個模塊都應定義獨有的診斷物理尋址ID,所有模塊都應定義相同的功能尋址ID。
2.1.1 0X10服務
0X10服務定義的內容是診斷會話窗口,10 01為默認會話窗口,10 02為編程會話窗口,10 03為擴展會話窗口,所有的服務均需要定義支持哪些會話窗口。某些特定的服務只能支持在10 02或10 03會話窗口,模塊上電后默認的是默認會話窗口,要想進入非默認會話窗口需要診斷儀進行服務請求。
2.1.2 0X27服務
0X27服務定義的內容是安全訪問,27 01/02為一級安全訪問,27 03/04或09/0A為二及安全訪問,27 05/06為三級安全訪問,安全訪問算法由主機廠釋放給ECU供應商,安全訪問等級不是越高算法越復雜,各級安全算法獨立運行,每個模塊安全算法不一樣,因此需要基于模塊進行個性化開發。具體什么服務需要定義什么樣的安全等級可根據服務目的進行界定。
2.1.3 0X3E服務
0X3E服務定義的內容是診斷儀在線,3E 00為不抑制模塊正響應服務,3E 80為抑制模塊正響應服務,此服務的目的告知模塊診斷儀需要與之在既定的會話窗口下保持持續通話,例如為防止模塊從擴展會話因超時機制自動跳轉回默認會話,可提前選擇3E服務。
2.1.4 0X22服務
0X22服務定義模塊需要通過診斷服務可讀取到的信息,例如讀取車速信息、電壓信息、零件號信息、車VIN信息等等,每個模塊都有自己的獨特的22服務所需要進行讀取的信息,因此需要基于模塊進行個性化開發。22服務通常不需要安全訪問。
2.1.5 0X2E服務
0X2E服務定義模塊需要通過診斷服務寫入的信息,例如在IMMO防盜及鑰匙匹配過程中,需要向相應的模塊內部定義好的標識符內寫入相應的值才能完成匹配。每個模塊都是自己獨特的2E服務所需要寫入的信息,因此需要基于模塊進行個性化開發。想進入2E服務通常是需要通過27安全訪問。
2.1.6 0X2F服務
0X2F服務定義模塊需要通過輸入輸出端口進行診斷控制,如開關指令輸入、轉向燈、大燈等輸出控制,每個模塊都是自己獨特的2F服務所需控制的輸入輸出,因此需要基于模塊進行個性化開發。
2.1.7 0X14服務
0X14服務定義清除故障碼服務,可以選擇一次性清除所有故障碼,也可以選擇清除某一個故障碼或某一組故障碼。
2.1.8 0X19服務
0X19服務定義了故障讀取服務,可以按需求讀取歷史故障碼,當前故障碼,還可以通過如下組合讀取更多類型的故障碼。DTC(Diagnostic Trouble Codes), DTC狀態由8個位組成的一個字節。這8個位分別代表不同的含義,具體這8個位代表的含義,包括這8個位初始值是什么,它什么時候被置1,什么時候又被置0,在什么情況下用及怎樣用,在14229-1版附錄D有詳細的定義(表2)。
2.1.9 0X31服務
0X31服務定了模塊需要滿足的例程服務,如網關的報文映射,電動助力轉向的零位標定,無鑰匙進入系統的鑰匙學習,儀表的保養提醒復位等功能都需要在相應的ECU內部定義相應例程服務來支持。31服務通常需要通過安全訪問。
2.2 故障碼開發
汽車研發過程中需要定義各個模塊的故障碼信息。故障碼分為兩類,網絡類故障碼及電氣類故障碼。
網絡類故障碼是模塊基于網絡通訊矩陣未在規定時間內收到相應報文或收到報文標志位為無效,接受模塊需記錄相應的丟失或無效故障碼及CAN BUSOFF故障。電氣類故障碼是基于模塊內部特性,例如內部繼電器故障、溫度異常、電流異常等等定義的模塊內部的故障碼。
故障碼清單需包括的內容有:故障碼、故障描述、故障碼運行條件、故障碼設置條件、故障碼設置時發生的操作、故障恢復條件、激活故障燈規則、熄滅故障燈規則、故障碼清除條件。
故障燈的點亮需要進行嚴格界定,且不可以什么故障碼都可以點亮故障燈,更不能出現故障且影響到行車安全而不點亮故障燈,此處的策略需要主機廠和供應商結合功能安全ISO26262、及故障出現時發生的操作進行充分的評估。
故障碼組成,ISO 15031-6對故障組成進行了定義,如圖1所示。00表示動力; 01表示底盤;10表示車身;11是網絡相關的。左邊第3~4位反應的是DTC是由ISO,SAE,這些標準組織所定義的故障,還是由整車廠來定義命名的故障;左邊第5~8位反應的是車輛系統的區域(Area of vehicle system);右邊8位是DTC的編碼。
2.3 在線配置開發
為了減少ECU零件供貨狀態,減少零件號,模塊的差異化需要通過在配置進行,需要定義2E服務下的特定診斷標識符,用于在線配置信息的寫入,針對模塊差異化,需要制定不同模塊的在線配置文件。模塊會根據在線配置標識符寫入的信息制定相應的軟件邏輯。例如標識符配置為XX,模塊需要收發哪些報文、記錄哪些故障碼、開啟哪些功能,配置成其他內容則對應的收發報文、故障碼、功能會不同。工程開發階段要確保在線配置的正確性,如在線配置定義錯誤可能會導致某些功能無法開啟,嚴重影響整車質量。
3 生產售后中診斷的應用
3.1 汽車生產中的診斷應用
車輛在車間產線下線時,由于各個模塊不是同時裝配到車輛上,模塊會報報文丟失類故障碼,需要通過診斷服務去清除故障碼。有些模塊需要在產線通過診斷服務進行相應的標定服務,如電動助力轉向系統的零位標定,360模塊的攝像頭標定,鑰匙匹配,IMMO防盜匹配,胎壓模塊標準胎壓的寫入等等,通常會用OX10、OX22、OX27、OX2E、OX31、OX14、OX19服務。產線會開發特定的設備用于產線模塊標定及在線配置。產線輸出的車輛應確保沒有故障碼,如有故障碼一直不能清除,需要及時對車輛進行返修。
3.2 汽車售后中診斷應用
4S店賣出車輛后,通常會通過診斷服務開啟車輛的特定模式,如用戶模式的開啟,維修保養功能激活等都是通過診斷服務進行的。在售后維修車輛時,需要通過診斷服務進行故障的讀取及問題指向的分析,4S店人員應該能熟練操作使用專用的診斷設備,這對確認售后車輛故障原因非常重要。
4 智能診斷的應用
4.1 遠程診斷功能
隨著汽車智能化發展,遠程診斷服務正在逐步融入到用戶端,用戶可以通過手機APP的操作對車輛進行遠程診斷,車輛上電后,網聯模塊模擬診斷儀發送0X19服務讀取故障碼,并對ECU發送的診斷報文進行回讀,云平臺將回讀數據進行解析,并將析結果釋放給用戶,這樣用戶就可以通過手機端查看車輛狀態。尤其是共享汽車在城市中的普及,遠程診斷功能將幫助維護人員隨時隨地遠程查詢監控車輛狀態,節約共享汽車的運營及維護成本。
4.2 ECU遠程升級功能
無需進入4S店就可以實現ECU軟件的更新換代,用戶可以在手機端或車機端進行遠程升級服務,網聯模塊模擬診斷儀發送相應的診斷服務,逐個對車內ECU的進行軟件讀取、刷新會話、下載、傳輸、擦除、復位等操作,將最新版軟件刷寫如ECU內,涉及的診斷服務有0X22、0X10、0X11、0X27、0X34、0X36、0X37、0X31、0X85、0X28等。需要注意整車需要在特定的環境下才能進行軟件的更新,以防出現相關的故障影響車輛安全。
5 汽車診斷展望
隨著智能化電控技術在汽車上的應用,診斷的應用范圍逐步擴大,ECU關聯的診斷服務會越來越多,診斷開發工作變得更加復雜繁瑣,模塊診斷策略開發的合理與否直接影響車輛功能實現、故障維修、用戶體驗等,故作為診斷開發工程師需要對ECU診斷策略的開發進行全方面考量。
參考文獻:
[1]蔡浩.數據驅動式汽車診斷平臺的設計與實現.上海交通大學:機械工程,2009.
[2]高永君.汽車遠程診斷分析系統的設計與實現.南開大學:軟件工程,2016.