認(rèn)識CAN總線
它又有什么特點呢?
本文引用地址:http://m.butianyuan.cn/article/201612/328885.htm1、什么是CAN總線
介紹CAN總線之前我們先來介紹下什么是總線吧:總線將分散的有通信能力的測量控制設(shè)備作為網(wǎng)絡(luò)節(jié)點,連接成能相互溝通信息,共同完成自控任務(wù)的控制網(wǎng)絡(luò)。就像這樣
簡單說,現(xiàn)場總線就是以數(shù)字通信替代了傳統(tǒng)4-20mA模擬信號及普通開關(guān)量信號的傳輸,是連接智能現(xiàn)場設(shè)備和自動化系統(tǒng)的全數(shù)字、雙向、多站的通信系統(tǒng)。而今天要講的CAN總線就是是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。(這么NB?。?/p>
CAN控制器通過組成總線的2根線(CAN-H和CAN-L)的電位差來確定總線的電平,在任一時刻,總線上有2種電平:顯性電平和隱性電平。
“顯性”具有“優(yōu)先”的意味,只要有一個單元輸出顯性電平,總線上即為顯性電平,并且,“隱性”具有“包容”的意味,只有所有的單元都輸出隱性電平,總線上才為隱性電平。(顯性電平比隱性電平更強)。
總線上執(zhí)行邏輯上的線“與”時,顯性電平的邏輯值為“0”,隱性電平為“1”。
下圖顯示了一個典型的CAN拓?fù)?/strong>連接圖。
連接在總線上的所有單元都能夠發(fā)送信息,如果有超過一個單元在同一時刻發(fā)送信息,有最高優(yōu)先級的單元獲得發(fā)送的資格,所有其它單元執(zhí)行接收操作。
2、CAN協(xié)議的特點
CAN協(xié)議具有以下特點。
(1)多主控制
在總線空閑時,所有的單元都可開始發(fā)送消息(多主控制)。
最先訪問總線的單元可獲得發(fā)送權(quán)(CSMA/CA方式*1)。
多個單元同時開始發(fā)送時,發(fā)送高優(yōu)先級ID消息的單元可獲得發(fā)送權(quán)。
(2)消息的發(fā)送
在CAN協(xié)議中,所有的消息都以固定的格式發(fā)送??偩€空閑時,所有與總線相連的單元都可以開始發(fā)送新
消息。兩個以上的單元同時開始發(fā)送消息時,根據(jù)標(biāo)識符(Identifier以下稱為ID)決定優(yōu)先級。ID并不
是表示發(fā)送的目的地址,而是表示訪問總線的消息的優(yōu)先級。兩個以上的單元同時開始發(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ò)的通信。不同網(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ù)增加;提高通信速度,則可連接
CAN總線是個非常“機智”的總線,有很廣泛的應(yīng)用,其通信協(xié)議比較復(fù)雜,這里篇幅有限不能詳細介紹,網(wǎng)上資料很全,有感興趣的小伙伴可以去學(xué)習(xí)。CAN有很多有用的機制,想要完全理解CAN通信的原理需要下一定的功夫。
評論