新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于K線/CAN總線的KWP2000協議分析及協議棧的開發測試

        基于K線/CAN總線的KWP2000協議分析及協議棧的開發測試

        作者: 時間:2014-03-19 來源:網絡 收藏


        33.jpg

        圖3 基于的KWP2000診斷服務流程圖

        從上面的服務流程可以看出,基于支持多包數據傳輸,并且多包數據的管理和組織是在網絡層完成的,應用層不必關心數據的打包和解包過程。為實現這一功能,網絡層定義了四種PDU(以PCI類型進行區分,如表5所示):

        單幀(Single Frame,SF) - 數據域及PCI可在一個CAN數據幀中容納時,服務報文以單幀CAN報文進行發送。

        第一幀(First Frame,FF) -數據域及PCI不能在一個CAN數據幀中容納時,服務報文以多幀CAN報文進行發送,其中第一幀(FF)除傳送數據外,還包含了多包數據的長度信息。

        連續幀(Consecutive Frame,CF) - 多包數據中除第一幀外的連續數據幀,除傳送數據外,還包含了多包數據的包序號。

        流控制幀(Flow Control,FC) -用于多包數據傳輸過程中的流控制,不包含數據,只包含流控制狀態、數據塊大小和最小間隔時間等流控制信息。

        5.jpg

        表5 15765協議網絡層四種PDU對應的PCI格式[7]

        1) 單幀數據中數據域的字節長度,PCI的長度不包括在內。

        2) 多包數據的數據域字節總長度。

        3) 多包數據的數據包編號。

        4) 流控制狀態信息。

        5) 數據塊大小。

        6) 多包數據傳輸的最小時間間隔。

        多包數據的傳輸流程如圖4所示。發送節點首先發送“第一幀”,告知接收節點將要發送的數據的總長度;接收節點分配好資源、準備接收數據,然后以一幀“流控制幀”告知發送節點一次可以發送的數據包數目和時間間隔;發送節點接下來就根據接收節點的接收能力將編好序號的數據包依次發送過去。

        44.jpg

        圖4 多包數據傳輸流程圖

        在數據傳送過程中,一個網絡層PDU被編排成一個CAN數據幀,它們之間的對應關系由尋址模式(Addressing mode)決定。基于ISO 15765協議規定了四種尋址模式:正常尋址模式(Normal)、正常固定尋址模式(Normal fixed)、擴展尋址模式(Extended)和用于遠程診斷的混合尋址模式(Mixed)。其中,正常固定尋址模式必須采用CAN擴展幀,并且SAE J1939為該尋址模式下的KWP2000診斷服務保留了兩個專用參數組編號(PGN):其中PF=218(PF的具體定義請參考SAE J1939數據鏈路層協議)的參數組用于物理尋址(phy),PF=219的參數組用于功能尋址(fcn)。正常固定尋址模式的PDU與CAN數據幀之間的對應關系如表6所示。

        6.jpg

        表6 正常固定尋址模式下N_PDU與CAN數據幀之間的對應關系[7]

        混合尋址模式與正常固定尋址模式類似,唯一的區別是CAN數據域的第一個字節用于填充遠程地址(RA),N_PCI和診斷服務數據的填充位置向后移動一個字節。混合尋址模式用于跨越網段進行遠程診斷,遠程診斷的機制如圖5所示。圖中CAN1和CAN2兩個不同的子網通過網橋相連,網橋在子網1中的源地址為200,在子網2中的源地址為10,位于子網1中的診斷設備(源地址為241)可通過網橋對子網2中的ECU(源地址為62)進行診斷。

        55.jpg

        圖5 跨越網段的遠程診斷

        4 兩種協議的簡單比較

        從前面基于和基于可以看出,兩種協議在物理層、數據鏈路層及網絡層(15765)上存在以下主要差別,這也是被CAN總線取而代之的主要原因所在:

        通訊速率較低,最大波特率僅為10400bps;CAN總線通訊速率較高,最大波特率可達1Mbps。

        K線采用單端信號傳輸,抗干擾能力較弱,可靠性較差;CAN總線采用差分信號傳輸,抗干擾能力強,信號傳輸的可靠性高。

        K線診斷在啟動應用層診斷服務之前必須對ECU進行初始化建立連接,并且初始化過程比較復雜;而基于CAN總線的診斷設備不需要對ECU進行初始化即可進行診斷服務。

        K線診斷應用程序開發者必須親自管理數據傳輸過程中的字節間定時,并處理底層通訊錯誤;CAN數據幀以整幀報文的形式進行發送,應用程序開發者不必管理字節間定時,并且CAN總線物理層和數據鏈路層具備完善的錯誤檢測和錯誤恢復機制,應用程序不必監視和處理底層通訊錯誤。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新宁县| 旅游| 彩票| 德钦县| 集贤县| 新巴尔虎右旗| 潞城市| 阿巴嘎旗| 灵宝市| 南川市| 富锦市| 永州市| 体育| 临夏市| 池州市| 交城县| 肃宁县| 赤水市| 安顺市| 建始县| 滨海县| 公安县| 新宁县| 陆川县| 武强县| 卢氏县| 秦安县| 揭西县| 迁西县| 客服| 色达县| 济阳县| 岳普湖县| 吴江市| 乳山市| 津市市| 车致| 茌平县| 林芝县| 巴楚县| 革吉县|