新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > CAN總線知多少?

        CAN總線知多少?

        作者:jobs 時間:2013-10-23 來源:電子產品世界 收藏

          基本概念

        本文引用地址:http://www.104case.com/article/182409.htm

           是Controller Area Network 的縮寫(以下稱為),是ISO國際標準化的串行協議,形成并通過ISO11898 及ISO11519標準認證。在歐洲已是的標準協議。

           的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面。它的出現為分布式控制系統實現各節點之間實時、可靠的數據提供了強有力的技術支持。

          優勢

        •   CAN屬于現場總線的范疇,它是一種有效支持分布式控制或實時控制的串行網絡。較之許多RS-485基于R線構建的分布式控制系統而言,基于CAN總線的分布式控制系統在以下方面具有明顯的優越性:
        •   網絡各節點之間的數據通信速率高、實時性強
        •   縮短了開發周期
        •   已形成國際標準的現場總線

          特點

          CAN總線是德國BOSCH公司從80年代初為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種串行數據通信協議,它是一種多主總線,通信介質可以是雙絞線、同軸電纜或光導纖維。通信速率最高可達1Mbps。

          1、完成對通信數據的成幀處理

          CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余檢驗、優先級判別等項工作。

          2、使網絡內的節點個數在理論上不受限制

          CAN協議的一個最大特點是廢除了傳統的站地址編碼,而代之以對通信數據塊進行編碼。采用這種方法的優點可使網絡內的節點個數在理論上不受限制,數據塊的標識符可由11位或29位二進制數組成,因此可以定義2或2個以上不同的數據塊,這種按數據塊編碼的方式,還可使不同的節點同時接收到相同的數據,這一點在分布式控制系統中非常有用。數據段長度最多為8個字節,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8個字節不會占用總線時間過長,從而保證了通信的實時性。CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。CAN卓越的特性、極高的可靠性和獨特的設計,特別適合工業過程監控設備的互連,因此,越來越受到工業界的重視,并已公認為最有前途的現場總線之一。

          3、可在各節點之間實現自由通信

          CAN總線采用了多主競爭式總線結構,具有多主站運行和分散仲裁的串行總線以及廣播通信的特點。CAN總線上任意節點可在任意時刻主動地向網絡上其它節點發送信息而不分主次,因此可在各節點之間實現自由通信。CAN總線協議已被國際標準化組織認證,技術比較成熟,控制的芯片已經商品化,性價比高,特別適用于分布式測控系統之間的數通訊。CAN總線插卡可以任意插在PC AT XT兼容機上,方便地構成分布式監控系統。

          4、結構簡單

          只有2根線與外部相連,并且內部集成了錯誤探測和管理模塊。

          5、傳輸距離和速率

          CAN總線特點:(1) 數據通信沒有主從之分,任意一個節點可以向任何其他(一個或多個)節點發起數據通信,靠各個節點信息優先級先后順序來決定通信次序,高優先級節點信息在134μs通信; (2) 多個節點同時發起通信時,優先級低的避讓優先級高的,不會對通信線路造成擁塞; (3) 通信距離最遠可達10KM(速率低于5Kbps)速率可達到1Mbps(通信距離小于40M);(4) CAN總線傳輸介質可以是雙絞線,同軸電纜。CAN總線適用于大數據量短距離通信或者長距離小數據量,實時性要求比較高,多主多從或者各個節點平等的現場中使用。

          技術介紹

          1、位仲裁

          要對數據進行實時處理,就必須將數據快速傳送,這就要求數據的物理傳輸通路有較高的速度。在幾個站同時需要發送數據時,要求快速地進行總線分配。實時處理通過網絡交換的緊急數據有較大的不同。一個快速變化的物理量,如汽車引擎負載,將比類似汽車引擎溫度這樣相對變化較慢的物理量更頻繁地傳送數據并要求更短的延時。

          CAN總線以報文為單位進行數據傳送,報文的優先級結合在11位標識符中,具有最低二進制數的標識符有最高的優先級。這種優先級一旦在系統設計時被確立后就不能再被更改。總線讀取中的沖突可通過位仲裁解決。如圖2所示,當幾個站同時發送報文時,站1的報文標識符為011111;站2的報文標識符為0100110;站3的報文標識符為0100111。所有標識符都有相同的兩位01,直到第3位進行比較時,站1的報文被丟掉,因為它的第3位為高,而其它兩個站的報文第3位為低。站2和站3報文的4、5、6位相同,直到第7位時,站3的報文才被丟失。注意,總線中的信號持續跟蹤最后獲得總線讀取權的站的報文。在此例中,站2的報文被跟蹤。這種非破壞性位仲裁方法的優點在于,在網絡最終確定哪一個站的報文被傳送以前,報文的起始部分已經在網絡上傳送了。所有未獲得總線讀取權的站都成為具有最高優先權報文的接收站,并且不會在總線再次空閑前發送報文。

          CAN具有較高的效率是因為總線僅僅被那些請求總線懸而未決的站利用,這些請求是根據報文在整個系統中的重要性按順序處理的。這種方法在網絡負載較重時有很多優點,因為總線讀取的優先級已被按順序放在每個報文中了,這可以保證在實時系統中較低的個體隱伏時間。

          對于主站的可靠性,由于CAN協議執行非集中化總線控制,所有主要通信,包括總線讀取 (許可)控制,在系統中分幾次完成。這是實現有較高可靠性的通信系統的唯一方法。

          2、CAN的報文格式

          在總線中傳送的報文,每幀由7部分組成。CAN協議支持兩種報文格式,其唯一的不同是標識符(ID)長度不同,標準格式為11位,擴展格式為29位。

          在標準格式中,報文的起始位稱為幀起始(SOF),然后是由11位標識符和遠程發送請求位 (RTR)組成的仲裁場。RTR位標明是數據幀還是請求幀,在請求幀中沒有數據字節。

          控制場包括標識符擴展位(IDE),指出是標準格式還是擴展格式。它還包括一個保留位 (ro),為將來擴展使用。它的最后四個位用來指明數據場中數據的長度(DLC)。數據場范圍為0~8個字節,其后有一個檢測數據錯誤的循環冗余檢查(CRC)。

          應答場(ACK)包括應答位和應答分隔符。發送站發送的這兩位均為隱性電平(邏輯1),這時正確接收報文的接收站發送主控電平(邏輯0)覆蓋它。用這種方法,發送站可以保證網絡中至少有一個站能正確接收到報文。

          報文的尾部由幀結束標出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進行總線存取,總線將處于空閑狀態。

          3、CAN數據幀的組成

          >> 遠程幀

          遠程幀由6個場組成:幀起始、仲裁場、控制場、CRC場、應答場和幀結束。遠程幀不存在數據場。遠程幀的RTR位必須是隱位。DLC的數據值是獨立的,它可以是0~8中的任何數值,為對應數據幀的數據長度。

          >> 錯誤幀

        •   錯誤幀由兩個不同場組成,第一個場由來自各站的錯誤標志疊加得到,第二個場是錯誤界定符錯誤標志具有兩種形式:活動錯誤標志(Active error flag),由6個連續的顯位組成
        •   認可錯誤標志(Passive error flag),由6個連續的隱位組成錯誤界定符包括8個隱位

          >> 超載幀

          超載幀包括兩個位場:超載標志和超載界定符。

          >> 數據錯誤檢測

          不同于其它總線,CAN協議不能使用應答信息。事實上,它可以將發生的任何錯誤用信號發出。CAN協議可使用五種檢查錯誤的方法,其中前三種為基于報文內容檢查。一種檢查錯誤的方法分別為:循環冗余檢查(CRC)、幀檢查、應答錯誤、總線檢測、位填充。

        數字通信相關文章:數字通信原理


        通信相關文章:通信原理


        雙絞線傳輸器相關文章:雙絞線傳輸器原理


        關鍵詞: CAN 汽車網絡 通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵丘县| 富宁县| 清原| 新沂市| 阿拉善盟| 辽阳县| 弋阳县| 合阳县| 安阳县| 揭西县| 南皮县| 嘉定区| 武穴市| 丁青县| 荔波县| 卓尼县| 台湾省| 芒康县| 铜梁县| 湘阴县| 浦东新区| 新沂市| 松桃| 合山市| 正镶白旗| 林周县| 双峰县| 淮安市| 台东市| 溆浦县| 承德县| 政和县| 吉木萨尔县| 湖南省| 临邑县| 普兰县| 湾仔区| 淳安县| 余干县| 五莲县| 南召县|