《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CAN總線的多ECU通信平臺設計
基于CAN總線的多ECU通信平臺設計
摘要: 介紹CAN總線及其通信協(xié)議J1939,并設計基于CAN總線的多ECN通信平臺的硬件結構,;闡述節(jié)點ECN通信的軟件設計方法,,在仿真試驗的條件下實現(xiàn)數(shù)據(jù)通信的功能。試驗表明平臺運行穩(wěn)定可靠.
Abstract:
Key words :

  引言

  隨著集成電路和單片機在汽車上的廣泛應用,,現(xiàn)代汽車上的電子控制器的數(shù)量越來越多,,常見的有發(fā)動機的電子燃油噴射裝置、防抱死制動裝置(ABS),、安全氣囊裝置,、電動門窗裝置、主動懸架等,。電控系統(tǒng)的增加雖然提高了轎車的動力性,、經(jīng)濟性和舒適性,但隨之增加的復雜電路也降低了汽車的可靠性,,增加了維修的難度,。從布線角度分析,傳統(tǒng)的電子氣系統(tǒng)大多采用點對點的單一通信方式,相互之間少有聯(lián)系,,這樣必然造成寵大的布線系統(tǒng),。因此,一種新的概念——汽車上電子控制器局域網(wǎng)絡CAN,,也就應運而生,。為使不同廠家生產(chǎn)的零部件能在同一輛汽車上協(xié)調工作,必須制定標準,。按照ISO有關標準,,CAN的拓撲結構為總線式,因此稱為CAN總線,。 CAN總線被設計作為汽車環(huán)境中的微控制器通信,,在車載各電子控制裝置ECN之間交換信息,在車載各電子控制裝置ECN之間交換信息,,形成汽車電子控制網(wǎng)絡,。

  控制器局域網(wǎng)CAN(Controller Area Network)是一種多主方式的串行通信總線,基本設計規(guī)范要求有高的位速率,,高抗電磁干擾性,,而且能夠檢測出產(chǎn)生的任何錯誤。CAN在汽車上的應用,,具有很多行業(yè)標準或者是國際標準,,比如國際標準化組織(ISO)的ISO11992、ISO11783以及汽車工程協(xié)會(Society of Automotive Engigeers)的SAE J1939,。CAN總線已經(jīng)作為汽車的一種標準設備列入汽車的整車設計中,。

  1 CAN總線特點及其通信協(xié)議

  1.1 CAN總線簡介

  CAN通信協(xié)議規(guī)定了4種不同的幀格式,即數(shù)據(jù)幀,、遠程幀,、錯誤幀和超載幀?;谝韵聨讞l基本規(guī)則進行通信協(xié)調:總線訪問,、仲裁、編碼/解碼,、出錯標注和超裁標注,。CAN 遵從OSI模型。按照OSI基準模型只有三層:物理層,、數(shù)據(jù)鏈路層和哀告層,,但應用層尚需用戶自己定義。CAN總線作為一種有效支持分布式控制或實時控制的串行通信網(wǎng)絡,,應用范圍遍及從高速網(wǎng)絡到低成本的多線路網(wǎng)絡,。如:CAN在汽車中的發(fā)動機控制部件,、ABS、抗滑系統(tǒng)等應用中的位速率可高達1Mbps,。同時,,它可以廉價地用于交通運載工具電器系統(tǒng)中,例如電氣窗口,、燈光聚束,、座椅調節(jié)等,以替代所需要的硬件連接,。其傳輸介制裁為雙絞線,,通信速率最高可達1Mbps/40m,直接傳輸距離最遠可達 10km/5kbps,,掛接設備數(shù)最多可達110個,。CAN為多主工作方式,通信方式靈活,,無需站地址等節(jié)點信息,,采用非破壞性總線仲裁技術,滿足實時要求,。另外,,CAN采用短幀結構傳輸信號,傳輸時間短,,具有較強的抗干擾能力,。

