32LIN通信協(xié)議-普通頁(yè)面課件_第1頁(yè)
32LIN通信協(xié)議-普通頁(yè)面課件_第2頁(yè)
32LIN通信協(xié)議-普通頁(yè)面課件_第3頁(yè)
32LIN通信協(xié)議-普通頁(yè)面課件_第4頁(yè)
32LIN通信協(xié)議-普通頁(yè)面課件_第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)介

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

3.1LIN概述一、汽車(chē)網(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概述2復(fù)習(xí):

3.1LIN概述一、汽車(chē)網(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概述3復(fù)習(xí):

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

3.2LIN通信協(xié)議一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu)2、信息的傳送和報(bào)文幀復(fù)習(xí):3.2LIN通信協(xié)議53.1LIN概述3.2LIN通信協(xié)議3.3LIN網(wǎng)絡(luò)結(jié)構(gòu)及應(yīng)用實(shí)例3.1LIN概述632LIN通信協(xié)議-普通頁(yè)面課件7一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu):一、基本概念82、信息的傳送(報(bào)文幀)2、信息的傳送(報(bào)文幀)9LIN報(bào)文幀LIN報(bào)文幀10LIN報(bào)文幀LIN報(bào)文幀113、信息傳送方式(信息路由)LIN網(wǎng)絡(luò)中的數(shù)據(jù)交換方式有以下3種方式:(1)數(shù)據(jù)由主機(jī)到從機(jī)通信:3、信息傳送方式(信息路由)12(2)數(shù)據(jù)由從機(jī)到主機(jī)通信;(2)數(shù)據(jù)由從機(jī)到主機(jī)通信;13(3)數(shù)據(jù)由從機(jī)到從機(jī)通信。(3)數(shù)據(jù)由從機(jī)到從機(jī)通信。144、位傳輸速度受單線傳輸介質(zhì)電磁干擾(EMI)的限制,LIN最大位流傳輸速度為29Kbps;另一方面,為了避免與實(shí)際系統(tǒng)定時(shí)溢出時(shí)間發(fā)生沖突,最小位流傳輸速度限定為1Kbps

。實(shí)際應(yīng)用系統(tǒng)中,建議使用下面的位速率:低速中速高速2400bit/s9600bit/s19200bit/s4、位傳輸速度低速中速高速2400bit/s9600bit/155、故障檢測(cè)位錯(cuò)誤校驗(yàn)和錯(cuò)誤標(biāo)識(shí)符奇偶校驗(yàn)從機(jī)不響應(yīng)錯(cuò)誤同步場(chǎng)不一致錯(cuò)誤沒(méi)有總線活動(dòng)

