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