提及總線,總是讓人聯(lián)想到那些交錯在一起的計算機(jī)電線。那么這些電線如何發(fā)揮功效呢?這還得配合總線協(xié)議的管理來使用。那么今天我們介紹的就是CAN總線協(xié)議??纯催@個協(xié)議的含義和應(yīng)用吧。
? CAN總線協(xié)議基本概念
1. 報文
總線上的信息以不同格式的報文發(fā)送,但長度有限?當(dāng)總線開放時,任何連接的單元均可開始發(fā)送一個新報文?
2. 信息路由在CAN系統(tǒng)中,一個CAN節(jié)點不使用有關(guān)系統(tǒng)結(jié)構(gòu)的任何信息,這里包含一些重要的概念:系統(tǒng)靈活性——節(jié)點可以在不要求所有節(jié)點及其應(yīng)用層改變?nèi)魏?a class="article-link" target="_blank" href="/tag/%E8%BD%AF%E4%BB%B6/">軟件或硬件的情況下,被接于CAN網(wǎng)絡(luò)?報文通信——一個報文的內(nèi)容由其標(biāo)示符ID命名,ID并不指出報文的目的,但描述數(shù)據(jù)的含義,以便網(wǎng)絡(luò)中的所有節(jié)點有可能借助報文濾波決定該數(shù)據(jù)是否使它們激活?成組——由于采用了報文濾波,所有節(jié)點均可接受報文,并同時被相同的報文激活?數(shù)據(jù)相容性——在CAN網(wǎng)絡(luò)中,可以確保報文同時被所有的節(jié)點或者沒有節(jié)點接受,因此,系統(tǒng)的數(shù)據(jù)相容性是借助于成組和出錯處理達(dá)到的?
3. 位速率
CAN的數(shù)據(jù)傳輸率在不同的系統(tǒng)中是不同的,而在一個系統(tǒng)中是固定的速率?
4. 優(yōu)先權(quán)
在總線訪問期間,標(biāo)示符定義了一個報文靜態(tài)的優(yōu)先權(quán)?
5.?遠(yuǎn)程數(shù)據(jù)請求
通過發(fā)送一個遠(yuǎn)程幀,需要數(shù)據(jù)的節(jié)點可以請求另一個節(jié)點發(fā)送相應(yīng)的數(shù)據(jù)幀,該數(shù)據(jù)幀與對應(yīng)的遠(yuǎn)程幀以相同的標(biāo)示符ID命名?
6. 多主站
當(dāng)總線開放時,任何單元均可以開始發(fā)送報文,發(fā)送具有最高優(yōu)先權(quán)報文的單元會贏得總線的訪問權(quán)?
7. 仲裁
當(dāng)總線開放時,任何單元均可以開始發(fā)送報文,若同時有兩個或者更多的單元開始發(fā)送,總線訪問沖突運(yùn)用逐位仲裁規(guī)則,借助標(biāo)示符ID解決,這種仲裁規(guī)則可以使信息和時間均無損失,若具有相同標(biāo)示符的一個數(shù)據(jù)幀和一個遠(yuǎn)程幀同時發(fā)送,數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀,仲裁期間,每個發(fā)送器都對發(fā)送位電平與總線上檢測到的電平進(jìn)行比較,若相同則該單元可以繼續(xù)發(fā)送,當(dāng)發(fā)送一個隱性電平,而在總線上檢測為顯性電平時,該單元退出仲裁,并不再傳送后繼位了?
8. 安全性
CAN總線協(xié)議為了獲得盡可能高的數(shù)據(jù)傳輸安全性,在每個CAN節(jié)點中均設(shè)有錯誤檢測,標(biāo)定和自檢的強(qiáng)有力措施?檢測措施包括:發(fā)送自檢,循環(huán)冗余校驗,位填充,和報文格式檢查?
9. 出錯標(biāo)注和恢復(fù)時間
已損壞的報文由檢驗出錯的節(jié)點進(jìn)行標(biāo)注?這樣的報文將失效,并自動進(jìn)行重發(fā)送?如果不存在新的錯誤,從檢出錯誤到下一個報文開始發(fā)送的恢復(fù)實踐最多為29個位時間?
10. 故障界定
CAN節(jié)點又能力識別永久性的故障和暫時擾動,可自動關(guān)閉故障節(jié)點?
11. 連接
CAN串行通信鏈路是一條眾多單元均可被連接的總線,理論上單元數(shù)目是無限的,實際上,單元總數(shù)受限于延遲時間和總線的電器負(fù)載?
12. 應(yīng)答
所有接收器均對接收報文的相容性進(jìn)行檢查,回答一個相容的報文,并標(biāo)注一個不相容的報文?
? CAN的特點:屬于串行通信網(wǎng)絡(luò)
通信方式靈活。多主從方式工作,網(wǎng)絡(luò)上任何節(jié)點均可以在任何時刻主動的向其他節(jié)點發(fā)送信息,不分主從?無需站地址等節(jié)點信息?可以構(gòu)成多機(jī)備份系統(tǒng)?
CAN網(wǎng)絡(luò)上的節(jié)點信息分成不同的優(yōu)先級,可以滿足不同的實時要求?
CAN采取非破壞性的總線仲裁技術(shù),多個節(jié)點同時發(fā)送信息時,優(yōu)先級低的節(jié)點會主動退出發(fā)送?
CAN只需通過報文濾波就可以實現(xiàn)點對點,1點對多點及全局廣播等幾種方式傳送接收,無需調(diào)度?
CAN的直接通信距離最遠(yuǎn)可達(dá)10KM(5Kb/s),通信速率最高可達(dá)1Mb/s(40M)?
CAN上的節(jié)點數(shù)目前可達(dá)110個;報文標(biāo)示符可達(dá)2032種(CAN2.0A?),而CAN2.0B報文標(biāo)示符幾乎不受限制?
CAN通信采用短幀格式,傳輸時間短,抗干擾強(qiáng),極好的驗錯效果,每幀最多8B足以滿足控制要求,不會占用過長總線時間,實時性強(qiáng)?
CAN每幀都有CRC校驗及其他驗錯措施?
接口中集成了CAN總線協(xié)議的物理層和數(shù)據(jù)鏈路層?
CAN節(jié)點在錯誤嚴(yán)重情況下具有自動關(guān)閉輸出功能?
? CAN總線協(xié)議基本規(guī)則
1.?總線訪問:采用載波監(jiān)聽多路訪問,CAN控制器之恩能夠在總線空閑時,就是節(jié)點偵聽到網(wǎng)絡(luò)上至少存在3個空閑位(隱性位)時開始發(fā)送,采用硬同步,所有的控制器同步都為與幀的起始的前沿?過了一定時間,并在一定條件后,重同步?
2. 仲裁:各節(jié)點向總線發(fā)電平時,也對總線上電平進(jìn)行讀取,并于自身發(fā)送的電平進(jìn)行比較,相同則發(fā)下一位,直至全部發(fā)完?不同則說明網(wǎng)絡(luò)上有更高優(yōu)先級的信息幀正在發(fā)送,即停止發(fā)送,退出競爭?
3. 編碼/解碼:幀起始域,仲裁域,控制域,數(shù)據(jù)域和CRC序列均使用位填充技術(shù)進(jìn)行編碼,就是5個連續(xù)的同狀態(tài)電平插入一位與它相補(bǔ)的電平,還原時每5個同狀態(tài)的電平后的相補(bǔ)電平被刪除?
4. 出錯標(biāo)注:當(dāng)檢測到位錯誤,填充錯誤,形式錯誤或應(yīng)答錯誤時,檢測出錯條件的CAN控制器將發(fā)送一個出錯標(biāo)志?
5. 超載標(biāo)注:一些控制器會發(fā)送一個或多個超載幀以延遲下一個數(shù)據(jù)幀或遠(yuǎn)程幀的發(fā)送?
CANFD接口卡?USBCANFD-400U
? 4路CANFD 2路LIN
??XCP/CCP標(biāo)定
? 兼容CAN2.0A/B模式收發(fā)
參考價格:3300元