5、故障檢測(cè)166、故障界定主節(jié)點(diǎn)控制單元主節(jié)點(diǎn)的主任務(wù)發(fā)送:主節(jié)點(diǎn)的從任務(wù)發(fā)送。從節(jié)點(diǎn)控制單元從任務(wù)發(fā)送:從任務(wù)接收。6、故障界定177、連接總線LIN網(wǎng)絡(luò)節(jié)點(diǎn)的最大數(shù)量不僅由標(biāo)識(shí)符的數(shù)量限制(見(jiàn)上面的信息路由)也由總線的物理特性限制。建議LIN網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)量不應(yīng)超過(guò)16。否則,網(wǎng)絡(luò)阻抗降低,在最壞工作情況下會(huì)發(fā)生通信故障。每增加一個(gè)額外的節(jié)點(diǎn)大約降低3%的網(wǎng)絡(luò)阻抗(30k?||~1k?)。網(wǎng)絡(luò)中積累的“電”線長(zhǎng)度應(yīng)少于或等于40m。主機(jī)節(jié)點(diǎn)的總線端電阻典型值是1k?,從機(jī)節(jié)點(diǎn)是30k?。7、連接總線1832LIN通信協(xié)議-普通頁(yè)面課件19邏輯值位值總線電壓顯性0地隱性1電池邏輯值位值總線電壓顯性0地隱性1電池208、休眠方式與喚醒為了降低系統(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)或節(jié)點(diǎn)出現(xiàn)任何內(nèi)部活動(dòng)時(shí),節(jié)點(diǎn)結(jié)束休眠狀態(tài)。從節(jié)點(diǎn)喚醒時(shí),輸出一個(gè)喚醒信號(hào)喚醒主節(jié)點(diǎn),主節(jié)點(diǎn)開(kāi)始初始化內(nèi)部活動(dòng),從節(jié)點(diǎn)要等到同步信號(hào)后才參與總線通信活動(dòng)。8、休眠方式與喚醒21二、信息格式與信息傳送1、信息格式一個(gè)LIN信息幀包括兩部分:頭信息/幀頭:由主任務(wù)發(fā)送到從任務(wù)的同步和標(biāo)示符信息響應(yīng)/應(yīng)答:由一個(gè)從任務(wù)發(fā)送到所有其他從任務(wù)的數(shù)據(jù)信息二、信息格式與信息傳送22一個(gè)LIN信息幀有同步間隔、同步域、標(biāo)示符域(受保護(hù)ID域)、數(shù)據(jù)域、校驗(yàn)碼域以及響應(yīng)間隔構(gòu)成。除起始域與響應(yīng)間隔,其他部分都是以字節(jié)為單位傳送,每個(gè)字節(jié)都有自己的格式,稱之為字節(jié)域(ByteField)。字節(jié)之間有字節(jié)間隔(InterByteSpace),在頭信息和響應(yīng)之間有一個(gè)響應(yīng)間隔(ResponseSpace)。這兩個(gè)間隔的最小值為0。一個(gè)LIN信息幀有同步間隔、同步域、標(biāo)示符域(受保護(hù)ID域)232、頭信息LIN網(wǎng)絡(luò)中,每個(gè)信息的傳送都是以主節(jié)點(diǎn)發(fā)送頭信息開(kāi)始的。頭信息包括同步間隔域、同步域以及PID(ProtectedIdentifier,受保護(hù)ID)域。2、頭信息24①同步間隔域(BreakField)同步間隔域由同步間隔(Break)和同步間隔域間隔符(BreakDelimiter)構(gòu)成。①同步間隔域(BreakField)253.2LIN通信協(xié)議②同步域(SyncByteField)字節(jié)域(ByteField):1位起始位(StartBit,顯性)+8位數(shù)據(jù)位

