摘 要:本文分析了車用CAN總線網(wǎng)絡(luò)的特征,設(shè)計并實現(xiàn)了車用CAN總線網(wǎng)絡(luò)快速原型系統(tǒng),解決了將基于快速原型的嵌入式軟件設(shè)計和基于網(wǎng)絡(luò)仿真的系統(tǒng)分析相結(jié)合的問題。最后使用THECU-2003硬件平臺與Simulink下的控制模型共同組成的實驗環(huán)境驗證了系統(tǒng)設(shè)計的有效性。
關(guān)鍵詞:CAN總線網(wǎng)絡(luò);快速原型;車用電控單元
Abstract:This paper analyzed the characteristics of vehicle CAN bus, then designed and implemented the rapid prototyping system for vehicle CAN bus. It solved the problem on how to integrate module based embedded software development with network simulation based system analysis. In the end of this paper it verified the validity of the platform by using the experiment composed by THECU-2003 hardware platform and control models built in Simulink.
Key words:CAN bus; rapid prototyping; electric control unit
1 引言
隨著車用網(wǎng)絡(luò)中被控節(jié)點數(shù)量和控制復(fù)雜度的不斷增加,為了滿足控制要求、降低控制系統(tǒng)開發(fā)成本,汽車生產(chǎn)廠商和汽車設(shè)計單位對車用嵌入式軟件開發(fā)工具的要求越來越高。目前,市場上已經(jīng)存在一些針對這一應(yīng)用領(lǐng)域的軟件開發(fā)技術(shù)和軟件開發(fā)工具,例如基于快速原型的軟件設(shè)計技術(shù)和MATLAB/Simulink、dSPACE開發(fā)工具?;诳焖僭偷能浖O(shè)計技術(shù)是指軟件設(shè)計者通過創(chuàng)建和維護(hù)嵌入式軟件的功能模型來描述軟件功能,并且使用面向微處理器的自動代碼生成技術(shù)實現(xiàn)下位機(jī)代碼快速生成的軟件開發(fā)方法。使用這一技術(shù)可以提高嵌入式軟件的開發(fā)效率,降低開發(fā)成本。
但是目前的軟件開發(fā)工具都側(cè)重于單電控單元(ECU)建模和驗證軟件在單ECU環(huán)境下的執(zhí)行效率和性能;對控制策略在網(wǎng)絡(luò)場景下的魯棒性和特征分析支持有限。另一方面,網(wǎng)絡(luò)協(xié)議仿真和分析工具,如OPNET雖然可以提供網(wǎng)絡(luò)場景下協(xié)議性能的分析[6],但是由于OPNET上開發(fā)的仿真代碼無法直接移植到控制器上,所以開發(fā)工作不能方便地實現(xiàn)針對目標(biāo)系統(tǒng)的重用。
如果我們針對車用CAN總線網(wǎng)絡(luò)的應(yīng)用場景,將基于快速原型的嵌入式軟件設(shè)計和基于網(wǎng)絡(luò)仿真的分析相結(jié)合,實現(xiàn)車用CAN總線網(wǎng)絡(luò)的快速原型。在設(shè)計前期用模型定義的虛擬硬件代替沒有設(shè)計完成或者擁有成本太高的實際硬件,進(jìn)行初期的系統(tǒng)設(shè)計分析;當(dāng)相應(yīng)的硬件到位后,替換虛擬硬件,將模型代碼轉(zhuǎn)化成面向目標(biāo)系統(tǒng)的目標(biāo)代碼,進(jìn)行更接近實際系統(tǒng)的驗證分析;最后當(dāng)所有實際控制軟件、控制器硬件和被控硬件都完成時,進(jìn)行集成的全系統(tǒng)實時仿真。這樣可以解決使用相互獨立的工具開發(fā)模型和進(jìn)行仿真驗證所存在的問題。
本文通過對車用CAN總線網(wǎng)絡(luò)快速原型的設(shè)計實現(xiàn),提供了一種對車用CAN總線網(wǎng)絡(luò)進(jìn)行設(shè)計、仿真和性能分析的系統(tǒng);系統(tǒng)使用虛擬硬件的方法,通過在Simulink中構(gòu)造典型車用環(huán)境相關(guān)的控制器模型和被控對象模型,以及在Windows環(huán)境下構(gòu)造CAN卡仿真程序TH-CAN-Vcard和CAN總線分析工具TH-CAN_Scope,針對車用CAN總線網(wǎng)絡(luò)場景,實現(xiàn)了CAN總線網(wǎng)絡(luò)環(huán)境下控制策略仿真分析和控制代碼生成的有機(jī)結(jié)合。
2 系統(tǒng)設(shè)計與實現(xiàn)
2.1 車用CAN總線網(wǎng)絡(luò)的特征分析
CAN 總線是一種串行通信總線。使用帶有沖突檢測的載波偵聽多路訪問方式(即CSMA/CD)進(jìn)行總線仲裁與控制。為了對車用CAN總線在網(wǎng)絡(luò)場景下的性能進(jìn)行規(guī)范,國際標(biāo)準(zhǔn)化組織ISO和美國汽車工程師協(xié)會SAE對CAN通信診斷的基準(zhǔn)環(huán)境都制訂了相關(guān)的國際標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)依據(jù)CAN協(xié)議的分層結(jié)構(gòu),從不同層次定義基準(zhǔn)測試要求。例如:SAE J2012和ISO/DIS 15031-6對應(yīng)應(yīng)用層故障診斷的定義;[3] [7]ISO/DIS15765-2對應(yīng)網(wǎng)絡(luò)層通信協(xié)議,通過定義無應(yīng)答分段數(shù)據(jù)傳送協(xié)議(USDT)提供長消息數(shù)據(jù)分段/重組、帶流量控制的數(shù)據(jù)傳輸和板上控制單元與板外測試工具間消息的超時處理控制。[2]
另一方面,各個汽車生產(chǎn)廠家也根據(jù)這些國際標(biāo)準(zhǔn)制訂了自己的企業(yè)標(biāo)準(zhǔn),用以規(guī)范ECU產(chǎn)品供應(yīng)商的產(chǎn)品。如戴姆勒克萊斯勒-奔馳集團(tuán)的CAN通信標(biāo)準(zhǔn)軟件模型分為車輛診斷相關(guān)的模塊和與車輛診斷無關(guān)的模塊兩部分。其中車輛診斷相關(guān)的模塊又分為診斷協(xié)議服務(wù)(KWP2000)和網(wǎng)絡(luò)傳輸協(xié)議服務(wù) (ISO-15765-2) ,分別對應(yīng)應(yīng)用層服務(wù)和網(wǎng)絡(luò)層服務(wù)的功能描述,定義相關(guān)的基準(zhǔn)環(huán)境參數(shù)和測試消息序列。[2]
這些標(biāo)準(zhǔn)對于車用環(huán)境下基于CAN總線的診斷服務(wù)的內(nèi)容、網(wǎng)絡(luò)傳送消息序列間的邏輯關(guān)系和時延要求給出了詳細(xì)定義。而依據(jù)這些要求,提供一個CAN總線網(wǎng)絡(luò)快速原型,真實地模擬具有給定特征的消息序列和數(shù)據(jù)流,再現(xiàn)可能出現(xiàn)的干擾和誤碼信號就是本設(shè)計的核心技術(shù)工作。這一工作成果可以提供對網(wǎng)絡(luò)流量、網(wǎng)絡(luò)效率和網(wǎng)絡(luò)響應(yīng)間相互關(guān)系的分析功能,仿真和驗證車用CAN網(wǎng)絡(luò)環(huán)境中ECU控制代碼的魯棒性和實時性。
2.2 快速原型系統(tǒng)的結(jié)構(gòu)與實現(xiàn)
本快速原型系統(tǒng)有三類節(jié)點:有物理CAN硬件接口的實際CAN節(jié)點、由TH-CAN-Vcard與Simulink模型組成的虛擬CAN節(jié)點和運(yùn)行TH-CAN-Scope分析工具的監(jiān)控節(jié)點。在設(shè)計仿真實驗時,節(jié)點的數(shù)目沒有限制,僅受具體的CAN應(yīng)用層的編址方案影響。第一類節(jié)點是我們通常使用的CAN節(jié)點,這里重點描述后兩類節(jié)點的實現(xiàn)。
2.2.1 虛擬CAN節(jié)點
虛擬CAN節(jié)點由TH-CAN-Vcard與Simulink模型組成,節(jié)點實現(xiàn)如圖1所示。當(dāng)物理CAN卡不存在時,采用虛擬硬件技術(shù),通過選擇CAN卡驅(qū)動庫提供的虛擬CAN通道,同時將開發(fā)的VCANCtrl控制對象實例化成COM服務(wù)器(COM Server)就可以在單機(jī)下建立COM服務(wù)器與MATLAB中模型(作為COM客戶機(jī))間的聯(lián)系。虛擬接收/發(fā)送CAN消息到CAN總線的過程,為Simulink下建立的模型提供基本的CAN通信測試功能。
當(dāng)物理CAN卡存在時,可以直接將模型中的目標(biāo)CAN通道進(jìn)行修改,從而使MATLAB中的模型具備與其它物理CAN節(jié)點通信的功能,這時多個位于不同PC機(jī)上的模型和多個ECU硬件上的控制器代碼可以通過CAN總線建立一個車用CAN網(wǎng)絡(luò)仿真分析環(huán)境。
[align=center]
圖1 虛擬CAN節(jié)點的實現(xiàn)[/align]
TH-CAN-Vcard則是在Windows環(huán)境下使用Visual Studio .NET和KVASER公司CAN卡驅(qū)動庫開發(fā)的CAN卡仿真程序。我們通過ActiveX技術(shù)開發(fā)了VCANCtrl控制對象,并在VCANCtrl中實現(xiàn)了以下的內(nèi)部函數(shù):
VCAN_Read 報文接收函數(shù);入口參數(shù)為CAN通道句柄、返回參數(shù)為在接收緩沖區(qū)中的CAN報文的ID、數(shù)據(jù)包、長度、標(biāo)識和時間戳。
VCAN_Write 報文發(fā)送函數(shù);入口參數(shù)為CAN通道句柄,以及待發(fā)送CAN報文的ID、數(shù)據(jù)包、長度和標(biāo)識。
VCAN_Start CAN卡初始化函數(shù);入口參數(shù)為所選CAN通道號、波特率、通道開啟模式、同步模式和同步段,以及CAN控制器工作模式。
VCAN_Close CAN卡關(guān)閉函數(shù);入口參數(shù)是CAN卡初始化成功時所返回的句柄。
2.2.2 監(jiān)控節(jié)點
監(jiān)控節(jié)點是進(jìn)行CAN總線消息序列監(jiān)測和控制的節(jié)點,運(yùn)行TH-CAN-Scope - CAN消息仿真分析工具。TH-CAN-Scope是仿真CAN消息序列和進(jìn)行仿真結(jié)果記錄分析的工具,是使用KVASER公司的CANLIB SDK開發(fā)的 Windows 下的應(yīng)用程序。
TH-CAN-Scope的CAN消息處理功能包括:創(chuàng)建/編輯消息流序列、CAN通信管理、CAN消息序列跟蹤、控制臺人機(jī)接口和用于消息序列管理的數(shù)據(jù)庫維護(hù)。其中創(chuàng)建/編輯消息流序列、CAN消息序列跟蹤、控制臺人機(jī)接口和與數(shù)據(jù)庫操作相關(guān)的消息序列管理使用用戶線程。而CAN通信管理對實時性要求較高,使用獨立的工作線程,兩個線程通過使用Windows 下的消息處理機(jī)制相互通信。
另外,TH-CAN-Scope提供的分析功能包括:在線顯示CAN報文、在線統(tǒng)計CAN總線的使用情況、記錄總線上的CAN報文、主動發(fā)送/循環(huán)發(fā)送CAN擾動報文。并且將一段時間內(nèi)收集的CAN報文記錄在數(shù)據(jù)庫中,可以進(jìn)行更詳細(xì)深入的性能分析,通過使用CAN報文編輯工具,可以指定監(jiān)控節(jié)點在時間觸發(fā)(在指定的相對時間發(fā)送某個/某組CAN消息)和事件觸發(fā)(收到某個CAN報文或收到某類CAN報文時發(fā)送指定的CAN報文序列)機(jī)制下發(fā)送觸發(fā)報文,以考察CAN總線的性能。
2.3 系統(tǒng)實現(xiàn)技術(shù)
2.3.1 MATLAB外部程序接口的實現(xiàn)
TH-CAN-Vcard為MATLAB下的控制器模型和被控模型提供CAN通信的功能,采用了COM技術(shù)。與用DDE技術(shù)實現(xiàn)的Matlab外部通信方式相比[4], COM技術(shù)的性能更好,在Emanuele Ruffaldi等人所做的測試中, COM與DDE相比,寫性能提高了10倍,讀性能提高了30多倍[5]; 另外MATHWORKS 對 DDE接口現(xiàn)在也不再進(jìn)行繼續(xù)的開發(fā),而推薦使用COM接口。
具體使用時,首先我們在Simulink中構(gòu)造VCAN發(fā)送模塊和VCAN接收模塊,使用M語言中的actxcontrol命令將VCANCtrl COM對象實例化,獲得其句柄,然后就可以通過這個實例化句柄調(diào)用COM對象中相應(yīng)的VCAN_Write和VCAN_Read函數(shù),實現(xiàn)Matlab中控制模型的CAN通信支持,在使用上等同于一個有句柄的設(shè)備。
2.3.2 數(shù)據(jù)流模擬和節(jié)點同步的實現(xiàn)
為了在CAN總線上產(chǎn)生指定的CAN消息序列,我們通過TH-CAN-Scope定義需要的報文序列,然后通過時間觸發(fā)和事件觸發(fā)相結(jié)合的方式,定義對總線上的CAN消息的響應(yīng)操作,而相應(yīng)的控制邏輯,則通過Simulink模型來實現(xiàn)。所以實際的控制策略類似于分布于各個CAN節(jié)點中。
節(jié)點間的同步是指在總線上的所有CAN節(jié)點應(yīng)該能夠在某一時刻同時產(chǎn)生各自指定的消息序列。使用由TH-CAN-Scope廣播發(fā)送自定義的CAN同步發(fā)送消息,啟動各節(jié)點計時器的方式,可以實現(xiàn)一定精度的節(jié)點同步。
2.3.3 CAN總線性能分析的實現(xiàn)
在進(jìn)行CAN總線的性能分析時,我們實現(xiàn)了以下的分析功能:考察總線負(fù)載(包括節(jié)點數(shù)、各節(jié)點信息量和各節(jié)點設(shè)置的總線速率)的影響;考察節(jié)點優(yōu)先級策略的影響;考察容錯策略(例如發(fā)送接收錯誤率過高的節(jié)點應(yīng)該主動退出CAN總線網(wǎng)絡(luò))的影響;以及考察CAN網(wǎng)絡(luò)實時性能,主要包括網(wǎng)絡(luò)報文消息時延的大小范圍以及報文消息時延的變化。其中,時延大小描述了報文時延的靜態(tài)特性,而時延變化則描述了報文時延的動態(tài)特性。
3 系統(tǒng)功能測試與分析
為了驗證快速原型系統(tǒng)對多ECU下虛擬硬件和實際硬件混合仿真的支持,我們設(shè)計了圖2所示的系統(tǒng)功能測試實驗平臺:其中ECU-A和ECU-B是兩個獨立的硬件ECU,采用實驗室開發(fā)的TH-ECU2003控制器;ECU-C和ECU-D是在Simulink中開發(fā)的兩個獨立的控制模型,通過VCAN發(fā)送模塊和VCAN接收模塊實現(xiàn)軟件仿真CAN卡功能,是虛擬硬件。在測試中,通過在各節(jié)點過濾接收到的CAN消息,控制通信流程如圖2所示,即ECU-A -> ECU-B -> ECU-C ->ECD-D -> ECU-A。從而驗證虛擬硬件和實際硬件混合仿真下的所有場景。
[align=center]
圖2 快速原型系統(tǒng)功能測試的實驗平臺[/align]
實驗中,使用TH-CAN-Scope作為監(jiān)控軟件,對CAN總線上的數(shù)據(jù)進(jìn)行了5s的數(shù)據(jù)采集,并對節(jié)點間2000多條CAN消息報文的時延均值和標(biāo)準(zhǔn)方差進(jìn)行分析(這里的時延包括了節(jié)點的處理時延和節(jié)點間的傳輸時延),分析結(jié)果見表1,實驗證明系統(tǒng)中任意兩個節(jié)點間都能進(jìn)行正常的通信,滿足測試要求,驗證了系統(tǒng)設(shè)計的有效性。
表1 實驗中的CAN消息報文時延分析
4 結(jié)論
本文針對現(xiàn)有ECU軟件開發(fā)工具側(cè)重于單ECU建模和現(xiàn)有網(wǎng)絡(luò)仿真工具中的開發(fā)代碼在目標(biāo)系統(tǒng)上重用比較困難的問題,設(shè)計并實現(xiàn)了車用CAN總線網(wǎng)絡(luò)快速原型系統(tǒng)。最后,通過用THECU-2003硬件平臺與Simulink下的控制模型共同組成的仿真環(huán)境驗證了快速原型系統(tǒng)設(shè)計的有效性。
參考文獻(xiàn):
[1] Anthony M. Phillips, Functional Decomposition in a Vehicle Control System. Proceedings of the American Control Conference, Anchorage, AK May 8-10, 2002, P3713-3718.
[2] Daimler Chrysler Cop. Network Transport Protocol Requirement Definition, R1.1. May 9, 2000.
[3] Holger Zeltwanger. CAN Standard Review: Change and Enhancements of the ISO11898 [S]. 2000.
[4] 李長虹, 利用多線程實現(xiàn)MATLAB遠(yuǎn)程仿真,計算機(jī)工程與應(yīng)用,2003,17.
[5] Emanuele Ruffaldi,, 1.2.3 ways of integrating MATLAB with the .NET. http://www.codeproject.com, 2005.
[6] 劉珩,楊杰,安建平,卿敏, 網(wǎng)絡(luò)仿真技術(shù)在CAN總線協(xié)議分析中的應(yīng)用, 2003全國仿真技術(shù)學(xué)術(shù)會議論文集,2003.
[7] SAE Standard, Recommended Practice for a Serial Control and Communication Vehicle Network J1939 (Draft) [S]. 1997.