LIN協議在汽車電子網絡通訊中廣泛使用,很多用戶在解碼LIN協議時,對LIN協議不同版本間的差異不太熟悉,可能導致解碼中出現數據長度識別和校驗混亂。
一、LIN協議起源
LIN是面向汽車底端分布式應用的低成本、低速率的串行通信總線,屬于局部互聯網。
LIN由汽車行業開發,用作經濟高效的子總線系統,其屬于CAN的下層網絡,是SAE規范的汽車A類網絡,適用于對總線性能要求不高的車身系統,如車門、車窗、燈光等智能傳感器、執行器的連接和控制,LIN實現了一種具有成本效益的智能傳感器和執行器的通訊方式。
LIN聯盟成立于1999年,并發布了LIN1.0版本。最初的成員有奧迪、寶馬、克萊斯勒、摩托羅拉、博世、大眾和沃爾沃等,如下圖2為LIN協議的發展史。
二、LIN協議的數據幀結構
LIN協議數據幀結構如圖3所示。
從圖3中可以看到LIN協議數據幀結構由報文頭、響應報文以及幀間隔組成。其中:
1、報文頭包含同步間隙、同步域和報文標識符場(0~63)。
2、響應報文由1-9個字節構成:其中2、4或8個字節的數據場和1個校驗和場(LIN1.3)。
3、報文幀之間有幀間間隔分隔。
4、報文與響應之間有幀內響應空間分隔。
5、最小幀間間隔和幀內響應空間均為0。
6、最大長度收到報文幀的最大長度frame_max限制。
那為什么用戶解碼LIN協議會出現數據長度識別錯誤和校驗解碼出錯問題呢?原因是使用了與輸入信號不對應的LIN協議版本進行解碼,不同版本的LIN協議存在差異,如下所述。
三、LIN2.0相對于LIN1.3最主要的差異
支持最多8個字節的數據序列。
取消了受保護標識符中的數據長度字段,即傳輸長度不再受限于ID,并將最后一個字節視為校驗和。
校驗和的驗算包括了受保護標識符。
支持自動波特率檢測功能。
對零星幀進行了定義。
網絡管理的定時用秒來定義,而不是用比特數來定義。
簡化狀態管理和直接向網絡匯報,應用變得標準化。
增加強制節點配置命令以及一些可選擇的命令。
增加了診斷功能。
從機節點的產品標識已標準化。
對于解碼來說主要關注前三點。
圖4 LIN協議應用
四、ZDS2000系列示波器全面支持LIN協議解碼功能
致遠電子200M示波器支持LIN1.3、 LIN2.0協議全內存解碼功能,在ZDS2024 Plus中輸入一個LIN2.0信號,使用LIN1.3和LIN2.0協議解碼會有什么樣的不同效果呢?如下圖5所示。
解析:
1、首先LIN2.0信號中發送了5段“數據序列”,在LIN1.3中只解析了2段數據序列,原因是LIN2.0與 LIN1.3的數據段存在差異,如下圖6所示。
LIN1.3:ID4和ID5為數據長度標識,其將決定后面的數據序列的長度,2、4或8。
LIN2.0:ID4和ID5不再代表數據長度標識,后面的數據序列長度不由ID限制,可以是1~8的任意長度。
2、其次使用LIN1.3解碼LIN2.0協議出現“Checksum Wrong”的錯誤標志,代表在校驗和場上解碼錯誤,原因是LIN2.0的校驗包含“標識場”和“數據場”,而LIN1.3僅僅只校驗“數據場”,從而導致使用LIN1.3解碼LIN2.0協議時出現校驗和場數據與所校驗的數據不對應,導致解碼出錯,如圖7原理所示。
總結
綜上所示,用戶在解碼LIN協議時應使用與之對應的LIN協議版本。ZDS2022/ZDS2022 Plus與ZDS2024/ZDS2024 Plus示波器支持LIN1.3以及LIN2.0協議全內存解碼功能,更方便用戶使用,你趕快試試吧。點擊文章左下角“閱讀原文”可查看ZDS2000系列示波器詳細參數。