+1位停止位(StopBit,隱性),是一種標(biāo)準(zhǔn)UART數(shù)據(jù)傳輸格式。3.2LIN通信協(xié)議②同步域(SyncByteFiel2632LIN通信協(xié)議-普通頁(yè)面課件27從機(jī)節(jié)點(diǎn)可以不采用精度高的時(shí)鐘,而采用片上振蕩器等精度和成本相對(duì)較低的時(shí)鐘,由此帶來(lái)的與主機(jī)節(jié)點(diǎn)時(shí)鐘產(chǎn)生的偏差,需要通過(guò)同步域進(jìn)行調(diào)整,調(diào)整的結(jié)果是使從機(jī)節(jié)點(diǎn)數(shù)據(jù)的位速率與主機(jī)節(jié)點(diǎn)一致。同步段用于同步的基準(zhǔn)時(shí)鐘為主機(jī)節(jié)點(diǎn)的時(shí)鐘。從機(jī)節(jié)點(diǎn)通過(guò)接收主機(jī)節(jié)點(diǎn)發(fā)出的同步段,計(jì)算出主機(jī)節(jié)點(diǎn)位速率,根據(jù)計(jì)算結(jié)果對(duì)自身的位速率重新作調(diào)整。從機(jī)節(jié)點(diǎn)可以不采用精度高的時(shí)鐘,而采用片上振蕩器等精度和成本28③受保護(hù)ID域(ProtectedIdentifierField)受保護(hù)ID段的前6位叫作幀ID(FrameID),加上兩個(gè)奇偶校驗(yàn)位后稱作受保護(hù)ID。③受保護(hù)ID域(ProtectedIdentifierF29幀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)無(wú)法正確到達(dá)目的地。幀ID的范圍在0x00~0x3F之間,共64個(gè)。幀ID30因此引入奇偶校驗(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ī)節(jié)點(diǎn)收到了“0xFF”或“0x00”,可判斷為傳輸錯(cuò)誤。32LIN通信協(xié)議-普通頁(yè)面課件313、響應(yīng)域LIN協(xié)議中,一幀信息的響應(yīng)域由數(shù)據(jù)域和校驗(yàn)碼域兩部分構(gòu)成。數(shù)據(jù)域長(zhǎng)度(字節(jié)數(shù))由標(biāo)示符域的ID4、ID5決定。

①數(shù)據(jù)域(DataField)

3、響應(yīng)域32數(shù)據(jù)段包含了兩種數(shù)據(jù)類型:信號(hào)(Signal)和診斷消息(Diagnosticmessages)。信號(hào)(Signal)由信號(hào)攜帶幀傳遞,一個(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è)節(jié)點(diǎn)接收,它們稱為信號(hào)的收聽(tīng)節(jié)點(diǎn)(Subscriber)。診斷消息(Diagnosticmessage)由診斷幀傳遞,對(duì)消息內(nèi)容的解析由數(shù)據(jù)自身和節(jié)點(diǎn)狀態(tài)決定。數(shù)據(jù)段包含了兩種數(shù)據(jù)類型:信號(hào)(Signal)和診斷消息(D3332LIN通信協(xié)議-普通頁(yè)面課件34幀的類型①無(wú)條件幀(UnconditionalFrame)②事件觸發(fā)幀(EventTriggeredFrame)③偶發(fā)幀(SporadicFrame)④診斷幀(DiagnosticFrame)⑤保留幀(ReservedFrame)幀的類型35①無(wú)條件幀(UnconditionalFrame)無(wú)條件幀是具有單一發(fā)布節(jié)點(diǎn),無(wú)論信號(hào)是否發(fā)生變化,幀頭都被無(wú)條件應(yīng)答的幀。無(wú)條件幀在主機(jī)任務(wù)分配給它的固定的幀時(shí)隙中傳輸??偩€上一旦有幀頭發(fā)送出去,必須有從機(jī)任務(wù)作應(yīng)答(即無(wú)條件發(fā)送應(yīng)答)。

①無(wú)條件幀(UnconditionalFrame)36①無(wú)條件幀(UnconditionalFrame)

①無(wú)條件幀(UnconditionalFrame)37②事件觸發(fā)幀(EventTriggeredFrame)事件觸發(fā)幀是主機(jī)節(jié)點(diǎn)在一個(gè)幀時(shí)隙中查詢各從機(jī)節(jié)點(diǎn)的信號(hào)是否發(fā)生變化時(shí)使用的幀,當(dāng)存在多個(gè)發(fā)布節(jié)點(diǎn)時(shí),通過(guò)沖突解決進(jìn)度表來(lái)解決沖突。原先用作輪詢的無(wú)條件幀,稱為與該事件觸發(fā)幀關(guān)聯(lián)的無(wú)條件幀,即事件觸發(fā)幀的應(yīng)答部分是與其關(guān)聯(lián)的無(wú)條件幀所提供的應(yīng)答。當(dāng)發(fā)生沖突時(shí),需要立刻中斷當(dāng)前的進(jìn)度表,啟動(dòng)沖突解決進(jìn)度表(CollisionResolvingSchedule),重新調(diào)用這些關(guān)聯(lián)的無(wú)條件幀。其中,沖突解決進(jìn)度表要求包含所有關(guān)聯(lián)的無(wú)條件幀。②事件觸發(fā)幀(EventTriggeredFrame)38②事件觸發(fā)幀(EventTriggeredFrame)②事件觸發(fā)幀(EventTriggeredFrame)39②事件觸發(fā)幀(EventTriggeredFrame)與事件觸發(fā)幀關(guān)聯(lián)的多個(gè)無(wú)條件幀需要滿足以下5個(gè)條件:數(shù)據(jù)段包含的數(shù)據(jù)字節(jié)數(shù)等長(zhǎng);使用相同的校驗(yàn)和類型;數(shù)據(jù)段的第一個(gè)字節(jié)為該無(wú)條件幀的受保護(hù)ID,這樣才能夠知道應(yīng)答是哪個(gè)關(guān)聯(lián)的無(wú)條件幀發(fā)送出來(lái)的;由不同的從機(jī)節(jié)點(diǎn)發(fā)布;不能與事件觸發(fā)幀處于同一個(gè)進(jìn)度表中。②事件觸發(fā)幀(EventTriggeredFrame)40③偶發(fā)幀(SporadicFrame)偶發(fā)幀是主機(jī)節(jié)點(diǎn)在同一幀時(shí)隙中當(dāng)自身信號(hào)發(fā)生變化時(shí)向總線啟動(dòng)發(fā)送的幀。當(dāng)存在多個(gè)關(guān)聯(lián)的應(yīng)答信號(hào)變化時(shí),通過(guò)事先設(shè)定的優(yōu)先級(jí)來(lái)仲裁。③偶發(fā)幀(SporadicFrame)41③偶發(fā)幀(SporadicFrame)③偶發(fā)幀(SporadicFrame)42④診斷幀(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)和。④診斷幀(DiagnosticFrame)43⑤保留幀(ReservedFrame)保留幀的幀ID為0x3E和0x3F,為將來(lái)擴(kuò)展用。⑤保留幀(ReservedFrame)44②校驗(yàn)碼域(ChecksumField)校驗(yàn)碼域是對(duì)幀中所傳輸?shù)膬?nèi)容進(jìn)行校驗(yàn)。②校驗(yàn)碼域(ChecksumField)45校驗(yàn)和分為標(biāo)準(zhǔn)型校驗(yàn)和(ClassicChecksum)及增強(qiáng)型校驗(yàn)和(EnhancedChecksum),采用標(biāo)準(zhǔn)型校驗(yàn)和還是增強(qiáng)型校驗(yàn)和由主機(jī)節(jié)點(diǎn)管理,發(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)和。接收方根據(jù)校驗(yàn)和類型,對(duì)接收數(shù)據(jù)作相同的帶進(jìn)位二進(jìn)制加法,最終的和不取反,并將該和與接收到的校驗(yàn)和作加法,如果結(jié)果為0xFF,則校驗(yàn)和無(wú)誤。這在一定程度上保證了數(shù)據(jù)傳輸?shù)恼_性。校驗(yàn)和分為標(biāo)準(zhǔn)型校驗(yàn)和(ClassicChecksum)及46例:采用標(biāo)準(zhǔn)型校驗(yàn)和,Data1=0x4A,Data2=0x55,Data3=0x93,Data4=0xE5例:采用標(biāo)準(zhǔn)型校驗(yàn)和,Data1=0x4A,Data2474、報(bào)文幀的長(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í)間+受保護(hù)ID段傳輸時(shí)間;4、報(bào)文幀的長(zhǎng)度和總線睡眠檢測(cè)TFrame_Maximum:48THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為幀頭額定傳輸時(shí)間的0.4倍;TResponse_Nominal:應(yīng)答額定傳輸時(shí)間:數(shù)據(jù)段傳輸時(shí)間+校驗(yàn)和段傳輸時(shí)間;TResponse_Rest:應(yīng)答的余量:包含應(yīng)答間隔以及字節(jié)間間隔,規(guī)定為應(yīng)答額定傳輸時(shí)間的0.4倍;Ndata表示數(shù)據(jù)段包含N個(gè)字節(jié)。THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為49THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為幀頭額定傳輸時(shí)間的0.4倍;TResponse_Nominal:應(yīng)答額定傳輸時(shí)間:數(shù)據(jù)段傳輸時(shí)間+校驗(yàn)和段傳輸時(shí)間;TResponse_Rest:應(yīng)答的余量:包含應(yīng)答間隔以及字節(jié)間間隔,規(guī)定為應(yīng)答額定傳輸時(shí)間的0.4倍;Ndata表示數(shù)據(jù)段包含N個(gè)字節(jié)。THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為5032LIN通信協(xié)議-普通頁(yè)面課件51幀在總線上的傳輸波形幀在總線上525、進(jìn)度表進(jìn)度表是幀的調(diào)度表,規(guī)定總線上幀的傳輸次序以及各幀在總線上的傳輸時(shí)間。進(jìn)度表位于主機(jī)節(jié)點(diǎn),主機(jī)任務(wù)根據(jù)應(yīng)用層需要進(jìn)行調(diào)度。這樣保證了總線信號(hào)的周期性,也能保證總線永遠(yuǎn)不會(huì)發(fā)生過(guò)載。5、進(jìn)度表5332LIN通信協(xié)議-普通頁(yè)面課件546、狀態(tài)機(jī)(StateMachine)實(shí)現(xiàn)①主機(jī)任務(wù)的狀態(tài)機(jī)當(dāng)進(jìn)度表啟動(dòng)后,主機(jī)任務(wù)依次發(fā)送同步間隔段、同步段和受保護(hù)ID段。6、狀態(tài)機(jī)(StateMachine)實(shí)現(xiàn)55②從機(jī)任務(wù)的狀態(tài)機(jī)從機(jī)任務(wù)負(fù)責(zé)發(fā)布或者接聽(tīng)?zhēng)膽?yīng)答。包括兩個(gè)狀態(tài)機(jī):1.同步間隔段和同步段檢查器2.幀處理器②從機(jī)任務(wù)的狀態(tài)機(jī)56②從機(jī)任務(wù)的狀態(tài)機(jī)②從機(jī)任務(wù)的狀態(tài)機(jī)57三、LIN與CAN的比較三、LIN與CAN的比較58四、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ì)到生成的工作流程,對(duì)應(yīng)著LIN規(guī)范的LINConfigurationLanguageSpecification

