新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > can總線分層結構及報文傳輸

        can總線分層結構及報文傳輸

        作者: 時間:2018-07-24 來源:網絡 收藏

        CAN是器局域網絡(Controller Area Network, CAN)的簡稱,是由研發和生產汽車電子產品著稱的德國BOSCH公司開發了的,并最終成為國際標準(ISO11898)。是國際上應用最廣泛的現場總線之一。在建立之初,CAN總線就定位于汽車內部的現場總線,具有傳輸速度快、可靠性高、靈活性強等優點。上世紀90年代CAN總線開始在汽車電子行業內逐步推廣,目前已成為汽車電子行業首選的協議,并且在醫療設備、工業生產、樓宇設施、交通運輸等領域中取得了廣泛的應用。

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

        CAN的分層結構

        CAN的數據鏈路層是其核心內容,其中邏輯鏈路(Logical Link control,LLC)完成過濾、過載通知和管理恢復等功能,媒體訪問(Medium Access Control,MAC)子層完成數據打包/解包、幀編碼、媒體訪問管理、錯誤檢測、錯誤信令、應答、串并轉換等功能。這些功能都是圍繞信息幀傳送過程展開的。

        邏輯鏈路控制子層(LLC)的功能:為數據傳送和遠程數據請求提供服務,確認由LLC子層接收的報文實際上已被接收,為恢復管理和通知超載提供信息。在定義目標處理時,存在許多靈活性。

        介質訪問控制子層(MAC)的功能:主要是傳送規則,即控制幀結構、執行仲裁、錯誤檢測、出錯標定和故障界定。MAC子層也要確定當開始一次新的傳送時,總線是否開放或者是否馬上開始接收。位定時特性也是MAC子層的一部分。

        幀類型

        在CAN2.0B的版本協議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有11位標識符的幀稱之為標準幀,而含有29位標識符的幀稱為擴展幀。如CAN1.2版本協議所描述,兩個版本的標準數據幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協議新增加的特性。為使控制器設計相對簡單,并不要求執行完全的擴展格式,對于新型控制器而言,必須不加任何限制的支持標準格式。但無論是哪種幀格式,在報文傳輸時都有以下四種不同類型的幀。

        在報文傳輸時,不同的幀具有不同的傳輸結構,下面將分別介紹四種傳輸幀的結構,只有嚴格按照該結構進行幀的傳輸,才能被節點正確接收和發送。

        (1)數據幀

        由七種不同的位域(Bit Field)組成:幀起始(Start of )、仲裁域(Arbitraon Field)、控制域(Control Field)、數據域(DataField)、CRC域(CRC Field)、應答域(ACK Field)和幀結尾(End of )。數據域的長度可以為0~8個字節。

        1)幀起始(SOF):幀起始(SOF)標志著數據幀和遠程幀的起始,僅由一個“顯性”位組成。在CAN的同步規則中,當總線空閑時(處于隱性狀態),才允許站點開始發送(信號)。所有的站點必須同步于首先開始發送報文的站點的幀起始前沿(該方式稱為“硬同步”)。

        2)仲裁域:仲裁域由標識符和RTR位組成,標準幀格式與擴展幀格式的仲裁域格式不同。標準格式里,仲裁域由1l位標識符和RTR位組成。標識符位有ID28~IDl8。擴展幀格式里,仲裁域包括29位標識符、SRR位、IDE(Idenfier Extension,標志符擴展)位、RTR位。其標識符有ID28~IDO。為了區別標準幀格式和擴展幀格式,CANl.0~1.2版本協議的保留位r1現表示為IDE位。IDE位為顯性,表示數據幀為標準格式;IDE位為隱性,表示數據幀為擴展幀格式。在擴展幀中,替代遠程請求(Substute Remote Request,SRR)位為隱性。仲裁域傳輸順序為從最高位到最低位,其中最高7位不能全為零。RTR的全稱為“遠程發送請求(Remote TransmissionRequest)”。RTR位在數據幀里必須為“顯性”,而在遠程幀里必須為“隱性”。它是區別數據幀和遠程幀的標志。

        3)控制域:控制域由6位組成,包括2個保留位(r0、r1同于CAN總線協議擴展)及4位數據長度碼,允許的數據長度值為0~8字節。

        4)數據域:發送緩沖區中的數據按照長度代碼指示長度發送。對于接收的數據,同樣如此。它可為0~8字節,每個字節包含8位,首先發送的是MSB(最高位)。

        5)CRC校驗碼域:它由CRC域(15位)及CRC邊界符(一個隱性位)組成。CRC計算中,被除的多項式包括幀的起始域、仲裁域、控制域、數據域及15位為0的解除填充的位流給定。此多項式被下列多項式X15+X14+X10+X8+X7+X4+X3+1除(系數按模2計算),相除的余數即為發至總線的CRC序列。發送時,CRC序列的最高有效位被首先發送/接收。之所以選用這種幀校驗方式,是由于這種CRC校驗碼對于少于127位的幀是最佳的。

        6)應答域:應答域由發送方發出的兩個(應答間隙及應答界定)隱性位組成,所有接收到正確的CRC序列的節點將在發送節點的應答間隙上將發送的這一隱性位改寫為顯性位。因此,發送節點將一直監視總線信號已確認網絡中至少一個節點正確地接收到所發信息。應答界定符是應答域中第二個隱性位,由此可見,應答間隙兩邊有兩個隱性位:CRC域和應答界定位。

        7)幀結束域:每一個數據幀或遠程幀均由一串七個隱性位的幀結束域結尾。這樣,接收節點可以正確檢測到一個幀的傳輸結束。

        (2)錯誤幀

        錯誤幀由兩個不同的域組成:第一個域是來自控制器的錯誤標志;第二個域為錯誤分界符。

        1)錯誤標志:有兩種形式的錯誤標志。

        ①激活(Acve)錯誤標志。它由6個連續顯性位組成。

        ②認可(Passive)錯誤標志。它由6個連續隱性位組成。

        它可由其他CAN總線協議控制器的顯性位改寫。

        2)錯誤界定:錯誤界定符由8個隱性位組成。傳送了錯誤標志以后,每一站就發送一個隱性位,并一直監視總線直到檢測出1個隱性位為止,然后就開始發送其余7個隱性位。

        (3)遠程幀

        遠程幀也有標準格式和擴展格式,而且都由6個不同的位域組成:幀起始、仲裁域、控制域、CRC域、應答域、幀結尾。與數據幀相比,遠程幀的RTR位為隱性,沒有數據域,數據長度編碼域可以是0~8個字節的任何值,這個值是遠程幀請求發送的數據幀的數據域長度。當具有相同仲裁域的數據幀和遠程幀同時發送時,由于數據幀的RTR位為顯性,所以數據幀獲得優先。發送遠程幀的節點可以直接接收數據。

        (4)過載幀

        過載幀由兩個區域組成:過載標識域及過載界定符域。下述三種狀態將導致過載幀發送:

        1)接收方在接收一幀之前需要過多的時間處理當前的數據(接收尚未準備好);

        2)在幀空隙域檢測到顯性位信號;

        3)如果CAN節點在錯誤界定符或過載界定符的第8位采樣到一個顯性位節點會發送一個過載幀。



        關鍵詞: 控制 通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德兴市| 五大连池市| 富蕴县| 凉城县| 太湖县| 兰考县| 油尖旺区| 中江县| 房产| 灵山县| 福贡县| 乌恰县| 唐山市| 泰和县| 大埔县| 长宁县| 保德县| 延寿县| 阜南县| 庆安县| 城市| 兴海县| 台东市| 宣威市| 遂川县| 海阳市| 通化市| 泾阳县| 淮阳县| 河曲县| 驻马店市| 苏尼特左旗| 大港区| 仁化县| 体育| 安达市| 周口市| 普定县| 河间市| 崇礼县| 淮安市|