揣孟洋,管 婧,張茜銘 Chuai Mengyang,Guan Jing,Zhang Ximing
基于OSEK的整車CAN網(wǎng)絡(luò)不睡眠問題研究
揣孟洋,管 婧,張茜銘 Chuai Mengyang,Guan Jing,Zhang Ximing
(中國第一汽車集團有限公司,吉林 長春 130013)
整車如果發(fā)生CAN網(wǎng)絡(luò)不睡眠的情況會對車輛產(chǎn)生十分嚴重的危害,造成車輛可停放時間縮短,頻繁出現(xiàn)啟動困難問題,導(dǎo)致車輛無法啟動,甚至使蓄電池報廢,直接影響到整車的可靠性。基于OSEK(Open System and the Corresponding Interfaces for Automotive Electronics,汽車電子類開放系統(tǒng)和對應(yīng)接口標準)網(wǎng)絡(luò)管理,從實踐出發(fā)研究整車CAN網(wǎng)絡(luò)不睡眠問題的3種常見原因,即睡眠后被重新喚醒,睡眠條件不滿足和無法穩(wěn)定建環(huán),并制定相關(guān)的排查方法。
CAN網(wǎng)絡(luò);睡眠條件;喚醒;建環(huán)
隨著汽車產(chǎn)業(yè)的不斷發(fā)展,CAN總線在車輛上的運用日益增多,同時整車的擴展功能越來越強大,越來越多的新功能新技術(shù)需要車輛在電源關(guān)閉后進行一些帶電操作,因此為保證車輛長時停放后仍能正常起動,很多CAN節(jié)點都必須具備網(wǎng)絡(luò)睡眠喚醒功能。但如果某個CAN節(jié)點網(wǎng)絡(luò)睡眠喚醒有問題,整車就無法進入網(wǎng)絡(luò)睡眠狀態(tài),以目前應(yīng)用較廣泛的OSEK網(wǎng)絡(luò)管理為基礎(chǔ),研究整車CAN網(wǎng)絡(luò)不睡眠問題的產(chǎn)生原因以及相應(yīng)的排查方法。
實車排查CAN網(wǎng)絡(luò)不睡眠問題,需要的基礎(chǔ)設(shè)備有總線讀取工具(以CANoe為例)、OBD線、裝有CANoe軟件的筆記本電腦、CAN數(shù)據(jù)庫(dbc)。在連接OBD線時,需要提前與線束/診斷工程師確認OBD口的引腳定義和DB9端的端口。
從3個案例研究基于OSEK(Open System and the Corresponding Interfaces for Automotive Electronics,汽車電子類開放系統(tǒng)和對應(yīng)接口標準)的整車CAN網(wǎng)絡(luò)不睡眠問題的產(chǎn)生原因和排查方法。OSEK NM(Network Management,網(wǎng)絡(luò)管理)報文結(jié)構(gòu)如圖1所示[1]。
圖1 OSEK NM報文結(jié)構(gòu)
如果某個CAN節(jié)點在本地沒有需求的情況下向總線發(fā)送報文,將會引起總線頻繁處于睡眠→喚醒→睡眠的循環(huán)當中,使整車始終不能進入網(wǎng)絡(luò)睡眠狀態(tài)。
產(chǎn)生這個問題的節(jié)點范圍最廣,無論是否具備網(wǎng)絡(luò)睡眠喚醒功能,只要是CAN節(jié)點,就有可能導(dǎo)致這個問題。
在排查此原因?qū)е碌恼嘋AN網(wǎng)絡(luò)不睡眠問題時,需要重點查看OpCode為03/07的NM報文發(fā)送完后,是否有某個CAN節(jié)點再發(fā)送報文重新喚醒總線[2]。
如圖2所示,在305.7時刻,ID為481的NM報文OpCode為03,此時各CAN節(jié)點進入等待總線睡眠狀態(tài),停發(fā)報文5s準備正式進入網(wǎng)絡(luò)睡眠狀態(tài);但到310.7時刻總線上出現(xiàn)了ID為1EF的報文,總線被重新喚醒,導(dǎo)致整車CAN網(wǎng)絡(luò)無法睡眠。借助dbc,可以確認1EF這個報文是由哪個CAN節(jié)點所發(fā),完成問題排查。
圖2 網(wǎng)絡(luò)睡眠后被重新喚醒
網(wǎng)絡(luò)管理是一種協(xié)同的理念,如果某個CAN節(jié)點一直不滿足網(wǎng)絡(luò)睡眠條件,就會連帶著整個網(wǎng)段都不能進入網(wǎng)絡(luò)睡眠狀態(tài),整車即出現(xiàn)CAN網(wǎng)絡(luò)不睡眠問題[3]。
產(chǎn)生這個問題的原因一般為控制器外圍的某些配件狀態(tài)較差,難以滿足節(jié)點的網(wǎng)絡(luò)睡眠條件。
在排查此原因?qū)е碌恼嘋AN網(wǎng)絡(luò)不睡眠問題時,需要重點查看約定時間到達后,是否有某個CAN節(jié)點的NM報文OpCode不是05。
如圖3所示,到達約定時間后,ID為480的NM報文OpCode一直為01,因此可以確定是該CAN節(jié)點的網(wǎng)絡(luò)睡眠條件未滿足,影響了整車CAN網(wǎng)絡(luò)睡眠,完成問題排查。
圖3 節(jié)點未滿足網(wǎng)絡(luò)睡眠條件
建環(huán)是OSEK網(wǎng)絡(luò)管理的核心,如果因某個CAN節(jié)點問題導(dǎo)致無法穩(wěn)定建環(huán),會使該網(wǎng)段始終有部分CAN節(jié)點無法發(fā)送正常的NM報文,進而影響整車CAN網(wǎng)絡(luò)睡眠。
這個問題是OSEK網(wǎng)絡(luò)管理特有的故障因素,報文上呈現(xiàn)得很復(fù)雜,CAN節(jié)點間的建環(huán)十分混亂,每個CAN節(jié)點的NM報文Destination和OpCode都在不斷變化,需要找到問題的本質(zhì)。
在排查此原因?qū)е碌恼嘋AN網(wǎng)絡(luò)不睡眠問題時,需要重點查看建環(huán)過程中,是否有某個CAN節(jié)點的NM報文發(fā)送時機不合理或者Destination指向不合理。
如圖4所示,ID為481、487、490和496的NM報文都能夠正常建環(huán),但當ID為496的NM報文Destination指向17時,0x497并沒有繼續(xù)保持建環(huán),約260ms超時后所有CAN節(jié)點重新建環(huán)。而當各CAN節(jié)點發(fā)送alive報文重新建環(huán)時,0x497發(fā)送出本應(yīng)在保持建環(huán)時發(fā)送的ring報文;因此可以確定是0x497的發(fā)送節(jié)點出現(xiàn)問題,導(dǎo)致建環(huán)受到影響,使整車不能進入網(wǎng)絡(luò)睡眠狀態(tài)。
驗證此原因的方法是在線束工程師的幫助下斷開該節(jié)點的電源熔斷器,使建環(huán)恢復(fù)正常,查看整車能否正常進入網(wǎng)絡(luò)睡眠狀態(tài)。
圖4 無法穩(wěn)定建環(huán)
掌握整車CAN網(wǎng)絡(luò)不睡眠問題的產(chǎn)生原因和排查方法需要建立在不斷的實踐和積累之上,高效、快速排查出導(dǎo)致整車CAN網(wǎng)絡(luò)不睡眠的原因,既能夠幫助問題控制器加強改進,又能夠提高開發(fā)效率,減少不必要的測試,希望為整車CAN網(wǎng)絡(luò)不睡眠問題的產(chǎn)生原因和排查方法提供參考與幫助。
[1]OSEK/VDX. Network Management Concept and Application Programming Interface[Z].2004.
[2]康拉德.萊夫. BOSCH汽車電氣與電子[M].孫澤昌,等譯. 北京:北京理工大學(xué)出版社,2014:49-76.
[3]初洪超. 網(wǎng)絡(luò)管理在汽車CAN系統(tǒng)的應(yīng)用[J]. 汽車實用技術(shù),2016(5):114-118.
U463.3
A
10.14175/j.issn.1002-4581.2020.01.005
1002-4581(2020)01-0016-02