一、LIN總線幀結(jié)構(gòu)
一個(gè)完整的LIN總線報(bào)文幀“Message Frame”包含報(bào)頭“Header”和響應(yīng)“Response”,主任務(wù)發(fā)送報(bào)頭,從任務(wù)用響應(yīng)來補(bǔ)充報(bào)頭形成完整的報(bào)文。

截取自LIN Specification PackageRevision 2.1
其中幀頭包括間隔場(chǎng)、同步段以及標(biāo)識(shí)符場(chǎng),應(yīng)答包括數(shù)據(jù)段和校驗(yàn)和場(chǎng)。每個(gè)字節(jié)之間存在字節(jié)間隔(Inter-byte Space);在報(bào)頭與響應(yīng)之間存在響應(yīng)間隔(Response Space);兩幀LIN報(bào)文之間存在幀間間隔(Inter-frame Space)。下面將詳細(xì)介紹每個(gè)段的具體內(nèi)容格式。
1.間隔場(chǎng)
間隔場(chǎng)由間隔信號(hào)和間隔界定符組成。間隔場(chǎng)表示一幀報(bào)文的起始,由主節(jié)點(diǎn)發(fā)出。間隔信號(hào)至少由13個(gè)顯性位組成,間隔界定符至少由1個(gè)隱形位組成。間隔場(chǎng)是唯一一個(gè)不符合字節(jié)場(chǎng)格式的場(chǎng),從節(jié)點(diǎn)需要檢測(cè)到至少連續(xù)11個(gè)顯性位才認(rèn)為是間隔信號(hào)。

截取自LIN Specification PackageRevision 2.1
2.同步場(chǎng)
同步場(chǎng)顧名思義它的作用是確保所有從節(jié)點(diǎn)使用與主節(jié)點(diǎn)相同的波特率發(fā)送和接收數(shù)據(jù),以下降沿為判斷標(biāo)志,同步段采用一個(gè)固定的字節(jié)結(jié)構(gòu)0X55。從節(jié)點(diǎn)通過接收主節(jié)點(diǎn)發(fā)出的同步段,計(jì)算出主節(jié)點(diǎn)位速率,根據(jù)計(jì)算結(jié)果對(duì)自身的位速率重新作調(diào)整。計(jì)算公式如下:1位時(shí)間 =(第7位的下降沿時(shí)刻 - 起始位的下降沿時(shí)刻)/ 8

截取自LIN Specification PackageRevision 2.1
3.標(biāo)識(shí)符場(chǎng)
標(biāo)識(shí)符場(chǎng)由兩部分組成,受保護(hù) ID 段的前 6 位叫作幀 ID(Frame ID),加上兩個(gè)奇偶校驗(yàn)位后稱作受保護(hù) ID段。

