基于ASAP標(biāo)準(zhǔn)的發(fā)動(dòng)機(jī)標(biāo)定診斷系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:采用分層和模塊化思想設(shè)計(jì)出一種基于ASAP 標(biāo)準(zhǔn)的標(biāo)定診斷系統(tǒng)。在上位機(jī)利用軟
件看門(mén)狗技術(shù),解決了標(biāo)定工具與發(fā)動(dòng)機(jī)電控單元之間的故障快速定位問(wèn)題。故障時(shí)上位機(jī)
自動(dòng)保存標(biāo)定數(shù)據(jù),故障修復(fù)后自動(dòng)下發(fā)該標(biāo)定數(shù)據(jù),進(jìn)而防止標(biāo)定數(shù)據(jù)丟失,避免重復(fù)性
的標(biāo)定工作。并能讀取國(guó)外標(biāo)定系統(tǒng)的數(shù)據(jù)庫(kù)文件,其可靠性和通用性進(jìn)一步增強(qiáng)。
關(guān)鍵詞:標(biāo)定系統(tǒng);發(fā)動(dòng)機(jī);診斷;ASAP 標(biāo)準(zhǔn);軟件看門(mén)狗
Design of engine calibration diagnosis system based on ASAP standards
Li Yin-guo Cao Geng-yan Cen Ming (Chongqing University of Posts and Telcoms,Chongqing China 400065)
Abstract:A calibration and diagnosis system based on ASAP standards was designed using layer and modularization idea. the malfunction between host computer and ECU was positioned quickly
through the software watchdog technology in the host computer. and the calibrated datas were autosaved into the Caliration tool. After the malfunction was repaired ,these datas were sent to the RAM of ECU. So this can avoid the datas’losing and the calibration’s repetition. Also it can read foreign calibration software’s description file.it’s reliability and universality was strengthened.
Key words:calibration system, Engine, diagnosis, ASAP standards , Software Watchdog
引言
發(fā)動(dòng)機(jī)電子控制單元(ECU)是車(chē)用發(fā)動(dòng)機(jī)控制系統(tǒng)的核心,它能夠根據(jù)發(fā)動(dòng)機(jī)的運(yùn)行
情況來(lái)提供最佳空燃比和點(diǎn)火時(shí)間,進(jìn)而使發(fā)動(dòng)機(jī)的動(dòng)力性、經(jīng)濟(jì)性和尾氣排放達(dá)到最優(yōu)狀
態(tài)[1]。因此開(kāi)發(fā)一個(gè)功能可靠且方便靈活的的標(biāo)定工具非常重要。它能縮短ECU 的開(kāi)發(fā)周期,
減小匹配實(shí)驗(yàn)工作量,降低開(kāi)發(fā)成本,幫助標(biāo)定員在短時(shí)間內(nèi)獲得最佳的標(biāo)定參數(shù)。
從現(xiàn)有資料來(lái)看,國(guó)內(nèi)設(shè)計(jì)的標(biāo)定系統(tǒng)一般具有標(biāo)定、監(jiān)測(cè)和診斷功能。但其診斷功能
只是對(duì)ECU提供的故障信息在上位機(jī)顯示。在上位機(jī)和ECU之間的故障快速定位和修復(fù)方面沒(méi)
有介紹,本文設(shè)計(jì)的標(biāo)定診斷系統(tǒng)除了具有在線標(biāo)定、實(shí)時(shí)監(jiān)測(cè)并能讀取ECU中的故障信息
功能外,在標(biāo)定上位機(jī)利用軟件看門(mén)狗技術(shù)實(shí)現(xiàn)了上位機(jī)與ECU之間的故障快速定位,并具
有自動(dòng)保存、加載、回讀比較數(shù)據(jù)等功能。增強(qiáng)了標(biāo)定系統(tǒng)的可靠性和靈活性。
1 ASAP標(biāo)準(zhǔn)體系結(jié)構(gòu)
ASAP(Arbeitskreis zur Standardisierung von Applikationssystemen)指的是應(yīng)用系統(tǒng)標(biāo)準(zhǔn)
化組織,為了使車(chē)用電子產(chǎn)品在開(kāi)發(fā)期間所用的工具和方法具有兼容性和可交換性而提出該
國(guó)際標(biāo)準(zhǔn)[2]。為了實(shí)現(xiàn)對(duì)應(yīng)用系統(tǒng)進(jìn)行測(cè)量、標(biāo)定和診斷,ASAP工作組根據(jù)MCD(Measurement,
Calibration and Diagnostics)模型將該標(biāo)準(zhǔn)分成ASAP1、ASAP2和ASAP3三個(gè)子標(biāo)準(zhǔn)。
ASAP1標(biāo)準(zhǔn)為應(yīng)用系統(tǒng)和控制設(shè)備之間提供接口;ASAP2標(biāo)準(zhǔn)對(duì)ECU的內(nèi)部各種參數(shù)、外部
接口信息、通信方法等進(jìn)行了標(biāo)準(zhǔn)化的描述,按此標(biāo)準(zhǔn)生成的ASAP描述文件是各類(lèi)控制設(shè)備
的數(shù)據(jù)交換平臺(tái);ASAP3標(biāo)準(zhǔn)為自動(dòng)系統(tǒng)(或用戶(hù))與MCD系統(tǒng)之間提供統(tǒng)一接口,用戶(hù)只需
通過(guò)調(diào)用MCD系統(tǒng)提供的接口函數(shù)來(lái)完成測(cè)量、標(biāo)定和診斷等功能。
2 標(biāo)定系統(tǒng)整體設(shè)計(jì)
采用PC機(jī)作為上位機(jī),通過(guò)USB-CAN通信卡連到發(fā)動(dòng)機(jī)ECU,實(shí)現(xiàn)對(duì)發(fā)動(dòng)機(jī)ECU的標(biāo)定、
監(jiān)測(cè)、診斷等操作。上位機(jī)與ECU之間的通信和數(shù)據(jù)交換平臺(tái)分別由ASAP標(biāo)準(zhǔn)中的CCP協(xié)議和ASAP2標(biāo)準(zhǔn)生成的ASAP描述文件(.A2L文件)來(lái)實(shí)現(xiàn)。上位機(jī)標(biāo)定軟件采用分層和模塊化思
想設(shè)計(jì),包括數(shù)據(jù)層、表示層和通信層(如圖1)。其中數(shù)據(jù)層包括初始化子系統(tǒng)和數(shù)據(jù)管
理子系統(tǒng),初始化子系統(tǒng)主要是完成CAN通信模塊和數(shù)據(jù)的初始化等操作。數(shù)據(jù)管理子系統(tǒng)
主要是完成數(shù)據(jù)的保存、加載、回放和A2L數(shù)據(jù)庫(kù)的管理等操作;表示層包括標(biāo)定監(jiān)測(cè)子系
統(tǒng)和診斷子系統(tǒng),該層主要完成對(duì)發(fā)動(dòng)機(jī)ECU的標(biāo)定、監(jiān)測(cè)和診斷等操作;通信層主要是完
成上位機(jī)與ECU之間的通信操作。
圖1 標(biāo)定診斷系統(tǒng)的總體框架圖
由ASAP編輯器生成的A2l數(shù)據(jù)庫(kù)是整個(gè)標(biāo)定系統(tǒng)的數(shù)據(jù)交換平臺(tái),因此在系統(tǒng)運(yùn)行開(kāi)始
首先導(dǎo)入A2L文件,然后調(diào)用CAN通信模塊提供的接口庫(kù)函數(shù)完成CAN通信模塊初始化等操作,
建立連接后可對(duì)多個(gè)ECU進(jìn)行標(biāo)定和監(jiān)測(cè)。故障診斷(ECU故障信息上傳顯示和標(biāo)定系統(tǒng)的故
障診斷)貫穿于標(biāo)定和監(jiān)測(cè)的整個(gè)過(guò)程中(如圖2)。
圖2 上位機(jī)主流程圖 圖3 標(biāo)定數(shù)據(jù)初始化流程圖
2.1 初始化子系統(tǒng)的設(shè)計(jì)
在此子系統(tǒng)中包括USB-CAN模塊的初始化、標(biāo)定參數(shù)的初始化和DAQ參數(shù)的初始化配置。
上位機(jī)通過(guò)調(diào)用CAN通信模塊的相關(guān)接口庫(kù)函數(shù)依次進(jìn)行下列初始化操作:打開(kāi)CAN通信模
塊、選中與ECU連接的CAN口、配置各CAN口相關(guān)參數(shù)(驗(yàn)收碼、屏蔽碼、定時(shí)器、濾波器、
模式等)、啟動(dòng)CAN通信設(shè)備等。標(biāo)定參數(shù)的初始化有兩種方式:一種是從ECU的RAM區(qū)讀取標(biāo)
定數(shù)據(jù)到上位機(jī)標(biāo)定窗口,另一種是從上位機(jī)的標(biāo)定數(shù)據(jù)文件中加載到程序中進(jìn)行標(biāo)定數(shù)據(jù)
的初始化(如圖3)。在監(jiān)測(cè)參數(shù)上傳之前,對(duì)需要監(jiān)測(cè)的數(shù)據(jù)進(jìn)行DAQ配置,不同上傳周期
的監(jiān)測(cè)數(shù)據(jù)配置到不同的DAQ表中,這需要上位機(jī)發(fā)送DAQ配置命令和START_STOP命令要求
ECU中的DAQ處理機(jī)配置并開(kāi)啟不同DAQ表進(jìn)行上傳并顯示監(jiān)測(cè)數(shù)據(jù)。在標(biāo)定系統(tǒng)運(yùn)行期間,
通過(guò)開(kāi)啟或關(guān)閉某個(gè)DAQ表,可以實(shí)時(shí)監(jiān)測(cè)到所開(kāi)啟DAQ表的數(shù)據(jù)上傳數(shù)據(jù)。
2.2 數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)
在此子系統(tǒng)中,主要包括A2L數(shù)據(jù)庫(kù)的管理、數(shù)據(jù)的保存、打印、回放和比較等功能。
A2l數(shù)據(jù)庫(kù)是整個(gè)標(biāo)定系統(tǒng)的數(shù)據(jù)交換平臺(tái),它記錄了控制器內(nèi)部的各種參數(shù)、外部接
口信息、通信方法等詳細(xì)信息。因此對(duì)其管理尤為重要。在通訊協(xié)議中采用地址結(jié)合數(shù)據(jù)段
長(zhǎng)度的方法實(shí)現(xiàn)數(shù)據(jù)的下載和修改。上位機(jī)程序負(fù)責(zé)查詢(xún)A2L數(shù)據(jù)庫(kù)以獲得控制參數(shù)的地址
和數(shù)據(jù)段長(zhǎng)度等信息[3],A2L數(shù)據(jù)庫(kù)的使用減輕了ECU對(duì)大量標(biāo)定變量的定義和存儲(chǔ)的負(fù)擔(dān),
縮短占用微處理器的運(yùn)算時(shí)間。當(dāng)ECU中的參數(shù)信息改變時(shí),只需用ASAP數(shù)據(jù)庫(kù)編輯器對(duì)原
有A2L文件的改動(dòng)部分進(jìn)行刷新。標(biāo)定系統(tǒng)只需在新的A2L文件下對(duì)ECU進(jìn)行標(biāo)定、監(jiān)測(cè)等操
作。因此,當(dāng)ECU有關(guān)信息的改變時(shí)不會(huì)對(duì)標(biāo)定軟件的代碼做任何改動(dòng),同時(shí)也避免因標(biāo)定
軟件內(nèi)部代碼的局部改動(dòng)所帶來(lái)的隱患[4],增加了標(biāo)定系統(tǒng)的靈活性。
為了便于對(duì)監(jiān)測(cè)到的數(shù)據(jù)進(jìn)行離線分析比較,該系統(tǒng)具有保存監(jiān)測(cè)數(shù)據(jù)并對(duì)其進(jìn)行離線
分析、波形回放和打印功能。
2.3 診斷子系統(tǒng)的設(shè)計(jì)
在此子系統(tǒng)中,除了讀取ECU中的故障信息外,在標(biāo)定上位機(jī)利用軟件看門(mén)狗技術(shù)實(shí)現(xiàn)
了標(biāo)定系統(tǒng)的故障快速定位,大大減少故障查找時(shí)間。故障時(shí)及時(shí)地將已標(biāo)定數(shù)據(jù)進(jìn)行保存,
避免因標(biāo)定數(shù)據(jù)的丟失而進(jìn)行重復(fù)性地標(biāo)定工作,提高了標(biāo)定系統(tǒng)的可靠性(如圖4、圖5)。
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)沒(mé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è)備再打開(kāi)并初始化設(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)定值燒寫(xiě)到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ù)(具體見(jiàn)圖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ù)。
圖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ī)利用軟件看門(mén)狗技術(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í)性,靈活性和可靠性。