本文主要是關于CAN總線的相關介紹,并著重對CAN總線網絡距離和終端電阻距離進行了詳盡的闡述。
CAN總線
CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由以研發(fā)和生產汽車電子產品著稱的德國BOSCH公司開發(fā)的,并最終成為國際標準(ISO 11898),是國際上應用最廣泛的現(xiàn)場總線之一。 在北美和西歐,CAN總線協(xié)議已經成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網的標準總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機械車輛設計的J1939協(xié)議。
CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協(xié)議。在汽車產業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)了出來。由于這些系統(tǒng)之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”、“通過多個LAN,進行大量數據的高速通信”的需要,1986 年德國電氣商博世公司開發(fā)出面向汽車的CAN 通信協(xié)議。此后,CAN 通過ISO11898 及ISO11519 進行了標準化,在歐洲已是汽車網絡的標準協(xié)議。
CAN 的高性能和可靠性已被認同,并被廣泛地應用于工業(yè)自動化、船舶、醫(yī)療設備、工業(yè)設備等方面。現(xiàn)場總線是當今自動化領域技術發(fā)展的熱點之一,被譽為自動化領域的計算機局域網。它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數據通信提供了強有力的技術支持。
優(yōu)勢
CAN屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡。較之許多RS-485基于R線構建的分布式控制系統(tǒng)而言,基于CAN總線的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性:
網絡各節(jié)點之間的數據通信實時性強
首先,CAN控制器工作于多種方式,網絡中的各節(jié)點都可根據總線訪問優(yōu)先權(取決于報文標識符)采用無損結構的逐位仲裁的方式競爭向總線發(fā)送數據,且CAN協(xié)議廢除了站地址編碼,而代之以對通信數據進行編碼,這可使不同的節(jié)點同時接收到相同的數據,這些特點使得CAN總線構成的網絡各節(jié)點之間的數據通信實時性強,并且容易構成冗余結構,提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。而利用RS-485只能構成主從式結構系統(tǒng),通信方式也只能以主站輪詢的方式進行,系統(tǒng)的實時性、可靠性較差;
開發(fā)周期短
CAN總線通過CAN收發(fā)器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài),CANL端只能是低電平或懸浮狀態(tài)。這就保證不會在出現(xiàn)在RS-485網絡中的現(xiàn)象,即當系統(tǒng)有錯誤,出現(xiàn)多節(jié)點同時向總線發(fā)送數據時,導致總線呈現(xiàn)短路,從而損壞某些節(jié)點的現(xiàn)象。而且CAN節(jié)點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節(jié)點的操作不受影響,從而保證不會出現(xiàn)像在網絡中,因個別節(jié)點出現(xiàn)問題,使得總線處于“死鎖”狀態(tài)。而且,CAN具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片來實現(xiàn),從而大大降低系統(tǒng)開發(fā)難度,縮短了開發(fā)周期,這些是僅有電氣協(xié)議的RS-485所無法比擬的。
已形成國際標準的現(xiàn)場總線
另外,與其它現(xiàn)場總線比較而言,CAN總線是具有通信速率高、容易實現(xiàn)、且性價比高等諸多特點的一種已形成國際標準的現(xiàn)場總線。這些也是CAN總線應用于眾多領域,具有強勁的市場競爭力的重要原因。
最有前途的現(xiàn)場總線之一
CAN 即控制器局域網絡,屬于工業(yè)現(xiàn)場總線的范疇。與一般的通信總線相比,CAN總線的數據通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特的設計,CAN總線越來越受到人們的重視。它在汽車領域上的應用是最廣泛的,世界上一些著名的汽車制造廠商都采用了CAN總線來實現(xiàn)汽車內部控制系統(tǒng)與各檢測和執(zhí)行機構間的數據通信。同時,由于CAN總線本身的特點,其應用范圍已不再局限于汽車行業(yè),而向自動控制、航空航天、航海、過程工業(yè)、機械工業(yè)、紡織機械、農用機械、機器人、數控機床、醫(yī)療器械及傳感器等領域發(fā)展。CAN已經形成國際標準,并已被公認為幾種最有前途的現(xiàn)場總線之一。其典型的應用協(xié)議有:SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。
發(fā)展
控制器局部網(CAN-CONTROLLER AREA NETWORK)是BOSCH公司為現(xiàn)代汽車應用領域推出的一種多主機局部網,由于其高性能、高可靠性、實時性等優(yōu)點現(xiàn)已廣泛應用于工業(yè)自動化、多種控制設備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門??刂破骶植烤W將在中國迅速普及推廣。
隨著計算機硬件、軟件技術及集成電路技術的迅速發(fā)展,工業(yè)控制系統(tǒng)已成為計算機技術應用領域中最具活力的一個分支,并取得了巨大進步。由于對系統(tǒng)可靠性和靈活性的高要求,工業(yè)控制系統(tǒng)的發(fā)展主要表現(xiàn)為:控制面向多元化,系統(tǒng)面向分散化,即負載分散、功能分散、危險分散和地域分散。
分散式工業(yè)控制系統(tǒng)就是為適應這種需要而發(fā)展起來的。這類系統(tǒng)是以微型機為核心,將 5C技術--COMPUTER(計算機技術)、CONTROL(自動控制技術)、COMMUNICATION(通信技術)、CRT(顯示技術)和 CHANGE(轉換技術)緊密結合的產物。它在適應范圍、可擴展性、可維護性以及抗故障能力等方面,較之分散型儀表控制系統(tǒng)和集中型計算機控制系統(tǒng)都具有明顯的優(yōu)越性。
典型的分散式控制系統(tǒng)由現(xiàn)場設備、接口與計算設備以及通信設備組成。現(xiàn)場總線(FIELDBUS)能同時滿足過程控制和制造業(yè)自動化的需要,因而現(xiàn)場總線已成為工業(yè)數據總線領域中最為活躍的一個領域?,F(xiàn)場總線的研究與應用已成為工業(yè)數據總線領域的熱點。盡管對現(xiàn)場總線的研究尚未能提出一個完善的標準,但現(xiàn)場總線的高性能價格必將吸引眾多工業(yè)控制系統(tǒng)采用。同時,正由于現(xiàn)場總線的標準尚未統(tǒng)一,也使得現(xiàn)場總線的應用得以不拘一格地發(fā)揮,并將為現(xiàn)場總線的完善提供更加豐富的依據??刂破骶植烤W CAN(CONTROLLER AERANETWORK)正是在這種背景下應運而生的。
由于CAN為愈來愈多不同領域采用和推廣,導致要求各種應用領域通信報文的標準化。為此,1991年 9月 PHILIPS SEMICONDUCTORS制訂并發(fā)布了 CAN技術規(guī)范(VERSION 2.0)。該技術規(guī)范包括A和B兩部分。2.0A給出了曾在CAN技術規(guī)范版本1.2中定義的CAN報文格式,能提供11位地址;而2.0B給出了標準的和擴展的兩種報文格式,提供29位地址。此后,1993年11月ISO正式頒布了道路交通運載工具--數字信息交換--高速通信控制器局部網(CAN)國際標準(ISO11898),為控制器局部網標準化、規(guī)范化推廣鋪平了道路。
特點
CAN總線是德國BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數據交換而開發(fā)的一種串行數據通信協(xié)議,它是一種多主總線,通信介質可以是雙絞線、同軸電纜或光導纖維。通信速率最高可達1Mbps。
完成對通信數據的成幀處理
CAN總線通信接口中集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。
使網絡內的節(jié)點個數在理論上不受限制
CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數據塊進行編碼。采用這種方法的優(yōu)點可使網絡內的節(jié)點個數在理論上不受限制,數據塊的標識符可由11位或29位二進制數組成,因此可以定義2或2個以上不同的數據塊,這種按數據塊編碼的方式,還可使不同的節(jié)點同時接收到相同的數據,這一點在分布式控制系統(tǒng)中非常有用。數據段長度最多為8個字節(jié),可滿足通常工業(yè)領域中控制命令、工作狀態(tài)及測試數據的一般要求。同時,8個字節(jié)不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。CAN卓越的特性、極高的可靠性和獨特的設計,特別適合工業(yè)過程監(jiān)控設備的互連,因此,越來越受到工業(yè)界的重視,并已公認為最有前途的現(xiàn)場總線之一。
可在各節(jié)點之間實現(xiàn)自由通信
CAN總線采用了多主競爭式總線結構,具有多主站運行和分散仲裁的串行總線以及廣播通信的特點。CAN總線上任意節(jié)點可在任意時刻主動地向網絡上其它節(jié)點發(fā)送信息而不分主次,因此可在各節(jié)點之間實現(xiàn)自由通信。CAN總線協(xié)議已被國際標準化組織認證,技術比較成熟,控制的芯片已經商品化,性價比高,特別適用于分布式測控系統(tǒng)之間的數據通訊。CAN總線插卡可以任意插在PC AT XT兼容機上,方便地構成分布式監(jiān)控系統(tǒng)。
結構簡單
只有2根線與外部相連,并且內部集成了錯誤探測和管理模塊。
傳輸距離和速率
CAN總線特點:(1) 數據通信沒有主從之分,任意一個節(jié)點可以向任何其他(一個或多個)節(jié)點發(fā)起數據通信,靠各個節(jié)點信息優(yōu)先級先后順序來決定通信次序,高優(yōu)先級節(jié)點信息在134μs通信; (2) 多個節(jié)點同時發(fā)起通信時,優(yōu)先級低的避讓優(yōu)先級高的,不會對通信線路造成擁塞; (3) 通信距離最遠可達10KM(速率低于5Kbps)速率可達到1Mbps(通信距離小于40M);(4) CAN總線傳輸介質可以是雙絞線,同軸電纜。CAN總線適用于大數據量短距離通信或者長距離小數據量,實時性要求比較高,多主多從或者各個節(jié)點平等的現(xiàn)場中使用。
can網絡距離多遠需要加終端電阻
總線首先滿足線性拓撲即拓撲中任意點到干線的距離小于拓撲倆個終端的距離,三節(jié)點網絡C點到A點和C點到B點的距離小遠遠于AB之間的距離,這樣在AB加終端電阻網絡是穩(wěn)定的,距離不超過40M,同時你的節(jié)點是高速非容錯CAN。
低俗容錯情況不同。
按照ISO 11898規(guī)范,為了增強CAN-bus 通訊的可靠性,CAN-bus 總線網絡的兩個端點通常要加入終端匹配電阻(120Ω)。終端匹配電阻的大小由傳輸電纜的特性阻抗所決定,例如,雙絞線的特性阻抗為120Ω,則總線上的兩個端點也應配上120Ω終端電阻。另外在長距離通信中,終端電阻的阻值有時需要增大,才能保證通信的正常。
下邊是我用的一個“CAN轉串口”設備手冊中的一個CAN總線設備連接推薦拓撲圖,其中展示了終端電阻的安裝位置。
CAN總線要點
CAN總線的應用在現(xiàn)在看來越來越廣泛,我廠設備從最初的ARM9與ARM7平臺、期間升級過度到CortexA8與Cortex M3平臺,再到現(xiàn)在的Cortex M4平臺,圍繞CAN進行了一系列產品的開發(fā),CAN總線的穩(wěn)定性是毋庸置疑的。
CAN總線物理結構與特性
CAN總線網絡
CAN總線網絡主要掛在CAN_H和CAN_L,各個節(jié)點通過這兩條線實現(xiàn)信號的串行差分傳輸,為了避免信號的反射和干擾,還需要在CAN_H和CAN_L之間接上120歐姆的終端電阻,但是為什么是120歐姆呢?那是因為電纜的特性阻抗為120歐。
CAN收發(fā)器
CAN收發(fā)器的作用是負責邏輯電平和信號電平之間的轉換。
即從CAN控制芯片輸出邏輯電平到CAN收發(fā)器,然后經過CAN收發(fā)器內部轉換將邏輯電平轉換為差分信號輸出到CAN總線上,CAN總線上的節(jié)點都可以決定自己是否需要總線上的數據。具體的管教定義如下:
信號表示
CAN總線采用不歸零碼位填充技術,也就是說CAN總線上的信號有兩種不同的信號狀態(tài),分別是顯性的(Dominant)邏輯0和隱形的(recessive)邏輯1,信號每一次傳輸完后不需要返回到邏輯0(顯性)的電平。
位填充規(guī)則:發(fā)送器只要檢測到位流里有5個連續(xù)相同值的位,便自動在位流里插入補充位。
可以看到上圖中的當第一段為隱性(recessive),CAN_H和CAN_L電平幾乎一樣,也就是說CAN_H和CAN_L電平很接近甚至相等的時候,總線表現(xiàn)隱性的,而兩線點位差較大時表現(xiàn)為顯性的,按照定義的:
CAN_H-CAN_L 《 0.5V 時候為隱性的,邏輯信號表現(xiàn)為“邏輯1”- 高電平。
CAN_H-CAN_L 》 0.9V 時候為顯性的,邏輯信號表現(xiàn)為“邏輯0”- 低電平。
下面將差分信號和顯隱性之間對應關系總結為下表:
狀態(tài)
邏輯信號
電壓范圍
顯性Dominant
0
CAN_H-CAN_L 》 0.9
隱性recessive
1
CAN_H-CAN_L 《 0.5
由上面的分析我們可以知道:
CAN總線采用的“線與”的規(guī)則進行總線沖裁。即1&0=0;所以0為顯性。
這句話隱含的意思是,如果總線上只要有一個節(jié)點將總線拉到低電平(邏輯0)即顯性狀態(tài),總線就為低電平(邏輯0)即顯性狀態(tài)而不管總線上有多少節(jié)點處于傳輸隱性狀態(tài)(高電平或是邏輯1),只有所有節(jié)點都為高(隱性),總線才為高,即隱性。
通訊速率與通訊距離
這里的最大通信距離指的是同一條總線上兩個節(jié)點之間的距離??梢钥吹剿俾试降屯ㄓ嵕嚯x就越遠,也就是說CAN總線的通訊距離和波特率成反比。在位速率為5千比特位每秒的時候達到最大的傳輸距離10公里。其中一般的工程中比較常用的為500K每秒的通訊速率。這個速率在實際測試的時候也是非??煽康?。
如果想要更遠的傳輸(大于10公里);可以考慮用多個CAN控制器連接或是加其他通訊協(xié)議(如485或是TCP/IP)的接口芯片組成的一個設備,這樣就可實現(xiàn)長距離的通訊需求。
結語
關于CAN總線的相關介紹就到這了,如有不足之處歡迎指正。
-
CAN總線
+關注
關注
145文章
1955瀏覽量
130924
發(fā)布評論請先 登錄
相關推薦
評論