新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CAN總線基礎掃盲講座

        CAN總線基礎掃盲講座

        作者: 時間:2016-12-14 來源:網絡 收藏
        CAN總線作為一種工業界的流行總線廣泛應于工業自動化、多種控制設備、交通工具、醫療儀器以及建筑、環境控制等各個行業中,它是是一種多主機局域網,所以這樣一種總線的潛力是很巨大的,接下來將寫幾篇入門的小文章,來介紹一下CAN的學習和開發方法,主要是配合我們的開發板,其實入門還是很容易的,通過這幾篇文章如果你能建立起一個初步的概念,能夠自己搭起自己的一個節點(包括硬件和軟件),那就說明你學會了CAN的基本開發技術,實際的工業現場CAN的開發不是那么簡單,包括很多要考慮的因素如隔離、可靠性等,但是我們作為初學者建立起基本的概念還是很重要的,基礎一旦打好,等到了實際工作中,就會如魚得水,所以希望正要或是想開發CAN的朋友們能夠喜歡這一系列小文章,如果某一篇甚至是某一句話能夠給你帶來啟迪,那將是我最最高興的,希望大家踴躍評論或是參與討論,給我一下寫下去的信心,呵呵,可以加入我們的群。下面正題正式開始嘍!第一篇,當然要介紹一下什么是“能”總線(CAN總線)呵呵

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

        圖1. 汽車中的CAN“身影”

        一、什么是CAN ?  

        CAN,全稱為“Controller Area Network”,即控制器局域網,是國際上應用最廣泛的現場總線之一。最初,CAN被設計作為汽車環境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡。比如:發動機管理系統、變速箱控制器、儀表裝備、電子主干系統中,均嵌入CAN控制裝置。  一個由CAN 總線構成的單一網絡中,理論上可以掛接無數個節點。實際應用中,節點數目受網絡硬件的電氣特性所限制。例如,當使用Philips P82C250作為CAN收發器時,同一網絡中允許掛接110個節點。CAN 可提供高達1Mbit/s的數據傳輸速率,這使實時控制變得非常容易。另外,硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力.

        二、CAN 是怎樣發展起來的?  

        CAN最初出現在80年代末的汽車工業中,由德國Bosch公司最先提出。當時,由于消費者對于汽車功能的要求越來越多,而這些功能的實現大多是基于電子操作的,這就使得電子裝置之間的通訊越來越復雜,同時意味著需要更多的連接信號線。提出CAN總線的最初動機就是為了解決現代汽車中龐大的電子控制裝置之間的通訊,減少不斷增加的信號線。于是,他們設計了一個單一的網絡總線,所有的外圍器件可以被掛接在該總線上。1993年,CAN 已成為國際標準ISO11898(高速應用)和ISO11519(低速應用)。  CAN是一種多主方式的串行通訊總線,基本設計規范要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產生的任何錯誤。當信號傳輸距離達到10Km時,CAN 仍可提供高達50Kbit/s的數據傳輸速率。  由于CAN總線具有很高的實時性能,因此,CAN已經在汽車工業、航空工業、工業控制、安全防護等領域中得到了廣泛應用

        三、CAN簡介  

        德國Bosch 公司為解決現代車輛中眾多的控制和數據交換問題,開發出一種CAN(Controller Area Network)現場總線通信結構。CAN總線硬件連接簡單,有良好的可靠性、實時性和性能價格比。CAN總線能夠滿足現代自動化通信的需要,已成為工業數據總線通信領域中最為活躍的一支。其主要特點是: ① CAN總線為多主站總線,各節點均可在任意時刻主動向網絡上的其他節點發送信息,不分主從,通信靈活; ② CAN總線采用獨特的非破壞性總線仲裁技術,優先級高的節點優先傳送數據,能滿足實時性要求; ③ CAN總線具有點對點、一點對多點及全局廣播傳送數據的功能; ④ CAN總線上每幀有效字節數最多為8個,并有CRC及其他校驗措施,數據出錯率極低,萬一某一節點出現嚴重錯誤,可自動脫離總線,總線上的其他操作不受影響; ⑤ CAN總線只有兩根導線,系統擴充時,可直接將新節點掛在總線上即可,因此走線少,系統擴充容易,改型靈活; ⑥ CAN總線傳輸速度快,在傳輸距離小于40 m時,最大傳輸速率可達1 Mb/s; ⑦ CAN總線上的節點數主要取決于總線驅動電路,在CAN2.0B標準中,其報文標識符幾乎不受限制。總之,CAN總線具有實時性強、可靠性高、通信速率快、結構簡單、互操作性好、總線協議具有完善的錯誤處理機制、靈活性高和價格低廉等特點。

        四、CAN 總線是怎樣工作的?

        CAN通訊協議主要描述設備之間的信息傳遞方式。CAN層的定義與開放系統互連模型(OSI)一致。每一層與另一設備上相同的那一層通訊。實際的通訊發生在每一設備上相鄰的兩層,而設備只通過模型物理層的物理介質互連。CAN的規范定義了模型的最下面兩層:數據鏈路層和物理層。下表中展示了OSI開放式互連模型的各層。應用層協議可以由CAN用戶定義成適合特別工業領域的任何方案。已在工業控制和制造業領域得到廣泛應用的標準是DeviceNet,這是為PLC和智能傳感器設計的。在汽車工業,許多制造商都應用他們自己的標準。

        7

        應用層

        最高層。用戶、軟件、網絡終端等之間用來進行信息交換。如:DeviceNet

        6

        表示層

        將兩個應用不同數據格式的系統信息轉化為能共同理解的格式

        5

        會話層

        依靠低層的通信功能來進行數據的有效傳遞。

        4

        傳輸層

        兩通訊節點之間數據傳輸控制。操作如:數據重發,數據錯誤修復

        3

        網絡層

        規定了網絡連接的建立、維持和拆除的協議。如:路由和尋址

        2

        數據鏈路層

        規定了在介質上傳輸的數據位的排列和組織。如:數據校驗和幀結構

        1

        物理層

        規定通訊介質的物理特性。如:電氣特性和信號交換的解釋

        表1 OSI開放系統互連模型

          CAN能夠使用多種物理介質,例如雙絞線、光纖等。最常用的就是雙絞線。信號使用差分電壓傳送,兩條信號線被稱為“CAN_H”和“CAN_L”,靜態時均是2.5V左右,此時狀態表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN_L高表示邏輯“0”,稱為“顯形”,此時,通常電壓值為:CAN_H = 3.5V 和CAN_L = 1.5V。

        五、CAN 有哪些特性?  

        CAN具有十分優越的特點,使人們樂于選擇。想了想,不想向教科書那樣羅嗦很多,就簡單概括,也許有些你還不能立刻懂,不過你只要有個印象就行,一些知識直到你用到的時候你才會真正領會!這些特性包括:1、低成本;2、極高的總線利用率;3、很遠的數據傳輸距離(長達10Km);4、高速的數據傳輸速率(高達1Mbit/s);5、可根據報文的ID決定接收或屏蔽該報文;6、可靠的錯誤處理和檢錯機制;7、發送的信息遭到破壞后,可自動重發;8、節點在錯誤嚴重的情況下具有自動退出總線的功能;9、報文不包含源地址或目標地址,僅用標志符來指示功能信息、優先級信息。

        六、Philips制造的CAN芯片有哪些?  

        類別

        型號

        備注

        CAN微控制器

        P87C591

        替代P87C592

        CAN獨立控制器

        SJA1000

        替代82C200

        CAN收發器

        PCA82C250

        高速CAN收發器

        PCA82C251

        高速CAN收發器

        PCA82C252

        容錯CAN收發器

        TJA1040

        高速CAN收發器

        TJA1041

        高速CAN收發器

        TJA1050

        高速CAN收發器

        TJA1053

        容錯CAN收發器

        TJA1054

        容錯CAN收發器

        LIN收發器

        TJA1020

        LIN收發器

        表2 CAN芯片一覽表

        七、CAN總線如何進行位仲裁?  

        CSMA/CD是“載波偵聽多路訪問/沖突檢測”(Carrier Sense Multiple Access with Collision Detect)的縮寫。  利用CSMA訪問總線,可對總線上信號進行檢測,只有當總線處于空閑狀態時,才允許發送。利用這種方法,可以允許多個節點掛接到同一網絡上。當檢測到一個沖突位時,所有節點重新回到‘監聽’總線狀態,直到該沖突時間過后,才開始發送。在總線超載的情況下,這種技術可能會造成發送信號經過許多延遲。為了避免發送時延,可利用CSMA/CD方式訪問總線。當總線上有兩個節點同時進行發送時,必須通過“無損的逐位仲裁”方法來使有最高優先權的的報文優先發送。在CAN總線上發送的每一條報文都具有唯一的一個11位或29位數字的ID。CAN總線狀態取決于二進制數‘0’而不是‘1’,所以ID號越小,則該報文擁有越高的優先權。因此一個為全‘0’標志符的報文具有總線上的最高級優先權。可用另外的方法來解釋:在消息沖突的位置,第一個節點發送0而另外的節點發送1,那么發送0的節點將取得總線的控制權,并且能夠成功的發送出它的信息。

        八、CAN的高層協議  

        CAN的高層協議(也可理解為應用層協議)是一種在現有的底層協議(物理層和數據鏈路層)之上實現的協議。高層協議是在CAN規范的基礎上發展起來的應用層。許多系統(像汽車工業)中,可以特別制定一個合適的應用層,但對于許多的行業來說,這種方法是不經濟的。一些組織已經研究并開放了應用層標準,以使系統的綜合應用變得十分容易。  一些可使用的CAN高層協議有:  1、制定組織主要高層協議  2、CiA CAL協議  3、CiA CANOpen協議  4、ODVA DeviceNet 協議  5、Honeywell SDS 協議6、Kvaser CANKingdom協議

        九、什么是標準格式CAN和擴展格式CAN?

        標準CAN的標志符長度是11位,而擴展格式CAN的標志符長度可達29位。CAN 協議的2.0A版本規定CAN控制器必須有一個11位的標志符。同時,在2.0B版本中規定,CAN控制器的標志符長度可以是11位或29位。遵循CAN2.0B協議的CAN控制器可以發送和接收11位標識符的標準格式報文或29位標識符的擴展格式報文。如果禁止CAN2.0B,則CAN 控制器只能發送和接收11位標識符的標準格式報文,而忽略擴展格式的報文結構,但不會出現錯誤。  目前,Philips公司主要推廣的CAN獨立控制器均支持CAN2.0B協議,即支持29位標識符的擴展格式報文結構。



        關鍵詞: CAN總線基礎掃

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 中超| 甘泉县| 丰都县| 宜宾县| 宁波市| 禹州市| 仁寿县| 治多县| 尉犁县| 卢湾区| 闽清县| 横峰县| 巴林右旗| 万州区| 巩义市| 四平市| 阿合奇县| 乃东县| 始兴县| 安乡县| 延吉市| 定日县| 胶南市| 萨迦县| 临安市| 昂仁县| 怀安县| 利辛县| 楚雄市| 鄂托克旗| 禹州市| 夹江县| 崇文区| 梨树县| 古田县| 嵊泗县| 常州市| 哈尔滨市| 依安县| 扎兰屯市| 西乌珠穆沁旗|