引言
隨著集成電路和單片機在汽車上的廣泛應用,,現代汽車上的電子控制器的數量越來越多,,常見的有發(fā)動機的電子燃油噴射裝置,、防抱死制動裝置(ABS),、安全氣囊裝置、電動門窗裝置,、主動懸架等,。電控系統(tǒng)的增加雖然提高了轎車的動力性、經濟性和舒適性,,但隨之增加的復雜電路也降低了汽車的可靠性,,增加了維修的難度。從布線角度分析,,傳統(tǒng)的電子氣系統(tǒng)大多采用點對點的單一通信方式,,相互之間少有聯系,這樣必然造成寵大的布線系統(tǒng),。因此,,一種新的概念——汽車上電子控制器局域網絡CAN,也就應運而生,。為使不同廠家生產的零部件能在同一輛汽車上協調工作,,必須制定標準,。按照ISO有關標準,,CAN的拓撲結構為總線式,因此稱為CAN總線,。 CAN總線被設計作為汽車環(huán)境中的微控制器通信,,在車載各電子控制裝置ECN之間交換信息,在車載各電子控制裝置ECN之間交換信息,,形成汽車電子控制網絡,。
控制器局域網CAN(Controller Area Network)是一種多主方式的串行通信總線,基本設計規(guī)范要求有高的位速率,,高抗電磁干擾性,,而且能夠檢測出產生的任何錯誤。CAN在汽車上的應用,,具有很多行業(yè)標準或者是國際標準,,比如國際標準化組織(ISO)的ISO11992,、ISO11783以及汽車工程協會(Society of Automotive Engigeers)的SAE J1939。CAN總線已經作為汽車的一種標準設備列入汽車的整車設計中,。
1 CAN總線特點及其通信協議
1.1 CAN總線簡介
CAN通信協議規(guī)定了4種不同的幀格式,,即數據幀、遠程幀,、錯誤幀和超載幀,。基于以下幾條基本規(guī)則進行通信協調:總線訪問,、仲裁,、編碼/解碼、出錯標注和超裁標注,。CAN 遵從OSI模型,。按照OSI基準模型只有三層:物理層、數據鏈路層和哀告層,,但應用層尚需用戶自己定義,。CAN總線作為一種有效支持分布式控制或實時控制的串行通信網絡,應用范圍遍及從高速網絡到低成本的多線路網絡,。如:CAN在汽車中的發(fā)動機控制部件,、ABS、抗滑系統(tǒng)等應用中的位速率可高達1Mbps,。同時,,它可以廉價地用于交通運載工具電器系統(tǒng)中,例如電氣窗口,、燈光聚束,、座椅調節(jié)等,以替代所需要的硬件連接,。其傳輸介制裁為雙絞線,,通信速率最高可達1Mbps/40m,直接傳輸距離最遠可達 10km/5kbps,,掛接設備數最多可達110個,。CAN為多主工作方式,通信方式靈活,,無需站地址等節(jié)點信息,,采用非破壞性總線仲裁技術,滿足實時要求,。另外,,CAN采用短幀結構傳輸信號,傳輸時間短,,具有較強的抗干擾能力,。
CAN總線與其它通信協議的不同之處主要有兩方面:一是報文傳送不包含目標地址,,它是以全網廣播為基礎,各接收站根據報文中反映數據性質的標識符過濾報文,,其特點是可在線上網下網,、即插即用和多站接收;另外一個方面就是特別強化了數據安全性,,滿足控制系統(tǒng)及其它較高數據要求系統(tǒng)的需求,。
1.2 J1939通信協議
J1939協議是在CAN總線通信協議2.0B(29標識符)之上具體實現了應用層,是SAE為重載卡車和客車制定的通信協議,;以CAN 2.0B為基礎,,物理層標準與ISO11898規(guī)范兼容并采用符合該規(guī)范的CAN控制器及收發(fā)器。J1939協議將CAN標識符劃分為如下幾個部分:優(yōu)先級(P),、數據頁(PGN),、協議數據單元(PDU)格式、PDU特定域(PS)和源地址(SA),。J1939/71應用層文檔定義了車輛控制的各種參數及命令的PGN,。
由此可見,J1939與CAN通信協議的區(qū)別在于29位標識符(ID),,數據場相同,。J1939將CAN的29位標識符(或稱辨識別)進行了詳細的物理定義。通過PDU將CAN標準格式封裝為J1939協議格式,。PDU信息幀又由優(yōu)先權P,、保留位R、數據頁DP,、協議數據單元PF,、擴展單元PS、源地址SA和數據場DATA七個部分組成,,即CAN的29位標識符加上數據,。
2 總體設計
2.1 汽車電控網絡結構
汽車內ECU之間的數據傳輸特征主要差別在于數據傳輸頻率,例如發(fā)動機高速運行時,,進行的是高頻數據傳輸,,每隔幾ms就傳輸1次;而在低速運行時,,進行的是低頻數據傳輸,每隔幾十ms乃至幾百ms才傳輸1次,。然而為了滿足實時性要求,,就要求汽車內每個控制單元盡可能實現汽車公共數據共享,但又由于每個控制單元對實時性的要求是因為數據的更新速率和控制周期不同而不同的,。這就要求其數據交換網是基于優(yōu)先權競爭的模式,,且本身具有較高的通信速率,。CAN總線正是為滿足這些要求而設計的。CAN已有國際標準,,即高速場合的ISO11898和用于低速場合的ISO11519-3,。
通常的汽車網絡結構采用多條不同速率的總線分別連接不同類型的節(jié)點,并使用網關服務器來實現整車的信息共享和網絡管理,。若按照美國汽車工程師協會(SAE)車輛網絡委員會標準SAE J2057,,將汽車數據傳輸網劃分為三類。這里可用圖1簡單說明,。其中網關是汽車內部通信的核心,,通過它可以實現在CAN總線上信息的共享以及實現汽車內部的網絡管理和故障診斷功能;將各個數據總線上的信息反饋到儀表板總成上的顯示屏上,,駕駛者通過儀表板上的信息就可以知道各個電控裝置是否正常工作了,。
2.2 通信平臺硬件設計
在設計中,主控芯片CPU選用51系列的單片機,。CAN通信控制器執(zhí)行完整的CAN協議,,完成通信功能,包括信息緩沖和接收濾波,,故CAN控制器選用 Philips的SJA1000,。選用PCA82C250作為CAN總線的收發(fā)器,PCA82C250是CAN協議控制器和物理總線之間的接口,,在運行環(huán)境中具有抗瞬變,、抗射頻和抗電磁干擾性能,內部的限流電路具有電路短路時對傳送輸出級進行保護的功能,。傳輸介質采用屏蔽電費,,在測控節(jié)點與介質之間加入光耦電路,以提高總線接口的抗干擾能力,。圖2為通信平臺硬件框圖,,圖3為控制器與收發(fā)器連接接口。
為進一步提高系統(tǒng)的可靠性,,需要考慮到系統(tǒng)的冗余設計,。由于汽車環(huán)境惡劣且干擾 因素較多,在CAN_H和CAN_L信號線與地線之間分別并聯了兩個電容,,濾去噪聲,,使信號傳輸平穩(wěn)。雙屏蔽電費可設兩套,,在兩套介質上同時進行信息傳輸,。接收方只用一個介質,在冗余和非冗余段的連接臨界點進行總線切換,。
2.3 軟件設計
簡單地說,,本通信平臺所要實現的功能就是,,使各個節(jié)點(ECU)通過CAN總線實現相互通信,發(fā)送接收命令,、信息等,,并實現數據的共享,從而提高各自的控制性能和運行效率,。汽車上CAN數據總線的每個節(jié)點(ECU)都有自己的地址和名稱相對應,。ECU地址指出了數據傳送的目的地,而其名稱則標識了ECN的基本功能,。節(jié)點連續(xù)監(jiān)視著總線上發(fā)出的各種數據,。當所收到的數據地址值與自身地址吻合時,該節(jié)點就獲得令牌,。在通信規(guī)約中,,唯一獲得令牌的該節(jié)點有權發(fā)送數據,以防止兩個或兩個以上的節(jié)點同時傳輸數據引起混亂,。同時每一個節(jié)點都有機會得到令牌,,完成數據傳輸。
本軟件設計是基于Keil C語言編寫的,。程序主要由主模塊,、中斷處理模塊及數據通信模塊等組成,如圖4所示,。
主模塊完成對硬件初始化,、寄存器的配置、SJA1000初始化等,;中斷處理模塊包括數據中斷的發(fā)送,、接收、錯誤處理及報警處理等,;數據通信模塊完成數據的請求,、發(fā)送、接收等,。
當一個節(jié)點A發(fā)送數據請求報文(遠程幀),,向另外一個節(jié)點B請求報文(應答幀)時,節(jié)點B接收到請求后,,經過判別,,而后發(fā)送數據(應答幀)。由于數據請求沒有數據場,,所以相對數據幀長度小很多,。經分析驗證之后與節(jié)點B收到的數據相同,請求數據程序得到驗證,。
結語
在現代汽車的設計中,,CAN總線已經成為構建汽車網絡的一種趨勢;而汽車網絡作為直接與汽車內部各個ECU連接并負責命令的傳遞,、數據的發(fā)送及共享,,其可靠性和穩(wěn)定性與整車的性能緊密相關。本文的設計開發(fā)是在基于試驗條件下搭建的仿真平臺,,節(jié)點之間的通信是通過對等的CAN通信節(jié)點進行的,。試驗表明其運行性能穩(wěn)定可靠,但實用化仍需要進一步的研究和改進,,且程序的通信處理能力,、糾錯和容錯能力有待進一步的提高。