基于ASAP標(biāo)準(zhǔn)的發(fā)動(dòng)機(jī)標(biāo)定診斷系統(tǒng)設(shè)計(jì)
2.3.1 故障快速定位與數(shù)據(jù)的自動(dòng)保存
在上位機(jī)的接收中斷函數(shù)中設(shè)置一個(gè)全局變量ConnectFlag并使其值賦為0,只要有監(jiān)測(cè)
數(shù)據(jù)周期性上傳(本文三個(gè)DAQ表的數(shù)據(jù)上傳周期是10ms、20ms、50ms)ConnectFlag一直為
0,當(dāng)超過(guò)50ms,該變量就會(huì)在定時(shí)器函數(shù)里不斷加1, 當(dāng)大于指定的數(shù)值時(shí)(在指定的時(shí)
間內(nèi)沒有數(shù)據(jù)上傳),在上位機(jī)出現(xiàn)故障提示。根據(jù)USB-CAN提供的接口函數(shù)判斷故障是ECU
與USB-CAN模塊之間,還是USB-CAN與ECU之間。故障時(shí)在上位機(jī)調(diào)用保存函數(shù)對(duì)已標(biāo)定數(shù)據(jù)
進(jìn)行保存,做好標(biāo)定數(shù)據(jù)的備份,避免因標(biāo)定數(shù)據(jù)丟失而進(jìn)行重新標(biāo)定,減少標(biāo)定工作量。
2.3.2 故障修復(fù)與數(shù)據(jù)的自動(dòng)加載
根據(jù)故障提示快速作出故障定位,故障排除后根據(jù)故障提示點(diǎn)擊主界面修復(fù)菜單中的復(fù)
位按鈕,復(fù)位成功同時(shí)自動(dòng)將已標(biāo)定的數(shù)據(jù)從上位機(jī)的保存文件中加載到標(biāo)定窗口并下發(fā),
然后繼續(xù)標(biāo)定操作,不需重新進(jìn)行標(biāo)定。修復(fù)菜單中,對(duì)于ECU斷電的情況,ECU上電后進(jìn)行
修復(fù)時(shí),需要上位機(jī)重新下發(fā)配置DAQ命令和啟動(dòng)DAQ表等相關(guān)命令,因?yàn)橐坏嚯娀蛘邚?fù)位,
ECU與上位機(jī)的相關(guān)命令需要重新發(fā)送才能完成兩者的通信;對(duì)于ECU與USB-CAN之間線路故
障的情況,只需將線路連好即可繼續(xù)上位機(jī)與ECU之間的通信;對(duì)于USB-CAN與上位機(jī)故障的
情況,需要在上位機(jī)先關(guān)閉CAN-USB設(shè)備再打開并初始化設(shè)備,再可繼續(xù)標(biāo)定工作。
2.4 標(biāo)定監(jiān)測(cè)子系統(tǒng)的設(shè)計(jì)
在上位機(jī)的標(biāo)定窗口完成ECU控制參數(shù)的在線標(biāo)定。通過(guò)在線修改標(biāo)定窗口中的參數(shù)值
就可以對(duì)ECU中RAM區(qū)的相關(guān)參數(shù)值進(jìn)行優(yōu)化,標(biāo)定后將RAM區(qū)的標(biāo)定值燒寫到FLASH中。同時(shí)
還可以將ECU中的標(biāo)定參數(shù)值讀當(dāng)標(biāo)定子窗口并與當(dāng)前標(biāo)定窗口值進(jìn)行比較,確保下發(fā)標(biāo)定
值的正確性。標(biāo)定流程圖如圖4所示。此外,該子系統(tǒng)能夠?qū)崟r(shí)監(jiān)測(cè)ECU采集到的數(shù)據(jù),并將
數(shù)據(jù)進(jìn)行多樣化顯示,能直觀地顯示所監(jiān)測(cè)的數(shù)據(jù)及其變化規(guī)律。上位機(jī)一次發(fā)送命令就可
要求從設(shè)備周期性地自動(dòng)上傳DAQ監(jiān)測(cè)數(shù)據(jù)(具體見圖5)。
2.5 通信子系統(tǒng)的設(shè)計(jì)
通信子系統(tǒng)主要為上位機(jī)與ECU之間提供通信接口。所用通信協(xié)議是CCP協(xié)議[5],該協(xié)議
都是從ASAP1a子標(biāo)準(zhǔn)中獨(dú)立出來(lái)的通信標(biāo)準(zhǔn),該協(xié)議具有通信可靠,實(shí)時(shí)性強(qiáng)、通用性好等
優(yōu)點(diǎn)。在設(shè)計(jì)中,通過(guò)ccpCommand()函數(shù)調(diào)用不同的CCP命令完成命令的下發(fā),調(diào)用fGetData()
函數(shù)來(lái)接收ECU的返回命令并讀取ECU中上傳的監(jiān)測(cè)數(shù)據(jù)。ECU根據(jù)上位機(jī)的DAQ配置命令和啟動(dòng)DAQ命令周期性地上傳監(jiān)測(cè)數(shù)據(jù)。本文引用地址:http://www.ex-cimer.com/article/197472.htm
圖4 標(biāo)定流程圖 圖5 監(jiān)測(cè)流程圖
3 標(biāo)定系統(tǒng)底層軟件的設(shè)計(jì)
圖6 底層軟件設(shè)計(jì)
如圖6所示,為了增加底層通信模塊的通用性,采用了模塊化設(shè)計(jì)思想,將CAN Driver
和CCP Driver分離。Command 處理機(jī)是CCP Driver的主要組成部分;DAQ處理機(jī)是用來(lái)采集
并按要求周期性地上傳不同DAQ表的監(jiān)測(cè)參數(shù)當(dāng)前值。兩處理機(jī)組成控制器的CCP Driver,
是對(duì)標(biāo)定協(xié)議內(nèi)容的解析和實(shí)現(xiàn)。為了保證CAN通信的可靠性,CAN Driver采用環(huán)形緩沖機(jī)
制,并通過(guò)操作系統(tǒng)消息溝通中斷子程和系統(tǒng)任務(wù)。通過(guò)更改CAN Driver實(shí)現(xiàn)不同ECU硬件
平臺(tái)的移植,并且可以對(duì)新的ECU進(jìn)行標(biāo)定,增加了底層通信模塊的兼容性和通用性。
4 結(jié)束語(yǔ)
本文設(shè)計(jì)的標(biāo)定診斷系統(tǒng)集標(biāo)定、監(jiān)測(cè)、診斷等功能為一體。在保證系統(tǒng)的靈活性和通
信實(shí)時(shí)性的基礎(chǔ)上,在上位機(jī)利用軟件看門狗技術(shù)實(shí)現(xiàn)了標(biāo)定系統(tǒng)故障的快速診斷與修復(fù)、
數(shù)據(jù)的自動(dòng)保存和加載功能,進(jìn)而防止標(biāo)定數(shù)據(jù)丟失,避免重復(fù)性地標(biāo)定工作,使整個(gè)標(biāo)定
系統(tǒng)的可靠性得到保證。實(shí)驗(yàn)表明,該系統(tǒng)具有較高的實(shí)時(shí)性,靈活性和可靠性。
評(píng)論