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