→NCF(NodeCapabilityFile)

LINNodeCapabilityLanguageSpecification

→LDF(LINDescriptionFile)四、LIN網(wǎng)絡(luò)開(kāi)發(fā)工作流程59五、LIN的軟硬件支持工具制造商、半導(dǎo)體供應(yīng)商和第三方軟件供應(yīng)商提供了種類多樣的工具和軟硬件。全球的LIN協(xié)議芯片及其相關(guān)驅(qū)動(dòng)程序提供商眾多,包括有Philips,F(xiàn)reescale,Infineon,Fujitsu等半導(dǎo)體商提供的硬件包括用于開(kāi)發(fā)主節(jié)點(diǎn)的微控制器及相應(yīng)的軟件包、LIN物理層接口等。眾多汽車(chē)廠商不僅采納了LIN標(biāo)準(zhǔn),還付諸行動(dòng),將LIN總線應(yīng)用到批量生產(chǎn)中。五、LIN的軟硬件支持60要開(kāi)發(fā)LIN的應(yīng)用,商品化的開(kāi)發(fā)工具并不是必須的,不過(guò),此類工具確實(shí)能提高開(kāi)發(fā)效率,尤其是處理那些同時(shí)容納不同LIN規(guī)范版本的節(jié)點(diǎn)的網(wǎng)絡(luò)。要開(kāi)發(fā)LIN的應(yīng)用,商品化的開(kāi)發(fā)工具并不是必須的,不過(guò),此類61六、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è)LIN描述文件就是一個(gè)LIN系統(tǒng)的完整描述,包含所有LIN系統(tǒng)的信息和仿真調(diào)試所需的信息。因此LINCL為L(zhǎng)IN調(diào)試開(kāi)發(fā)軟件工具的開(kāi)發(fā)者提供了一個(gè)標(biāo)準(zhǔn)的語(yǔ)言。六、LIN配置語(yǔ)言62句法的概述

