版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
車載網(wǎng)絡(luò)技術(shù)第三章本地內(nèi)部連接網(wǎng)絡(luò)LIN汽車系曹曉琳車載網(wǎng)絡(luò)技術(shù)第三章本地內(nèi)部連接網(wǎng)絡(luò)LIN1復(fù)習(xí):
3.1LIN概述一、汽車網(wǎng)絡(luò)分類二、定義LIN(LocalInterconnectNetwork)本地內(nèi)部連接網(wǎng)絡(luò)
三、發(fā)展歷史四、協(xié)議規(guī)范概述五、LIN特點
1)一主多從2)低成本3)傳輸確定性4)增刪節(jié)點方便5)可預(yù)測的EMC六、應(yīng)用七、LIN網(wǎng)絡(luò)的組網(wǎng)形式
1)單個LIN網(wǎng)絡(luò)(多個門節(jié)點)2)兩個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概述一、汽車網(wǎng)絡(luò)分類二、定義
LIN(LocalInterconnectNetwork)本地內(nèi)部連接網(wǎng)絡(luò)三、發(fā)展歷史四、協(xié)議規(guī)范概述五、LIN特點
1)一主多從2)低成本3)傳輸確定性4)增刪節(jié)點方便5)可預(yù)測的EMC六、應(yīng)用七、LIN網(wǎng)絡(luò)的組網(wǎng)形式
1)單個LIN網(wǎng)絡(luò)(多個門節(jié)點)2)兩個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、信息的傳送和報文幀復(fù)習(xí):3.2LIN通信協(xié)議4復(fù)習(xí):
3.2LIN通信協(xié)議一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu)2、信息的傳送和報文幀復(fù)習(xí):3.2LIN通信協(xié)議53.1LIN概述3.2LIN通信協(xié)議3.3LIN網(wǎng)絡(luò)結(jié)構(gòu)及應(yīng)用實例3.1LIN概述632LIN通信協(xié)議-普通頁面課件7一、基本概念1、LIN協(xié)議的分層結(jié)構(gòu):一、基本概念82、信息的傳送(報文幀)2、信息的傳送(報文幀)9LIN報文幀LIN報文幀10LIN報文幀LIN報文幀113、信息傳送方式(信息路由)LIN網(wǎng)絡(luò)中的數(shù)據(jù)交換方式有以下3種方式:(1)數(shù)據(jù)由主機到從機通信:3、信息傳送方式(信息路由)12(2)數(shù)據(jù)由從機到主機通信;(2)數(shù)據(jù)由從機到主機通信;13(3)數(shù)據(jù)由從機到從機通信。(3)數(shù)據(jù)由從機到從機通信。144、位傳輸速度受單線傳輸介質(zhì)電磁干擾(EMI)的限制,LIN最大位流傳輸速度為29Kbps;另一方面,為了避免與實際系統(tǒng)定時溢出時間發(fā)生沖突,最小位流傳輸速度限定為1Kbps
。實際應(yīng)用系統(tǒng)中,建議使用下面的位速率:低速中速高速2400bit/s9600bit/s19200bit/s4、位傳輸速度低速中速高速2400bit/s9600bit/155、故障檢測位錯誤校驗和錯誤標(biāo)識符奇偶校驗從機不響應(yīng)錯誤同步場不一致錯誤沒有總線活動
5、故障檢測166、故障界定主節(jié)點控制單元主節(jié)點的主任務(wù)發(fā)送:主節(jié)點的從任務(wù)發(fā)送。從節(jié)點控制單元從任務(wù)發(fā)送:從任務(wù)接收。6、故障界定177、連接總線LIN網(wǎng)絡(luò)節(jié)點的最大數(shù)量不僅由標(biāo)識符的數(shù)量限制(見上面的信息路由)也由總線的物理特性限制。建議LIN網(wǎng)絡(luò)的節(jié)點數(shù)量不應(yīng)超過16。否則,網(wǎng)絡(luò)阻抗降低,在最壞工作情況下會發(fā)生通信故障。每增加一個額外的節(jié)點大約降低3%的網(wǎng)絡(luò)阻抗(30k?||~1k?)。網(wǎng)絡(luò)中積累的“電”線長度應(yīng)少于或等于40m。主機節(jié)點的總線端電阻典型值是1k?,從機節(jié)點是30k?。7、連接總線1832LIN通信協(xié)議-普通頁面課件19邏輯值位值總線電壓顯性0地隱性1電池邏輯值位值總線電壓顯性0地隱性1電池208、休眠方式與喚醒為了降低系統(tǒng)的功耗,LIN系統(tǒng)支持沒有任何內(nèi)部活動而且總線驅(qū)動器無源的休眠模式。當(dāng)主節(jié)點向網(wǎng)絡(luò)上發(fā)送一個休眠命令時,所有節(jié)點進(jìn)入休眠狀態(tài),直到被喚醒之前總線上不會有任何活動。當(dāng)總線上出現(xiàn)任何活動或節(jié)點出現(xiàn)任何內(nèi)部活動時,節(jié)點結(jié)束休眠狀態(tài)。從節(jié)點喚醒時,輸出一個喚醒信號喚醒主節(jié)點,主節(jié)點開始初始化內(nèi)部活動,從節(jié)點要等到同步信號后才參與總線通信活動。8、休眠方式與喚醒21二、信息格式與信息傳送1、信息格式一個LIN信息幀包括兩部分:頭信息/幀頭:由主任務(wù)發(fā)送到從任務(wù)的同步和標(biāo)示符信息響應(yīng)/應(yīng)答:由一個從任務(wù)發(fā)送到所有其他從任務(wù)的數(shù)據(jù)信息二、信息格式與信息傳送22一個LIN信息幀有同步間隔、同步域、標(biāo)示符域(受保護ID域)、數(shù)據(jù)域、校驗碼域以及響應(yīng)間隔構(gòu)成。除起始域與響應(yīng)間隔,其他部分都是以字節(jié)為單位傳送,每個字節(jié)都有自己的格式,稱之為字節(jié)域(ByteField)。字節(jié)之間有字節(jié)間隔(InterByteSpace),在頭信息和響應(yīng)之間有一個響應(yīng)間隔(ResponseSpace)。這兩個間隔的最小值為0。一個LIN信息幀有同步間隔、同步域、標(biāo)示符域(受保護ID域)232、頭信息LIN網(wǎng)絡(luò)中,每個信息的傳送都是以主節(jié)點發(fā)送頭信息開始的。頭信息包括同步間隔域、同步域以及PID(ProtectedIdentifier,受保護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é)議-普通頁面課件27從機節(jié)點可以不采用精度高的時鐘,而采用片上振蕩器等精度和成本相對較低的時鐘,由此帶來的與主機節(jié)點時鐘產(chǎn)生的偏差,需要通過同步域進(jìn)行調(diào)整,調(diào)整的結(jié)果是使從機節(jié)點數(shù)據(jù)的位速率與主機節(jié)點一致。同步段用于同步的基準(zhǔn)時鐘為主機節(jié)點的時鐘。從機節(jié)點通過接收主機節(jié)點發(fā)出的同步段,計算出主機節(jié)點位速率,根據(jù)計算結(jié)果對自身的位速率重新作調(diào)整。從機節(jié)點可以不采用精度高的時鐘,而采用片上振蕩器等精度和成本28③受保護ID域(ProtectedIdentifierField)受保護ID段的前6位叫作幀ID(FrameID),加上兩個奇偶校驗位后稱作受保護ID。③受保護ID域(ProtectedIdentifierF29幀ID的范圍在0x00~0x3F
之間,共64
個。幀ID標(biāo)識了幀的類別。從機任務(wù)對于幀頭作出的反應(yīng)(接收/發(fā)送/忽略應(yīng)答部分)都是依據(jù)幀ID判斷的。如果幀ID傳輸錯誤,將會導(dǎo)致信號無法正確到達(dá)目的地。幀ID的范圍在0x00~0x3F之間,共64個。幀ID30因此引入奇偶校驗位。其中ID6是ID0、ID1、ID2、ID4的奇校驗,ID7是ID1、ID3、ID4、ID5的偶校驗。校驗公式如下,其中“⊕”代表“異或”運算,“?”代表“取非”運算。P0=ID0⊕ID1⊕ID2⊕ID4P1=?(ID1⊕ID3⊕ID4⊕ID5)由公式可以看出,PID不會出現(xiàn)全0或全1的情況,因此,如果從機節(jié)點收到了“0xFF”或“0x00”,可判斷為傳輸錯誤。32LIN通信協(xié)議-普通頁面課件313、響應(yīng)域LIN協(xié)議中,一幀信息的響應(yīng)域由數(shù)據(jù)域和校驗碼域兩部分構(gòu)成。數(shù)據(jù)域長度(字節(jié)數(shù))由標(biāo)示符域的ID4、ID5決定。
①數(shù)據(jù)域(DataField)
3、響應(yīng)域32數(shù)據(jù)段包含了兩種數(shù)據(jù)類型:信號(Signal)和診斷消息(Diagnosticmessages)。信號(Signal)由信號攜帶幀傳遞,一個幀ID對應(yīng)的數(shù)據(jù)段可能包含一個或多個信號。信號更新時要保證其完整性,不能只更新一部分。一個信號通常由一個固定的節(jié)點發(fā)出,此節(jié)點稱為該信號的發(fā)布節(jié)點(Publisher);其余的一個或多個節(jié)點接收,它們稱為信號的收聽節(jié)點(Subscriber)。診斷消息(Diagnosticmessage)由診斷幀傳遞,對消息內(nèi)容的解析由數(shù)據(jù)自身和節(jié)點狀態(tài)決定。數(shù)據(jù)段包含了兩種數(shù)據(jù)類型:信號(Signal)和診斷消息(D3332LIN通信協(xié)議-普通頁面課件34幀的類型①無條件幀(UnconditionalFrame)②事件觸發(fā)幀(EventTriggeredFrame)③偶發(fā)幀(SporadicFrame)④診斷幀(DiagnosticFrame)⑤保留幀(ReservedFrame)幀的類型35①無條件幀(UnconditionalFrame)無條件幀是具有單一發(fā)布節(jié)點,無論信號是否發(fā)生變化,幀頭都被無條件應(yīng)答的幀。無條件幀在主機任務(wù)分配給它的固定的幀時隙中傳輸??偩€上一旦有幀頭發(fā)送出去,必須有從機任務(wù)作應(yīng)答(即無條件發(fā)送應(yīng)答)。
①無條件幀(UnconditionalFrame)36①無條件幀(UnconditionalFrame)
①無條件幀(UnconditionalFrame)37②事件觸發(fā)幀(EventTriggeredFrame)事件觸發(fā)幀是主機節(jié)點在一個幀時隙中查詢各從機節(jié)點的信號是否發(fā)生變化時使用的幀,當(dāng)存在多個發(fā)布節(jié)點時,通過沖突解決進(jìn)度表來解決沖突。原先用作輪詢的無條件幀,稱為與該事件觸發(fā)幀關(guān)聯(lián)的無條件幀,即事件觸發(fā)幀的應(yīng)答部分是與其關(guān)聯(lián)的無條件幀所提供的應(yīng)答。當(dāng)發(fā)生沖突時,需要立刻中斷當(dāng)前的進(jìn)度表,啟動沖突解決進(jìn)度表(CollisionResolvingSchedule),重新調(diào)用這些關(guān)聯(lián)的無條件幀。其中,沖突解決進(jìn)度表要求包含所有關(guān)聯(lián)的無條件幀。②事件觸發(fā)幀(EventTriggeredFrame)38②事件觸發(fā)幀(EventTriggeredFrame)②事件觸發(fā)幀(EventTriggeredFrame)39②事件觸發(fā)幀(EventTriggeredFrame)與事件觸發(fā)幀關(guān)聯(lián)的多個無條件幀需要滿足以下5個條件:數(shù)據(jù)段包含的數(shù)據(jù)字節(jié)數(shù)等長;使用相同的校驗和類型;數(shù)據(jù)段的第一個字節(jié)為該無條件幀的受保護ID,這樣才能夠知道應(yīng)答是哪個關(guān)聯(lián)的無條件幀發(fā)送出來的;由不同的從機節(jié)點發(fā)布;不能與事件觸發(fā)幀處于同一個進(jìn)度表中。②事件觸發(fā)幀(EventTriggeredFrame)40③偶發(fā)幀(SporadicFrame)偶發(fā)幀是主機節(jié)點在同一幀時隙中當(dāng)自身信號發(fā)生變化時向總線啟動發(fā)送的幀。當(dāng)存在多個關(guān)聯(lián)的應(yīng)答信號變化時,通過事先設(shè)定的優(yōu)先級來仲裁。③偶發(fā)幀(SporadicFrame)41③偶發(fā)幀(SporadicFrame)③偶發(fā)幀(SporadicFrame)42④診斷幀(DiagnosticFrame)診斷幀包括主機請求幀和從機應(yīng)答幀,主要用于配置、識別和診斷用。主機請求幀(MasterRequestFrame,MRF),幀ID=0x3C,應(yīng)答部分的發(fā)布節(jié)點為主機節(jié)點;從機應(yīng)答幀(SlaveResponseFrame,SRF),幀ID=0x3D,應(yīng)答部分的發(fā)布節(jié)點為從機節(jié)點。數(shù)據(jù)段規(guī)定為8個字節(jié),一律采用標(biāo)準(zhǔn)型校驗和。④診斷幀(DiagnosticFrame)43⑤保留幀(ReservedFrame)保留幀的幀ID為0x3E和0x3F,為將來擴展用。⑤保留幀(ReservedFrame)44②校驗碼域(ChecksumField)校驗碼域是對幀中所傳輸?shù)膬?nèi)容進(jìn)行校驗。②校驗碼域(ChecksumField)45校驗和分為標(biāo)準(zhǔn)型校驗和(ClassicChecksum)及增強型校驗和(EnhancedChecksum),采用標(biāo)準(zhǔn)型校驗和還是增強型校驗和由主機節(jié)點管理,發(fā)布節(jié)點和各收聽節(jié)點根據(jù)幀ID來判斷采用哪種校驗和。校驗方法為將校驗對象的各字節(jié)作帶進(jìn)位二進(jìn)制加法(每當(dāng)結(jié)果大于等于256時就減去255),并將所得最終的和逐位取反,以該結(jié)果作為要發(fā)送的校驗和。接收方根據(jù)校驗和類型,對接收數(shù)據(jù)作相同的帶進(jìn)位二進(jìn)制加法,最終的和不取反,并將該和與接收到的校驗和作加法,如果結(jié)果為0xFF,則校驗和無誤。這在一定程度上保證了數(shù)據(jù)傳輸?shù)恼_性。校驗和分為標(biāo)準(zhǔn)型校驗和(ClassicChecksum)及46例:采用標(biāo)準(zhǔn)型校驗和,Data1=0x4A,Data2=0x55,Data3=0x93,Data4=0xE5例:采用標(biāo)準(zhǔn)型校驗和,Data1=0x4A,Data2474、報文幀的長度和總線睡眠檢測TFrame_Maximum:幀在總線上傳輸?shù)淖畲髸r間;THeader_Maximum:幀頭在總線上傳輸?shù)淖畲髸r間;TResponse_Maximum:應(yīng)答在總線上傳輸?shù)淖畲髸r間;THeader_Nominal:幀頭額定傳輸時間:同步間隔段(包含同步間隔和同步間隔段間隔符)的最小傳輸時間+同步段傳輸時間+受保護ID段傳輸時間;4、報文幀的長度和總線睡眠檢測TFrame_Maximum:48THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為幀頭額定傳輸時間的0.4倍;TResponse_Nominal:應(yīng)答額定傳輸時間:數(shù)據(jù)段傳輸時間+校驗和段傳輸時間;TResponse_Rest:應(yīng)答的余量:包含應(yīng)答間隔以及字節(jié)間間隔,規(guī)定為應(yīng)答額定傳輸時間的0.4倍;Ndata表示數(shù)據(jù)段包含N個字節(jié)。THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為49THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為幀頭額定傳輸時間的0.4倍;TResponse_Nominal:應(yīng)答額定傳輸時間:數(shù)據(jù)段傳輸時間+校驗和段傳輸時間;TResponse_Rest:應(yīng)答的余量:包含應(yīng)答間隔以及字節(jié)間間隔,規(guī)定為應(yīng)答額定傳輸時間的0.4倍;Ndata表示數(shù)據(jù)段包含N個字節(jié)。THeader_Rest:幀頭的余量:包含字節(jié)間間隔,規(guī)定為5032LIN通信協(xié)議-普通頁面課件51幀在總線上的傳輸波形幀在總線上525、進(jìn)度表進(jìn)度表是幀的調(diào)度表,規(guī)定總線上幀的傳輸次序以及各幀在總線上的傳輸時間。進(jìn)度表位于主機節(jié)點,主機任務(wù)根據(jù)應(yīng)用層需要進(jìn)行調(diào)度。這樣保證了總線信號的周期性,也能保證總線永遠(yuǎn)不會發(fā)生過載。5、進(jìn)度表5332LIN通信協(xié)議-普通頁面課件546、狀態(tài)機(StateMachine)實現(xiàn)①主機任務(wù)的狀態(tài)機當(dāng)進(jìn)度表啟動后,主機任務(wù)依次發(fā)送同步間隔段、同步段和受保護ID段。6、狀態(tài)機(StateMachine)實現(xiàn)55②從機任務(wù)的狀態(tài)機從機任務(wù)負(fù)責(zé)發(fā)布或者接聽幀的應(yīng)答。包括兩個狀態(tài)機:1.同步間隔段和同步段檢查器2.幀處理器②從機任務(wù)的狀態(tài)機56②從機任務(wù)的狀態(tài)機②從機任務(wù)的狀態(tài)機57三、LIN與CAN的比較三、LIN與CAN的比較58四、LIN網(wǎng)絡(luò)開發(fā)工作流程為了實現(xiàn)從機節(jié)點入網(wǎng)的“即插即用”,LIN規(guī)范標(biāo)準(zhǔn)化了LIN網(wǎng)絡(luò)從設(shè)計到生成的工作流程,對應(yīng)著LIN規(guī)范的LINConfigurationLanguageSpecification
→NCF(NodeCapabilityFile)
LINNodeCapabilityLanguageSpecification
→LDF(LINDescriptionFile)四、LIN網(wǎng)絡(luò)開發(fā)工作流程59五、LIN的軟硬件支持工具制造商、半導(dǎo)體供應(yīng)商和第三方軟件供應(yīng)商提供了種類多樣的工具和軟硬件。全球的LIN協(xié)議芯片及其相關(guān)驅(qū)動程序提供商眾多,包括有Philips,F(xiàn)reescale,Infineon,Fujitsu等半導(dǎo)體商提供的硬件包括用于開發(fā)主節(jié)點的微控制器及相應(yīng)的軟件包、LIN物理層接口等。眾多汽車廠商不僅采納了LIN標(biāo)準(zhǔn),還付諸行動,將LIN總線應(yīng)用到批量生產(chǎn)中。五、LIN的軟硬件支持60要開發(fā)LIN的應(yīng)用,商品化的開發(fā)工具并不是必須的,不過,此類工具確實能提高開發(fā)效率,尤其是處理那些同時容納不同LIN規(guī)范版本的節(jié)點的網(wǎng)絡(luò)。要開發(fā)LIN的應(yīng)用,商品化的開發(fā)工具并不是必須的,不過,此類61六、LIN配置語言LIN配置語言(LINCL,LINConfigurationLanguage)是LIN標(biāo)準(zhǔn)的一部分,它定義了LIN網(wǎng)絡(luò)結(jié)構(gòu)和節(jié)點以及任務(wù)的表示語法。用LINCL形成的一個LIN描述文件就是一個LIN系統(tǒng)的完整描述,包含所有LIN系統(tǒng)的信息和仿真調(diào)試所需的信息。因此LINCL為LIN調(diào)試開發(fā)軟件工具的開發(fā)者提供了一個標(biāo)準(zhǔn)的語言。六、LIN配置語言62句法的概述
符號意義::=在::=左邊的名字用在它右邊的句法來表示<>用于標(biāo)記后面定義的對象|表示選擇??梢猿霈F(xiàn)在左邊或右邊Bold粗體的文字是保留的,它或者是一個保留的字或是一個強制的標(biāo)點[]方括號中的文字將出現(xiàn)一次或幾次()將一些選擇子句組合到一起char_string在引號中的任何字符串identifier標(biāo)識符。典型用于對象的命名;標(biāo)識符在聲明變量時要符合普通C語言的規(guī)則integer整數(shù)。十進(jìn)制整數(shù)(第一個數(shù)字是1~9)或十六進(jìn)制整數(shù)(前綴是0x)real_or_integer實數(shù)或整數(shù)。實數(shù)通常是小數(shù),而且有一個嵌入的小數(shù)點句法的概述符號意義::=在::=左邊的名字用在它右邊的句法63LIN描述文件的定義<LIN_protocol_version_def>LIN協(xié)議版本號的定義<LIN_language_version_def>LIN語言版本號的定義<LIN_speed_def>LIN速度的定義<Node_def>節(jié)點定義(<Diag_addr_def>)節(jié)點診斷地址的定義<Signal_def>信號定義<Frame_def>幀的定義(<Event_triggered_frame_def>)事件觸發(fā)幀的定義(<Diag_frame_def>)診斷幀的定義<Schedule_table_def>進(jìn)度表的定義(<Signal_groups_def>)信號組的定義(<Signal_encoding_type_def>)信號編碼類型定義(<Signal_representation_def>)信號表示的定義LIN描述文件的定義64LIN描述文件示例//這是一個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)是一個LIN網(wǎng)絡(luò)軟件層,它是LIN標(biāo)準(zhǔn)的一部分。通過LIN標(biāo)準(zhǔn)的這個層,應(yīng)用軟件的設(shè)計者不必知道LIN網(wǎng)絡(luò)配置的底層細(xì)節(jié),如信號是怎么構(gòu)成幀的等,就可以進(jìn)行應(yīng)用層軟件的設(shè)計。LINAPI中,定義了網(wǎng)絡(luò)系統(tǒng)初始化功能調(diào)用、數(shù)據(jù)和標(biāo)志狀態(tài)讀/寫的調(diào)用、時間表調(diào)用、節(jié)點接口的初始化、連接功能調(diào)用以及控制器的中斷管理程序。通過LINAPI,應(yīng)用程序可以方便地寫入和讀出網(wǎng)絡(luò)節(jié)點上的數(shù)據(jù)。七、LIN應(yīng)用程序接口(LINAPI)69
API是一組“規(guī)約”,用來定義軟件模塊的使用方法。
API既可以是數(shù)據(jù)結(jié)構(gòu),也可以是若干個函數(shù),還可以是它們的混合。軟件開發(fā)者可以把API看作是與軟件模塊的會話方。應(yīng)用程序和程序員既可以使用該模塊的功能,又無需訪問其源代碼,或者理解其內(nèi)部工作機制的細(xì)節(jié)。
API對軟件開發(fā)意義重大。軟件規(guī)模日益龐大,常常需要把復(fù)雜系統(tǒng)劃分成小的組成部分,或者重復(fù)使用代碼,這時都會涉及到API。32LIN通信協(xié)議-普通頁面課件70LIN規(guī)范用C語言定義了LIN的API,但未定義API的內(nèi)部實現(xiàn)。LIN協(xié)會規(guī)定:對于采用LIN規(guī)范2.x版的LIN節(jié)點,如果用C語言開發(fā)應(yīng)用程序,那么就必須使用API,對采用LIN規(guī)范1.x版的LIN節(jié)點,可以不使用標(biāo)準(zhǔn)規(guī)定的API。按照用途,可以把LIN的API分為3類——核心API、傳輸層API
和配置與識別API。三類API相對獨立,彼此關(guān)聯(lián)。LIN規(guī)范用C語言定義了LIN的API,但未定義API71①核心API核心API是API的基礎(chǔ),除了完成協(xié)議層的幀收發(fā),LIN應(yīng)用層各項功能都要用到核心API。核心API包含多個函數(shù),其中,l_sch_tick()(時基節(jié)拍管理)和l_sch_set()(進(jìn)度表管理)是與進(jìn)度表相關(guān)的兩個函數(shù)。其他的函數(shù)負(fù)責(zé)控制各種硬件協(xié)調(diào)工作,完成初始化、中斷響應(yīng)、比特流收發(fā)、字節(jié)緩沖、休眠、喚醒以及物理層的差錯報告等功能。①核心API72②傳輸層API傳輸層API是為配置、識別和診斷這三項服務(wù)設(shè)置的,是應(yīng)用層與協(xié)議層的接口。傳輸層API的功能包括:建立并管理PDU隊列、收發(fā)PDU以及檢查PDU的通信狀態(tài)。傳輸層API接收應(yīng)用層消息,調(diào)用核心API發(fā)送主機請求幀;收到從機應(yīng)答幀時,傳輸層剝離協(xié)議層的幀頭信息獲得PDU,送往應(yīng)用層處理。②傳輸層API73③配置與識別API從LIN規(guī)范2.0版開始,增加了配置與識別API。用于支持應(yīng)用層的配置功能和識別功能。③配置與識別API74API使用示例從機節(jié)點初始化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ū)動程序入口*/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使用示例從機節(jié)點初始化/*幀收發(fā)硬件的驅(qū)動程序入口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ū)動程序初始化失敗*/rtn=1u;}else{l_ifc_init(0);/*LIN端口初始化*/if(l_ifc_connect(0)){/*LIN端口初始化失敗*/rtn=1u;}else{/*其他必要的操作*/}}returnrtn;}從機節(jié)點主程序#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ò)初始化*/從機節(jié)點主程序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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專職司機2024勞動協(xié)議模板版
- 2025年廠區(qū)物業(yè)服務(wù)與設(shè)施更新改造合同4篇
- 2025年茶葉原料供應(yīng)長期合作協(xié)議4篇
- 專業(yè)2024年注塑車間承包合同2篇
- 2025年度智能交通信號控制系統(tǒng)合同4篇
- 二零二五年度廠房租賃及環(huán)保設(shè)施升級合同3篇
- 2024鐵路危險品運輸協(xié)議模板版
- 專項采購附加合同(2024修訂版)版B版
- 二零二四塔吊操作人員勞務(wù)承包高空作業(yè)服務(wù)協(xié)議3篇
- 二零二五年度新型環(huán)保材料研發(fā)與市場拓展合同3篇
- 工程項目采購與供應(yīng)鏈管理研究
- 2024年吉林高考語文試題及答案 (2) - 副本
- 拆除電纜線施工方案
- 搭竹架合同范本
- Neo4j介紹及實現(xiàn)原理
- 焊接材料-DIN-8555-標(biāo)準(zhǔn)
- 工程索賠真實案例范本
- 重癥醫(yī)學(xué)科運用PDCA循環(huán)降低ICU失禁性皮炎發(fā)生率品管圈QCC持續(xù)質(zhì)量改進(jìn)成果匯報
- 個人股權(quán)證明書
- 醫(yī)院運送工作介紹
- 重癥患者的容量管理
評論
0/150
提交評論