LIN協(xié)議在汽車電子網(wǎng)絡(luò)通訊中廣泛使用,很多用戶在解碼LIN協(xié)議時,對LIN協(xié)議不同版本間的差異不太熟悉,可能導致解碼中出現(xiàn)數(shù)據(jù)長度識別和校驗混亂。
LIN協(xié)議簡介
LIN的全稱為Local Interconnect Network。其主要功能是為CAN總線網(wǎng)絡(luò)提供輔助功能,適用于對總線性能要求不高的車身系統(tǒng),如車門、車窗、燈光等智能傳感器、執(zhí)行器的連接和控制,如圖1所示,為LIN總線在車身的應(yīng)用。LIN是面向汽車底端分布式應(yīng)用的低成本、低速率的串行通信總線,屬于局部互聯(lián)網(wǎng),是SAE規(guī)范的汽車A類網(wǎng)絡(luò)。
圖1 LIN在車身上的應(yīng)用
LIN聯(lián)盟成立于1999年,并發(fā)布了LIN1.0版本。最初的成員有奧迪、寶馬、克萊斯勒、摩托羅拉、博世、大眾和沃爾沃等,最新的為V2.2版。如下圖2為LIN協(xié)議的發(fā)展史。
圖2 LIN協(xié)議的發(fā)展史
LIN協(xié)議的數(shù)據(jù)幀結(jié)構(gòu)
LIN協(xié)議數(shù)據(jù)幀結(jié)構(gòu)如圖3所示。
圖3 LIN協(xié)議數(shù)據(jù)幀結(jié)構(gòu)
從圖3中可以看到LIN協(xié)議數(shù)據(jù)幀結(jié)構(gòu)由報文頭、響應(yīng)報文以及幀間隔組成。其中:
· 報文頭包含同步間隙、同步域和報文標識符場(0~63);
· 響應(yīng)報文由1-9個字節(jié)構(gòu)成:其中2、4或8個字節(jié)的數(shù)據(jù)場和1個校驗和場(LIN1.3);
· 報文幀之間有幀間間隔分隔;
· 報文與響應(yīng)之間有幀內(nèi)響應(yīng)空間分隔;
· 最小幀間間隔和幀內(nèi)響應(yīng)空間均為0;
· 最大長度收到報文幀的最大長度frame_max限制。
LIN2.0相對于LIN1.3最主要的差異
· 支持最多8個字節(jié)的數(shù)據(jù)序列;
· 取消了受保護標識符中的數(shù)據(jù)長度字段,即傳輸長度不再受限于ID,并將最后一個字節(jié)視為校驗和;
· 校驗和的驗算包括了受保護標識符。
· 支持自動波特率檢測功能;
· 對零星幀進行了定義;
· 網(wǎng)絡(luò)管理的定時用秒來定義,而不是用比特數(shù)來定義;
…..
對于解碼來說主要關(guān)注前三點。
ZDS5000系列示波器全面支持LIN協(xié)議解碼功能
致遠電子ZDS全系列示波器支持LIN1.3、LIN2.0協(xié)議全內(nèi)存解碼功能,現(xiàn)在使用ZDS5054Pro輸入一個LIN1.3信號,使用LIN1.3和LIN2.0協(xié)議解碼會有什么樣的不同效果呢?如下圖4、圖5所示。
圖4 LIN1.3解碼
圖5 LIN2.0解碼
解析:
使用LIN2.0解碼LIN1.3協(xié)議出現(xiàn)“Checksum Wrong”的錯誤標志,代表在校驗和場上解碼錯誤,原因是LIN2.0的校驗包含“標識場”和“數(shù)據(jù)場”,而LIN1.3僅僅只校驗“數(shù)據(jù)場”,從而導致使用LIN2.0解碼LIN1.3協(xié)議時出現(xiàn)校驗和場數(shù)據(jù)與所校驗的數(shù)據(jù)不對應(yīng),導致解碼出錯,如圖6原理所示。
圖6 LIN協(xié)議的校驗和場
如圖7所示,為ZDS5054Pro長時間(70s)解碼示意圖。