截取自LIN Specification PackageRevision 2.1
幀ID的范圍在0x00~0x3F之間,共64個(gè)。幀ID標(biāo)識(shí)了幀的類別和目的地。從任務(wù)對(duì)于幀頭作出的反應(yīng)(接收/發(fā)送/忽略應(yīng)答部分)都是依據(jù)幀ID判斷的。如果幀ID傳輸錯(cuò)誤,將會(huì)導(dǎo)致信號(hào)無法正確到達(dá)目的地,因此引入奇偶校驗(yàn)位。校驗(yàn)公式如下,其中“⊕”代表“異或”運(yùn)算,“?”代表“取非”運(yùn)算。
P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
P1 = ? (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
4.數(shù)據(jù)場(chǎng)
數(shù)據(jù)場(chǎng)用于存儲(chǔ)節(jié)點(diǎn)發(fā)送的數(shù)據(jù),數(shù)據(jù)場(chǎng)長度1到8個(gè)字節(jié),采用低字節(jié)先發(fā),低位先發(fā)策略,如果某一信號(hào)長度超過1個(gè)字節(jié),采用低位在前的方式發(fā)送。

截取自LIN Specification PackageRevision 2.1
5.校驗(yàn)和場(chǎng)
檢驗(yàn)和場(chǎng)用于校驗(yàn)接收到的數(shù)據(jù)是否正確。校驗(yàn)分為經(jīng)典校驗(yàn)(Classic Checksum)和增強(qiáng)校驗(yàn)(Enhance Checksum)。經(jīng)典校驗(yàn)僅校驗(yàn)數(shù)據(jù)場(chǎng),適用于診斷幀和與 LIN1.x 從機(jī)節(jié)點(diǎn)通信;增強(qiáng)校驗(yàn)校驗(yàn)標(biāo)識(shí)符場(chǎng)和數(shù)據(jù)場(chǎng),適用于與 LIN2.x 從機(jī)節(jié)點(diǎn)通信(診斷幀除外)。采用標(biāo)準(zhǔn)型校驗(yàn)和還是增強(qiáng)型校驗(yàn)和由主機(jī)節(jié)點(diǎn)管理,發(fā)布節(jié)點(diǎn)和各收聽節(jié)點(diǎn)根據(jù)幀ID來判斷采用哪種校驗(yàn)和。

截取自LIN Specification PackageRevision 2.1
- LIN總線幀結(jié)構(gòu)干擾
LIN幀的不同場(chǎng)格式需要按照協(xié)議進(jìn)行開發(fā),為了測(cè)試樣件是否不響應(yīng)錯(cuò)誤的幀結(jié)構(gòu),就需要對(duì)LIN幀中各個(gè)場(chǎng)分別進(jìn)行干擾以達(dá)到所需要的測(cè)試目的。實(shí)現(xiàn)干擾的方式有很多,本文通過CAPL自帶函數(shù)來進(jìn)行相應(yīng)的干擾,下面將對(duì)CAPL函數(shù)linSendHeaderError()、linInvertRespBit()、linInvertHeaderBit()
進(jìn)行介紹。
- linSendHeaderError()
該函數(shù)用于干擾報(bào)文頭,包含三個(gè)參數(shù),一個(gè)是syncByte,用于設(shè)置同步場(chǎng)位;一個(gè)是idWithParity,用于設(shè)置標(biāo)識(shí)符場(chǎng);最后一個(gè)是StopAfterError,該位置1表示如果報(bào)頭中一旦有某個(gè)場(chǎng)出現(xiàn)錯(cuò)誤,則終止之后報(bào)頭場(chǎng)的發(fā)送。
具體參數(shù)如圖所示

截取自Vector Browser Helper
下面通過一個(gè)干擾ID為0x33的報(bào)文PID場(chǎng)中奇偶校驗(yàn)位的實(shí)例,來幫助大家進(jìn)一步深入理解該函數(shù)。
// Force an error in header of LIN frame with ID=0x33 by setting wrong protected ID
on key 'h'
{
byte linID, protectedID, corParity, errParity, errPID;
// calculate protected ID with wrong parity bits
linID = 0x33; // use frame ID=0x33
protectedID = linGetProtectedID(linID); // get protected ID
corParity = (protectedID & 0xC0) >> 6; // extract parity (0xC=0=11000000)
errParity = (corParity ^ 0x2) & 0x3; // calculate wrong parity using XOR
errPID = linID | (errParity << 6); // calculate PID with wrong parity
linSendHeaderError(0x55, errPID, 0);
}
給大家大致解釋一下腳本的實(shí)現(xiàn)邏輯,首先通過linGetProtectedID()可以獲取該報(bào)文正確的PID值,然后通過corParity = (protectedID & 0xC0) >> 6提取出奇偶校驗(yàn)位,與0x2異或干擾校驗(yàn)位,最后通過errPID = linID | (errParity << 6)得出一個(gè)干擾過奇偶校驗(yàn)位的PID值并賦值給自己先前聲明的errPID即得到了一個(gè)帶有錯(cuò)誤奇偶校驗(yàn)位的PID值,通過函數(shù)linSendHeaderError(0x55,errPID,0)發(fā)送錯(cuò)誤PID值的LIN報(bào)頭,即實(shí)現(xiàn)了對(duì)PID場(chǎng)的干擾。
2.linInvertRespBit()
該函數(shù)用于干擾響應(yīng),主要關(guān)注的參數(shù)如下,byteIndex用來指定干擾數(shù)據(jù)場(chǎng)第幾字節(jié)(如果該參數(shù)值設(shè)置為報(bào)文長度,則干擾的是校驗(yàn)位長度);bitIndex用來指定干擾相對(duì)應(yīng)第幾位;level值為0的話,則把相應(yīng)位從隱形干擾成顯性,如果為1則反之從顯性干擾成隱性;numberOfExecutions這個(gè)參數(shù)用來定義干擾的個(gè)數(shù)。
具體參數(shù)如圖所示

截取自Vector Browser Helper
下面通過下面的示例,來幫助大家進(jìn)一步深入理解該函數(shù)。
on key 'i'
{
...
// Invert first bit of byte field 8 for LIN frame with ID=0x33
linInvertRespBit(0x33, 7, 0);
...
// Invert bit 7 of checksum byte field for LIN frame with ID=0x33
linInvertRespBit(0x33, 8, 6);
...
// Invert stop bit of byte field 8 for LIN frame with ID=0x33
linInvertRespBit(0x33, 7, 8);
...
}
第一個(gè)函數(shù)是干擾第8個(gè)比特,由于bitIndex是0,所以干擾的是該比特的第一個(gè)位,其中第二個(gè)函數(shù)如果byteIndex的長度和DLC長度一樣,則說明干擾的是該報(bào)文的checksum位。
3.linInvertHeaderBit()
該函數(shù)用于干擾報(bào)頭,主要關(guān)注的參數(shù)如下,byteIndex用來指定干擾數(shù)據(jù)場(chǎng)類型,如果為-1,則是干擾間隔場(chǎng),如果為0干擾同步場(chǎng),如果為1干擾PID場(chǎng);bitIndex用來指定干擾相對(duì)應(yīng)第幾位,如果為8則是干擾stopbit;level值為0的話,則把相應(yīng)位從隱形干擾成顯性,如果為1則反之從顯性干擾成隱性;numberOfExecutions這個(gè)參數(shù)用來定義干擾的個(gè)數(shù);disturbAfterHeaderID這個(gè)參數(shù)用來指定在該ID之后進(jìn)行干擾,這個(gè)參數(shù)需要搭配waitForHeaders使用,如果設(shè)置waitForHeaders為0,disturbAfterHeaderID為5,則是等收到ID為5的報(bào)文后,在下一個(gè)報(bào)頭直接進(jìn)行干擾。
具體參數(shù)如圖所示

截取自Vector Browser Helper
- 小結(jié)
通過上述的介紹,大家應(yīng)該對(duì)基于CAPL對(duì)LIN報(bào)文各場(chǎng)干擾有了一定的了解了。通過發(fā)送干擾的報(bào)頭或者對(duì)從節(jié)點(diǎn)的響應(yīng)進(jìn)行干擾,然后再發(fā)送正常幀,即可通過該正常幀的數(shù)據(jù),對(duì)ResponseError位是否能正確置位進(jìn)行測(cè)試了。
北匯信息作為Vector中國的合作伙伴,致力于為中國汽車客戶提供優(yōu)質(zhì)的工具支持、解決方案以及測(cè)試服務(wù)。
圖片來源:LIN Specification PackageRevision 2.1以及Vector
-
LIN
+關(guān)注
關(guān)注
4文章
233瀏覽量
41840 -
CANoe
+關(guān)注
關(guān)注
4文章
83瀏覽量
9568
發(fā)布評(píng)論請(qǐng)先 登錄
LIN總線相關(guān)知識(shí)
LIN協(xié)議電平以及幀結(jié)構(gòu)
瑞薩RL78F24系列微控制器中的LIN總線主機(jī)配置方法
瑞薩RL78F24系列微控制器中的LIN總線從機(jī)配置方法
新品發(fā)布 | 同星智能TH7012首發(fā):CAN(FD)/LIN干擾與ISO 16845測(cè)試三合一
為什么LIN總線端口必須選用ESD二極管?
虹科技術(shù)分享 | LIN總線譯碼功能與LIN控制交流發(fā)電機(jī)(二)
LIN協(xié)議:汽車電子中的隱形功臣
如何評(píng)估CAN總線信號(hào)質(zhì)量
S32K3X4EVB-T172 LIN接收幀丟失的原因?
使用stm32F103的USART的lin通訊模式,TX,RX,GND,三根線怎么和lin總線連接?
EtherCAT數(shù)據(jù)幀結(jié)構(gòu)解析
基于Vector工具進(jìn)行CAN協(xié)議錯(cuò)誤幀的分析實(shí)踐

LIN總線幀結(jié)構(gòu)及各場(chǎng)干擾
評(píng)論