CAN總線設(shè)計(jì)詳解
汽車CAN總線的技術(shù)背景來源于工業(yè)現(xiàn)場(chǎng)總線和計(jì)算機(jī)局域網(wǎng)這樣非常成熟的技術(shù),因此具有很高的可靠性,抗干擾性。
本文引用地址:http://butianyuan.cn/article/201612/330845.htmCAN總線的特點(diǎn)
CAN作為一種多主總線,支持分布式實(shí)時(shí)控制的通訊網(wǎng)絡(luò)。其通訊介質(zhì)可以是雙絞線、同軸電纜或光纖。在汽車發(fā)動(dòng)機(jī)控制部件、傳感器、抗滑系統(tǒng)等應(yīng)用中,總線的位速率最大可達(dá)1Mbit/s。CAN總線屬于總線式串行通訊網(wǎng)絡(luò),由于其采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般的通訊總線相比,CAN總線的數(shù)據(jù)通訊具有突出的可靠性、實(shí)時(shí)性和靈活性。其特點(diǎn)可以概括如下:
1) CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活,且無需站地址等節(jié)點(diǎn)信息。利用這一點(diǎn)可方便地構(gòu)成多機(jī)備份系統(tǒng)。
2) CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求,高優(yōu)先級(jí)的數(shù)據(jù)最多可在134us內(nèi)得到傳輸。
3) CAN采用非破壞性總線性仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低的節(jié)點(diǎn)會(huì)主動(dòng)地退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時(shí)間。尤其是在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓情況(以太網(wǎng)則可能)。
4) CAN只需通過幀濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接受數(shù)據(jù),無需專門的“調(diào)度”。
5) CAN采用NRZ編碼,直接通信距離最遠(yuǎn)可達(dá)10km(速率5kbps);通信速率最高可達(dá)1Mbps(此時(shí)通信距離最長(zhǎng)為40m)。
6) CAN上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng)電路,目前可達(dá)110個(gè);標(biāo)示符可達(dá)2032種(CAN2.0A),而擴(kuò)展標(biāo)準(zhǔn)(CAN2.0B)的標(biāo)示符幾乎不受限制。
7) 采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。
8) CAN的每幀信息都有CRC效驗(yàn)及其他檢錯(cuò)措施,保證數(shù)據(jù)出錯(cuò)率極低。
9) CAN的通信介質(zhì)可為雙鉸線、同軸電纜或光纖,選擇靈活。
10) CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。
CAN總線技術(shù)的優(yōu)點(diǎn)
國(guó)內(nèi)汽車品牌中已經(jīng)有幾款車型應(yīng)用了總線技術(shù),這些技術(shù)完全來自國(guó)外。目前應(yīng)用總線的國(guó)產(chǎn)車中大多采用兩套獨(dú)立的CAN總線:一套是動(dòng)力CAN數(shù)據(jù)傳輸系統(tǒng),另一套是舒適CAN數(shù)據(jù)傳輸系統(tǒng)。
使用CAN總線后,對(duì)其優(yōu)點(diǎn)進(jìn)行了總結(jié),得出以下結(jié)論:
1) 如果數(shù)據(jù)擴(kuò)展以增加新的信息,只需升級(jí)軟件即可。
2) 控制單元對(duì)所傳輸?shù)男畔⑦M(jìn)行實(shí)時(shí)檢測(cè),檢測(cè)到故障后存儲(chǔ)故障碼。
3) 使用小型控制單元及小型控制單元插孔可節(jié)省空間。
4) 使傳感器信號(hào)線減至最少,控制單元可做到高速數(shù)據(jù)傳輸。
5) CAN總線符合國(guó)際標(biāo)準(zhǔn),因此可應(yīng)用不同型號(hào)控制單元間的數(shù)據(jù)傳輸。
汽車CAN總線的節(jié)點(diǎn)設(shè)計(jì)
1 CAN節(jié)點(diǎn)ECU的設(shè)計(jì)(硬件)
汽車節(jié)點(diǎn)ECU的開發(fā)可以選擇帶有在片CAN的微控制器,也可以選擇其它微控制器和相應(yīng)的片外CAN控制器、收發(fā)器。本文以后者為例說明ECU的開發(fā)。
帶有CAN接口的ECU設(shè)計(jì)是總線開發(fā)的核心與關(guān)鍵,其中ECU的CAN總線模塊有幾個(gè)功能單元構(gòu)成――CAN控制器和CAN收發(fā)器。CAN控制器執(zhí)行完整的CAN協(xié)議,完成通訊功能,包括信息緩沖和接收濾波。CAN控制器與物理總線之間需要一個(gè)接口――CAN收發(fā)器,它實(shí)現(xiàn)CAN控制器與總線之間邏輯電平信號(hào)的轉(zhuǎn)換。CAN控制器和收發(fā)器完成CAN物理層和邏輯電路層的所有功能。應(yīng)用層的功能則由軟件來實(shí)現(xiàn)。
各節(jié)點(diǎn)的ECU主要由MCU、DSP、CAN控制器SJA1000、CAN收發(fā)器PCA2C250和其它外圍器件構(gòu)成。圖5給出一個(gè)由51單片機(jī)開發(fā)CAN節(jié)點(diǎn)的原理圖(圖中省略了SJA1000與PCA2C250之間的光耦等細(xì)節(jié)),完全可以說明帶CAN接口ECU設(shè)計(jì)的原理。
2 CAN網(wǎng)絡(luò)通訊的實(shí)現(xiàn)(軟件)
CAN設(shè)計(jì)的三層結(jié)構(gòu)模型為:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。物理層和數(shù)據(jù)鏈路層的功能由CAN接口器件完成,包括硬件電路和通訊協(xié)議兩部分。CAN通訊協(xié)議規(guī)定了四種不同用處的網(wǎng)絡(luò)通訊幀,即數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤指示幀和超載幀。CAN通訊協(xié)議的實(shí)現(xiàn),包括各種通訊幀的組織和發(fā)送,均是由集成在SJA1000通訊控制器中的電路實(shí)現(xiàn)的,因此系統(tǒng)的開發(fā)主要在應(yīng)用層的設(shè)計(jì)上。應(yīng)用層軟件的核心部分是CPU與SJA1000通訊控制器之間的數(shù)據(jù)接收和發(fā)送程序,即CPU把待發(fā)的數(shù)據(jù)發(fā)給SJA1000通訊控制器,再由SJA1000通訊控制器發(fā)到總線上;當(dāng)SJA1000通訊控制器從總線接受到數(shù)據(jù)后,CPU再把數(shù)據(jù)取走。對(duì)于單片機(jī)而言,操作SJA1000就象訪問外部RAM一樣簡(jiǎn)單。首先,應(yīng)對(duì)SJA1000中的有關(guān)控制寄存器寫入控制字,進(jìn)行初始化。之后,CPU即可通過SJA1000接收/發(fā)送緩沖區(qū)向物理總線接收和發(fā)送數(shù)據(jù)。
評(píng)論