揣孟洋,管 婧,張茜銘 Chuai Mengyang,Guan Jing,Zhang Ximing
基于OSEK的整車CAN網絡不睡眠問題研究
揣孟洋,管 婧,張茜銘 Chuai Mengyang,Guan Jing,Zhang Ximing
(中國第一汽車集團有限公司,吉林 長春 130013)
整車如果發生CAN網絡不睡眠的情況會對車輛產生十分嚴重的危害,造成車輛可停放時間縮短,頻繁出現啟動困難問題,導致車輛無法啟動,甚至使蓄電池報廢,直接影響到整車的可靠性。基于OSEK(Open System and the Corresponding Interfaces for Automotive Electronics,汽車電子類開放系統和對應接口標準)網絡管理,從實踐出發研究整車CAN網絡不睡眠問題的3種常見原因,即睡眠后被重新喚醒,睡眠條件不滿足和無法穩定建環,并制定相關的排查方法。
CAN網絡;睡眠條件;喚醒;建環
隨著汽車產業的不斷發展,CAN總線在車輛上的運用日益增多,同時整車的擴展功能越來越強大,越來越多的新功能新技術需要車輛在電源關閉后進行一些帶電操作,因此為保證車輛長時停放后仍能正常起動,很多CAN節點都必須具備網絡睡眠喚醒功能。但如果某個CAN節點網絡睡眠喚醒有問題,整車就無法進入網絡睡眠狀態,以目前應用較廣泛的OSEK網絡管理為基礎,研究整車CAN網絡不睡眠問題的產生原因以及相應的排查方法。
實車排查CAN網絡不睡眠問題,需要的基礎設備有總線讀取工具(以CANoe為例)、OBD線、裝有CANoe軟件的筆記本電腦、CAN數據庫(dbc)。在連接OBD線時,需要提前與線束/診斷工程師確認OBD口的引腳定義和DB9端的端口。
從3個案例研究基于OSEK(Open System and the Corresponding Interfaces for Automotive Electronics,汽車電子類開放系統和對應接口標準)的整車CAN網絡不睡眠問題的產生原因和排查方法。OSEK NM(Network Management,網絡管理)報文結構如圖1所示[1]。

圖1 OSEK NM報文結構
如果某個CAN節點在本地沒有需求的情況下向總線發送報文,將會引起總線頻繁處于睡眠→喚醒→睡眠的循環當中,使整車始終不能進入網絡睡眠狀態。
產生這個問題的節點范圍最廣,無論是否具備網絡睡眠喚醒功能,只要是CAN節點,就有可能導致這個問題。
在排查此原因導致的整車CAN網絡不睡眠問題時,需要重點查看OpCode為03/07的NM報文發送完后,是否有某個CAN節點再發送報文重新喚醒總線[2]。
如圖2所示,在305.7時刻,ID為481的NM報文OpCode為03,此時各CAN節點進入等待總線睡眠狀態,停發報文5s準備正式進入網絡睡眠狀態;但到310.7時刻總線上出現了ID為1EF的報文,總線被重新喚醒,導致整車CAN網絡無法睡眠。借助dbc,可以確認1EF這個報文是由哪個CAN節點所發,完成問題排查。

圖2 網絡睡眠后被重新喚醒
網絡管理是一種協同的理念,如果某個CAN節點一直不滿足網絡睡眠條件,就會連帶著整個網段都不能進入網絡睡眠狀態,整車即出現CAN網絡不睡眠問題[3]。
產生這個問題的原因一般為控制器外圍的某些配件狀態較差,難以滿足節點的網絡睡眠條件。
在排查此原因導致的整車CAN網絡不睡眠問題時,需要重點查看約定時間到達后,是否有某個CAN節點的NM報文OpCode不是05。
如圖3所示,到達約定時間后,ID為480的NM報文OpCode一直為01,因此可以確定是該CAN節點的網絡睡眠條件未滿足,影響了整車CAN網絡睡眠,完成問題排查。

圖3 節點未滿足網絡睡眠條件
建環是OSEK網絡管理的核心,如果因某個CAN節點問題導致無法穩定建環,會使該網段始終有部分CAN節點無法發送正常的NM報文,進而影響整車CAN網絡睡眠。
這個問題是OSEK網絡管理特有的故障因素,報文上呈現得很復雜,CAN節點間的建環十分混亂,每個CAN節點的NM報文Destination和OpCode都在不斷變化,需要找到問題的本質。
在排查此原因導致的整車CAN網絡不睡眠問題時,需要重點查看建環過程中,是否有某個CAN節點的NM報文發送時機不合理或者Destination指向不合理。
如圖4所示,ID為481、487、490和496的NM報文都能夠正常建環,但當ID為496的NM報文Destination指向17時,0x497并沒有繼續保持建環,約260ms超時后所有CAN節點重新建環。而當各CAN節點發送alive報文重新建環時,0x497發送出本應在保持建環時發送的ring報文;因此可以確定是0x497的發送節點出現問題,導致建環受到影響,使整車不能進入網絡睡眠狀態。
驗證此原因的方法是在線束工程師的幫助下斷開該節點的電源熔斷器,使建環恢復正常,查看整車能否正常進入網絡睡眠狀態。

圖4 無法穩定建環
掌握整車CAN網絡不睡眠問題的產生原因和排查方法需要建立在不斷的實踐和積累之上,高效、快速排查出導致整車CAN網絡不睡眠的原因,既能夠幫助問題控制器加強改進,又能夠提高開發效率,減少不必要的測試,希望為整車CAN網絡不睡眠問題的產生原因和排查方法提供參考與幫助。
[1]OSEK/VDX. Network Management Concept and Application Programming Interface[Z].2004.
[2]康拉德.萊夫. BOSCH汽車電氣與電子[M].孫澤昌,等譯. 北京:北京理工大學出版社,2014:49-76.
[3]初洪超. 網絡管理在汽車CAN系統的應用[J]. 汽車實用技術,2016(5):114-118.
U463.3
A
10.14175/j.issn.1002-4581.2020.01.005
1002-4581(2020)01-0016-02