陳江波, 涂將輝, 夏永強(qiáng), 趙能卿, 李 娟, 賈和平
(江鈴汽車股份有限公司, 江西 南昌 330001)
下線EOL診斷儀是汽車主機(jī)廠生產(chǎn)下線時(shí)的重要生產(chǎn)工具[1],整車項(xiàng)目開(kāi)發(fā)后期需要進(jìn)行EOL設(shè)備進(jìn)行聯(lián)調(diào)以滿足生產(chǎn)的需求[2]。EOL設(shè)備一般具有讀取模塊軟件故障碼、清除模塊軟件故障碼、模塊軟件功能自動(dòng)識(shí)別配置、特殊功能學(xué)習(xí)、模塊軟件刷寫更新等功能[3]。EOL功能指令的發(fā)送時(shí)序與時(shí)間參數(shù)的設(shè)置是根據(jù)產(chǎn)線工序、軟件特殊需求、下線流程來(lái)定義[4]。ECU Bootloader刷寫是根據(jù)UDS協(xié)議開(kāi)發(fā)定義[5]。
圖1為EPS模塊(電動(dòng)助力轉(zhuǎn)向) 診斷通信的路徑,刷寫指令由EOL設(shè)備發(fā)送,經(jīng)網(wǎng)關(guān)從動(dòng)力CAN路由轉(zhuǎn)發(fā)至EPS所在總線上,EOL發(fā)送指令,各模塊根據(jù)診斷通信規(guī)范做出正響應(yīng)或否定響應(yīng) (設(shè)定條件不符時(shí)),EOL根據(jù)得到的響應(yīng)進(jìn)行下一步的指令發(fā)送。
圖1 EPS模塊診斷通信的路徑
圖2 EPS模塊刷寫流程
圖2 為EPS軟件刷寫流程,EPS進(jìn)入刷寫之前需要對(duì)診斷模式切換,需要從默認(rèn)會(huì)話模式(正常工作狀態(tài)) 進(jìn)入拓展會(huì)話模式(響應(yīng)拓展模式下的指令),再進(jìn)入編程模式 (響應(yīng)編程模式下的編程指令可以對(duì)EPS進(jìn)行刷寫操作)。通過(guò)圖2步驟實(shí)現(xiàn)整車軟件刷寫過(guò)程,這些流程按照順序執(zhí)行,任何步驟出現(xiàn)問(wèn)題,如出現(xiàn)負(fù)響應(yīng),EPS的刷寫過(guò)程都會(huì)被中斷導(dǎo)致刷寫失敗。
項(xiàng)目投產(chǎn)階段總裝工廠反饋有部分下線車輛配置線上出現(xiàn)EPS刷寫一次測(cè)試不通過(guò)情況,經(jīng)過(guò)錄制數(shù)據(jù)跟蹤問(wèn)題主要是以下兩種失敗情況:①10臺(tái)左右車失敗的原因?yàn)?1 01 FF 02回復(fù)了7F 31 7F。②EPS模塊未有任何響應(yīng)(含7DF指令和721),功能尋址10 83/85 82發(fā)出EPS并沒(méi)有正響應(yīng)。針對(duì)以上兩種刷寫失敗情況,得到問(wèn)題出現(xiàn)的3種可能原因。
1) 反饋負(fù)響應(yīng)的模塊有SWM (組合開(kāi)關(guān))、EPS (電動(dòng)助力轉(zhuǎn)向)、SRS (安全氣囊),3個(gè)模塊均對(duì)28指令反饋7F,這3個(gè)模塊在CCAN上,而EOL設(shè)備發(fā)送指令是在PCAN上,說(shuō)明很大概率是網(wǎng)關(guān)丟幀導(dǎo)致包括10 83指令在內(nèi)的很多指令未成功轉(zhuǎn)發(fā)至模塊終端,指令缺失導(dǎo)致不符合EPS刷寫流程,EPS對(duì)后面轉(zhuǎn)發(fā)過(guò)來(lái)的指令給出7F反饋,不執(zhí)行后續(xù)的刷寫命令。
2) EPS軟件問(wèn)題,軟件未按照流程開(kāi)發(fā),導(dǎo)致出現(xiàn)報(bào)錯(cuò)情況。
3) 轉(zhuǎn)向盤異動(dòng)導(dǎo)致失敗,可能會(huì)影響刷寫模塊出現(xiàn)負(fù)響應(yīng)。
針對(duì)以上兩個(gè)刷寫失敗的情況,經(jīng)過(guò)確認(rèn)情況①EOL設(shè)備31 01 FF 02回復(fù)7F 31 22,下線在對(duì)EPS進(jìn)行刷寫時(shí),方向盤被有意觸動(dòng)后,電動(dòng)助力轉(zhuǎn)向系統(tǒng)轉(zhuǎn)向機(jī)扭矩會(huì)出現(xiàn)波動(dòng),容易產(chǎn)生EPS刷寫失??;EPS刷寫時(shí)需要監(jiān)控的因素主要有方向盤扭矩處、車速、發(fā)動(dòng)機(jī)狀態(tài)、供電電壓,其中任何一個(gè)條件不滿足都無(wú)法完成刷寫流程。EPS在進(jìn)入編程模式時(shí)觸碰方向盤導(dǎo)致EPS內(nèi)部的扭矩傳感器波動(dòng),出于整車安全考慮,EPS軟件刷寫編程是不允許出現(xiàn)扭矩波動(dòng)情況(上限值2.5Nm),出于安全考慮的原因是確保在無(wú)駕駛員操作車輛,即EPS處于非工作狀態(tài),EPS軟件才能進(jìn)入再編程模式。
根據(jù)圖3所示問(wèn)題數(shù)據(jù)1分析,在T=150.434542和T=150.693814兩個(gè)時(shí)間點(diǎn),PCAN上有診斷報(bào)文7DF,但網(wǎng)關(guān)未將其轉(zhuǎn)發(fā)至CCAN。直到T=150.953830時(shí),PCAN上出現(xiàn)第3幀診斷報(bào)文時(shí),網(wǎng)關(guān)GW才開(kāi)始將診斷報(bào)文路由到CCAN。之后各模塊反饋否定響應(yīng)碼7F導(dǎo)致刷寫失敗。根據(jù)數(shù)據(jù)分析刷寫失敗原因初步定位為網(wǎng)關(guān)未轉(zhuǎn)發(fā)診斷報(bào)文導(dǎo)致 (CAN1:PCAN,CAN6:CCAN,CAN8:BCAN)。
網(wǎng)關(guān)未轉(zhuǎn)發(fā)診斷報(bào)文是否正常需要繼續(xù)分析,從圖3中T=144.311722可知BCAN上下線測(cè)試設(shè)備在BCAN上發(fā)送0x763 TBOX診斷請(qǐng)求及診斷響應(yīng),當(dāng)前診斷優(yōu)先級(jí)為BCAN;之后0x763報(bào)文停發(fā),BCAN上做其他模塊 (0x732/0x7E0) 本地診斷,當(dāng)前診斷不需要網(wǎng)關(guān)處理,網(wǎng)關(guān)會(huì)從最后一幀0x763開(kāi)始5s診斷報(bào)文超時(shí)計(jì)時(shí);而在T=150.434542時(shí),發(fā)送第1幀0x7DF時(shí),此時(shí)網(wǎng)關(guān)會(huì)認(rèn)為BCAN/PCAN診斷報(bào)文已超時(shí),如果超時(shí)后TCAN上有診斷報(bào)文,則會(huì)將診斷優(yōu)先級(jí)切換至TCAN;此時(shí)再請(qǐng)求0x7DF會(huì)涉及一次診斷優(yōu)先級(jí)從TCAN->PCAN的過(guò)程,而這一過(guò)程中,TCAN診斷報(bào)文未超時(shí),此時(shí)會(huì)有500ms延時(shí)處理PCAN診斷請(qǐng)求的計(jì)時(shí)器,這也就是前面0x7DF報(bào)文網(wǎng)關(guān)未處理,而在T=150.953830時(shí),0x7DF開(kāi)始從PCAN正常路由至CCAN。因此,根據(jù)進(jìn)一步分析,網(wǎng)關(guān)漏轉(zhuǎn)報(bào)文是因?yàn)門BOX有診斷請(qǐng)求導(dǎo)致。
圖3 問(wèn)題數(shù)據(jù)1
根據(jù)深入分析發(fā)現(xiàn):按照下線匹配流程,在問(wèn)題數(shù)據(jù)2(圖4) 中T=85s,下線設(shè)備對(duì)TBOX進(jìn)行了一次硬件復(fù)位;按照TBOX和網(wǎng)關(guān)握手認(rèn)證策略,此時(shí)TBOX需要發(fā)起握手認(rèn)證流程,如未握手認(rèn)證成功,TBOX會(huì)一直發(fā)0x760嘗試和網(wǎng)關(guān)進(jìn)行握手認(rèn)證;又由于網(wǎng)關(guān)未經(jīng)過(guò)重啟,不滿足網(wǎng)關(guān)握手的條件,未進(jìn)入等待握手流程狀態(tài)。
圖4 問(wèn)題數(shù)據(jù)2
綜上所述,從流程上梳理問(wèn)題根本原因如下所述。
1) 根據(jù)EOL下線流程,需要先完成TBOX模塊與PEPS模塊之間的匹配認(rèn)證(TBOX學(xué)習(xí)完成SC碼),然后會(huì)執(zhí)行硬件復(fù)位,復(fù)位后就開(kāi)始和網(wǎng)關(guān)進(jìn)行認(rèn)證 (TBOX會(huì)發(fā)出網(wǎng)關(guān)診斷0x760報(bào)文)。
2) 按照TBOX與網(wǎng)關(guān)握手認(rèn)證策略,GW網(wǎng)關(guān)未執(zhí)行上下電操作,網(wǎng)關(guān)不會(huì)對(duì)該握手認(rèn)證指令進(jìn)行響應(yīng)。導(dǎo)致TBOX握手失敗情況,總線上會(huì)一直發(fā)送網(wǎng)關(guān)診斷0x760報(bào)文。
3) 在完成TBOX和PEPS匹配認(rèn)證后,EOL流程會(huì)等待6s后才開(kāi)始執(zhí)行EPS模塊刷寫操作,此時(shí)TBOX還在發(fā)送網(wǎng)關(guān)診斷0x760報(bào)文。
4) 按照網(wǎng)關(guān)診斷策略,Tester/EOL設(shè)備的診斷優(yōu)先級(jí)高于T-Box模塊自身的診斷優(yōu)先級(jí),如果BCAN、PCAN上5s未收到任何診斷指令時(shí),此時(shí)如TCAN上出現(xiàn)診斷報(bào)文,網(wǎng)關(guān)會(huì)將本地診斷模式切換為遠(yuǎn)程模式。車子下線時(shí),出現(xiàn)TBOX握手報(bào)文,正好處于5~6s的時(shí)間段內(nèi),網(wǎng)關(guān)將會(huì)把診斷路由模式切換為遠(yuǎn)程模式。
5) 當(dāng)網(wǎng)關(guān)在PCAN收到EPS刷寫的第1條報(bào)文時(shí),此時(shí)依據(jù)本地診斷優(yōu)先級(jí)高于遠(yuǎn)程診斷策略原則,會(huì)將診斷路由模式切換為本地診斷模式,但考慮遠(yuǎn)程診斷還在進(jìn)行,預(yù)留了一個(gè)500ms的切換時(shí)間。該段時(shí)間內(nèi)的本地診斷報(bào)文不會(huì)路由,從而導(dǎo)致EPS刷寫失敗。
按照刷寫失敗原因分析,有以下3個(gè)方案去解決該問(wèn)題。
1) 網(wǎng)關(guān)修改軟件,將網(wǎng)關(guān)的等待握手流程開(kāi)始的條件修改為任意時(shí)刻。當(dāng)前只有上電或者喚醒時(shí),網(wǎng)關(guān)會(huì)響應(yīng)進(jìn)行握手協(xié)議。把網(wǎng)關(guān)的等待握手流程修改為任意時(shí)刻,只要TBOX發(fā)送握手協(xié)議指令,網(wǎng)關(guān)響應(yīng)后停止發(fā)送指令,就可以完全避免出現(xiàn)EPS刷寫時(shí)從診斷報(bào)文不會(huì)路由的情況。考慮到更改GW軟件時(shí)間周期較長(zhǎng),且涉及開(kāi)發(fā)費(fèi)用,因此建議不采用。
2) TBOX修改軟件,TBOX按照其他項(xiàng)目,在下線的前20min內(nèi)不進(jìn)行診斷。此次刷寫失敗的原因主要是因?yàn)門BOX需要進(jìn)行診斷,進(jìn)行診斷之前需要通過(guò)握手實(shí)現(xiàn)診斷通信,前20min不進(jìn)行握手通信,就可以完全避免出現(xiàn)EPS刷寫時(shí)出現(xiàn)漏轉(zhuǎn)發(fā)診斷信號(hào)的情況。但是由于修改TBOX軟件時(shí)間周期長(zhǎng),同時(shí)還需要進(jìn)行聯(lián)調(diào)測(cè)試,因此建議不采用。
3) 修改EOL流程,調(diào)整硬件復(fù)位時(shí)間,由于EOL在整個(gè)流程結(jié)束會(huì)進(jìn)行一次7DF的硬件復(fù)位,將TBOX學(xué)習(xí)完SC碼后的硬件復(fù)位取消。在EPS刷寫過(guò)程中不會(huì)出現(xiàn)握手指令,使得GW始終處于本地診斷模式,GW進(jìn)行正確的報(bào)文轉(zhuǎn)發(fā),不會(huì)出現(xiàn)停止發(fā)送報(bào)文的情況。且該方案不涉及開(kāi)發(fā)費(fèi)用,經(jīng)評(píng)估方案可行,同時(shí)經(jīng)過(guò)聯(lián)調(diào)測(cè)試,該方法測(cè)試驗(yàn)證通過(guò),未對(duì)其他下線流程產(chǎn)生影響。綜上所述,此方案為最優(yōu)方案。
針對(duì)下線EOL設(shè)備對(duì)EPS模塊進(jìn)行Bootloader刷寫時(shí)出現(xiàn)偶發(fā)性失敗情況,對(duì)問(wèn)題進(jìn)行跟蹤并錄制CAN總線數(shù)據(jù)進(jìn)行分析,結(jié)合下線流程詳細(xì)分析了出現(xiàn)問(wèn)題的根本原因,同時(shí)提出3種修改策略。對(duì)3種修改策略分別分析方案的可行性,分析結(jié)果表明:通過(guò)調(diào)整下線流程取消TBOX的硬件復(fù)位,并在整個(gè)下線流程結(jié)束后進(jìn)行整車所有模塊硬件復(fù)位,徹底解決了這類問(wèn)題。