符號(hào)意義::=在::=左邊的名字用在它右邊的句法來(lái)表示<>用于標(biāo)記后面定義的對(duì)象|表示選擇。可以出現(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)句法的概述符號(hào)意義::=在::=左邊的名字用在它右邊的句法63LIN描述文件的定義<LIN_protocol_version_def>LIN協(xié)議版本號(hào)的定義<LIN_language_version_def>LIN語(yǔ)言版本號(hào)的定義<LIN_speed_def>LIN速度的定義<Node_def>節(jié)點(diǎn)定義(<Diag_addr_def>)節(jié)點(diǎn)診斷地址的定義<Signal_def>信號(hào)定義<Frame_def>幀的定義(<Event_triggered_frame_def>)事件觸發(fā)幀的定義(<Diag_frame_def>)診斷幀的定義<Schedule_table_def>進(jìn)度表的定義(<Signal_groups_def>)信號(hào)組的定義(<Signal_encoding_type_def>)信號(hào)編碼類型定義(<Signal_representation_def>)信號(hào)表示的定義LIN描述文件的定義64LIN描述文件示例//這是一個(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;LIN描述文件示例HeadLampBeamLev:4,0,L65CPMRespB4: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;}CPMRespB4:1,0,CPM;MLSOff,10;66VL1_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”;}VL1_CPM_Frm3:51,CPM{Signal_gr67Speed{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;}Speed{68七、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è)計(jì)者不必知道LIN網(wǎng)絡(luò)配置的底層細(xì)節(jié),如信號(hào)是怎么構(gòu)成幀的等,就可以進(jìn)行應(yīng)用層軟件的設(shè)計(jì)。LINAPI中,定義了網(wǎng)絡(luò)系統(tǒng)初始化功能調(diào)用、數(shù)據(jù)和標(biāo)志狀態(tài)讀/寫(xiě)的調(diào)用、時(shí)間表調(diào)用、節(jié)點(diǎn)接口的初始化、連接功能調(diào)用以及控制器的中斷管理程序。通過(guò)LINAPI,應(yīng)用程序可以方便地寫(xiě)入和讀出網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)。七、LIN應(yīng)用程序接口(LINAPI)69

