新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SAE J1939協議(三)

        SAE J1939協議(三)

        作者: 時間:2016-12-12 來源:網絡 收藏
        SAE J1939協議數據鏈路層

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

        >>>>

        基本概念

        1.幀(Frame):組成一個完整信息的一系列有序的數據位,幀又被劃分為成幾個域,每個域包括了預定義類型的數據。

        2.CAN數據幀(CAN Data Frame):組成CAN協議幀所必需的有序位域,以幀起始(SOF)開始以幀結束(EOF)結尾

        3.標準幀(Standard Frame):CAN2.0A規范中定義的使用11位標識符的CAN數據幀。

        4.擴展幀(Extended Frame):CAN2.0B規范中定義的使用29位標識符的CAN數據幀

        5.報文(Message):指一個或多個具有相同參數組編號的CAN數據幀

        6.包(Packet):一個單一的CAN數據幀就是一個包。當一條報文包含參數組的數據長度小于等于8個字節時,這樣的報文也稱為包。

        7.多包報文(Multipacket Messages):當具有相同參數組編號的所有數據需要使用多個CAN數據幀來傳輸時使用的一種J1939報文。每個CAN數據幀擁有相同的標識符,單在每個包中數據不同。

        >>>>

        CAN標準幀與擴展幀格式

        圖1


        圖2

        CAN數據幀組成:幀起始(SOF)、仲裁域、控制域、數據域、循環冗余校驗域(CRC)、應答域(ACK)、幀結束(EOF).

        >>>>

        協議數據單元(PDU)

        協議數據單元由七部分組成,分別是優先級,保留位,數據頁,PDU格式,PDU特定域(可作為目標地址、組擴展或專用),源地址和數據域。PDU被封裝在一個或多個CAN數據幀中,通過物理介質傳輸到其他網絡設備。每個CAN數據幀只能有一個PDU。

        圖3

        1.優先級(P)

        這三位僅在總線傳輸中用來優化報文延遲,接受者對其忽略。報文優先級可從最高0(000)設置到最低7(111)。所有控制報文的缺省優先級是3(011),其他所有報文、專用、請求和ACK報文的缺省優先級是7(110)。當定義新的參數編號,或總線上通信量變化時,優先級可以升高或降低。當報文被添加到應用層,將給出一個推薦的優先級。OEM可以對網絡做相應調整,優先級域應當時可重編程的。

        2.保留位(R)=>擴展數據頁位(EDP)

        3.數據頁位(DP)


        圖4

        4.PDU格式(PF)

        PF域,8位。確定PDU的格式,也就是組成PGN的域之一。協議規定:PF<240為PDU1格式;PF=240~255為PDU2格式。

        5.PDU特定域(PS)

        PS域,8位。它的定義取決于PDU格式,根據PDU格式它可能是目標地址或者組擴展。PDU1格式下PS域是目標地址;PDU2格式下PS域為組擴展(GE)值。

        6.目標地址(DA)

        這個域定義了報文發送到特定目標的地址。注意,對于任何設備,如果其他地址與接收到的報文的目標地址不同應忽略此報文。所有設備作為報文的響應者應對全局目標地址(255)作出監聽和響應。

        7.組擴展(GE)

        組擴展與PDU格式域的低四位(注意:當PDU格式域最高四位被置1,說明PS域是組擴展)規定了每個數據頁4096個參數組。

        >>>>

        PDU1格式下的PGNs


        圖5

        >>>>

        PDU2格式下的PGUs


        圖6

        >>>>

        PGNs分配模板

        圖7



        關鍵詞: SAEJ1939協

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 那曲县| 穆棱市| 融水| 鞍山市| 行唐县| 宁化县| 大荔县| 无极县| 鹰潭市| 高密市| 开远市| 格尔木市| 克什克腾旗| 嘉鱼县| 福州市| 惠来县| 安陆市| 延寿县| 五原县| 临漳县| 阳曲县| 中宁县| 钟山县| 七台河市| 武安市| 永兴县| 通化市| 香格里拉县| 兰州市| 古田县| 梁河县| 峡江县| 腾冲县| 晋中市| 合肥市| 仙桃市| 营山县| 永靖县| 昔阳县| 东至县| 温州市|