汽車CAN總線基礎-CAN總線簡介
1.1 CAN是什么
CAN是Controller Area Network的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協(xié)議。
1.2 CAN的起源
汽車CAN總線是20世紀80年代初德國Bosch公司為解決現(xiàn)代汽車中眾多控制單元、測試儀器之間的實時數(shù)據(jù)交換而開發(fā)的一種串行通信協(xié)議。
傳統(tǒng)汽車線束連接如圖1.21。
在當前的汽車產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)了出來。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數(shù)量也隨之增加。為適應“減少線束的數(shù)量”,“通過多哥LAN,進行大量數(shù)據(jù)的高速通信”的需要,1986年德國電氣商博世公司開發(fā)出面向汽車的CAN通信協(xié)議。此后,CAN通過ISO11898及ISO11519進行了標準化,現(xiàn)在在歐洲已是汽車網(wǎng)絡的標準協(xié)議。
現(xiàn)在,CAN總線的高性能和可靠性已被認同,并被廣泛地應用于工業(yè)自動化、船舶、醫(yī)療設備、工業(yè)設備等方面。
在汽車上的應用,CAN節(jié)點已經(jīng)達到最多90個電子控制節(jié)點了。
1.1 CAN的發(fā)展史
※1983年,Bosch開始研究車上的網(wǎng)絡技術;
※1986年,Bosch在SAE大會公布CAN協(xié)議;
※1987年,Intel與Philips先后推出CAN控制器芯片;
※1991年,Bosch頒布CAN2.0技術規(guī)范,CAN2.0包括A和B兩個部分;
※1991年,CAN總線最先在Benz S系列轎車上實現(xiàn);
※1993年,ISO頒布CAN國際標準ISO-11898;
※1994年,SAE頒布基于CAN的J1939標準;
※2003年,Maybach頒布帶76個ECU的新車型(CAN、LIN、MOST);
※2003年,VW頒布了帶35ECU的新車型Golf;
……
※未來,CAN總線將部分被FlexRay所取代,但是CAN總線將會被持續(xù)應用相當長的時間。
1.2 CAN的特性
※多主結(jié)構依據(jù)優(yōu)先權進行總線訪問;
※無破壞性的基于優(yōu)先權的逐位仲裁;
※借助驗收濾波器的多地址幀傳遞;
※遠程數(shù)據(jù)請求;
※全系統(tǒng)數(shù)據(jù)相容性;
※錯誤檢測與出錯信令;
※很遠的輸出傳輸距離(長達10Km);
※高速的數(shù)據(jù)傳輸速率(高達1Mbps);
※高度實時性,每幀報文允許傳輸最多8個字節(jié)的數(shù)據(jù);
※發(fā)送期間丟失仲裁或出錯而遭到破壞的幀可自動重發(fā);
※暫時錯誤和永久性故障節(jié)點的判別以及故障節(jié)點的自動脫離;
※脫離總線的節(jié)點不影響總線的正常工作。
1. 多主控制
在總線空閑時,所有的單元都可開始發(fā)送消息,最先訪問總線的單元可獲得發(fā)送權,多個單元同時開始發(fā)送時,發(fā)送高優(yōu)先級ID消息的單元可獲得發(fā)送權。
2. 消息的發(fā)送
在CAN協(xié)議中,所有的消息都以固定的格式發(fā)送??偩€空閑時,所有與總線相連接的單元都可以開始發(fā)送新消息。兩個以上的單元同時開始發(fā)送消息時,根據(jù)標識符ID決定優(yōu)先級。ID并不是表示發(fā)送的目的地址,而是表示訪問總線的消息的優(yōu)先級。兩個以上的單元同時開發(fā)發(fā)送消息時,對各消息ID的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優(yōu)先級最高)的單元可繼續(xù)發(fā)送消息,仲裁失利的單元則立刻停止發(fā)送而進行接收工作。
3. 系統(tǒng)的柔軟性
與總線相連接的單元沒有類似于“地址”的信息,因此在總線傷增加單元時,連接在總線上的其他單元的軟硬件及應用層都不需要改變。
4. 通信速度
根據(jù)整個網(wǎng)絡的規(guī)模,可設定適合的通信速度。在同一網(wǎng)絡中,所有單元必須設定成統(tǒng)一的通信速度,即使有一個單元的通信速度與其他的不一樣,此單元也會輸出錯誤信號,妨礙整個網(wǎng)絡的通信。
5. 遠程數(shù)據(jù)請求
可通過發(fā)送“遠程幀”請求其他單元發(fā)送數(shù)據(jù)。
6. 錯誤檢測功能、錯誤通知功能、錯誤恢復功能
所有的單元都可以檢測錯誤及錯誤檢測功能。檢測出錯誤的單元會立即同時通知其他所有單元及錯誤通知功能。正在發(fā)送消息的單元一旦檢測出錯誤,會強制結(jié)束當前的發(fā)送,強制結(jié)束發(fā)送的單元會不斷反復地重新發(fā)送此消息直到成功發(fā)送為止及錯誤恢復功能。
7. 故障封閉
CAN可以判斷出錯誤的類型是總線上暫時的數(shù)據(jù)錯誤(如外部噪聲等)還是持續(xù)的數(shù)據(jù)錯誤(如單元內(nèi)部故障、驅(qū)動器故障、斷線等)。由此功能,當總線上發(fā)生持續(xù)數(shù)據(jù)錯誤時,可將引起此故障單元從總線上隔離出去。
8. 連接
CAN總線是可同時連接多個單元的總線,可連接的單元總數(shù)理論上是沒有限制的,但實際上可連接的單元數(shù)受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數(shù)增加;提高通信速度,則可連接的單元數(shù)減少。
評論