新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CAN總線設(shè)計詳解

CAN總線設(shè)計詳解

作者: 時間:2016-12-16 來源:網(wǎng)絡(luò) 收藏
CAN總線是德國BOSCH公司在20世紀80年代初,為了解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通訊協(xié)議。它的短幀數(shù)據(jù)結(jié)構(gòu)、非破壞性總線性仲裁技術(shù)以及靈活的通訊方式適應(yīng)了汽車的實時性和可靠性要求。

汽車CAN總線的技術(shù)背景來源于工業(yè)現(xiàn)場總線和計算機局域網(wǎng)這樣非常成熟的技術(shù),因此具有很高的可靠性,抗干擾性。

本文引用地址:http://m.butianyuan.cn/article/201612/330845.htm

CAN總線的特點

CAN作為一種多主總線,支持分布式實時控制的通訊網(wǎng)絡(luò)。其通訊介質(zhì)可以是雙絞線、同軸電纜或光纖。在汽車發(fā)動機控制部件、傳感器、抗滑系統(tǒng)等應(yīng)用中,總線的位速率最大可達1Mbit/s。CAN總線屬于總線式串行通訊網(wǎng)絡(luò),由于其采用了許多新技術(shù)及獨特的設(shè)計,與一般的通訊總線相比,CAN總線的數(shù)據(jù)通訊具有突出的可靠性、實時性和靈活性。其特點可以概括如下:

1) CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點均可在任意時刻主動地向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活,且無需站地址等節(jié)點信息。利用這一點可方便地構(gòu)成多機備份系統(tǒng)。

2) CAN網(wǎng)絡(luò)上的節(jié)點信息分成不同的優(yōu)先級,可滿足不同的實時要求,高優(yōu)先級的數(shù)據(jù)最多可在134us內(nèi)得到傳輸。

3) CAN采用非破壞性總線性仲裁技術(shù),當多個節(jié)點同時向總線發(fā)送信息時,優(yōu)先級較低的節(jié)點會主動地退出發(fā)送,而最高優(yōu)先級的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時間。尤其是在網(wǎng)絡(luò)負載很重的情況下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓情況(以太網(wǎng)則可能)。

4) CAN只需通過幀濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送接受數(shù)據(jù),無需專門的“調(diào)度”。
5) CAN采用NRZ編碼,直接通信距離最遠可達10km(速率5kbps);通信速率最高可達1Mbps(此時通信距離最長為40m)。

6) CAN上的節(jié)點數(shù)主要取決于總線驅(qū)動電路,目前可達110個;標示符可達2032種(CAN2.0A),而擴展標準(CAN2.0B)的標示符幾乎不受限制。

7) 采用短幀結(jié)構(gòu),傳輸時間短,受干擾概率低,具有極好的檢錯效果。

8) CAN的每幀信息都有CRC效驗及其他檢錯措施,保證數(shù)據(jù)出錯率極低。

9) CAN的通信介質(zhì)可為雙鉸線、同軸電纜或光纖,選擇靈活。

10) CAN節(jié)點在錯誤嚴重的情況下具有自動關(guān)閉輸出功能,以使總線上其他節(jié)點的操作不受影響。

CAN總線技術(shù)的優(yōu)點

國內(nèi)汽車品牌中已經(jīng)有幾款車型應(yīng)用了總線技術(shù),這些技術(shù)完全來自國外。目前應(yīng)用總線的國產(chǎn)車中大多采用兩套獨立的CAN總線:一套是動力CAN數(shù)據(jù)傳輸系統(tǒng),另一套是舒適CAN數(shù)據(jù)傳輸系統(tǒng)。

使用CAN總線后,對其優(yōu)點進行了總結(jié),得出以下結(jié)論:
1) 如果數(shù)據(jù)擴展以增加新的信息,只需升級軟件即可。

2) 控制單元對所傳輸?shù)男畔⑦M行實時檢測,檢測到故障后存儲故障碼。

3) 使用小型控制單元及小型控制單元插孔可節(jié)省空間。

4) 使傳感器信號線減至最少,控制單元可做到高速數(shù)據(jù)傳輸。

5) CAN總線符合國際標準,因此可應(yīng)用不同型號控制單元間的數(shù)據(jù)傳輸。

汽車CAN總線的節(jié)點設(shè)計

1 CAN節(jié)點ECU的設(shè)計(硬件)

汽車節(jié)點ECU的開發(fā)可以選擇帶有在片CAN的微控制器,也可以選擇其它微控制器和相應(yīng)的片外CAN控制器、收發(fā)器。本文以后者為例說明ECU的開發(fā)。

帶有CAN接口的ECU設(shè)計是總線開發(fā)的核心與關(guān)鍵,其中ECU的CAN總線模塊有幾個功能單元構(gòu)成――CAN控制器和CAN收發(fā)器。CAN控制器執(zhí)行完整的CAN協(xié)議,完成通訊功能,包括信息緩沖和接收濾波。CAN控制器與物理總線之間需要一個接口――CAN收發(fā)器,它實現(xiàn)CAN控制器與總線之間邏輯電平信號的轉(zhuǎn)換。CAN控制器和收發(fā)器完成CAN物理層和邏輯電路層的所有功能。應(yīng)用層的功能則由軟件來實現(xiàn)。

各節(jié)點的ECU主要由MCU、DSP、CAN控制器SJA1000、CAN收發(fā)器PCA2C250和其它外圍器件構(gòu)成。圖5給出一個由51單片機開發(fā)CAN節(jié)點的原理圖(圖中省略了SJA1000與PCA2C250之間的光耦等細節(jié)),完全可以說明帶CAN接口ECU設(shè)計的原理。

2 CAN網(wǎng)絡(luò)通訊的實現(xiàn)(軟件)

CAN設(shè)計的三層結(jié)構(gòu)模型為:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。物理層和數(shù)據(jù)鏈路層的功能由CAN接口器件完成,包括硬件電路和通訊協(xié)議兩部分。CAN通訊協(xié)議規(guī)定了四種不同用處的網(wǎng)絡(luò)通訊幀,即數(shù)據(jù)幀、遠程幀、錯誤指示幀和超載幀。CAN通訊協(xié)議的實現(xiàn),包括各種通訊幀的組織和發(fā)送,均是由集成在SJA1000通訊控制器中的電路實現(xiàn)的,因此系統(tǒng)的開發(fā)主要在應(yīng)用層的設(shè)計上。應(yīng)用層軟件的核心部分是CPU與SJA1000通訊控制器之間的數(shù)據(jù)接收和發(fā)送程序,即CPU把待發(fā)的數(shù)據(jù)發(fā)給SJA1000通訊控制器,再由SJA1000通訊控制器發(fā)到總線上;當SJA1000通訊控制器從總線接受到數(shù)據(jù)后,CPU再把數(shù)據(jù)取走。對于單片機而言,操作SJA1000就象訪問外部RAM一樣簡單。首先,應(yīng)對SJA1000中的有關(guān)控制寄存器寫入控制字,進行初始化。之后,CPU即可通過SJA1000接收/發(fā)送緩沖區(qū)向物理總線接收和發(fā)送數(shù)據(jù)。



關(guān)鍵詞: CAN總線通訊網(wǎng)

評論


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

關(guān)閉