丁愛峰,胡勝云
(江鈴汽車股份有限公司,江西 南昌 330001)
各行各業(yè)競爭激烈,汽車行業(yè)亦是如此,配置情況是客戶選擇的一個(gè)重要參數(shù),配置越豐富被選購的概率就越高。目前,整車電器配置除傳統(tǒng)的收放機(jī)、點(diǎn)煙器、儀表之外,有諸如MP5、TBOX、BCM、ABS、ADAS等功能越來越強(qiáng)大的電器供選擇。越多的配置,意味著靜態(tài)電流疊加越大,如果控制不好更容易導(dǎo)致蓄電池饋電。集成芯片作為電器件的“大腦”,在饋電情況下更容易出問題。
下面對某車型儀表出現(xiàn)芯片內(nèi)部數(shù)據(jù)擦除或篡改故障進(jìn)行軟件設(shè)計(jì)分析,并通過模擬饋電工況,利用專用診斷儀讀取內(nèi)部數(shù)據(jù),確認(rèn)故障原因,提出新設(shè)計(jì),并證實(shí)新設(shè)計(jì)的軟件能有效地解決此類故障。
1)整車上電,儀表無任何反應(yīng),無指示燈、指針不自檢、儀表液晶屏黑屏不顯示。故障表裝到其他車上,故障依舊。
2)整車上電,儀表指針不自檢,其它功能正常。故障表裝到其他車上,故障依舊。
用診斷儀讀取故障儀表Dflash數(shù)據(jù),發(fā)現(xiàn)儀表的4個(gè)表頭的校表數(shù)據(jù)有不同程度的篡改或清空。所有儀表配置數(shù)據(jù)、隨車信息表配置信息等都沒有恢復(fù)到默認(rèn)數(shù)據(jù)。初步確認(rèn)芯片中 (Dflash)內(nèi)存的表頭數(shù)據(jù)丟失。圖1是讀取到的故障表轉(zhuǎn)速表數(shù)據(jù)和正常表的轉(zhuǎn)速表數(shù)據(jù)對比??梢钥闯?,數(shù)據(jù)塊中多個(gè)數(shù)據(jù)被擦除或篡改。
圖1 故障表與正常表的轉(zhuǎn)速數(shù)據(jù)對比
進(jìn)一步分析發(fā)現(xiàn),這些故障車庫存時(shí)間較長,蓄電池虧電嚴(yán)重,電池電壓接近0V。懷疑Dflash在非正常工作電壓狀態(tài)時(shí),擦寫操作異常導(dǎo)致數(shù)據(jù)丟失。
為確定Dflash在非正常工作電壓狀態(tài)時(shí),擦寫操作異常是否會導(dǎo)致數(shù)據(jù)丟失,設(shè)計(jì)實(shí)驗(yàn)如下。
1)取2塊正常儀表,編號分別為1號件、2號件,連接上如圖2所示臺架。
2)軟件對Dflash(寫DTC)不斷擦寫。
3)電壓調(diào)到MCU復(fù)位點(diǎn)附近 (電壓表顯示3.3V左右,萬用表測試輸入電壓2.7V左右),此時(shí)電流0A和0.01~0.03A跳變,說明MCU在復(fù)位和啟動(dòng)之間不斷轉(zhuǎn)換。
圖2 實(shí)驗(yàn)測試臺
4)測試時(shí)間約30min。
試驗(yàn)后,2塊儀表均出現(xiàn)故障,故障表現(xiàn)和前述一致。通過診斷工具讀取ODO值、4個(gè)表頭數(shù)據(jù)、配置數(shù)據(jù),發(fā)現(xiàn)1號件的ODO數(shù)據(jù)由5kM變?yōu)?kM、部分配置數(shù)據(jù)被清零,圖3為1號件試驗(yàn)前的配置數(shù)據(jù),圖4為1號件試驗(yàn)后的配置數(shù)據(jù)。
2號件的ODO數(shù)據(jù)由5kM變?yōu)?kM,水溫表、轉(zhuǎn)速表部分參數(shù)被清零,圖5~圖8分別為2號件試驗(yàn)前后水溫表、轉(zhuǎn)速表參數(shù)比較。
圖3 1號件試驗(yàn)前的配置數(shù)據(jù)
圖4 1號件試驗(yàn)后的配置數(shù)據(jù)
圖5 2號件試驗(yàn)前的水溫表參數(shù)
圖6 2號件試驗(yàn)后的水溫表參數(shù)
圖7 2號件試驗(yàn)前轉(zhuǎn)速表參數(shù)
圖8 2號件試驗(yàn)后轉(zhuǎn)速表參數(shù)
實(shí)驗(yàn)結(jié)果表明,整車持續(xù)低電壓情況下,芯片內(nèi)存Dflash擦除和寫入數(shù)據(jù)過程存在異常,導(dǎo)致內(nèi)存數(shù)據(jù)被篡改,造成儀表指針無動(dòng)作和無法啟動(dòng)現(xiàn)象。
細(xì)讀現(xiàn)有軟件,邏輯框圖分析如圖9所示。
Dflash驅(qū)動(dòng)會計(jì)算一個(gè)Checksums存儲在Dflash對應(yīng)區(qū)域,當(dāng)初始化檢測到Checksums對應(yīng)不上就會啟動(dòng)鎖死Dflash模塊,導(dǎo)致初始化失敗和讀寫不成功,進(jìn)而啟用看門狗復(fù)位,一直在內(nèi)部重啟,即導(dǎo)致儀表黑屏問題。Dflash的ODO或者表頭數(shù)據(jù)或者診斷數(shù)據(jù)被改寫,即導(dǎo)致儀表ODO清零和表頭不動(dòng)問題。這從軟件邏輯上確認(rèn)會導(dǎo)致故障。為杜絕此問題,應(yīng)優(yōu)化現(xiàn)有軟件,增加低電壓保護(hù)策略,如下所述。
1)判斷儀表常電進(jìn)入低電壓 (<7V)時(shí),禁止對Dflash進(jìn)行讀寫操作。
2)判斷儀表芯片進(jìn)入低電壓 (<4.06V)時(shí)進(jìn)行Reset。
注:芯片支持的最大復(fù)位電壓是4.06V。
在本案例中,面對儀表部分或全部功能失效的故障,通過診斷工具得知儀表DFLASH內(nèi)部配置、表頭等數(shù)據(jù)被篡改,并模擬故障發(fā)生時(shí)工況,確認(rèn)軟件沒有低電壓保護(hù),整車持續(xù)低電壓情況下,芯片內(nèi)存Dflash擦除和寫入數(shù)據(jù)過程存在異常,導(dǎo)致內(nèi)存數(shù)據(jù)被篡改,造成儀表指針無動(dòng)作和無法啟動(dòng)現(xiàn)象。最后通過優(yōu)化軟件,非常便捷地完成了優(yōu)化設(shè)計(jì),成功解決了儀表因數(shù)據(jù)篡改而失效的問題。