文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.035
中文引用格式: 張俊峰,肖兵,,童天涯. 面向異構(gòu)網(wǎng)絡(luò)的整車(chē)控制器標(biāo)定系統(tǒng)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2015,41(12):133-136.
英文引用格式: Zhang Junfeng,,Xiao Bing,,Tong Tianya. The implementation of vehicle controller calibration system for heterogeneous network[J].Application of Electronic Technique,2015,,41(12):133-136.
0 引言
由于新能源汽車(chē)車(chē)載網(wǎng)絡(luò)的復(fù)雜性,,傳統(tǒng)汽車(chē)領(lǐng)域的測(cè)量與標(biāo)定工具并不適合新能源汽車(chē)的研發(fā)需求,。新的通訊方式和標(biāo)定協(xié)議也在不斷發(fā)展并得到應(yīng)用,如歐洲汽車(chē)公司成立的標(biāo)準(zhǔn)化組織ASAP于1992年推出了基于CAN(Controller Area Network)總線(xiàn)的CCP協(xié)議以及其后的升級(jí)版本XCP協(xié)議,。在車(chē)載控制器的匹配過(guò)程中,,需要根據(jù)整車(chē)的各種性能要求(如動(dòng)力性、經(jīng)濟(jì)性,、排放及輔助功能等)來(lái)調(diào)整,、優(yōu)化和確定整車(chē)上各ECU(電子控制單元)的運(yùn)行及控制參數(shù)的控制算法[1]。新能源汽車(chē)整車(chē)控制器包含并涉及多門(mén)學(xué)科的多個(gè)系統(tǒng),,如機(jī)械傳動(dòng)領(lǐng)域,、電機(jī)驅(qū)動(dòng)領(lǐng)域和電化學(xué)等,它的本質(zhì)就是一種異構(gòu)網(wǎng)絡(luò),。由于傳統(tǒng)的標(biāo)定系統(tǒng)沒(méi)有基于較好的標(biāo)準(zhǔn)和協(xié)議規(guī)范,,也無(wú)法適應(yīng)新能源車(chē)內(nèi)部復(fù)雜異構(gòu)網(wǎng)絡(luò)的苛刻需求,而國(guó)外產(chǎn)品產(chǎn)業(yè)鏈價(jià)格昂貴且技術(shù)開(kāi)放度差,,從而實(shí)現(xiàn)一套面向異構(gòu)網(wǎng)絡(luò)的新能源車(chē)整車(chē)控制器測(cè)量與標(biāo)定系統(tǒng)具有極高的應(yīng)用價(jià)值,。
1 XCP協(xié)議介紹
XCP協(xié)議是基于不同通訊平臺(tái)的測(cè)量標(biāo)定協(xié)議的總稱(chēng),可以基于CAN總線(xiàn),、LIN總線(xiàn),、USB總線(xiàn)等不同總線(xiàn),最常見(jiàn)的是“XCP on CAN”,。CAN總線(xiàn)是德國(guó)BOSCH公司為現(xiàn)代汽車(chē)應(yīng)用領(lǐng)域推出的一種多主局域網(wǎng),。它實(shí)現(xiàn)了汽車(chē)電子的網(wǎng)絡(luò)化,大幅度減少了汽車(chē)內(nèi)的線(xiàn)束,,實(shí)現(xiàn)了數(shù)據(jù)共享[2],。圖1為“XCP on CAN”的消息幀結(jié)構(gòu),幀頭為空,,幀尾為填充位,,消息最大長(zhǎng)度為8 B,ID標(biāo)識(shí)域用來(lái)辨識(shí)數(shù)據(jù)包類(lèi)型和數(shù)據(jù)區(qū)內(nèi)容,,F(xiàn)ILL為對(duì)齊選項(xiàng),,DAQ為DTO(Data Transfer Object)數(shù)據(jù)包在數(shù)據(jù)請(qǐng)求列表中的索引,時(shí)間表示域?yàn)榭蛇x項(xiàng),,DATA存放相應(yīng)數(shù)據(jù)[3],。XCP協(xié)議通訊模式采用主從通訊方式,主機(jī)發(fā)送命令,,從機(jī)應(yīng)答,。XCP數(shù)據(jù)包分為兩種類(lèi)型:指令傳輸包CTO(Command Transfer Object)和同步數(shù)據(jù)包DTO[4-6],,主機(jī)發(fā)送不同的CTO建立與從機(jī)的邏輯連接,請(qǐng)求從機(jī)回應(yīng)DTO,,另外CTO可以請(qǐng)求啟動(dòng)DAQ(數(shù)據(jù)采集)模式定時(shí)發(fā)送數(shù)據(jù),。
2 標(biāo)定系統(tǒng)總體架構(gòu)
如圖2所示,整個(gè)標(biāo)定系統(tǒng)框架遵循ASAP標(biāo)準(zhǔn)和XCP通訊協(xié)議,。上位機(jī)通過(guò)Kvaser設(shè)備將USB信號(hào)轉(zhuǎn)為CAN信號(hào)與整車(chē)控制器進(jìn)行通訊,。A2L文件獨(dú)立于上位機(jī)和整車(chē)控制器,完成整車(chē)控制器所有相關(guān)參數(shù)的詳細(xì)定義和描述,,上位機(jī)通過(guò)讀取A2L文件來(lái)完成對(duì)整車(chē)控制器的測(cè)量和標(biāo)定工作,。整車(chē)控制器通過(guò)不同的總線(xiàn)接口與外部子系統(tǒng)相連,不同的總線(xiàn)接口與子系統(tǒng)構(gòu)成了復(fù)雜的異構(gòu)網(wǎng)絡(luò),。
該標(biāo)定系統(tǒng)以PC機(jī)作為上位機(jī),,主要集成測(cè)量、標(biāo)定和診斷模塊,、數(shù)據(jù)庫(kù)管理模塊,、XCP協(xié)議解析模塊及A2L文件解析器。測(cè)量,、標(biāo)定和診斷窗口采用C#技術(shù)搭建,,可實(shí)現(xiàn)ECU數(shù)據(jù)的監(jiān)測(cè)、在線(xiàn)修改和故障診斷功能,。數(shù)據(jù)庫(kù)模塊可根據(jù)用戶(hù)需求完成對(duì)相關(guān)參數(shù)值的存儲(chǔ)、修改,、刪除及查找功能,。A2L文件解析器集成于上位機(jī)中,完成A2L文件的讀取和解析,,將相關(guān)參數(shù)的定義轉(zhuǎn)換為相應(yīng)存儲(chǔ)格式存儲(chǔ),,依此,上位機(jī)可精確找出具體參數(shù)的詳細(xì)地址,、大小和數(shù)據(jù)格式等信息,。XCP協(xié)議解析模塊完成XCP協(xié)議的封裝和解析。
底層標(biāo)定軟件由XCP Driver,、CAN Driver,、應(yīng)用層程序組成。XCP Driver實(shí)現(xiàn)整個(gè)XCP協(xié)議的協(xié)議層,,包括XCP命令的解析,、處理、回復(fù)及數(shù)據(jù)的采集等,;CAN Driver作為XCP傳輸層,,與PC機(jī)標(biāo)定軟件進(jìn)行通訊,;應(yīng)用層程序主要實(shí)現(xiàn)對(duì)特定任務(wù)的調(diào)度。其中,,XCP Driver層可根據(jù)數(shù)據(jù)包的形式判斷是指令數(shù)據(jù)包CTO還是同步數(shù)據(jù)包DTO,,從而決定調(diào)用的是命令處理機(jī)還是DAQ處理機(jī)。
3 標(biāo)定系統(tǒng)上位機(jī)的實(shí)現(xiàn)
3.1 A2L文件解析器的設(shè)計(jì)
A2L文件以模塊為單元進(jìn)行層次劃分,,每個(gè)模塊以/begin開(kāi)頭,,以/end來(lái)結(jié)尾,MEASUREMENT模塊描述了監(jiān)測(cè)參數(shù)的詳細(xì)信息,,CHARACTERTSTIC模塊定義了標(biāo)定參數(shù)的詳細(xì)信息,,它們的數(shù)據(jù)格式參考關(guān)鍵字RECORD_LAYOUT,轉(zhuǎn)換方法參考關(guān)鍵字COMPU_METHOD[4],。將A2L文件按照文件信息來(lái)處理,,逐行讀取并進(jìn)行字符串操作,取出其中描述的關(guān)鍵信息,,按照轉(zhuǎn)換方式轉(zhuǎn)換即可轉(zhuǎn)換為相應(yīng)物理值,。因?yàn)榻馕鲞^(guò)程比較復(fù)雜,采用先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)來(lái)建立相應(yīng)關(guān)鍵字和嵌套關(guān)鍵字的邏輯關(guān)系,,A2L文件解析流程如圖3所示,。
3.2 XCP協(xié)議驅(qū)動(dòng)程序的設(shè)計(jì)
PC機(jī)與ECU間基于XCP協(xié)議的通訊方式為標(biāo)準(zhǔn)通訊模式,即PC機(jī)發(fā)出命令得到ECU的應(yīng)答后才能發(fā)出下一條命令,。為了滿(mǎn)足基本要求,,上位機(jī)中設(shè)計(jì)了4個(gè)XCP功能函數(shù),分別為建立對(duì)話(huà)函數(shù),、參數(shù)標(biāo)定函數(shù),、同步數(shù)據(jù)傳輸函數(shù)以及結(jié)束對(duì)話(huà)函數(shù)。XCP功能函數(shù)列表如表1所示,。
Setting_Up_Session()函數(shù)建立會(huì)話(huà)連接并完成主從信息的交換,。Calibration()函數(shù)可完成參數(shù)的標(biāo)定功能。DAQ_data_transfer()函數(shù)可調(diào)用DAQ處理機(jī)監(jiān)測(cè)數(shù)據(jù),。結(jié)束會(huì)話(huà)函數(shù)Closing_session()結(jié)束XCP對(duì)話(huà),。
4 底層軟件系統(tǒng)的設(shè)計(jì)
XCP的數(shù)據(jù)包分為兩種類(lèi)型,指令數(shù)據(jù)包(CTO)和同步數(shù)據(jù)包(DTO),,上位機(jī)發(fā)送指令包時(shí),,經(jīng)過(guò)XCP傳輸層將CAN信息發(fā)送給XCP驅(qū)動(dòng)層進(jìn)行解析處理,從中獲得指令碼,,從CMD函數(shù)列表中運(yùn)行對(duì)應(yīng)指令碼的執(zhí)行函數(shù),,進(jìn)行相應(yīng)處理并返回結(jié)果,XCP傳輸層將結(jié)果傳輸至CAN總線(xiàn)。當(dāng)上位機(jī)發(fā)送同步數(shù)據(jù)包時(shí),,ECU開(kāi)啟DAQ模式,,從事先已經(jīng)配置好的DAQ列表中,根據(jù)對(duì)應(yīng)內(nèi)存地址及地址長(zhǎng)度信息,,將對(duì)應(yīng)內(nèi)存中的數(shù)據(jù)通過(guò)XCP傳輸層傳輸至CAN總線(xiàn),。每次執(zhí)行完CAN的發(fā)送和接收后,都要執(zhí)行發(fā)送和接收完處理,,設(shè)置狀態(tài)位,,釋放緩沖區(qū)數(shù)據(jù),以便于開(kāi)始下一波處理,。
通過(guò)設(shè)計(jì)不同的函數(shù)接口,,將CAN傳輸層和CAN驅(qū)動(dòng)層以及應(yīng)用層銜接起來(lái),實(shí)現(xiàn)基于XCP協(xié)議的數(shù)據(jù)通訊,。各類(lèi)函數(shù)接口和邏輯關(guān)系如圖4所示,。
各接口功能定義如下:
(1)Can_Init函數(shù)完成CAN模塊的初始化;
(2)XcpRx_CallBack函數(shù)對(duì)接收到的CAN數(shù)據(jù)進(jìn)行初步解析后放入相應(yīng)通道的接收緩沖區(qū)中,,設(shè)置接收緩沖區(qū)的狀態(tài),;
(3)XcpTx_CallBack函數(shù)對(duì)發(fā)送完CAN數(shù)據(jù)后進(jìn)行發(fā)送完處理,管理發(fā)送緩沖區(qū),;
(4)Can_Transmit函數(shù)完成對(duì)應(yīng)郵箱中數(shù)據(jù)的發(fā)送,,即CAN數(shù)據(jù)發(fā)送函數(shù);
(5)Xcp_Init函數(shù)完成XCP驅(qū)動(dòng)模塊的初始化工作,;
(6)Cmd_Professor函數(shù)查詢(xún)各通道中的命令并進(jìn)行解析,,調(diào)用相應(yīng)函數(shù)列表中的處理函數(shù)去執(zhí)行命令;
(7)Daq_Processor函數(shù)完成DAQ模式的處理,,根據(jù)配置將DAQ列表指向的內(nèi)容發(fā)送出去,;
(8)Xcp_Event函數(shù)用于應(yīng)用層觸發(fā)事件,可根據(jù)要求進(jìn)行同步數(shù)據(jù)傳輸,。
應(yīng)用層用于對(duì)不同任務(wù)間的指揮和調(diào)度,系統(tǒng)測(cè)量與標(biāo)定總流程圖如圖5所示,。系統(tǒng)開(kāi)始工作時(shí),,執(zhí)行CONNECT命令,建立主從設(shè)備間的連接,;讀取ECU的參數(shù)描述文件,,即A2L文件;開(kāi)始進(jìn)行系統(tǒng)初始化,,包括CAN初始化,,XCP初始化,DAQ列表的配置及標(biāo)定參數(shù)內(nèi)存的初始化;接下來(lái)分析主機(jī)發(fā)送過(guò)來(lái)的會(huì)話(huà)命令,,如果是開(kāi)啟DAQ模式,,則執(zhí)行DAQ的自動(dòng)開(kāi)啟發(fā)送,在系統(tǒng)主循環(huán)程序中周期執(zhí)行DAQ列表處理任務(wù),,周期由DAQ列表所配置的周期決定,;如果是參數(shù)標(biāo)定命令,則在A2L文件中查找參數(shù)的相關(guān)信息,,將標(biāo)定值下載到RAM,,從而完成在線(xiàn)標(biāo)定,為了保證掉電不丟失,,需要將相應(yīng)標(biāo)定數(shù)據(jù)燒寫(xiě)進(jìn)FLASH單元,;執(zhí)行完判斷處理后進(jìn)入系統(tǒng)主循環(huán),循環(huán)遍歷是否有XCP命令處理等其他任務(wù),,有則執(zhí)行,,無(wú)則繼續(xù)等待。
5 標(biāo)定系統(tǒng)的應(yīng)用
將多核芯片為主控芯片的ECU通過(guò)接線(xiàn)端子與實(shí)驗(yàn)室控制模擬臺(tái)架相連接,,在PC端通過(guò)監(jiān)控標(biāo)定軟件界面來(lái)查看各類(lèi)傳感器采集信號(hào)和整車(chē)控制器的一些重要參數(shù)的實(shí)時(shí)信息,,并可以針對(duì)點(diǎn)火提前角、噴氣脈寬,、替代率等重要參數(shù)進(jìn)行在線(xiàn)修改和查看比較,,以曲線(xiàn)的形式展現(xiàn)結(jié)果。通過(guò)標(biāo)定軟件控制節(jié)氣門(mén)閥片的位置,,改變和調(diào)節(jié)噴氣脈寬來(lái)對(duì)不同工況進(jìn)行優(yōu)化,,經(jīng)過(guò)大量實(shí)驗(yàn),標(biāo)定的噴氣脈寬MAP圖如圖6所示,,相應(yīng)的外特性曲線(xiàn)如圖7所示,。
上位機(jī)中的標(biāo)定軟件采用C#語(yǔ)言進(jìn)行開(kāi)發(fā),利用WPF技術(shù)創(chuàng)建控件并完成封裝,,將圖形與代碼完美隔離開(kāi)來(lái),,提高界面的美觀(guān)性、通用性和可移植性,。上位機(jī)的測(cè)量標(biāo)定工作可監(jiān)測(cè)到整車(chē)控制器的主要參數(shù)以及傳感器的采集信號(hào),,分別以報(bào)文表、儀表盤(pán)和波形圖的形式顯示給用戶(hù),,其中包括蓄電池電壓,、電池溫度、噴氣脈寬等重要參數(shù),。示例界面獲取的是不同轉(zhuǎn)速情況下的噴氣脈寬值,,通過(guò)標(biāo)定系統(tǒng)改變不同轉(zhuǎn)速值,,可得到相應(yīng)噴氣脈寬值變化情況。測(cè)量標(biāo)定界面如圖8所示,。
6 總結(jié)
經(jīng)過(guò)上述的研究和開(kāi)發(fā),,通過(guò)實(shí)驗(yàn)室配有整車(chē)控制器ECU的臺(tái)架上試驗(yàn),驗(yàn)證了實(shí)時(shí)監(jiān)測(cè)和在線(xiàn)標(biāo)定功能,。其特色在于該標(biāo)定系統(tǒng)主要適用于新能源汽車(chē),,可通過(guò)對(duì)整車(chē)控制器的標(biāo)定實(shí)現(xiàn)復(fù)雜異構(gòu)網(wǎng)絡(luò)系統(tǒng)的標(biāo)定和優(yōu)化,采用國(guó)際ASAP標(biāo)準(zhǔn)和通用XCP協(xié)議,,具有較好的移植性和通用性,。
參考文獻(xiàn)
[1] 李計(jì)融,鐘再敏.車(chē)載控制器匹配標(biāo)定ASAP標(biāo)準(zhǔn)綜述[J].汽車(chē)技術(shù),,2004,,10:1-4.
[2] 顧衛(wèi)鋼.手把手教你學(xué)DSP—基于TMS320X281x[M].北京:北京航空航天大學(xué)出版社,2011.
[3] ASAM_XCP_Part2-Protocol-Layer-Specification_V1.0.0.
[4] ASAM_XCP_Part3-Transport-Layer-Specification_XCP onCAN_V1.0.0.
[5] 宋維群,,楊世春,,李明,等.基于ASAM標(biāo)準(zhǔn)的標(biāo)定數(shù)據(jù)庫(kù)邏輯分析與編程實(shí)現(xiàn)[J].汽車(chē)技術(shù),,2012(1):10-13.
[6] ASAM_XCP_Part4-Interface-Specification_V1.0.0.