API是一組“規(guī)約”,用來(lái)定義軟件模塊的使用方法。

API既可以是數(shù)據(jù)結(jié)構(gòu),也可以是若干個(gè)函數(shù),還可以是它們的混合。軟件開(kāi)發(fā)者可以把API看作是與軟件模塊的會(huì)話方。應(yīng)用程序和程序員既可以使用該模塊的功能,又無(wú)需訪問(wèn)其源代碼,或者理解其內(nèi)部工作機(jī)制的細(xì)節(jié)。

API對(duì)軟件開(kāi)發(fā)意義重大。軟件規(guī)模日益龐大,常常需要把復(fù)雜系統(tǒng)劃分成小的組成部分,或者重復(fù)使用代碼,這時(shí)都會(huì)涉及到API。32LIN通信協(xié)議-普通頁(yè)面課件70LIN規(guī)范用C語(yǔ)言定義了LIN的API,但未定義API的內(nèi)部實(shí)現(xiàn)。LIN協(xié)會(huì)規(guī)定:對(duì)于采用LIN規(guī)范2.x版的LIN節(jié)點(diǎn),如果用C語(yǔ)言開(kāi)發(fā)應(yīng)用程序,那么就必須使用API,對(duì)采用LIN規(guī)范1.x版的LIN節(jié)點(diǎn),可以不使用標(biāo)準(zhǔn)規(guī)定的API。按照用途,可以把LIN的API分為3類——核心API、傳輸層API

和配置與識(shí)別API。三類API相對(duì)獨(dú)立,彼此關(guān)聯(lián)。LIN規(guī)范用C語(yǔ)言定義了LIN的API,但未定義API71①核心API核心API是API的基礎(chǔ),除了完成協(xié)議層的幀收發(fā),LIN應(yīng)用層各項(xiàng)功能都要用到核心API。核心API包含多個(gè)函數(shù),其中,l_sch_tick()(時(shí)基節(jié)拍管理)和l_sch_set()(進(jìn)度表管理)是與進(jìn)度表相關(guān)的兩個(gè)函數(shù)。其他的函數(shù)負(fù)責(zé)控制各種硬件協(xié)調(diào)工作,完成初始化、中斷響應(yīng)、比特流收發(fā)、字節(jié)緩沖、休眠、喚醒以及物理層的差錯(cuò)報(bào)告等功能。①核心API72②傳輸層API傳輸層API是為配置、識(shí)別和診斷這三項(xiàng)服務(wù)設(shè)置的,是應(yīng)用層與協(xié)議層的接口。傳輸層API的功能包括:建立并管理PDU隊(duì)列、收發(fā)PDU以及檢查PDU的通信狀態(tài)。傳輸層API接收應(yīng)用層消息,調(diào)用核心API發(fā)送主機(jī)請(qǐng)求幀;收到從機(jī)應(yīng)答幀時(shí),傳輸層剝離協(xié)議層的幀頭信息獲得PDU,送往應(yīng)用層處理。②傳輸層API73③配置與識(shí)別API從LIN規(guī)范2.0版開(kāi)始,增加了配置與識(shí)別API。用于支持應(yīng)用層的配置功能和識(shí)別功能。③配置與識(shí)別API74API使用示例從機(jī)節(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ā)硬件的驅(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};API使用示例從機(jī)節(jié)點(diǎn)初始化/*幀收發(fā)硬件的驅(qū)動(dòng)程序入口75/*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;/*LIN網(wǎng)絡(luò)初始化*/從機(jī)節(jié)點(diǎn)主程序76voidlin_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ā)出?*/if(0!=l_flg_tst(&Lin_Frm_FrameU2_flg)){l_flg_clr(&Lin_Frm_FrameU2_flg);/*執(zhí)行發(fā)送結(jié)束之后的操作*/}elseif(0!=l_flg_tst(&Lin_Frm_FrameU3_flg)){l_flg_cl

溫馨提示

  • 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)論