can總線

  CAN總線與其它通信協(xié)議的不同之處主要有兩方面:一是報文傳送不包含目標地址,它是以全網(wǎng)廣播為基礎,,各接收站根據(jù)報文中反映數(shù)據(jù)性質的標識符過濾報文,,其特點是可在線上網(wǎng)下網(wǎng),、即插即用和多站接收,;另外一個方面就是特別強化了數(shù)據(jù)安全性,滿足控制系統(tǒng)及其它較高數(shù)據(jù)要求系統(tǒng)的需求,。

  1.2 J1939通信協(xié)議

  J1939協(xié)議是在CAN總線通信協(xié)議2.0B(29標識符)之上具體實現(xiàn)了應用層,,是SAE為重載卡車和客車制定的通信協(xié)議;以CAN 2.0B為基礎,,物理層標準與ISO11898規(guī)范兼容并采用符合該規(guī)范的CAN控制器及收發(fā)器,。J1939協(xié)議將CAN標識符劃分為如下幾個部分:優(yōu)先級(P)、數(shù)據(jù)頁(PGN),、協(xié)議數(shù)據(jù)單元(PDU)格式,、PDU特定域(PS)和源地址(SA)。J1939/71應用層文檔定義了車輛控制的各種參數(shù)及命令的PGN,。

J1939 的報文格式

  由此可見,,J1939與CAN通信協(xié)議的區(qū)別在于29位標識符(ID),數(shù)據(jù)場相同。J1939將CAN的29位標識符(或稱辨識別)進行了詳細的物理定義,。通過PDU將CAN標準格式封裝為J1939協(xié)議格式,。PDU信息幀又由優(yōu)先權P、保留位R,、數(shù)據(jù)頁DP,、協(xié)議數(shù)據(jù)單元PF、擴展單元PS,、源地址SA和數(shù)據(jù)場DATA七個部分組成,,即CAN的29位標識符加上數(shù)據(jù)。

  2 總體設計

  2.1 汽車電控網(wǎng)絡結構

  汽車內ECU之間的數(shù)據(jù)傳輸特征主要差別在于數(shù)據(jù)傳輸頻率,,例如發(fā)動機高速運行時,,進行的是高頻數(shù)據(jù)傳輸,每隔幾ms就傳輸1次,;而在低速運行時,,進行的是低頻數(shù)據(jù)傳輸,每隔幾十ms乃至幾百ms才傳輸1次,。然而為了滿足實時性要求,,就要求汽車內每個控制單元盡可能實現(xiàn)汽車公共數(shù)據(jù)共享,但又由于每個控制單元對實時性的要求是因為數(shù)據(jù)的更新速率和控制周期不同而不同的,。這就要求其數(shù)據(jù)交換網(wǎng)是基于優(yōu)先權競爭的模式,,且本身具有較高的通信速率。CAN總線正是為滿足這些要求而設計的,。CAN已有國際標準,,即高速場合的ISO11898和用于低速場合的ISO11519-3。

汽車總線電控網(wǎng)絡

  通常的汽車網(wǎng)絡結構采用多條不同速率的總線分別連接不同類型的節(jié)點,,并使用網(wǎng)關服務器來實現(xiàn)整車的信息共享和網(wǎng)絡管理,。若按照美國汽車工程師協(xié)會(SAE)車輛網(wǎng)絡委員會標準SAE J2057,將汽車數(shù)據(jù)傳輸網(wǎng)劃分為三類,。這里可用圖1簡單說明,。其中網(wǎng)關是汽車內部通信的核心,通過它可以實現(xiàn)在CAN總線上信息的共享以及實現(xiàn)汽車內部的網(wǎng)絡管理和故障診斷功能,;將各個數(shù)據(jù)總線上的信息反饋到儀表板總成上的顯示屏上,,駕駛者通過儀表板上的信息就可以知道各個電控裝置是否正常工作了。

 

  2.2 通信平臺硬件設計

  在設計中,,主控芯片CPU選用51系列的單片機,。CAN通信控制器執(zhí)行完整的CAN協(xié)議,完成通信功能,,包括信息緩沖和接收濾波,,故CAN控制器選用 Philips的SJA1000,。選用PCA82C250作為CAN總線的收發(fā)器,PCA82C250是CAN協(xié)議控制器和物理總線之間的接口,,在運行環(huán)境中具有抗瞬變,、抗射頻和抗電磁干擾性能,內部的限流電路具有電路短路時對傳送輸出級進行保護的功能,。傳輸介質采用屏蔽電費,,在測控節(jié)點與介質之間加入光耦電路,以提高總線接口的抗干擾能力,。圖2為通信平臺硬件框圖,,圖3為控制器與收發(fā)器連接接口。

