汽車電子之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ò)。
LIN聯(lián)盟成立于1999年,并發(fā)布了LIN1.0版本。最初的成員有奧迪、寶馬、克萊斯勒、摩托羅拉、博世、大眾和沃爾沃等,最新的為V2.2版。如下圖2為LIN協(xié)議的發(fā)展史。
LIN協(xié)議數(shù)據(jù)幀結(jié)構(gòu)如圖3所示。
從圖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)注前三點。
致遠電子ZDS全系列示波器支持LIN1.3、LIN2.0協(xié)議全內(nèi)存解碼功能,現(xiàn)在使用ZDS5054Pro輸入一個LIN1.3信號,使用LIN1.3和LIN2.0協(xié)議解碼會有什么樣的不同效果呢?如下圖4、圖5所示。
解析:
使用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原理所示。
如圖7所示,為ZDS5054Pro長時間(70s)解碼示意圖。