| 引言 ---1.CAN總線技術在汽車領域的應用概況 ---CAN總線作為一種多主總線,支持分布式實時控制的通信網(wǎng)絡。在汽車發(fā)動機控制部件、傳感器、抗滑系統(tǒng)中都有廣泛的應用。其最大優(yōu)點是減少了線束的數(shù)量和控制器接口的引腳數(shù),同時可以更簡單、迅速地實現(xiàn)在線編程和在線診斷,甚至多個控制器共同作用等新功能。與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有更為突出的可靠性、實時性和靈活性。 ---對于CAN在汽車上的應用,如今已經(jīng)有很多行業(yè)標準或國際標準,比如國際標準化組織(International Organization for Standardization)的ISO 11992、ISO 11783及汽車工程協(xié)會(Society of Automotive Engineers)的SAE J1939。CAN總線已經(jīng)作為汽車的一種標準設備列入汽車的整體設計中。目前,除了奔馳、寶馬、奧迪等高檔轎車外,CAN總線技術也在像大眾POLO、豐田新款“花冠”、福特嘉年華等中檔車中得到了廣泛的應用。 ---2.Lab Windows CVI軟件開發(fā) ---Lab Windows CVI是美國NI(National Instruments,國家儀器)公司推出的面向儀器與測控過程的C、C++交互式開發(fā)平臺。該平臺不僅提供了對虛擬儀器的支持,還具有各種測試、通信、控制和數(shù)值分析的能力,具有圖形建模簡單、控制功能強大、實時性強、編程容易等優(yōu)點。從軟件開發(fā)角度看,Lab Windows CVI具有以下一些特點: ---(1) 可視化、交互式的開發(fā)工具。具有人機交互界面編輯器,運用可視化交互技術,使人機界面的實現(xiàn)直觀簡單,大大提高了工程設計的效率和可靠性。 ---(2) 具有程序自動生成能力,可減少軟件開發(fā)過程中代碼編寫的工作量。設計好的人機交互界面(虛擬儀器面板)存儲在后綴名為.uir的文件中。Lab Windows CVI自動生成原碼頭文件.h,自動聲明界面對象常量及相關的回調函數(shù)。 ---(3) 具有齊全的軟件工具包及功能強大的函數(shù)庫。通過簡單調用庫函數(shù)就能驅動相應總線的各種儀器和硬件板卡。這些工具包和函數(shù)庫具有更高的效率,使程序的編寫更加簡潔。 ---(4) 完善的兼容性。借助于Lab Windows CVI,有經(jīng)驗的C、C++語言開發(fā)人員可以采用熟悉的C語言環(huán)境,如VC、BC等開發(fā)自己的虛擬儀器系統(tǒng)。另外,還可將儀器庫函數(shù)及子程序編譯成32位DLL,以用于任何32位C,C++環(huán)境及VB或Lab View中。 CAN網(wǎng)絡仿真節(jié)點開發(fā) ---1.CAN總線應用層協(xié)議的制定 ---目前,汽車CAN總線系統(tǒng)的應用層協(xié)議大部分是基于SAE J1939協(xié)議進行開發(fā)制定的。對于本文中汽車CAN總線網(wǎng)絡節(jié)點仿真系統(tǒng)的通信協(xié)議,同樣以CAN2.0B及1939協(xié)議為基礎衍生而來,其具體協(xié)議內容如下。 ---(1)報文幀格式定義 ---本系統(tǒng)通信報文幀格式,采用29位擴展幀,波特率定位500K,見表1。
---(2)優(yōu)先級標志定義 ---如表1所示,29位ID的前四位作為報文優(yōu)先級標志,作為總線總裁優(yōu)先級的判斷。整個系統(tǒng)報文優(yōu)先級分為六級,分別為:0000[0x0](最高優(yōu)先級)、0001[0x1]、0010[0x2]、0100[0x4]、1000[0x8]、1111[0xF](最低優(yōu)先級)。 ---(3)節(jié)點ID定義 ---如表1所示,ID24至ID17定義為目標節(jié)點ID,而ID16至ID9定義為源節(jié)點ID,每個節(jié)點ID標志為8位。 ---(4)數(shù)據(jù)類型定義 ---如表1所示,數(shù)據(jù)類型由一個字節(jié)進行定義,用于對操作信息進行分類,對于目的節(jié)點與發(fā)送源一定的報文,通過不同的數(shù)據(jù)類型,在理論上可以定義28(256)條種不同的消息。 ---(5)數(shù)據(jù)字節(jié)定義 ---對于每條報文的數(shù)據(jù)定義,統(tǒng)一采用無符號短整型數(shù)據(jù),且每兩個字節(jié)組成一個數(shù)據(jù)(其數(shù)據(jù)范圍即為:0~65536)。所以,每條報文理論上可以攜帶4種不同的數(shù)據(jù)(Short_Data[0]~Short_Data[3])。 ---(6)接收碼、屏蔽碼設定
---對于每個節(jié)點接收碼、與屏蔽碼的定義,如表2所示。 ---2.簡易駕駛員前面板仿真節(jié)點的軟件開發(fā) ---駕駛員前面板主要是顯示汽車在行駛時速度、剩余油量等信息,并對車大燈及轉向燈進行操作。所以該仿真節(jié)點的軟件開發(fā)涉及相關發(fā)動機模塊、油量傳感器、車燈照明模塊節(jié)點的操作,其具體開發(fā)流程如下。 ---(1)初始定義 ---根據(jù)節(jié)點ID定義(表2),我們?yōu)轳{駛員前面板選定ID:0x33;而發(fā)動機模塊ID設為:0x1D;油量傳感器ID設為:0x2B;車燈系統(tǒng)ID設為:0x78。 ---(2)信息流設計
---對于由駕駛員前面板、發(fā)動機模塊和車燈系統(tǒng)組成的現(xiàn)有網(wǎng)絡,駕駛員前面板的信息流(帶優(yōu)先級標志),如表3所示。 ---(3)軟面板設計 ---直接利用Lab Windows CVI的人機交互編輯器進行仿真節(jié)點界面設計。為簡化該仿真系統(tǒng),現(xiàn)將駕駛員前面板操作涉及的相關發(fā)動機模塊、油量傳感器、車燈照明模塊節(jié)點統(tǒng)一設計為一個測試模塊。該測試模塊采用全接收的方式對接收的報文進行解析并對相關操作做出反饋。 ---(4)C程序代碼設計
---完成軟面板設計并生成代碼框架后,進行源代碼編譯。這里未詳細列出該仿真節(jié)點和測試模塊的程序代碼。 ---3.仿真節(jié)點功能測試
---本次測試實驗的CAN總線網(wǎng)絡設備,由北京三興達公司單路CAN非智能PCI卡與PC計算機組成,其結構如圖3所示。 CAN總線 ---在兩臺PC上分別運行駕駛員前面板程序與測試模塊程序,按以下操作觀察并得到表6的現(xiàn)象或反饋。 結語 ---現(xiàn)階段汽車CAN總線的研究重點是:針對具體的車型開發(fā)ECU的硬件及應用層的協(xié)議和軟件,并構成車內網(wǎng)絡。本文對汽車CAN總線網(wǎng)絡設計做了介紹,以上開發(fā)實驗只是將汽車總線系統(tǒng)研究與發(fā)展的三個階段(即第一階段,研究汽車的基本控制系統(tǒng)(也稱舒適總線系統(tǒng)),如照明系統(tǒng)等;第二階段,研究汽車的主要控制系統(tǒng)(也稱動力總線系統(tǒng)),如發(fā)動機系統(tǒng)等;第三階段,研究汽車各電子控制系統(tǒng)之間的綜合、實時控制和信息反饋)結合進行了闡述。目前,我國的汽車總線研究和應用尚處于起步階段,但汽車總線的應用趨勢明顯,研究和開發(fā)自己的汽車總線與網(wǎng)絡應用系統(tǒng)勢在必行。  參考文獻 1 宋宇峰. Lab Windows CVI逐步深入與開發(fā)實例. 機械工業(yè)出版社,2003.3 2 張毅剛,喬立巖. 虛擬儀器軟件開發(fā)環(huán)境編程指南. 機械工業(yè)出版社,2002.8 3 饒運濤,鄒繼軍,鄭勇蕓. 現(xiàn)場總線CAN原理與應用技術. 北京航空航天大學出版社,2003.6 4 北京三興達單路CAN非智能PCI卡用戶手冊 5 BOSCH_CAN_V2.0B協(xié)議. 1991 |