通信平臺硬件結構框圖

  為進一步提高系統(tǒng)的可靠性,,需要考慮到系統(tǒng)的冗余設計,。由于汽車環(huán)境惡劣且干擾 因素較多,在CAN_H和CAN_L信號線與地線之間分別并聯(lián)了兩個電容,,濾去噪聲,,使信號傳輸平穩(wěn)。雙屏蔽電費可設兩套,,在兩套介質上同時進行信息傳輸,。接收方只用一個介質,在冗余和非冗余段的連接臨界點進行總線切換,。

SJA1000與PCA82C250的連接

  2.3 軟件設計

 

  簡單地說,,本通信平臺所要實現(xiàn)的功能就是,使各個節(jié)點(ECU)通過CAN總線實現(xiàn)相互通信,,發(fā)送接收命令,、信息等,并實現(xiàn)數(shù)據(jù)的共享,,從而提高各自的控制性能和運行效率,。汽車上CAN數(shù)據(jù)總線的每個節(jié)點(ECU)都有自己的地址和名稱相對應。ECU地址指出了數(shù)據(jù)傳送的目的地,,而其名稱則標識了ECN的基本功能,。節(jié)點連續(xù)監(jiān)視著總線上發(fā)出的各種數(shù)據(jù)。當所收到的數(shù)據(jù)地址值與自身地址吻合時,,該節(jié)點就獲得令牌。在通信規(guī)約中,,唯一獲得令牌的該節(jié)點有權發(fā)送數(shù)據(jù),,以防止兩個或兩個以上的節(jié)點同時傳輸數(shù)據(jù)引起混亂。同時每一個節(jié)點都有機會得到令牌,,完成數(shù)據(jù)傳輸,。

  本軟件設計是基于Keil C語言編寫的,。程序主要由主模塊、中斷處理模塊及數(shù)據(jù)通信模塊等組成,,如圖4所示,。

軟件設計流程

      主模塊完成對硬件初始化、寄存器的配置,、SJA1000初始化等,;中斷處理模塊包括數(shù)據(jù)中斷的發(fā)送、接收,、錯誤處理及報警處理等,;數(shù)據(jù)通信模塊完成數(shù)據(jù)的請求、發(fā)送,、接收等,。

  當一個節(jié)點A發(fā)送數(shù)據(jù)請求報文(遠程幀),向另外一個節(jié)點B請求報文(應答幀)時,,節(jié)點B接收到請求后,,經(jīng)過判別,而后發(fā)送數(shù)據(jù)(應答幀),。由于數(shù)據(jù)請求沒有數(shù)據(jù)場,,所以相對數(shù)據(jù)幀長度小很多。經(jīng)分析驗證之后與節(jié)點B收到的數(shù)據(jù)相同,,請求數(shù)據(jù)程序得到驗證,。

  結語

  在現(xiàn)代汽車的設計中,CAN總線已經(jīng)成為構建汽車網(wǎng)絡的一種趨勢,;而汽車網(wǎng)絡作為直接與汽車內部各個ECU連接并負責命令的傳遞,、數(shù)據(jù)的發(fā)送及共享,其可靠性和穩(wěn)定性與整車的性能緊密相關,。本文的設計開發(fā)是在基于試驗條件下搭建的仿真平臺,,節(jié)點之間的通信是通過對等的CAN通信節(jié)點進行的。試驗表明其運行性能穩(wěn)定可靠,,但實用化仍需要進一步的研究和改進,,且程序的通信處理能力、糾錯和容錯能力有待進一步的提高,。

此內容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載。