LIN通信協(xié)議普通面_第1頁(yè)
LIN通信協(xié)議普通面_第2頁(yè)
LIN通信協(xié)議普通面_第3頁(yè)
LIN通信協(xié)議普通面_第4頁(yè)
LIN通信協(xié)議普通面_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

車載網(wǎng)絡(luò)技術(shù)第三章本地內(nèi)部連接網(wǎng)絡(luò)LIN汽車系曹曉琳復(fù)習(xí):

3.1LIN概述一、汽車網(wǎng)絡(luò)分類二、定義LIN(LocalInterconnectNetwork)本地內(nèi)部連接網(wǎng)絡(luò)

三、發(fā)展歷史四、協(xié)議規(guī)范概述五、LIN特點(diǎn)

1)一主多從2)低成本3)傳輸確定性4)增刪節(jié)點(diǎn)方便5)可預(yù)測(cè)的EMC六、應(yīng)用七、LIN網(wǎng)絡(luò)的組網(wǎng)形式

1)單個(gè)LIN網(wǎng)絡(luò)(多個(gè)門(mén)節(jié)點(diǎn))2)兩個(gè)LIN網(wǎng)絡(luò)(左邊和右邊)3)CAN/LIN之間設(shè)專用網(wǎng)關(guān)4)具備LIN分層結(jié)構(gòu)的CAN八、LIN與CAN的比較復(fù)習(xí):

3.1LIN概述一、汽車網(wǎng)絡(luò)分類二、定義

LIN(LocalInterconnectNetwork)本地內(nèi)部連接網(wǎng)絡(luò)三、發(fā)展歷史四、協(xié)議規(guī)范概述五、LIN特點(diǎn)

1)一主多從2)低成本3)傳輸確定性4)增刪節(jié)點(diǎn)方便5)可預(yù)測(cè)的EMC六、應(yīng)用七、LIN網(wǎng)絡(luò)的組網(wǎng)形式

1)單個(gè)LIN網(wǎng)絡(luò)(多個(gè)門(mén)節(jié)點(diǎn))2)兩個(gè)LIN網(wǎng)絡(luò)(左邊和右邊)3)CAN/LIN之間設(shè)專用網(wǎng)關(guān)4)具備LIN分層結(jié)構(gòu)的CAN八、LIN與CAN的比較復(fù)習(xí):

3.2LIN通信協(xié)議一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu)2、信息的傳送和報(bào)文幀復(fù)習(xí):

