新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的多ECU通信平臺設(shè)計(jì)

基于CAN總線的多ECU通信平臺設(shè)計(jì)

——
作者: 時(shí)間:2007-12-26 來源: 收藏

  引言

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

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

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

  1.1 CAN總線簡介

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

  

can總線

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

  1.2 J1939通信協(xié)議

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

  

J1939 的報(bào)文格式

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

{{分頁}}

  2 總體設(shè)計(jì)

  2.1 汽車電控網(wǎng)絡(luò)結(jié)構(gòu)

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

  

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

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

  2.2 通信平臺硬件設(shè)計(jì)

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

{{分頁}}

  

通信平臺硬件結(jié)構(gòu)框圖

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

  

SJA1000與PCA82C250的連接
{{分頁}}

  2.3 軟件設(shè)計(jì)

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

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

  

軟件設(shè)計(jì)流程

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

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

  結(jié)語

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

數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理


雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理


關(guān)鍵詞: CAN 總線 ECU 通信基礎(chǔ)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