LIN協(xié)議在汽車電子網(wǎng)絡(luò)通訊中廣泛使用,很多用戶在解碼LIN協(xié)議時(shí),對(duì)LIN協(xié)議不同版本間的差異不太熟悉,可能導(dǎo)致解碼中出現(xiàn)數(shù)據(jù)長(zhǎng)度識(shí)別和校驗(yàn)混亂。
LIN協(xié)議簡(jiǎn)介
LIN的全稱為L(zhǎng)ocal Interconnect Network。其主要功能是為CAN總線網(wǎng)絡(luò)提供輔助功能,適用于對(duì)總線性能要求不高的車身系統(tǒng),如車門、車窗、燈光等智能傳感器、執(zhí)行器的連接和控制,如圖1所示,為L(zhǎng)IN總線在車身的應(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為L(zhǎng)IN協(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)由報(bào)文頭、響應(yīng)報(bào)文以及幀間隔組成。其中:
· 報(bào)文頭包含同步間隙、同步域和報(bào)文標(biāo)識(shí)符場(chǎng)(0~63);
· 響應(yīng)報(bào)文由1-9個(gè)字節(jié)構(gòu)成:其中2、4或8個(gè)字節(jié)的數(shù)據(jù)場(chǎng)和1個(gè)校驗(yàn)和場(chǎng)(LIN1.3);
· 報(bào)文幀之間有幀間間隔分隔;
· 報(bào)文與響應(yīng)之間有幀內(nèi)響應(yīng)空間分隔;
· 最小幀間間隔和幀內(nèi)響應(yīng)空間均為0;
· 最大長(zhǎng)度收到報(bào)文幀的最大長(zhǎng)度frame_max限制。
LIN2.0相對(duì)于LIN1.3最主要的差異
· 支持最多8個(gè)字節(jié)的數(shù)據(jù)序列;
· 取消了受保護(hù)標(biāo)識(shí)符中的數(shù)據(jù)長(zhǎng)度字段,即傳輸長(zhǎng)度不再受限于ID,并將最后一個(gè)字節(jié)視為校驗(yàn)和;
· 校驗(yàn)和的驗(yàn)算包括了受保護(hù)標(biāo)識(shí)符。
· 支持自動(dòng)波特率檢測(cè)功能;
· 對(duì)零星幀進(jìn)行了定義;
· 網(wǎng)絡(luò)管理的定時(shí)用秒來定義,而不是用比特?cái)?shù)來定義;
…..
對(duì)于解碼來說主要關(guān)注前三點(diǎn)。
ZDS5000系列示波器全面支持LIN協(xié)議解碼功能
致遠(yuǎn)電子ZDS全系列示波器支持LIN1.3、LIN2.0協(xié)議全內(nèi)存解碼功能,現(xiàn)在使用ZDS5054Pro輸入一個(gè)LIN1.3信號(hào),使用LIN1.3和LIN2.0協(xié)議解碼會(huì)有什么樣的不同效果呢?如下圖4、圖5所示。
圖4 LIN1.3解碼
圖5 LIN2.0解碼
解析:
使用LIN2.0解碼LIN1.3協(xié)議出現(xiàn)“Checksum Wrong”的錯(cuò)誤標(biāo)志,代表在校驗(yàn)和場(chǎng)上解碼錯(cuò)誤,原因是LIN2.0的校驗(yàn)包含“標(biāo)識(shí)場(chǎng)”和“數(shù)據(jù)場(chǎng)”,而LIN1.3僅僅只校驗(yàn)“數(shù)據(jù)場(chǎng)”,從而導(dǎo)致使用LIN2.0解碼LIN1.3協(xié)議時(shí)出現(xiàn)校驗(yàn)和場(chǎng)數(shù)據(jù)與所校驗(yàn)的數(shù)據(jù)不對(duì)應(yīng),導(dǎo)致解碼出錯(cuò),如圖6原理所示。
圖6 LIN協(xié)議的校驗(yàn)和場(chǎng)
如圖7所示,為ZDS5054Pro長(zhǎng)時(shí)間(70s)解碼示意圖。