3.2LIN通信協(xié)議一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu)2、信息的傳送和報(bào)文幀3.1LIN概述3.2LIN通信協(xié)議3.3LIN網(wǎng)絡(luò)結(jié)構(gòu)及應(yīng)用實(shí)例一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu):2、信息的傳送(報(bào)文幀)LIN報(bào)文幀LIN報(bào)文幀3、信息傳送方方式(信息路路由)LIN網(wǎng)絡(luò)中的數(shù)據(jù)據(jù)交換方式有有以下3種方式:(1)數(shù)據(jù)由主機(jī)機(jī)到從機(jī)通信信:(2)數(shù)據(jù)由從機(jī)機(jī)到主機(jī)通信信;(3)數(shù)據(jù)由從機(jī)機(jī)到從機(jī)通信信。4、位傳輸速度度受單線傳輸介介質(zhì)電磁干擾擾(EMI)的限制,LIN最大位流傳輸輸速度為29Kbps;另一方面,,為了避免與與實(shí)際系統(tǒng)定定時(shí)溢出時(shí)間間發(fā)生沖突,,最小位流傳輸輸速度限定為為1Kbps。實(shí)際應(yīng)用系系統(tǒng)中,建議議使用下面的的位速率:低速中速高速2400bit/s9600bit/s19200bit/s5、故障檢測(cè)位錯(cuò)誤校驗(yàn)和錯(cuò)誤標(biāo)識(shí)符奇偶校校驗(yàn)從機(jī)不響應(yīng)錯(cuò)錯(cuò)誤同步場(chǎng)不一致致錯(cuò)誤沒(méi)有總線活動(dòng)動(dòng)6、故障界定主節(jié)點(diǎn)控制單單元主節(jié)點(diǎn)的主任任務(wù)發(fā)送:主節(jié)點(diǎn)的從任任務(wù)發(fā)送。從節(jié)點(diǎn)控制單單元從任務(wù)發(fā)送::從任務(wù)接收。。7、連接總線LIN網(wǎng)絡(luò)節(jié)點(diǎn)的最最大數(shù)量不僅僅由標(biāo)識(shí)符的的數(shù)量限制((見(jiàn)上面的信信息路由)也也由總線的物理特特性限制。建議LIN網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)數(shù)量不應(yīng)超過(guò)過(guò)16。否則,網(wǎng)絡(luò)絡(luò)阻抗降低,,在最壞工作作情況下會(huì)發(fā)發(fā)生通信故障障。每增加一一個(gè)額外的節(jié)節(jié)點(diǎn)大約降低低3%的網(wǎng)絡(luò)阻抗((30k?||~1k?)。網(wǎng)絡(luò)中積累的的“電”線長(zhǎng)長(zhǎng)度應(yīng)少于或或等于40m。主機(jī)節(jié)點(diǎn)的總總線端電阻典典型值是1k?,從機(jī)節(jié)點(diǎn)是是30k?。邏輯值位值總線電壓顯性0地隱性1電池8、休眠方式與與喚醒為了降低系統(tǒng)統(tǒng)的功耗,LIN系統(tǒng)支持沒(méi)有有任何內(nèi)部活活動(dòng)而且總線線驅(qū)動(dòng)器無(wú)源源的休眠模式。當(dāng)主節(jié)點(diǎn)向網(wǎng)絡(luò)上發(fā)送送一個(gè)休眠命命令時(shí),所有有節(jié)點(diǎn)進(jìn)入休休眠狀態(tài),直直到被喚醒之之前總線上不不會(huì)有任何活活動(dòng)。當(dāng)總線上出現(xiàn)任何活動(dòng)動(dòng)或節(jié)點(diǎn)出現(xiàn)任何內(nèi)部部活動(dòng)時(shí),節(jié)節(jié)點(diǎn)結(jié)束休眠眠狀態(tài)。從節(jié)節(jié)點(diǎn)喚醒時(shí),,輸出一個(gè)喚喚醒信號(hào)喚醒醒主節(jié)點(diǎn),主主節(jié)點(diǎn)開(kāi)始初初始化內(nèi)部活活動(dòng),從節(jié)點(diǎn)點(diǎn)要等到同步步信號(hào)后才參參與總線通信信活動(dòng)。二、信息格式式與信息傳送送1、信息格式一個(gè)LIN信息幀包括兩兩部分:頭信息/幀頭:由主任務(wù)發(fā)送送到從任務(wù)的的同步和標(biāo)示示符信息響應(yīng)/應(yīng)答:由一個(gè)從任務(wù)務(wù)發(fā)送到所有有其他從任務(wù)務(wù)的數(shù)據(jù)信息息一個(gè)LIN信息幀有同步間隔、同步域、標(biāo)示符域(受受保護(hù)ID域)、數(shù)據(jù)域、校驗(yàn)碼域以及響應(yīng)間隔構(gòu)成。除起起始始域域與與響響應(yīng)應(yīng)間間隔隔,,其其他他部部分分都都是是以以字節(jié)節(jié)為單單位位傳傳送送,,每每個(gè)個(gè)字字節(jié)節(jié)都都有有自自己己的的格格式式,,稱稱之之為為字節(jié)節(jié)域域(ByteField)。。字字節(jié)節(jié)之之間間有有字節(jié)節(jié)間間隔隔(InterByteSpace),,在在頭頭信信息息和和響響應(yīng)應(yīng)之之間間有有一一個(gè)個(gè)響應(yīng)應(yīng)間間隔隔(ResponseSpace)。。這這兩兩個(gè)個(gè)間間隔隔的的最最小小值值為為0。2、頭頭信信息息LIN網(wǎng)絡(luò)絡(luò)中中,,每每個(gè)個(gè)信信息息的的傳傳送送都都是是以以主主節(jié)節(jié)點(diǎn)點(diǎn)發(fā)發(fā)送送頭頭信信息息開(kāi)開(kāi)始始的的。。頭頭信信息息包包括括同步步間間隔隔域域、同步步域域以及及PID(ProtectedIdentifier,受受保保護(hù)護(hù)ID)域。①同步步間間隔隔域域((BreakField)同步步間間隔隔域域由由同步步間間隔隔(Break)和同步步間間隔隔域域間間隔隔符符(BreakDelimiter)構(gòu)成成。。3.2LIN通信信協(xié)協(xié)議議②同步步域域((SyncByteField)字節(jié)節(jié)域域(ByteField):1位起起始始位位(StartBit,顯顯性性)+8位數(shù)數(shù)據(jù)據(jù)位位+1位停停止止位位(StopBit,隱隱性性),是是一一種種標(biāo)標(biāo)準(zhǔn)準(zhǔn)UART數(shù)據(jù)據(jù)傳傳輸輸格格式式。。從機(jī)機(jī)節(jié)節(jié)點(diǎn)點(diǎn)可可以以不不采采用用精精度度高高的的時(shí)時(shí)鐘鐘,,而而采采用用片片上上振振蕩蕩器器等等精精度度和和成成本本相相對(duì)對(duì)較較低低的的時(shí)時(shí)鐘鐘,,由由此此帶帶來(lái)來(lái)的的與與主主機(jī)機(jī)節(jié)節(jié)點(diǎn)點(diǎn)時(shí)時(shí)鐘鐘產(chǎn)產(chǎn)生生的的偏偏差差,,需需要要通通過(guò)過(guò)同步域進(jìn)行調(diào)整整,調(diào)整整的結(jié)果果是使從從機(jī)節(jié)點(diǎn)點(diǎn)數(shù)據(jù)的的位速率率與主機(jī)機(jī)節(jié)點(diǎn)一一致。同同步段用用于同步步的基準(zhǔn)時(shí)鐘鐘為主機(jī)節(jié)節(jié)點(diǎn)的時(shí)時(shí)鐘。從從機(jī)節(jié)點(diǎn)點(diǎn)通過(guò)接接收主機(jī)機(jī)節(jié)點(diǎn)發(fā)發(fā)出的同同步段,,計(jì)算出出主機(jī)節(jié)節(jié)點(diǎn)位速速率,根根據(jù)計(jì)算算結(jié)果對(duì)對(duì)自身的的位速率率重新作作調(diào)整。。③受保護(hù)ID域(ProtectedIdentifierField)受保護(hù)ID段的前6位叫作幀ID(FrameID),加上兩兩個(gè)奇偶校驗(yàn)驗(yàn)位后稱作受受保護(hù)ID。幀ID的范圍在在0x00~0x3F之間,共共64個(gè)。幀ID標(biāo)識(shí)了幀的類別別。從機(jī)任任務(wù)對(duì)于于幀頭作作出的反反應(yīng)(接收/發(fā)送/忽略應(yīng)答部分分)都是依據(jù)幀ID判斷的。如果果幀ID傳輸錯(cuò)誤,將將會(huì)導(dǎo)致信號(hào)號(hào)無(wú)法正確到到達(dá)目的地。。因此引入奇偶校驗(yàn)位。其中ID6是ID0、ID1、ID2、ID4的奇校驗(yàn),ID7是ID1、ID3、ID4、ID5的偶校驗(yàn)。校校驗(yàn)公式如下下,其中“⊕⊕”代表“異異或”運(yùn)算,,“?”代表“取非””運(yùn)算。P0=ID0⊕ID1⊕⊕ID2⊕⊕ID4P1=??(ID1⊕ID3⊕ID4⊕ID5)由公式可以看看出,PID不會(huì)出現(xiàn)全0或全1的情況,因此此,如果從機(jī)機(jī)節(jié)點(diǎn)收到了了“0xFF”或“0x00”,可判斷為傳傳輸錯(cuò)誤。3、響應(yīng)域LIN協(xié)議中,一幀幀信息的響應(yīng)應(yīng)域由數(shù)據(jù)域和校驗(yàn)碼域兩部分構(gòu)成。。數(shù)據(jù)域長(zhǎng)度度(字節(jié)數(shù)))由標(biāo)示符域域的ID4、ID5決定。①數(shù)據(jù)域(DataField)數(shù)據(jù)段包含了了兩種數(shù)據(jù)類類型:信號(hào)(Signal)和診斷消息(Diagnosticmessages)。信號(hào)(Signal)由信號(hào)攜帶幀幀傳遞,一個(gè)個(gè)幀ID對(duì)應(yīng)的數(shù)據(jù)段段可能包含一一個(gè)或多個(gè)信信號(hào)。信號(hào)更更新時(shí)要保證證其完整性,,不能只更新新一部分。一一個(gè)信號(hào)通常常由一個(gè)固定定的節(jié)點(diǎn)發(fā)出出,此節(jié)點(diǎn)稱稱為該信號(hào)的的發(fā)布節(jié)點(diǎn)(Publisher);其余的一個(gè)個(gè)或多個(gè)節(jié)點(diǎn)點(diǎn)接收,它們們稱為信號(hào)的的收聽(tīng)節(jié)點(diǎn)((Subscriber)。診斷消息(Diagnosticmessage)由診斷幀傳遞遞,對(duì)消息內(nèi)內(nèi)容的解析由由數(shù)據(jù)自身和和節(jié)點(diǎn)狀態(tài)決決定。幀的類型①無(wú)條件幀((UnconditionalFrame)②事件觸發(fā)幀幀(EventTriggeredFrame)③偶發(fā)幀(SporadicFrame)④診斷幀(DiagnosticFrame)⑤保留幀(ReservedFrame)①無(wú)條件幀((UnconditionalFrame)無(wú)條件幀是具具有單一發(fā)布節(jié)點(diǎn)點(diǎn),無(wú)論信號(hào)是是否發(fā)生變化化,幀頭都被被無(wú)條件應(yīng)答的幀。無(wú)條件幀在主主機(jī)任務(wù)分配配給它的固定定的幀時(shí)隙中中傳輸??偩€線上一旦有幀幀頭發(fā)送出去去,必須有從從機(jī)任務(wù)作應(yīng)應(yīng)答(即無(wú)條件發(fā)送送應(yīng)答)。①無(wú)條件幀((UnconditionalFrame)②事件觸發(fā)幀幀(EventTriggeredFrame)事件觸發(fā)幀是是主機(jī)節(jié)點(diǎn)在在一個(gè)幀時(shí)隙隙中查詢各從機(jī)節(jié)點(diǎn)的的信號(hào)是否發(fā)發(fā)生變化時(shí)使用的幀,,當(dāng)存在多個(gè)個(gè)發(fā)布節(jié)點(diǎn)時(shí)時(shí),通過(guò)沖突解決進(jìn)度度表來(lái)解決沖突。。原先用作輪詢?cè)兊臒o(wú)條件幀幀,稱為與該該事件觸發(fā)幀幀關(guān)聯(lián)的無(wú)條條件幀,即事事件觸發(fā)幀的的應(yīng)答部分是是與其關(guān)聯(lián)的的無(wú)條件幀所所提供的應(yīng)答答。當(dāng)發(fā)生沖沖突時(shí),需要要立刻中斷當(dāng)當(dāng)前的進(jìn)度表表,啟動(dòng)沖突突解決進(jìn)度表表(CollisionResolvingSchedule),重新調(diào)用這這些關(guān)聯(lián)的無(wú)無(wú)條件幀。其其中,沖突解解決進(jìn)度表要要求包含所有有關(guān)聯(lián)的無(wú)條條件幀。②事件觸發(fā)幀幀(EventTriggeredFrame)②事件觸發(fā)幀幀(EventTriggeredFrame)與事件觸發(fā)幀幀關(guān)聯(lián)的多個(gè)個(gè)無(wú)條件幀需需要滿足以下下5個(gè)條件:數(shù)據(jù)段包含的的數(shù)據(jù)字節(jié)數(shù)數(shù)等長(zhǎng);使用相同的校校驗(yàn)和類型;;數(shù)據(jù)段的第一一個(gè)字節(jié)為該該無(wú)條件幀的的受保護(hù)ID,這樣才才能夠知道應(yīng)應(yīng)答是哪個(gè)關(guān)關(guān)聯(lián)的無(wú)條件件幀發(fā)送出來(lái)來(lái)的;由不同的從機(jī)機(jī)節(jié)點(diǎn)發(fā)布;;不能與事件觸觸發(fā)幀處于同同一個(gè)進(jìn)度表表中。③偶發(fā)幀(SporadicFrame)偶發(fā)幀是主機(jī)機(jī)節(jié)點(diǎn)在同一一幀時(shí)隙中當(dāng)當(dāng)自身信號(hào)發(fā)生生變化時(shí)向總線啟動(dòng)發(fā)發(fā)送的幀。當(dāng)存在多個(gè)關(guān)關(guān)聯(lián)的應(yīng)答信信號(hào)變化時(shí),,通過(guò)事先設(shè)設(shè)定的優(yōu)先級(jí)來(lái)仲裁。③偶發(fā)幀(SporadicFrame)④診斷幀(DiagnosticFrame)診斷幀包括主機(jī)請(qǐng)求幀和從機(jī)應(yīng)答幀,主要用于配配置、識(shí)別和和診斷用。主機(jī)請(qǐng)求幀(MasterRequestFrame,MRF),幀ID=0x3C,應(yīng)答部分的的發(fā)布節(jié)點(diǎn)為為主機(jī)節(jié)點(diǎn);;從機(jī)應(yīng)答幀(SlaveResponseFrame,SRF),幀ID=0x3D,應(yīng)答部分的的發(fā)布節(jié)點(diǎn)為為從機(jī)節(jié)點(diǎn)。。數(shù)據(jù)段規(guī)定定為8個(gè)字節(jié),一律律采用標(biāo)準(zhǔn)型型校驗(yàn)和。⑤保留幀(ReservedFrame)保留幀的幀ID為0x3E和0x3F,為將來(lái)擴(kuò)展展用。②校驗(yàn)碼域(ChecksumField)校驗(yàn)碼域是對(duì)對(duì)幀中所傳輸輸?shù)膬?nèi)容進(jìn)行行校驗(yàn)。校驗(yàn)和分為標(biāo)準(zhǔn)型校驗(yàn)和和(ClassicChecksum)及增強(qiáng)型校驗(yàn)和和(EnhancedChecksum),采用標(biāo)準(zhǔn)型型校驗(yàn)和還是是增強(qiáng)型校驗(yàn)驗(yàn)和由主機(jī)節(jié)節(jié)點(diǎn)管理,發(fā)發(fā)布節(jié)點(diǎn)和各各收聽(tīng)節(jié)點(diǎn)根根據(jù)幀ID來(lái)判斷采用哪哪種校驗(yàn)和。。校驗(yàn)方法為將將校驗(yàn)對(duì)象的的各字節(jié)作帶帶進(jìn)位二進(jìn)制制加法(每當(dāng)結(jié)果大于于等于256時(shí)就減去255),并將所得最最終的和逐位位取反,以該該結(jié)果作為要要發(fā)送的校驗(yàn)驗(yàn)和。接收方方根據(jù)校驗(yàn)和和類型,對(duì)接接收數(shù)據(jù)作相相同的帶進(jìn)位位二進(jìn)制加法法,最終的和和不取反,并并將該和與接接收到的校驗(yàn)驗(yàn)和作加法,,如果結(jié)果為為0xFF,則校驗(yàn)和無(wú)無(wú)誤。這在一一定程度上保保證了數(shù)據(jù)傳傳輸?shù)恼_性性。例:采用標(biāo)準(zhǔn)準(zhǔn)型校驗(yàn)和,,Data1=0x4A,Data2=0x55,Data3=0x93,Data4=0xE54、報(bào)文幀的長(zhǎng)長(zhǎng)度和總線睡睡眠檢測(cè)TFrame_Maximum:幀在總線上上傳輸?shù)淖畲蟠髸r(shí)間;THeader_Maximum:幀頭在總線線上傳輸?shù)淖钭畲髸r(shí)間;TResponse_Maximum:應(yīng)答在總線線上傳輸?shù)淖钭畲髸r(shí)間;THeader_Nominal:幀頭額定傳傳輸時(shí)間:同同步間隔段(包含同步間隔隔和同步間隔隔段間隔符)的最小傳輸時(shí)時(shí)間+同步段傳輸時(shí)時(shí)間+受保護(hù)ID段傳輸時(shí)間;;THeader_Rest:幀頭的余量量:包含字節(jié)節(jié)間間隔,規(guī)規(guī)定為幀頭額額定傳輸時(shí)間間的0.4倍;TResponse_Nominal:應(yīng)答額定傳傳輸時(shí)間:數(shù)數(shù)據(jù)段傳輸時(shí)時(shí)間+校驗(yàn)和段傳輸輸時(shí)間;TResponse_Rest:應(yīng)答的余量量:包含應(yīng)答答間隔以及字字節(jié)間間隔,,規(guī)定為應(yīng)答答額定傳輸時(shí)時(shí)間的0.4倍;Ndata表示數(shù)據(jù)段包包含N個(gè)字節(jié)。THeader_Rest:幀頭的余量量:包含字節(jié)節(jié)間間隔,規(guī)規(guī)定為幀頭額額定傳輸時(shí)間間的0.4倍;TResponse_Nominal:應(yīng)答額定傳傳輸時(shí)間:數(shù)數(shù)據(jù)段傳輸時(shí)時(shí)間+校驗(yàn)和段傳輸輸時(shí)間;TResponse_Rest:應(yīng)答的余量量:包含應(yīng)答答間隔以及字字節(jié)間間隔,,規(guī)定為應(yīng)答答額定傳輸時(shí)時(shí)間的0.4倍;Ndata表示數(shù)據(jù)段包包含N個(gè)字節(jié)。幀在總線上的傳輸波形5、進(jìn)度表進(jìn)度表是幀的的調(diào)度表,規(guī)定總線上上幀的傳輸次序序以及各幀在總線線上的傳輸輸時(shí)間。進(jìn)度表位位于主機(jī)節(jié)節(jié)點(diǎn),主機(jī)機(jī)任務(wù)根據(jù)據(jù)應(yīng)用層需需要進(jìn)行調(diào)調(diào)度。這樣樣保證了總總線信號(hào)的的周期性,也能保證證總線永遠(yuǎn)遠(yuǎn)不會(huì)發(fā)生過(guò)過(guò)載。6、狀態(tài)機(jī)((StateMachine)實(shí)現(xiàn)①主機(jī)任務(wù)務(wù)的狀態(tài)機(jī)機(jī)當(dāng)進(jìn)度表啟啟動(dòng)后,主主機(jī)任務(wù)依依次發(fā)送同同步間隔段段、同步段段和受保護(hù)護(hù)ID段。②從機(jī)任務(wù)的的狀態(tài)機(jī)從機(jī)任務(wù)負(fù)負(fù)責(zé)發(fā)布或或者接聽(tīng)?zhēng)瑤膽?yīng)答。。包括兩個(gè)個(gè)狀態(tài)機(jī)::1.同步間隔段段和同步段段檢查器2.幀處理器②從機(jī)任務(wù)的的狀態(tài)機(jī)三、LIN與CAN的比較四、LIN網(wǎng)絡(luò)開(kāi)發(fā)工作流程為了實(shí)現(xiàn)從從機(jī)節(jié)點(diǎn)入入網(wǎng)的“即即插即用””,LIN規(guī)范標(biāo)準(zhǔn)化化了LIN網(wǎng)絡(luò)從設(shè)計(jì)計(jì)到生成的的工作流程程,對(duì)應(yīng)著著LIN規(guī)范的LINConfigurationLanguageSpecification→NCF(NodeCapabilityFile)LINNodeCapabilityLanguageSpecification→LDF(LINDescriptionFile)五、LIN的軟硬件支支持工具制造商商、半導(dǎo)體供應(yīng)應(yīng)商和第三方軟件件供應(yīng)商提供了種類類多樣的工工具和軟硬硬件。全球球的LIN協(xié)議芯片及及其相關(guān)驅(qū)驅(qū)動(dòng)程序提提供商眾多多,包括有有Philips,F(xiàn)reescale,Infineon,Fujitsu等半導(dǎo)體商商提供的硬硬件包括用用于開(kāi)發(fā)主主節(jié)點(diǎn)的微微控制器及及相應(yīng)的軟軟件包、LIN物理層接口口等。眾多汽車廠商不僅采納了了LIN標(biāo)準(zhǔn),還付付諸行動(dòng),,將LIN總線應(yīng)用到到批量生產(chǎn)產(chǎn)中。要開(kāi)發(fā)LIN的應(yīng)用用,商品化化的開(kāi)發(fā)工工具并不是是必須的,,不過(guò),此此類工具確確實(shí)能提高開(kāi)發(fā)效效率,尤其是處處理那些同同時(shí)容納不同LIN規(guī)范范版本的節(jié)點(diǎn)的網(wǎng)網(wǎng)絡(luò)。六、LIN配置語(yǔ)言LIN配置語(yǔ)言(LINCL,LINConfigurationLanguage)是LIN標(biāo)準(zhǔn)的一部部分,它定定義了LIN網(wǎng)絡(luò)結(jié)構(gòu)和節(jié)點(diǎn)以及任務(wù)的表示語(yǔ)法法。用LINCL形成的一個(gè)個(gè)LIN描述文件就就是一個(gè)LIN系統(tǒng)的完整整描述,包含所有有LIN系統(tǒng)的信息息和仿真調(diào)調(diào)試所需的的信息。因因此LINCL為L(zhǎng)IN調(diào)試開(kāi)發(fā)軟軟件工具的的開(kāi)發(fā)者提提供了一個(gè)個(gè)標(biāo)準(zhǔn)的語(yǔ)語(yǔ)言。句法法的的概概述述符號(hào)意義::=在::=左邊的名字用在它右邊的句法來(lái)表示<>用于標(biāo)記后面定義的對(duì)象|表示選擇??梢猿霈F(xiàn)在左邊或右邊Bold粗體的文字是保留的,它或者是一個(gè)保留的字或是一個(gè)強(qiáng)制的標(biāo)點(diǎn)[]方括號(hào)中的文字將出現(xiàn)一次或幾次()將一些選擇子句組合到一起char_string在引號(hào)中的任何字符串identifier標(biāo)識(shí)符。典型用于對(duì)象的命名;標(biāo)識(shí)符在聲明變量時(shí)要符合普通C語(yǔ)言的規(guī)則integer整數(shù)。十進(jìn)制整數(shù)(第一個(gè)數(shù)字是1~9)或十六進(jìn)制整數(shù)(前綴是0x)real_or_integer實(shí)數(shù)或整數(shù)。實(shí)數(shù)通常是小數(shù),而且有一個(gè)嵌入的小數(shù)點(diǎn)LIN描述述文文件件的的定定義義<LIN_protocol_version_def>LIN協(xié)議議版版本本號(hào)號(hào)的的定定義義<LIN_language_version_def>LIN語(yǔ)言言版版本本號(hào)號(hào)的的定定義義<LIN_speed_def>LIN速度度的的定定義義<Node_def>節(jié)點(diǎn)點(diǎn)定定義義(<Diag_addr_def>)節(jié)點(diǎn)點(diǎn)診診斷斷地地址址的的定定義義<Signal_def>信號(hào)號(hào)定定義義<Frame_def>幀的的定定義義(<Event_triggered_frame_def>)事件件觸觸發(fā)發(fā)幀幀的的定定義義(<Diag_frame_def>)診斷斷幀幀的的定定義義<Schedule_table_def>進(jìn)度度表表的的定定義義(<Signal_groups_def>)信號(hào)號(hào)組組的的定定義義(<Signal_encoding_type_def>)信號(hào)號(hào)編編碼碼類類型型定定義義(<Signal_representation_def>)信號(hào)號(hào)表表示示的的定定義義LIN描述述文文件件示示例例//這是是一一個(gè)個(gè)LIN描述述示示例例文文件件//由IstvanHorvath發(fā)布布LIN_description_file;LIN_protocol_version=““1.0””;LIN_language_version=““1.1””;LIN_speed=19.2kbps;Nodes{Master:CEM,5ms,0.1ms;Slaves:LSM,CPM;}Signals{RearFogLampInd:1,0,CEM,LSM;PositionLampInd:1,0,CEM,LSM;FrontFogLampInd:1,0,CEM,LSM;IgnitionKeyPos:3,0,CEM,LSM,CPM;LSMFuncIllum:4,0,CEM,LSM;LSMSymbolIllum:4,0,CEM;StartHeater:3,0,CEM;CPMReqB0:8,0,CEM;CPMReqB1:8,0,CEM;CPMReqB2:8,0,CEM;CPMReqB3:8,0,CEM;CPMReqB4:8,0,CEM;CPMReqB5:8,0,CEM;CPMReqB6:8,0,CEM;CPMReqB7:8,0,CEM;ReostatPos:4,0,LSM;HeadLampBeamLev:4,0,LSM;FrontFogLampSw:1,0,LSM;RearFogLampSw:1,0,LSM;MLSOff:1,0,LSM;MLSHeadLight:1,0,LSM;MLSPosLight:1,0,LSM;HBLSortHigh:1,0,LSM;HBLShortLow:1,0,LSM;ReoShortHigh:1,0,LSM;ReoShortLow:1,0,LSM;LSMHWPartNoB0:8,0,LSM;LSMHWPartNoB1:8,0,LSM;LSMHWPartNoB2:8,0,LSM;LSMHWPartNoB3:8,0,LSM;LSMSWPartNo:8,0,LSM;CPMOutputs:10,0,CPM;HeaterStatus:4,0,CPM;CPMGlowPlug:7,0,CPM;CPMFanPWM:8,0,CPM;WaterTempLow:8,0,CPM;WaterTempHigh:8,0,CPM;CPMFuelPump:7,0,CPM;CPMRunTime:13,0,CPM;FanIdealSpeed:8,0,CPM;FanMeasSpeed:8,0,CPM;CPMRespB0:1,0,CPM;CPMRespB1:1,0,CPM;CPMRespB2:1,0,CPM;CPMRespB3:1,0,CPM;CPMRespB4:1,0,CPM;CPMRespB5:1,0,CPM;CPMRespB6:1,0,CPM;CPMRespB7:1,0,CPM;}Frames{VL1_CEM_Frm1:32,CEM{RearFogLampInd,0;PositionLampInd,1;FrontFogLampInd,2;IgnitionKeyPos,3;LSMFuncIllum,8;LSMSymbolIllum,12;StartHeater,16;}VL1_CEM_Frm2:48,CEM{CPMReqB0,0;CPMReqB1,8;CPMReqB2,16;CPMReqB3,24;CPMReqB4,32;CPMReqB5,40;CPMReqB6,48;CPMReqB7,56;}VL1_LSM_Frm1:33,LSM{ReostatPos,0;HeadLampBeamLev,4;FrontFogLampSw,8;RearFogLampSw,9;MLSOff,10;MLSHeadLight,11;MLSPosLight,12;HBLSortHigh,16;HBLShortLow,17;ReoShortHigh,18;ReoShortLow,19;}VL1_LSM_Frm2:49,LSM{LSMHWPartNoB0,0;LSMHWPartNoB1,8;LSMHWPartNoB2,16;LSMHWPartNoB3,32;LSMSWPartNo,40;}VL1_CPM_Frm1:50,CPM{CPMOutputs,0;HeaterStatus,10;CPMGlowPlug,16;CPMFanPWM,24;WaterTempLow,32;WaterTempHigh,40;CPMFuelPump,56;}VL1_CPM_Frm2:34,CPM{CPMRunTime,0;FanIdealSpeed,16;FanMeasSpeed,24;}VL1_CPM_Frm3:51,CPM{CPMRespB0,0;CPMRespB1,8;CPMRespB2,16;CPMRespB3,24;CPMRespB4,32;CPMRespB5,40;CPMRespB6,48;CPMRespB7,56;}}Schedule_tables{VL1_ST1{VL1_CEM_Frm1delay15ms;VL1_LSM_Frm1delay15ms;VL1_CPM_Frm1delay20ms;VL1_CPM_Frm2delay20ms;}VL1_ST2{VL1_CEM_Frm1delay15ms;VL1_CEM_Frm2delay20ms;VL1_LSM_Frm1delay15ms;VL1_LSM_Frm2delay20ms;VL1_CEM_Frm1delay15ms;VL1_CPM_Frm1delay20ms;VL1_CPM_Frm2delay20ms;VL1_LSM_Frm1delay15ms;VL1_CPM_Frm3delay20ms;}}Signal_groups{CPMReq:64{CPMReqB0,0;CPMReqB1,8;CPMReqB2,16;CPMReqB3,24;CPMReqB4,32;CPMReqB5,40;CPMReqB6,48;CPMReqB7,56;}}Signal_encoding_types{1BitDig{logical_value,0,”off”;logical_value,1,”on”;}2BitDig{logical_value,0,”off”;logical_value,1,”on”;logical_value,2,”error”;logical_value,3,”void””;}Temp{physical_value,0,250,0.5,-40,”degree””;physical_value,251,253,1,0,””undefined”;logical_value,254,””outofrange”;logical_value,255,””error””;}Speed{physical_value,0,65500,0.008,250,””km/h”;physical_value,65501,65533,1,0,”undefined”;logical_value,65534,”error”;logical_value,65535,”void”;}}Signal_representations{1BitDig:RearFogLampInd,PositionLampInd,FrontFogLampInd;Temp:WaterTempLow,WaterTempHigh;Speed:FanIdealSpeed,FanMeasSpeed;}七、LIN應(yīng)用程序序接口((LINAPI)LIN應(yīng)用接口口程序(LINAPI,LINApplicationProgrammer’sInterface)是一個(gè)LIN網(wǎng)絡(luò)軟件件層,它是LIN標(biāo)準(zhǔn)的一一部分。。通過(guò)LIN標(biāo)準(zhǔn)的這這個(gè)層,,應(yīng)用軟軟件的設(shè)設(shè)計(jì)者不不必知道道LIN網(wǎng)絡(luò)配置置的底層層細(xì)節(jié),,如信號(hào)號(hào)是怎么么構(gòu)成幀幀的等,,就可以以進(jìn)行應(yīng)用層軟軟件的設(shè)設(shè)計(jì)。LINAPI中,定義義了網(wǎng)絡(luò)系統(tǒng)統(tǒng)初始化化功能調(diào)調(diào)用、數(shù)據(jù)和標(biāo)標(biāo)志狀態(tài)態(tài)讀/寫(xiě)的調(diào)用用、時(shí)間表調(diào)調(diào)用、節(jié)點(diǎn)接口口的初始始化、連接功能能調(diào)用以及控制器的的中斷管管理程序序。通過(guò)LINAPI,應(yīng)用程程序可以以方便地地寫(xiě)入和和讀出網(wǎng)網(wǎng)絡(luò)節(jié)點(diǎn)點(diǎn)上的數(shù)數(shù)據(jù)。API是是一組““規(guī)約””,用來(lái)來(lái)定義軟件件模塊的的使用方方法。API既可可以是是數(shù)據(jù)結(jié)結(jié)構(gòu),也可可以是是若干干個(gè)函數(shù),還可可以是是它們們的混合。軟件件開(kāi)發(fā)發(fā)者可可以把把API看看作是是與軟軟件模模塊的的會(huì)話話方。。應(yīng)用用程序序和程程序員員既可可以使使用該該模塊塊的功功能,,又無(wú)無(wú)需訪訪問(wèn)其其源代代碼,,或者者理解解其內(nèi)內(nèi)部工工作機(jī)機(jī)制的的細(xì)節(jié)節(jié)。API對(duì)軟軟件開(kāi)開(kāi)發(fā)意意義重重大。。軟件件規(guī)模模日益益龐大大,常常常需需要把把復(fù)雜雜系統(tǒng)統(tǒng)劃分分成小小的組組成部部分,,或者者重復(fù)復(fù)使用用代碼碼,這這時(shí)都都會(huì)涉涉及到到API。。LIN規(guī)范用用C語(yǔ)言定定義了了LIN的API,但未未定義義API的內(nèi)部部實(shí)現(xiàn)現(xiàn)。LIN協(xié)會(huì)規(guī)規(guī)定::對(duì)于于采用用LIN規(guī)范2.x版的LIN節(jié)點(diǎn),,如果果用C語(yǔ)言開(kāi)開(kāi)發(fā)應(yīng)應(yīng)用程程序,,那么么就必必須使使用API,對(duì)采采用LIN規(guī)范1.x版的LIN節(jié)點(diǎn),,可以以不使使用標(biāo)標(biāo)準(zhǔn)規(guī)規(guī)定的的API。按照用用途,,可以以把LIN的API分為3類——核心API、傳輸層層API和配置與與識(shí)別別API。三類類API相對(duì)獨(dú)獨(dú)立,,彼此此關(guān)聯(lián)聯(lián)。①核心API核心API是API的基礎(chǔ),除了了完成成協(xié)議議層的的幀收收發(fā),,LIN應(yīng)用層層各項(xiàng)項(xiàng)功能能都要要用到到核心心API。核心API包含多多個(gè)函函數(shù),,其中中,l_sch_tick()(時(shí)基節(jié)節(jié)拍管管理)和l_sch_set()(進(jìn)度表表管理理)是與進(jìn)進(jìn)度表表相關(guān)關(guān)的兩兩個(gè)函函數(shù)。。其他他的函函數(shù)負(fù)負(fù)責(zé)控控制各各種硬硬件協(xié)協(xié)調(diào)工工作,,完成成初始始化、、中斷斷響應(yīng)應(yīng)、比比特流流收發(fā)發(fā)、字字節(jié)緩緩沖、、休眠眠、喚喚醒以以及物物理層層的差差錯(cuò)報(bào)報(bào)告等等功能能。②傳輸層層API傳輸層層API是為配置、、識(shí)別別和診診斷這三項(xiàng)項(xiàng)服務(wù)務(wù)設(shè)置置的,,是應(yīng)應(yīng)用層層與協(xié)協(xié)議層層的接接口。。傳輸輸層API的功能能包括括:建立并并管理理PDU隊(duì)列、、收發(fā)發(fā)PDU以及檢檢查PDU的通信信狀態(tài)態(tài)。傳傳輸層層API接收應(yīng)應(yīng)用層層消息息,調(diào)調(diào)用核核心API發(fā)送主主機(jī)請(qǐng)請(qǐng)求幀幀;收收到從從機(jī)應(yīng)應(yīng)答幀幀時(shí),,傳輸輸層剝剝離協(xié)協(xié)議層層的幀幀頭信信息獲獲得PDU,送往往應(yīng)用用層處處理。。③配置與與識(shí)別別API從LIN規(guī)范2.0版開(kāi)始始,增增加了了配置置與識(shí)識(shí)別API。用于于支持應(yīng)應(yīng)用層層的配配置功功能和和識(shí)別別功能能。API使使用示示例從機(jī)節(jié)節(jié)點(diǎn)初初始化化externunsignedcharlin_SomeCotrol_init(void);voidPowerON_Reset(void){HardwareSetup();/*系統(tǒng)初初始化化*/if(l_sys_init()){/*LINAPI初始化化失敗敗*/sleep();}else{if(lin_SomeCotrol_init()){/*LIN相關(guān)的的模塊塊初始始化失失敗,,例如如傳感感器、、執(zhí)行行器*/sleep();}}/*其他系系統(tǒng)要要求的的功能能*/main();return;}/*/*幀收發(fā)發(fā)硬件件的驅(qū)驅(qū)動(dòng)程程序入入口*/constT_Lib_Slave_HandleSlave_handle={Lin_Drv_Init,Lin_Drv_HeaderIn,Lin_Drv_Pid_RecvReq,Lin_Drv_SendData,Lin_Drv_RecvData,Lin_Drv_SendRecvFinish,Lin_Drv_LinBus_Enable,Lin_Drv_LinBus_Disable,Lin_Drv_WakeUp};/*LIN網(wǎng)絡(luò)初始化化*/unsignedcharlin_SomeCotrol_init(void){unsignedcharrtn;rtn=0;if(l_ifc_ioctl(0,LIN_ENTRY_SLAVE_DRV,&Slave_handle)){/*幀收發(fā)硬件件的驅(qū)動(dòng)程程序初始化化失敗*/rtn=1u;}else{l_ifc_init(0);/*LIN端口初始化化*/if(l_ifc_connect(0)){/*LIN端口初始化化失敗*/rtn=1u;}else{/*其他必要的的操作*/}}returnrtn;}從機(jī)節(jié)點(diǎn)主主程序#include"sfr_r825.h"#include"Lin_DrvR8C.h"#include"lin20.h"voidlin_application(void);/***************************//*MainFunction*//***************************/voidmain(void){while(1){/*......Somethingtodo*/lin_application();/*......Somethingtodo*/}}/*******************************//*LINApplicationFunction*//*******************************/externl_flgLin_Frm_FrameMst0_flg;externl_flgLin_Frm_FrameU1_flg;externl_flgLin_Frm_FrameU2_flg;externl_flgLin_Frm_FrameU3_flg;externl_flgLin_Frm_FrameEve0_flg;externl_flgLin_Frm_FrameSlv0_flg;externl_flgLin_Sig_Command_flg;externT_SignalLin_Sig_Status_Slv0;externT_SignalLin_Sig_Status_Slv1;externT_SignalLin_Sig_Command;voidlin_application(void){l_u8data[8];l_u16status;/*判斷:是否否收到了新新的幀?*/if(0!=l_flg_tst(&Lin_Frm_FrameU1_flg)){l_flg_clr(&Lin_Frm_FrameU1_flg);/*根據(jù)收到的的幀執(zhí)行相相應(yīng)的操作作*/}elseif(0!=l_flg_tst(&Lin_Frm_FrameMst0_flg)){l_flg_clr(&Lin_Frm_FrameMst0_flg);/*根據(jù)收到的的幀執(zhí)行相相應(yīng)的操作作*/}/*判斷:幀是是否已經(jīng)發(fā)發(fā)出?*/if(0!=l_flg_tst(&Lin_Frm_FrameU2_flg)){l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論