本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)和汽車診斷領(lǐng)域,具體地說,涉及一種汽車ecu的模擬系統(tǒng)及模擬方法。
背景技術(shù):
在汽車故障診斷儀的研發(fā)過程中,診斷儀常常需要與被開發(fā)車型的ecu進(jìn)行數(shù)據(jù)通信,診斷儀向汽車ecu發(fā)送診斷命令,而汽車ecu對該命令回復(fù)相應(yīng)的診斷數(shù)據(jù)。而診斷儀需要集成不同車型的數(shù)據(jù)以適應(yīng)更多車型,才能滿足市場需求。而如何收集不同的車型數(shù)據(jù),是研發(fā)過程的關(guān)鍵環(huán)節(jié)之一。目前,主要是通過直接找到所有相關(guān)型號的實(shí)車進(jìn)行長期全面的數(shù)據(jù)采樣和測試。這種現(xiàn)有常用方法代價(jià)高,并且數(shù)據(jù)適用性差,同時(shí)實(shí)車采樣的樣本數(shù)據(jù)具有單一性,無法滿足多樣化數(shù)據(jù)的需求,而且,這種方法使得研發(fā)成本高,研發(fā)周期比較長。
還有一種方法就是通過設(shè)計(jì)軟件模擬汽車ecu進(jìn)行,但是,目前模擬ecu的技術(shù)還處于初級階段。設(shè)計(jì)一種高效、數(shù)據(jù)適用性強(qiáng)的汽車ecu的模擬系統(tǒng)及模擬方法可以降低汽車診斷設(shè)備的研發(fā)成本,縮短研發(fā)周期和提高其研發(fā)效率,對汽車診斷軟件的版本升級和產(chǎn)品力提升具有重要意義。
技術(shù)實(shí)現(xiàn)要素:
為克服上述技術(shù)問題,本發(fā)明提供一種汽車ecu的模擬系統(tǒng)及其模擬方法。
為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
一種汽車ecu的模擬系統(tǒng),包括:主控模塊、高級功能模塊、串口通信模塊和下位機(jī)模塊;
主控模塊,加載配置文件和設(shè)置初始化參數(shù),校驗(yàn)數(shù)據(jù),并將數(shù)據(jù)傳送至高級功能模塊;
高級功能模塊,與串口通信模塊連接,在線實(shí)時(shí)修改ecu回復(fù)數(shù)據(jù),并將數(shù)據(jù)傳送至串口通信模塊;根據(jù)原廠診斷設(shè)備反饋的診斷結(jié)果確定算法;
串口通信模塊,通過串口線與下位機(jī)模塊連接,進(jìn)行數(shù)據(jù)通信;
下位機(jī)模塊,通過總線與原廠診斷設(shè)備連接,進(jìn)行數(shù)據(jù)通信。串口線可以采用rs232串口線,總線可以采用obdii總線。
進(jìn)一步的技術(shù)方案,所述的高級功能模塊,包括字節(jié)分析模塊、特定數(shù)值回復(fù)模塊、批量修改回復(fù)模塊、定值增減回復(fù)模塊、算法校驗(yàn)?zāi)K;
字節(jié)分析模塊,對主控模塊傳送的ecu回復(fù)數(shù)據(jù)中的數(shù)據(jù)按字節(jié)進(jìn)行分析,并判斷有效數(shù)據(jù)位和數(shù)據(jù)算法類型,根據(jù)有效數(shù)據(jù)位和數(shù)據(jù)算法類型來選擇適用的修改方式將數(shù)據(jù)傳送至特定數(shù)值回復(fù)模塊或批量修改回復(fù)模塊或定值增減回復(fù)模塊來改變ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù);并分析原廠診斷設(shè)備的相應(yīng)診斷結(jié)果的變化規(guī)律,并得到數(shù)據(jù)算法;
特定數(shù)值回復(fù)模塊,對有效數(shù)據(jù)位中的每一個(gè)字節(jié)逐一輸入特定數(shù)值,并將數(shù)據(jù)傳送至串口通信模塊;
批量修改回復(fù)模塊,對有效數(shù)據(jù)位中的多個(gè)字節(jié)同時(shí)輸入特定的相同數(shù)值,并將數(shù)據(jù)傳送至串口通信模塊;
定值增減回復(fù)模塊,對有效數(shù)據(jù)位中的字節(jié)按照既定值進(jìn)行增減操作,并將數(shù)據(jù)傳送至串口通信模塊;
算法校驗(yàn)?zāi)K,將字節(jié)分析模塊確定的算法內(nèi)置到待開發(fā)的診斷設(shè)備上,將待開發(fā)的診斷設(shè)備反饋的診斷結(jié)果與原廠診斷設(shè)備的診斷結(jié)果進(jìn)行對比,驗(yàn)證數(shù)據(jù)的最高值、最低值和中間值,如誤差不超過0.5%,則字節(jié)分析模塊確定的數(shù)據(jù)算法正確。
進(jìn)一步的技術(shù)方案,所述的數(shù)據(jù)算法的確定方法是,將n組ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù)和原廠診斷設(shè)備的診斷結(jié)果輸入算法模型y=g(a,b,c…;x),并得到模型參數(shù)值,x為ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù),y為原廠診斷設(shè)備的診斷結(jié)果,n為算法模型中參數(shù)a,b,c…的個(gè)數(shù)。
進(jìn)一步的技術(shù)方案,所述的數(shù)據(jù)算法類型包括直接計(jì)算方式、開關(guān)量方式、查表方式、ascii碼字符顯示方式、十六進(jìn)制方式、十進(jìn)制方式、二進(jìn)制方式、特殊方式和時(shí)間方式。
進(jìn)一步的技術(shù)方案,所述的特定數(shù)值回復(fù)模塊的特定數(shù)值包括00、7f、80、ff、01、??;
所述的定值增減回復(fù)模塊中的增減操作是對字節(jié)通過增值或減值修改數(shù)值,增值量和減值量為:+01、+10、-01、-10。
進(jìn)一步的技術(shù)方案,所述的主控模塊包括配置文件模塊、數(shù)據(jù)校驗(yàn)?zāi)K和初始化參數(shù)模塊;
配置文件模塊,加載ecu數(shù)據(jù)配置文件,將數(shù)據(jù)傳送至初始化參數(shù)模塊;
初始化參數(shù)模塊,設(shè)置串口rs232通信參數(shù)的串口號和波特率和obdii協(xié)議參數(shù),并將數(shù)據(jù)傳送至串口通信模塊;
數(shù)據(jù)校驗(yàn)?zāi)K,對串口通信模塊的數(shù)據(jù)進(jìn)行校驗(yàn),通過內(nèi)校驗(yàn)方法檢驗(yàn)通信數(shù)據(jù)信息在通信傳輸中是否發(fā)生改變,通過外校驗(yàn)對數(shù)據(jù)除校驗(yàn)位本身的所有字節(jié)按照選定方式進(jìn)行校驗(yàn),用來檢驗(yàn)數(shù)據(jù)在通信傳輸中是否發(fā)生改變,若內(nèi)檢驗(yàn)和外校驗(yàn)都通過則將數(shù)據(jù)傳送至高級功能模塊。同時(shí)選擇兩種校驗(yàn)方式可提高校驗(yàn)冗余度,確保數(shù)據(jù)在通信中沒有誤碼。
進(jìn)一步的技術(shù)方案,所述的數(shù)據(jù)校驗(yàn)?zāi)K中的內(nèi)校驗(yàn)和外校驗(yàn)方法包括使用原數(shù)據(jù)、一字節(jié)和、一字節(jié)取反、一字節(jié)去補(bǔ)、一字節(jié)異或、一字節(jié)crc校驗(yàn)、一字節(jié)除倒數(shù)第二、benz_5bps、串口直接通信、卡特專用、gaz_0d、兩字節(jié)校驗(yàn)和。
進(jìn)一步的技術(shù)方案,所述的配置文件采用xml語言設(shè)計(jì),每一個(gè)配置文件對應(yīng)一個(gè)車型ecu,存儲(chǔ)該ecu通信協(xié)議初始化參數(shù)、診斷儀和所有功能的通信數(shù)據(jù)。
進(jìn)一步的技術(shù)方案,所述的配置文件采用層級結(jié)構(gòu)設(shè)計(jì),一級標(biāo)簽采用<auto>,二級標(biāo)簽采用<init_io>和<comm>,三級標(biāo)簽采用<rece>、<send>和<cmd>;所述的<init_io>標(biāo)簽的文本內(nèi)容包括設(shè)備初始化信息;<comm>標(biāo)簽的文本內(nèi)容包括所有命令的通信數(shù)據(jù);所述的標(biāo)簽<cmd>是協(xié)議初始化參數(shù)命令;所述的<rece>標(biāo)簽是為診斷設(shè)備發(fā)送命令;<send>標(biāo)簽是ecu返回給診斷設(shè)備命令,<rece>和<send>標(biāo)簽中有屬性hide、sd/rd。將xml語言中的這種層級標(biāo)簽設(shè)計(jì)與診斷設(shè)備中系統(tǒng)功能的層級結(jié)構(gòu)相對應(yīng),可簡化庫文件和程序代碼,提高程序運(yùn)行效率。
一種汽車ecu的模擬方法,包括以下步驟:
a.主控模塊加載被模擬ecu的配置文件,設(shè)置初始化參數(shù);
b.高級功能模塊從主控模塊獲取回復(fù)數(shù)據(jù),并在線實(shí)時(shí)改變ecu回復(fù)數(shù)據(jù),將數(shù)據(jù)傳送至串口通信模塊;
c.串口通信模塊將ecu回復(fù)數(shù)據(jù)數(shù)據(jù)發(fā)送至下位機(jī)模塊;
d.下位機(jī)模塊將ecu回復(fù)數(shù)據(jù)發(fā)送至原廠診斷設(shè)備,原廠診斷設(shè)備進(jìn)行診斷處理,并得到診斷結(jié)果,將診斷結(jié)果反饋至高級功能模塊;診斷處理是診斷設(shè)備根據(jù)接收到的模擬ecu回復(fù)的故障碼、數(shù)據(jù)流、動(dòng)作測試和特殊功能的數(shù)據(jù)來顯示相應(yīng)診斷結(jié)果,并執(zhí)行相應(yīng)的數(shù)據(jù)集;
e.高級功能模塊分析診斷結(jié)果,得到數(shù)據(jù)算法;
f.將確定的數(shù)據(jù)算法內(nèi)置到待開發(fā)的診斷設(shè)備中,根據(jù)待開發(fā)的診斷設(shè)備的診斷結(jié)果與原廠診斷設(shè)備的診斷結(jié)果比對,驗(yàn)證數(shù)據(jù)的最高值、最低值和中間值,如誤差不超過0.5%,則字節(jié)分析模塊確定的數(shù)據(jù)算法正確;如果誤差超過0.5%,則執(zhí)行步驟b。
進(jìn)一步的技術(shù)方案,所述的步驟b中,線實(shí)時(shí)改變ecu回復(fù)數(shù)據(jù)的方法是,高級功能模塊先對主控模塊傳送的ecu回復(fù)數(shù)據(jù)中的數(shù)據(jù)按字節(jié)進(jìn)行分析,并判斷有效數(shù)據(jù)位和數(shù)據(jù)算法類型,選擇適用特定數(shù)值回復(fù)方式或批量修改回復(fù)方式或定值增減回復(fù)方式來改變ecu回復(fù)數(shù)據(jù)。
有益效果
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn):
1、本發(fā)明可以在vs2012平臺(tái)下采用基于事件驅(qū)動(dòng)的vc++工具開發(fā)ecu模擬系統(tǒng),將軟件開發(fā)應(yīng)用到診斷設(shè)備的研發(fā)過程中,同時(shí)涉及汽車診斷協(xié)議理論與應(yīng)用技術(shù)和文件型數(shù)據(jù)庫技術(shù),體現(xiàn)了多學(xué)科與多領(lǐng)域的交叉性。
2、本發(fā)明通過在線修改模擬ecu回復(fù)數(shù)據(jù),取代實(shí)車來解析各個(gè)診斷功能的數(shù)據(jù),與目前通用的采用汽車ecu方法需要大量汽車ecu相比,本發(fā)明所提供方法可通過加載不同協(xié)議的配置文件實(shí)現(xiàn)模擬不同類型汽車ecu,同時(shí)通過改變ecu回復(fù)數(shù)據(jù)實(shí)現(xiàn)模擬同一類型汽車ecu的不同汽車ecu個(gè)體。因此可大量獲取汽車診斷的樣本數(shù)據(jù),實(shí)現(xiàn)樣本數(shù)據(jù)的多樣性,進(jìn)而可以高效快速地解析數(shù)據(jù)算法,并提高數(shù)據(jù)算法的準(zhǔn)確性。
3、通過本發(fā)明的系統(tǒng)和方法,能夠?qū)δ骋卉囅档哪硞€(gè)版本車型的采樣數(shù)據(jù)進(jìn)行分析,得到其數(shù)據(jù)算法,再按照所得的數(shù)據(jù)算法得到該車系其他版本車型的樣本數(shù)據(jù)。這樣就可以大大減小開發(fā)過程中對采樣車型的需求,同時(shí)也提高了開發(fā)效率,降低采樣車型的成本。
4、本發(fā)明在線修改ecu回復(fù)數(shù)據(jù)方式具有多樣性,包括特定數(shù)值回復(fù)方式、批量修改回復(fù)方式、定值增減回復(fù)方式,可以根據(jù)不同的數(shù)據(jù),選擇合適的回復(fù)方式,這些方式使得模擬ecu數(shù)據(jù)回復(fù)簡便、快捷、靈活,同時(shí)囊括的數(shù)據(jù)算法種類多,滿足各種診斷功能的ecu數(shù)據(jù)應(yīng)答,對多字節(jié)多條件數(shù)據(jù)算法的解析非常有效,能夠更高效地觀測到不同車型采樣數(shù)據(jù)。
5、通過實(shí)驗(yàn)發(fā)現(xiàn),雖然不是汽車ecu所有功能都能采用本發(fā)明的系統(tǒng)和方法,但有近80%功能開發(fā)可以使用,可以大大提高開發(fā)效率,縮短開發(fā)周期,降低測車風(fēng)險(xiǎn)和開發(fā)成本。
6、本發(fā)明采用模塊化設(shè)計(jì),功能的可擴(kuò)展性強(qiáng);采用內(nèi)校驗(yàn)和外校驗(yàn),數(shù)據(jù)通信的可靠性高;同時(shí)對數(shù)據(jù)算法識(shí)別度較高,得到的數(shù)據(jù)算法精準(zhǔn),使得研發(fā)成本降低,研發(fā)周期縮短,并且數(shù)據(jù)適用性強(qiáng)。
附圖說明
圖1是本發(fā)明一種汽車ecu的模擬系統(tǒng)的結(jié)構(gòu)圖;
圖2是高級功能模塊的工作流程圖;
圖3是本發(fā)明一種汽車ecu的模擬方法的流程圖。
圖中標(biāo)號:1、主控模塊,2、高級功能模塊,3、串口通信模塊,4、下位機(jī)模塊,5、原廠診斷設(shè)備,6、待開發(fā)診斷設(shè)備,1-1、配置文件模塊,1-2、初始化參數(shù)模塊,1-3、數(shù)據(jù)校驗(yàn)?zāi)K,2-1字節(jié)分析模塊,2-2、特定數(shù)值回復(fù)模塊,2-3、批量修改回復(fù)模塊,2-4、定值增減回復(fù)模塊,2-5、算法校驗(yàn)?zāi)K。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)的說明。
實(shí)施例
如圖1所示,一種汽車ecu的模擬系統(tǒng),包括:主控模塊1、高級功能模塊2、串口通信模塊3和下位機(jī)模塊4;
主控模塊1,加載配置文件和設(shè)置初始化參數(shù),校驗(yàn)數(shù)據(jù),并將數(shù)據(jù)傳送至高級功能模塊2;
高級功能模塊2,與串口通信模塊3連接,在線實(shí)時(shí)修改ecu回復(fù)數(shù)據(jù),并將數(shù)據(jù)傳送至串口通信模塊3;根據(jù)原廠診斷設(shè)備5反饋的診斷結(jié)果確定算法;
串口通信模塊3,通過串口線與下位機(jī)模塊4連接,進(jìn)行數(shù)據(jù)通信;
下位機(jī)模塊4,通過總線與原廠診斷設(shè)備5連接,進(jìn)行數(shù)據(jù)通信。串口線可以采用rs232串口線,總線可以采用obdii總線。
所述的高級功能模塊2,包括字節(jié)分析模塊2-1、特定數(shù)值回復(fù)模塊2-2、批量修改回復(fù)模塊2-3、定值增減回復(fù)模塊2-4、算法校驗(yàn)?zāi)K2-5,其工作流程如圖2所示;
字節(jié)分析模塊2-1,對主控模塊1傳送的ecu回復(fù)數(shù)據(jù)中的數(shù)據(jù)按字節(jié)進(jìn)行分析,并判斷有效數(shù)據(jù)位和數(shù)據(jù)算法類型,根據(jù)有效數(shù)據(jù)位和數(shù)據(jù)算法類型來選擇適用的修改方式將數(shù)據(jù)傳送至特定數(shù)值回復(fù)模塊2-2或批量修改回復(fù)模塊2-3或定值增減回復(fù)模塊2-4來改變ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù);并分析原廠診斷設(shè)備5的相應(yīng)診斷結(jié)果的變化規(guī)律,并得到數(shù)據(jù)算法;
特定數(shù)值回復(fù)模塊2-2,對有效數(shù)據(jù)位中的每一個(gè)字節(jié)逐一輸入特定數(shù)值,并將數(shù)據(jù)傳送至串口通信模塊3,特定數(shù)值包括00、7f、80、ff、01、??;;
批量修改回復(fù)模塊2-3,對有效數(shù)據(jù)位中的多個(gè)字節(jié)同時(shí)輸入特定的相同數(shù)值,并將數(shù)據(jù)傳送至串口通信模塊3;
定值增減回復(fù)模塊2-4,對有效數(shù)據(jù)位中的字節(jié)按照既定值進(jìn)行增值或減值修改數(shù)值,增值量和減值量為:+01、+10、-01、-10,并將數(shù)據(jù)傳送至串口通信模塊3;
算法校驗(yàn)?zāi)K2-5,將字節(jié)分析模塊2-1確定的算法內(nèi)置到待開發(fā)的診斷設(shè)備6上,將待開發(fā)的診斷設(shè)備6反饋的診斷結(jié)果與原廠診斷設(shè)備5的診斷結(jié)果進(jìn)行對比,驗(yàn)證數(shù)據(jù)的最高值、最低值和中間值,誤差不超過0.5%,表明字節(jié)分析模塊確定的數(shù)據(jù)算法正確。
所述的數(shù)據(jù)算法的確定方法是,將n組ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù)和原廠診斷設(shè)備的診斷結(jié)果輸入算法模型y=g(a,b,c…;x),并得到模型參數(shù)值,x為ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù),y為原廠診斷設(shè)備的診斷結(jié)果,n為算法模型中參數(shù)a,b,c…的個(gè)數(shù)。
所述的數(shù)據(jù)算法類型包括直接計(jì)算方式、開關(guān)量方式、查表方式、ascii碼字符方式、十六進(jìn)制方式、十進(jìn)制方式、二進(jìn)制方式、特殊方式和時(shí)間方式。
所述的主控模塊包括配置文件模塊1-1、初始化參數(shù)模塊1-2和數(shù)據(jù)校驗(yàn)?zāi)K1-3;
配置文件模塊1-1,加載ecu數(shù)據(jù)配置文件,將數(shù)據(jù)傳送至初始化參數(shù)模塊1-2;
初始化參數(shù)模塊1-2,設(shè)置串口rs232通信參數(shù)的串口號和波特率和obdii協(xié)議參數(shù),并將數(shù)據(jù)傳送至串口通信模塊3;
數(shù)據(jù)校驗(yàn)?zāi)K1-3,對串口通信模塊3的數(shù)據(jù)進(jìn)行校驗(yàn),通過內(nèi)校驗(yàn)方法檢驗(yàn)通信數(shù)據(jù)信息在通信傳輸中是否發(fā)生改變通過外校驗(yàn)對數(shù)據(jù)除校驗(yàn)位本身的所有字節(jié)按照選定方式進(jìn)行校驗(yàn),用來檢驗(yàn)數(shù)據(jù)在通信傳輸中是否發(fā)生改變,若內(nèi)校驗(yàn)和外檢驗(yàn)都通過則將數(shù)據(jù)傳送至高級功能模塊。同時(shí)選擇兩種校驗(yàn)方式可提高校驗(yàn)冗余度,確保數(shù)據(jù)在通信中沒有誤碼所述的數(shù)據(jù)校驗(yàn)?zāi)K1-3中的內(nèi)校驗(yàn)和外校驗(yàn)方法包括使用原數(shù)據(jù)、一字節(jié)和、一字節(jié)取反、一字節(jié)去補(bǔ)、一字節(jié)異或、一字節(jié)crc校驗(yàn)、一字節(jié)除倒數(shù)第二、benz_5bps、串口直接通信、卡特專用、gaz_0d、兩字節(jié)校驗(yàn)和。
所述的配置文件采用xml語言設(shè)計(jì),每一個(gè)配置文件對應(yīng)一個(gè)車型ecu,存儲(chǔ)該ecu通信協(xié)議初始化參數(shù)、診斷儀和所有功能的通信數(shù)據(jù)。
所述的配置文件采用層級結(jié)構(gòu)設(shè)計(jì),一級標(biāo)簽采用<auto>,二級標(biāo)簽采用<init_io>和<comm>,三級標(biāo)簽采用<rece>、<send>和<cmd>;所述的<init_io>標(biāo)簽的文本內(nèi)容包括設(shè)備初始化信息;<comm>標(biāo)簽的文本內(nèi)容包括所有命令的通信數(shù)據(jù);所述的標(biāo)簽<cmd>是協(xié)議初始化參數(shù)命令;所述的<rece>標(biāo)簽是為診斷設(shè)備發(fā)送命令;<send>標(biāo)簽是ecu返回給診斷設(shè)備命令,<rece>和<send>標(biāo)簽中有屬性hide、sd/rd。將xml語言中的這種層級標(biāo)簽設(shè)計(jì)與診斷設(shè)備中系統(tǒng)功能的層級結(jié)構(gòu)相對應(yīng),可簡化庫文件和程序代碼,提高程序運(yùn)行效率。
如圖3所示,一種汽車ecu的模擬方法,包括以下步驟:
步驟s1.主控模塊加載被模擬ecu的配置文件,設(shè)置初始化參數(shù)并數(shù)據(jù)校驗(yàn);
步驟s2.高級功能模塊從主控模塊獲取回復(fù)數(shù)據(jù),并在線實(shí)時(shí)改變ecu回復(fù)數(shù)據(jù),將數(shù)據(jù)傳送至串口通信模塊;
步驟s3.串口通信模塊將ecu回復(fù)數(shù)據(jù)數(shù)據(jù)發(fā)送至下位機(jī)模塊;
步驟s4.下位機(jī)模塊將ecu回復(fù)數(shù)據(jù)發(fā)送至原廠診斷設(shè)備,原廠診斷設(shè)備進(jìn)行診斷處理,并得到診斷結(jié)果,將診斷結(jié)果反饋至高級功能模塊;診斷處理是診斷設(shè)備根據(jù)接收到的模擬ecu回復(fù)的故障碼、數(shù)據(jù)流、動(dòng)作測試和特殊功能的數(shù)據(jù)來顯示相應(yīng)診斷結(jié)果,并執(zhí)行相應(yīng)的數(shù)據(jù)集;
步驟s5.高級功能模塊分析診斷結(jié)果,得到數(shù)據(jù)算法;
步驟s6.將確定的數(shù)據(jù)算法內(nèi)置到待開發(fā)的診斷設(shè)備中,根據(jù)待開發(fā)的診斷設(shè)備的診斷結(jié)果與原廠診斷設(shè)備的診斷結(jié)果比對,驗(yàn)證數(shù)據(jù)的最高值、最低值和中間值,如誤差不超過0.5%,則字節(jié)分析模塊確定的數(shù)據(jù)算法正確;如果誤差超過0.5%,則執(zhí)行步驟b。
所述的步驟s2中,線實(shí)時(shí)改變ecu回復(fù)數(shù)據(jù)的方法是,高級功能模塊先對主控模塊傳送的ecu回復(fù)數(shù)據(jù)中的數(shù)據(jù)按字節(jié)進(jìn)行分析,并判斷有效數(shù)據(jù)位和數(shù)據(jù)算法類型,選擇適用特定數(shù)值回復(fù)方式或批量修改回復(fù)方式或定值增減回復(fù)方式來改變ecu回復(fù)數(shù)據(jù)。
本發(fā)明可以在vs2012平臺(tái)下采用基于事件驅(qū)動(dòng)的vc++工具開發(fā)汽車ecu的模擬系統(tǒng)。
采用商業(yè)軟件ultraedit編輯xml配置文件,采用商業(yè)軟件altovaxmlspy檢查xml配置文件文件的語法規(guī)范。
實(shí)施例2
為更好地理解本發(fā)明的系統(tǒng)和方法,下面給出一個(gè)具體的實(shí)施例對對發(fā)明作進(jìn)一步的說明。
配置文件模塊,加載奔馳econic車型ecu數(shù)據(jù)配置文件,配置文件部分內(nèi)容如下:
初始化參數(shù)模塊,設(shè)置串口rs232通信參數(shù)的串口號為com2和波特率為115200bd/s和obdii協(xié)議參數(shù),obdii協(xié)議參數(shù)為:
<init_io>
<cmd>002c13010028a0020003c00477ffc1c105151924020400190603070200198019082509000a0000000b000c0100</cmd>
</init_io>
以發(fā)動(dòng)機(jī)扭矩參數(shù)為例來分析:
數(shù)據(jù)校驗(yàn)?zāi)K,內(nèi)校驗(yàn)采用一字和取反,外校驗(yàn)采用一字和,如命令000c338798f200000000ffffff4171中,41為通信數(shù)據(jù)“338798f200000000ffffff”一字和的內(nèi)校驗(yàn),71為“000c338798f200000000ffffff41”一字和取反的外校驗(yàn)。
分析字節(jié)分析模塊,根據(jù)ecu回復(fù)命令中“00000000”對應(yīng)的樣本數(shù)據(jù)“0”,分析有效數(shù)據(jù)位為x04,x03,x02,x01和數(shù)據(jù)算法類型為數(shù)值型,本實(shí)施例采用直接計(jì)算的格式,其算法為數(shù)值型算法:y=g(a,b,c,d,e;x04,x03,x02,x01)。
選擇定值增減回復(fù)模塊,對有效數(shù)據(jù)位中的字節(jié)按照既定值進(jìn)行增操作如+01,得到五組數(shù)據(jù)00000000;00000001;00000100;00010000;01000000。
字節(jié)分析模塊將5組ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù)00000000;00000001;00000100;00010000;01000000和奔馳原廠診斷設(shè)備的診斷結(jié)果0.0,0.1,25.6,6553.5,1677721.6輸入發(fā)動(dòng)機(jī)扭矩參數(shù)的算法模型y=([x04]*a+[x03]*b+[x02]*c+[x01]*d)*0.1+e,并得到模型參數(shù)值y=([x04]*16777216+[x03]*65536+[x02]*256+[x01])*0.1,x01,x02,x03,x04為ecu回復(fù)數(shù)據(jù)中有效數(shù)據(jù),y為奔馳原廠診斷設(shè)備的診斷結(jié)果數(shù)據(jù)。
算法校驗(yàn)?zāi)K,將字節(jié)分析模塊確定的算法內(nèi)置到待開發(fā)的診斷設(shè)備上,將待開發(fā)的診斷設(shè)備反饋的診斷結(jié)果與原廠診斷設(shè)備的診斷結(jié)果進(jìn)行對比,驗(yàn)證數(shù)據(jù)的最高值如ffffffff、最低值00000000和中間值8080808080,其誤差為0.1%,0.0%和0.1%,表明字節(jié)分析模塊確定的數(shù)據(jù)算法正確。