李洋,李鴻強,陳弘,孟永強,劉芳舒
(1天津工業(yè)大學電子與信息工程學院,天津 300387;2中國汽車技術研究中心,天津 300162)
CAN總線憑借其可靠性、實時性和靈活性等優(yōu)勢,已經成為純電動汽車車載總線的主流,但由于CAN只定義了物理層及數(shù)據(jù)鏈路層,用戶必須要自定義應用層的協(xié)議[1-3],這不僅帶給用戶相當多的困難,而且使不同廠商間的CAN設備彼此無法互通,不利于純電動汽車的快速發(fā)展。因此,研究適用于純電動汽車車載網絡的應用層協(xié)議具有重要意義。
CANopen協(xié)議是由Bosch領導開發(fā)的一種CAN應用層協(xié)議[4-5],可作為車載網絡應用層協(xié)議。國內外關于CANopen協(xié)議的研究主要集中于CANopen網絡的設計和CANopen協(xié)議棧的實現(xiàn)兩方面??追宓龋?]提出采用CANopen作為汽車控制網絡的應用層協(xié)議;Gh.Livint等[7]提出將CANopen協(xié)議應用于混合動力汽車分布式總線控制,實現(xiàn)了不同廠商的CAN設備采用CANopen協(xié)議互相通信;Xu等[8]將CANopen協(xié)議應用于混合動力電動汽車車載網絡,提出了動力總線單元CANopen從站的設計方案;劉怡[9]等以C8051F500單片機為控制核心的開發(fā)平臺上建立了CANopen協(xié)議棧;徐喆等[10]提出了一種利用開源代碼CAN-festival在MC9S12XDP512平臺上實現(xiàn)CANopen網絡從節(jié)點的新方法,并將CANfestival移植到實時操作系統(tǒng)uC/OS-Ⅱ上。
目前關于純電動汽車車門車窗控制系統(tǒng)的應用層協(xié)議研究較少,因此,本文針對純電動汽車車門車窗控制系統(tǒng),制定了其CANopen應用層協(xié)議并在WinCE5.0操作系統(tǒng)上開發(fā)了CANopen協(xié)議棧,采用CANoe軟件實現(xiàn)了CANopen協(xié)議測試。
CANopen協(xié)議定義的設備模型由通訊子層、對象字典、應用子層組成。通訊子層接口定義了網絡管理報文對象(NMT)、過程數(shù)據(jù)對象(PDO)、服務數(shù)據(jù)對象(SDO)、特殊功能對象4種通訊對象函數(shù),用來在底層傳輸數(shù)據(jù)。對象字典由16位主索引和8位子索引構成,包括所有影響通訊接口、應用、狀態(tài)機行為的數(shù)據(jù)信息,是CANopen的核心內容[11-12]。應用子層由用戶編寫,包括功能和通信二部分,通信部分通過對對象字典進行操作實現(xiàn)CANopen通信,而功能部分由用戶根據(jù)應用要求實現(xiàn)。
純電動汽車車門車窗控制系統(tǒng)包括中央、左前門、右前門、左后門、右后門5個電子控制單元。每一電子控制單元的控制對象主要為車窗和門鎖,其中左前門和右前門電子控制單元的控制對象還分別有對左后視鏡和右后視鏡的控制。
中央電子控制單元是整個車門車窗控制系統(tǒng)的控制核心,為CANopen主站,管理整個車門車窗控制系統(tǒng),其余電子控制單元為CANopen從站。中央電子控制單元通過NMT服務控制其他4個電子控制單元的狀態(tài)。NMT主節(jié)點的對象字典條目由索引1F80H到1F9FH來定義。
中央電子控制單元通過服務數(shù)據(jù)對象SDO報文對CANopen網絡上的其余電子控制單元進行參數(shù)配置。SDO客戶端由對象字典中1280h-12FFh來定義,SDO服務器由對象字典中1200h-127Fh來定義。各電子控制單元SDO定義如表1所示。
中央電子控制單元和其余電子控制單元通過過程數(shù)據(jù)對象PDO報文用來傳輸實時數(shù)據(jù),數(shù)據(jù)傳送限制在1到8個字節(jié)。PDO包括TPDO和RPDO 2種。TPDO用于發(fā)送報文,RPDO用于接收報文,一個TPDO對應一個RPDO。中央電子控制單元接收其余電子控制單元的狀態(tài),并發(fā)送控制命令,其余電子控制單元發(fā)送本地命令和狀態(tài)。根據(jù)車門車窗控制需求,中央和左前電子控制單元PDO報文定義見表2、表3,其余電子控制單元和左前電子單元的類似。
表1 各電子控制單元SDO定義Tab.1 Every electronic control unit SDO definition
表2 中央電子控制單元PDO定義Tab.2 The central electronic control unit PDO
表3 左前門電子控制單元PDO定義Tab.3 Left front door electronic control unit PDO
采用廣州致遠電子有限公司的EPC-8900I-W嵌入式硬件平臺設計CANopen協(xié)議棧,EPC-8900I-W采用XScale系列PXA270,其操作系統(tǒng)為WinCE5.0,采用VS2005開發(fā)控制臺應用程序實現(xiàn)CANopen通訊功能。
CANopen通訊主程序流程為:系統(tǒng)啟動后首先初始化CAN通訊參數(shù),然后從站發(fā)送啟動報文,進入預操作狀態(tài)并運行狀態(tài)機,然后開啟接收數(shù)據(jù)線程,收到報文后通過canDispatch()報文分發(fā)函數(shù)來處理報文。根據(jù)CANopen通信協(xié)議,分析從緩沖區(qū)取出的報文屬于哪一種報文,之后進入相應的報文處理程序。下面詳細介紹CANopen協(xié)議棧中讀寫對象字典、NMT狀態(tài)控制、SDO快速傳送和PDO報文的處理過程。
對象字典是CANopen協(xié)議中最重要的部分,它包含了設備描述及設備網絡狀態(tài)的所有參數(shù)。此外,在編輯對象字典時,采用CANfestival提供的對象字典編輯器來簡便而高效地進行操作。
對象字典的讀寫流程圖如圖1所示。
NMT報文由主站發(fā)出,從節(jié)點通過接收主節(jié)點發(fā)送的NMT命令報文進行狀態(tài)之間的轉換。從節(jié)點接收到NMT報文的處理流程圖如圖2所示。NMT命令包括啟動節(jié)點指示、進入預操作狀態(tài)指示、停止節(jié)點指示、復位通信指示和復位節(jié)點指示。從節(jié)點判斷NMT命令并進行相應狀態(tài)轉換。
圖1 讀寫對象字典流程Fig.1 Processes of reading and writing object dictionary
圖2 NMT報文的處理流程圖Fig.2 Processing flow chart of NMT packet
SDO報文用于對CANopen網絡上的設備進行參數(shù)配置。SDO通過使用主索引和子索引,訪問設備對象字典中的對象。
SDO有快速傳送和分段傳送2種傳送機制??焖賯魉妥疃鄠鬏?字節(jié)數(shù)據(jù),分段傳送傳輸數(shù)據(jù)長度大于4字節(jié)。本文主要實現(xiàn)SDO快速傳送功能??焖賯魉桶焖偕蟼骱涂焖傧螺d。首先SDO客戶端判斷報文ID是否與本地對象字典存儲的ID相同,然后讀取SDO報文命令字,開始進行下載或上傳。在下載或上傳過程中通過讀取報文第1到第3字節(jié)數(shù)據(jù)獲取目標主索引和字索引,并且對象字典和發(fā)送報文之間通過數(shù)據(jù)緩存區(qū)來傳遞數(shù)據(jù)。
SDO快速傳送流程圖如圖3所示。
圖3 SDO快速傳送流程圖Fig.3 Flow chart of SDO transmission
PDO報文的處理就是根據(jù)接收到PDO報文的通訊參數(shù)和映射參數(shù)解析報文,將報文中的數(shù)據(jù)保存至對象字典的對應位置。
PDO報文的處理流程圖如圖4所示。
圖4 PDO報文處理流程圖Fig.4 Processing flow chart of PDO packet
其主要流程如下:
首先遍歷本地對象字典PDO通訊參數(shù)字索引01h內容,判斷是否為本地RPDO報文ID,如果為本地RPDO,讀取相應映射參數(shù)0x00子索引獲得映射的個數(shù)mappcount,然后依次讀取mappcount個子索引的值定位到標準數(shù)據(jù)區(qū),根據(jù)將報文數(shù)據(jù)寫入相應數(shù)據(jù)區(qū)。
CANoe是一個德國Vector公司開發(fā)的CAN總線仿真軟件,具有網絡仿真、監(jiān)測和分析的功能,其組件CANoe和CANopen為開發(fā)、規(guī)劃及測試CANopen設備和網絡系統(tǒng)方面提供了有效的幫助。CANoe軟件可以支持全仿真、半實物仿真和全實物仿真[13]。本文利用CANoe進行半實物仿真以驗證設計的CANopen協(xié)議棧。
設計的CANopen主站控制界面如圖5所示。
圖5 CANopen主站控制界面Fig.5 CANopen master station control interface
根據(jù)CANopen協(xié)議定義,主站實現(xiàn)NMT啟動節(jié)點、停止節(jié)點、進入預操作狀態(tài)、復位節(jié)點和復位通信,發(fā)送心跳檢測報文、發(fā)送同步報文、SDO上傳和下載、發(fā)送PDO報文。
CANoe的CANcaseXL卡提供了CAN接口,必須注意的是,配置的CANoe接口的波特率須與EPC-8900I-W嵌入式硬件平臺CAN的波特率相同,否則CANoe和EPC-8900I-W不能通訊。本研究CAN通訊速率為250kb/s。
整體實驗平臺如圖6所示,PC為CANopen主站,EPC-8900I-W嵌入式硬件平臺為左前門電子控制單元實現(xiàn)CANopen從站功能。
如圖7所示,通過CANoe的Trace窗口可以查看到報文。
圖6 主從站實驗測試平臺Fig.6 Master-slave experimental test platform
圖7 通過Trace窗口查看報文Fig.7 View the message through the Trace window
首先,從站啟動發(fā)送啟動報文,其報文ID為0X710;接著主站發(fā)送SDO上傳報文讀取從站主索引1400子索引01的數(shù)據(jù)內容,即從站RPDO1的報文ID;從站收到SDO報文后,發(fā)送響應報文,上傳數(shù)據(jù);主站發(fā)送SDO下載報文設置從站RPDO1的報文ID為0X181;從站收到命令,發(fā)送下載成功響應報文;然后主站發(fā)送啟動節(jié)點報文,這時從站可以接收并發(fā)送所有通訊報文;主站發(fā)送TPDO1報文;主站讀取從站RPO1報文數(shù)據(jù)區(qū)內容,可以驗證PDO通訊。觀測結果顯示實現(xiàn)了NMT、SDO、PDO報文通訊。
1)設計了純電動汽車車門車窗控制系統(tǒng)CANopen協(xié)議,定義了各電子控制單元NMT、SDO、PDO報文ID和報文內容等參數(shù)。
2)基于WinCE5.0嵌入式硬件平臺上開發(fā)了CANopen協(xié)議棧,實現(xiàn)了NMT、SDO、PDO報文通訊。
3)通過CANoe軟件設計了CANopen主站管理界面,實現(xiàn)了CANopen主從通訊,結果表明設計的CANopen協(xié)議棧具有很好的實時性,能較好的滿足純電動汽車車門車窗控制系統(tǒng)實際控制需求。
[1]韓江洪,劉征宇,崔世輝等.混合動力汽車CAN網絡通信協(xié)議的應用研究[J].汽車工程,2011,33(12):1062-1066.
[2]劉陽,馬蓉,曹衛(wèi)彬,等.基于ISO11783的拖拉機導航系統(tǒng)CAN節(jié)點設計[J].石河子大學學報:自然科學版,2011,29(5):641-644.
[3]齊向寧,曹衛(wèi)彬.精量播種機監(jiān)測系統(tǒng)的設計[J].石河子大學學報:自然科學版,2011,29(4):505-508.
[4]黃智,王科,楊沿平.車身舒適系統(tǒng)總線協(xié)議研究[J].汽車工程,2009,31(4):331-335.
[5]閆在春,程夕明,南金瑞,等.燃料電池客車CAN通信協(xié)議仿真[J].系統(tǒng)仿真學報,2006,18(9):2381-2385.
[6]孔峰,張衡,宋雪樺,等.基于CANopen協(xié)議的汽車控制網絡初探[J].汽車工程,2007,29(7):594-596.
[7]Gh.Livint,V Horga,M R~atoi,et al.Implementing the CANopen Protocol for the Distributed Control of a Hybrid Electric Vehicle[C]//IEEE ELECTROMOTION,2009.-EPE Chapter'Electric Drives'Joint Symposium.July 1-3,2009,1-6.
[8]Xu Zhe,Dong Shifeng.The Design and Implementation of a CANopen Slave Stack for Powertrain Controller in Hybrid Electric Vehicle[C]//Proc.of International Conference on Intelligent Computation Technology and Automation.[S.l.]:IEEE Press,2010:755-758.
[9]劉 怡,王家樂,CANopen從站協(xié)議的設計與實現(xiàn)[J].電子技術設計與應用,2011,38(9):38-40.
[10]徐喆,張卓,閆士珍.基于uC/OS-II的 CANopen從節(jié)點的實現(xiàn)[J].計算機系統(tǒng)應用,2008(7):113-118.
[11]郭利進,王化祥,龔進峰.基于CAN總線的車身網絡系統(tǒng)及其控制策略研究[J].汽車工程,2006,28(8):774-778.
[12]葉愛兵,鄭華耀,陳巨濤.基于CANopen的協(xié)議分析系統(tǒng)設計與實現(xiàn)[J].揚州大學學報:自然科學版,2009,12(3):53-56.
[13]郭宏志,陳虹,宋同好,等.嵌入CAN節(jié)點的汽車電子節(jié)氣門仿真系統(tǒng)[J].系統(tǒng)仿真學報,2009,21(8):5716-5719.