基於CAN匯流排的多ECU通信平台設計

admin @ 2014-03-19 , reply:0

概述
名稱:基於CAN匯流排的多ECU通信平台設計摘要:介紹CAN匯流排及其通信協議J1939,並設計基於CAN匯流排的多ECN通信平台的硬體結構;闡述節點ECN通信的軟體設計方法,在模擬試驗的條件下實現數……
名稱:基於CAN匯流排的多ECU通信平台設計
摘要:介紹CAN匯流排及其通信協議J1939,並設計基於CAN匯流排的多ECN通信平台的硬體結構;闡述節點ECN通信的軟體設計方法,在模擬試驗的條件下實現數據通信的功能。試驗表明平台運行穩定可靠。
引言
隨著集成電路和單片機在汽車上的廣泛應用,現代汽車上的電子控制器的數量越來越多,常見的有發動機的電子燃油噴射裝置、防抱死制動裝置(ABS)、安全氣囊裝置、電動門窗裝置、主動懸架等。電控系統的增加雖然提高了轎車的動力性、經濟性和舒適性,但隨之增加的複雜電路也降低了汽車的可靠性,增加了維修的難度。從布線角度分析,傳統的電子氣系統大多採用點對點的單一通信方式,相互之間少有聯繫,這樣必然造成寵大的布線系統。因此,一種新的概念——汽車上電子控制器區域網絡CAN,也就應運而生。為使不同廠家生產的零部件能在同一輛汽車上協調工作,必須制定標準。按照ISO有關標準,CAN的拓撲結構為匯流排式,因此稱為CAN匯流排。CAN匯流排被設計作為汽車環境中的微控制器通信,在車載各電子控制裝置ECN之間交換信息,在車載各電子控制裝置ECN之間交換信息,形成汽車電子控制網路。
控制器區域網CAN(Controller Area Network)是一種多主方式的串列通信匯流排,基本設計規範要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產生的任何錯誤。CAN在汽車上的應用,具有很多行業標準或者是國際標準,比如國際標準化組織(ISO)的ISO11992、ISO11783以及汽車工程協會(Society of Automotive Engigeers)的SAE J1939。CAN匯流排已經作為汽車的一種標準設備列入汽車的整車設計中。
圖1
1 CAN匯流排特點及其通信協議
1.1 CAN匯流排簡介
CAN通信協議規定了4種不同的幀格式,即數據症遠程症錯誤幀和超載鄭基於以下幾條基本規則進行通信協調:匯流排訪問、仲裁、編碼/*、出錯標註和超裁標註。CAN遵從OSI模型。按照OSI基準模型只有三層:物理層、數據鏈路層和哀告層,但應用層尚需用戶自己定義。CAN匯流排作為一種有效支持分散式控制或實時控制的串列通信網路,應用範圍遍及從高速網路到低成本的多線路網路。如:CAN在汽車中的發動機控制部件、ABS、抗滑系統等應用中的位速率可高達1Mbps。同時,它可以廉價地用於交通運載工具電器系統中,例如電氣窗口、燈光聚束、座椅調節等,以替代所需要的硬體連接。其傳輸介制裁為雙絞線,通信速率最高可達1Mbps/40m,直接傳輸距離最遠可達10km/5kbps,掛接設備數最多可達110個。CAN為多主工作方式,通信方式靈活,無需站地址等節點信息,採用非破壞性匯流排仲裁技術,滿足實時要求。另外,CAN採用短幀結構傳輸信號,傳輸時間短,具有較強的抗干擾能力。
CAN匯流排與其它通信協議的不同之處主要有兩方面:一是報文傳送不包含目標地址,它是以全網廣播為基礎,各接收站根據報文中反映數據性質的標識符過濾報文,其特點是可在線上網下網、即插即用和多站接收;另外一個方面就是特彆強化了數據安全性,滿足控制系統及其它較高數據要求系統的需求。
1.2 J1939通信協議
J1939協議是在CAN匯流排通信協議2.0B(29標識符)之上具體實現了應用層,是SAE為重載卡車和客車制定的通信協議;以CAN 2.0B為基礎,物理層標準與ISO11898規範兼容並採用符合該規範的CAN控制器及收發器。J1939協議將CAN標識符劃分為如下幾個部分:優先順序(P)、數據頁(PGN)、協議數據單元(PDU)格式、PDU特定域(PS)和源地址(SA)。J1939/71應用層文檔定義了車輛控制的各種參數及命令的PGN。

由此可見,J1939與CAN通信協議的區別在於29位標識符(ID),數據場相同。J1939將CAN的29位標識符(或稱辨識別)進行了詳細的物理定義。通過PDU將CAN標準格式封裝為J1939協議格式。PDU信息幀又由優先權P、保留位R、數據頁DP、協議數據單元PF、擴展單元PS、源地址SA和數據場DATA七個部分組成,即CAN的29位標識符加上數據。
2總體設計
2.1汽車電控網路結構
汽車內ECU之間的數據傳輸特徵主要差別在於數據傳輸頻率,例如發動機高速運行時,進行的是高頻數據傳輸,每隔幾ms就傳輸1次;而在低速運行時,進行的是低頻數據傳輸,每隔幾十ms乃至幾百ms才傳輸1次。然而為了滿足實時性要求,就要求汽車內每個控制單元儘可能實現汽車公共數據共享,但又由於每個控制單元對實時性的要求是因為數據的更新速率和控制周期不同而不同的。這就要求其數據交換網是基於優先權競爭的模式,且本身具有較高的通信速率。CAN匯流排正是為滿足這些要求而設計的。CAN已有國際標準,即高速場合的ISO11898和用於低速場合的ISO11519-3。
通常的汽車網路結構採用多條不同速率的匯流排分別連接不同類型的節點,並使用網關伺服器來實現整車的信息共享和網路管理。若按照美國汽車工程師協會(SAE)車輛網路委員會標準SAE J2057,將汽車數據傳輸網劃分為三類。這裡可用圖1簡單說明。其中網關是汽車內部通信的核心,通過它可以實現在CAN匯流排上信息的共享以及實現汽車內部的網路管理和故障診斷功能;將各個數據匯流排上的信息反饋到儀錶板總成上的顯示屏上,駕駛者通過儀錶板上的信息就可以知道各個電控裝置是否正常工作了。
2.2通信平台硬體設計
在設計中,主控晶元CPU選用51系列的單片機。CAN通信控制器執行完整的CAN協議,完成通信功能,包括信息緩衝和接收濾波,故CAN控制器選用 Philips的SJA1000。選用PCA82C250作為CAN匯流排的收發器,PCA82C250是CAN協議控制器和物理匯流排之間的介面,在運行環境中具有抗瞬變、抗射頻和抗電磁干擾性能,內部的限流電路具有電路短路時對傳送輸出級進行保護的功能。傳輸介質採用屏蔽電費,在測控節點與介質之間加入光耦電路,以提高匯流排介面的抗干擾能力。圖2為通信平台硬體框圖,圖3為控制器與收發器連接介面。
為進一步提高系統的可靠性,需要考慮到系統的冗餘設計。由於汽車環境惡劣且干擾因素較多,在CAN_H和CAN_L信號線與地線之間分別並聯了兩個電容,濾去雜訊,使信號傳輸平穩。雙屏蔽電費可設兩套,在兩套介質上同時進行信息傳輸。接收方只用一個介質,在冗餘和非冗餘段的連接臨界點進行匯流排切換。
2.3軟體設計
簡單地說,本通信平台所要實現的功能就是,使各個節點(ECU)通過CAN匯流排實現相互通信,發送接收命令、信息等,並實現數據的共享,從而提高各自的控制性能和運行效率。汽車上CAN數據匯流排的每個節點(ECU)都有自己的地址和名稱相對應。ECU地址指出了數據傳送的目的地,而其名稱則標識了ECN的基本功能。節點連續*著匯流排上發出的各種數據。當所收到的數據地址值與自身地址吻合時,該節點就獲得令牌。在通信規約中,唯一獲得令牌的該節點有權發送數據,以防止兩個或兩個以上的節點同時傳輸數據引起混亂。同時每一個節點都有機會得到令牌,完成數據傳輸。
本軟體設計是基於Keil C語言編寫的。程序主要由主模塊、中斷處理模塊及數據通信模塊等組成,如圖4所示。
圖4
主模塊完成對硬體初始化、寄存器的配置、SJA1000初始化等;中斷處理模塊包括數據中斷的發送、接收、錯誤處理及報警處理等;數據通信模塊完成數據的請求、發送、接收等。
當一個節點A發送數據請求報文(遠程幀),向另外一個節點B請求報文(應答幀)時,節點B接收到請求后,經過判別,而後發送數據(應答幀)。由於數據請求沒有數據場,所以相對數據幀長度小很多。經分析驗證之後與節點B收到的數據相同,請求數據程序得到驗證。
結語
在現代汽車的設計中,CAN匯流排已經成為構建汽車網路的一種趨勢;而汽車網路作為直接與汽車內部各個ECU連接並負責命令的傳遞、數據的發送及共享,其可靠性和穩定性與整車的性能緊密相關。本文的設計開發是在基於試驗條件下搭建的模擬平台,節點之間的通信是通過對等的CAN通信節點進行的。試驗表明其運行性能穩定可靠,但實用化仍需要進一步的研究和改進,且程序的通信處理能力、糾錯和容錯能力有待進一步的提高


[admin via 研發互助社區 ] 基於CAN匯流排的多ECU通信平台設計已經有3038次圍觀

http://cocdig.com/docs/show-post-40131.html