張津蕾
摘 要:面向對象編寫CAN總線驅動接口程序,運用VC++6.0實例化,并在此基礎上開發上層用戶界面。在車載CAN網絡通訊協議監測程序中,封裝實現CAN總線通訊的功能,為監測人員提供交互式的程序接口,并在PC機上實現網絡通訊協議的檢測功能。最后將PC機作為虛擬ECU通過CAN總線與被測ECU相連接,利用MATLAB/Simulink建立仿真測試模型,利用該測試模型控制MACS565通過總線進行通訊,實現CAN總線高層協議監測平臺的構建。
關鍵詞:CAN總線;車載網絡;實時監控
隨著汽車電子技術的不斷發展,車輛上電控系統的數量不斷增多,且功能越來越復雜。很多汽車采用了多個電腦,如奔馳600SEL采用了超過20個電控模塊。每一個電腦都需要與多個傳感器及執行器之間發生通信,而每一個輸入、輸出信號又可能與多個電腦之間發生通信。如果每一個電控系統都獨立配置一整套相應的傳感器和執行器,汽車的各個部位將產生大量的線束、插件,這樣不僅會增加汽車生產車間組裝工人的裝配困難以及車身重量,也會增加汽車售后維修人員對故障診斷、維修的難度。另外,為了提高汽車綜合控制的準確性,綜合控制系統也迫切需要輸入、輸出信號及數據的共享。當電控模塊共享輸入信息時,就能對汽車進行更為復雜的控制[1]。
控制器局域網絡(CAN)是一種串行數據通信總線,其通信速率達到1 MB/s。CAN總線的最大特點之一是任一節點所傳送的數據信息不包含傳送節點或接收節點的地址。信息的內容通過一個標識符(ID)作上標記,在整個網絡中,該標識符有且只有一個。網絡上的其他節點接收到信息后,每一節點都對這個標識符進行測試,以判斷信息內容是否與己相關。若是相關信息.它將得到處理;否則即被忽略。采用該方式的優點是可使網絡內的節點個數在理論上不受限制,也可使不同的節點同時接收到相同的數據[2]。
另外,標識符還決定了信息的優先權。ID值越小,其優先權越高。當存在2個或2個以上節點爭用總線時,CAN將采用ID進行仲裁,確保具有最高優先權信息的節點優先獲得總線使用權。
一、監控平臺的基本架構
(一)總體結構
在汽車電控系統的通訊網絡中,根據實際需要,使用了OSI所定義的七層標準通訊協議層次結構中的四層:物理層、數據鏈路層、網絡傳輸層和網絡應用層,其層次結構如圖1-1所示。其中物理層和數據鏈路層的功能,在CAN總線及其控制器中實現,ISO11898對其做了具體定義[3],而傳輸層和應用層則需要用戶自行定義和設計。
通訊協議自動診斷測試系統主要由以下幾部分功能部件組成:(1)CAN總線驅動程序,它是測試系統與CAN總線硬件在物理層和數據鏈路層上的接口程序;(2)模擬OSEK操作系統應按照OSEK操作系統中的任務調度算法,控制CAN總線上消息的發送和接收;(3)作為傳輸層的TP2.0傳輸協議動態鏈接庫應能夠實現全功能的ECU傳輸協議;(4)作為應用層的關鍵字協議KWP2000,從用戶界面接收用戶定義數據,按照各自協議的規定產生格式化的數據,并交給下層的傳輸協議傳送到CAN總線上;(5)最上層的Windows圖形用戶界面,則為測試人員提供了交互式的程序接口。本文完成了最下層的物理層和數據鏈路層上的CAN總線驅動接口程序,以及最上層的用戶界面的設計和實現,最終實現了CAN總線通訊協議監測平臺的搭建。
(二)硬件結構
為了實現實時的閉環監測與控制,監測平臺的硬件應該包括:
1.能實現網絡通訊協議的PC機;
2.與汽車電氣控制系統兼容的CAN總線和總線控制器;
3.必需的接入總線節點的IO接口;
在該系統中使用的接口卡是Vector公司出產的CANcaseXL USB2.0接口卡。該接口卡具備高性能的處理器、USB 2.0接口、32位微處理器、靈活的硬件設計、外殼穩固、連接強壯,能夠滿足高端應用,也適用于野外環境[4]。
4.總線節點ECU,即實節點;
該系統中使用的實節點包括MACS565主控模塊和電子節氣門控制模塊。MACS565是由荷蘭TNO公司開發的一套汽車電控系統快速原型開發平臺,主要有主控制器、WinSpecs監控軟件、I/O模塊、發動機控制、電子節氣門專用模塊ETC-Node等模塊組成,幾個模塊之間可通過CAN總線或以太網進行數據通訊。
(三)軟件結構
建立CAN總線通訊協議監測平臺,使用到的軟件有:
1.MATLAB/Simulink
2.WinSpecs監控軟件
3.車載CAN網絡通訊協議監測程序
開發過程中采用的操作系統為Windows XP Professional;軟件開發工具為Microsoft Visual C++6.0。系統上位機軟件運行環境為安裝了Microsoft Visual C++6.0的Windows 2000/XP操作系統。
二、設計與實現
在本文中,用戶界面是采用Visual C++開發工具中的MFC來設計的。MFC中應用程序的編寫可以分為兩個階段,可視化設計階段和代碼設計階段。可視化設計,就是設計對話框,在其中適當的位置添加或刪除適當的控件,使其外觀符合設計者的要求。代碼設計,就是為每一個控件設計相應的代碼,使其完成相應的動作[5]。本文研發的車載CAN網絡通訊協議監測程序可分為兩個模塊:界面模塊和功能模塊。功能模塊內封裝了實現CAN總線通訊功能的功能接口函數,而界面模塊內封裝了與實現用戶界面上的控件功能相關的成員函數[6]。
運行后,用戶界面如圖1所示。
圖1 車載CAN網絡通訊協議監測平臺用戶界面
三、功能驗證與評價
(一)監測對象
為了驗證CAN網絡通訊協議監測程序是否滿足設計時提出的功能需求,并進行通訊監測試驗,分析數據信息,根據第一章中提出的CAN網絡通訊協議監測平臺的基本構架,借助Vector CANcaseXL接口卡和MACS565快速原型開發平臺,搭建了車載CAN網絡通訊協議監測平臺。
利用MATLAB/Simulink建立仿真測試模型,通過WinSpecs軟件將MATLAB/Simulink建立的模型寫入MACS565汽車電控系統快速原型開發平臺的主控制器ECU的FLASH或者RAM存儲器中。該測試模型控制ETC-Node與主控制器之間通過CAN總線進行通訊,相互交換數據信息。ETC-Node通過對主控制器發送來的節氣門開度的期望值信號進行計算,把相應的控制信號發送到驅動電路模塊,由驅動控制電機使節氣門達到相應開度位置。同時將電子節氣門的模擬量信號、內部信息和狀態、標定信號等以CAN數據信息的形式返回給主控制器。測試人員可以通過車載CAN網絡通訊監測程序和Vector CANcaseXL接口卡實時控制CAN總線上數據信息的讀取和導出,針對所采集的數據信息進行分析后,可以了解電子節氣門的工作情況。
(二)功能驗證
基于車載CAN總線網絡協議監測程序的功能需求,針對監測程序四個方面的功能,設計了相關功能驗證用例,以驗證監測程序是否能夠滿足相應的功能需求:硬件配置功能、通訊功能、數據提取功能和數據導出功能。功能驗證用例在此不做累述。
(三)監測結果及評價
根據功能驗證結果,車載CAN網絡通訊協議監測程序能夠較好地實現CAN總線的基本通訊功能,監測過程中能夠實現數據信息的實時顯示、讀取和導出,車載CAN網絡通訊協議監測平臺能夠進行初步的監測試驗,通過對導出數據的分析,測試人員能夠了解到監測過程中的電子節氣門硬件的工作情況,從而為電子節氣門的性能檢測提供了手段。
參考文獻:
[1](法)胡思德(Daniel ROUCHE)主編.汽車車載網絡(VAN/CAN/LIN)技術詳解[M].機械工業出版社.2006年版
[2]李剛炎,宋葉瓊,金海松.CAN及其在轎車中央控制系統中的應用[J]武漢汽車工業大學學報,2000,(2):6-9
[3]Robert Bosch. CAN Specification Version 2.0[R],Technical Report, ISO11898,Robert Bosch GmbH,1991
[4]恒潤科技.CANcaseXL.http://www.hirain.com
[5]陳孟英主編,Visual C++6.0中文入門圖解教程[M],清華大學出版社,2000
[6]古樂,史九林編著.軟件測試案例與實踐教程[M],清華大學出版社,2007