LIN總線(xiàn)技術(shù)及應用——協(xié)議規范(三)

一、調度表(Schedule Table)
——主任務(wù)發(fā)送報頭,從任務(wù)用響應來(lái)補充報頭形成完整的報文。那么報頭到底是怎么發(fā)送的呢?
——這是在調度表中定義的。
調度表負責調度網(wǎng)絡(luò )中各報文發(fā)送的順序
調度表為每幀報文分配發(fā)送時(shí)隙(slot)(發(fā)送時(shí)隙是報文可以被發(fā)送的時(shí)間)
不同報文的發(fā)送時(shí)隙可能不同
報文發(fā)送的順序可以在調度表中設定
調度表在網(wǎng)絡(luò )系統設計階段確定
調度表使得LIN通信具有可預測性
切換調度表
主任務(wù)可以擁有多個(gè)調度表,并在不同的調度表之間切換
增加通信的靈活性
調度表可以保證總線(xiàn)永遠不會(huì )過(guò)載,同時(shí)還可以保證信號的周期性。
LIN總線(xiàn)最小時(shí)間單位是時(shí)基(Tbase)。
調度表中用來(lái)發(fā)送一幀報文的時(shí)間稱(chēng)為幀時(shí)隙(Frame_Slot),幀時(shí)隙必須是時(shí)基的整數倍,調度表是由幀時(shí)隙組成的。
TFrame_Slot = Tbase * n
偏移(jitter)是指一幀報文實(shí)際開(kāi)始發(fā)送的時(shí)刻與幀時(shí)隙起點(diǎn)的時(shí)間差。
TFrame_Slot > jitter + TFrame_Maximum
二、網(wǎng)絡(luò )管理(Network Management)
1、睡眠(Go To Sleep)
主節點(diǎn)可以發(fā)送一幀ID為60(0x3c),第一個(gè)字節為0x00其余全為0xFF的主請求幀來(lái)使處于工作狀態(tài)的從節點(diǎn)進(jìn)入睡眠。這幀報文稱(chēng)為睡眠指令。
從節點(diǎn)在接到睡眠指令之后,也可以選擇不進(jìn)入睡眠狀態(tài)而繼續工作,這根據應用層程序而定。
當總線(xiàn)空閑4到10秒的時(shí)候,所有從節點(diǎn)自動(dòng)進(jìn)入睡眠狀態(tài)。
注:空閑的定義是沒(méi)有顯性位和隱性位之間的轉換。
2、喚醒(Wake Up)
在一個(gè)處于睡眠狀態(tài)的LIN網(wǎng)絡(luò )中,任何一個(gè)節點(diǎn)都可以發(fā)送喚醒信號。
喚醒信號是一個(gè)250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特率)的顯性電平(5個(gè)位)。
每一個(gè)從節點(diǎn)都需要檢測喚醒信號,當檢測到喚醒信號之后,在100ms以?xún)韧瓿沙跏蓟ぷ鳌?/p>
當從節點(diǎn)發(fā)出喚醒信號之后150ms,主節點(diǎn)仍未發(fā)送報頭時(shí),從節點(diǎn)可以再次發(fā)送喚醒信號。當連續發(fā)送了3次喚醒信號之后如果主節點(diǎn)仍未發(fā)送報頭,從節點(diǎn)要至少等待1.5秒以后才可以發(fā)送第四次喚醒信號。
喚醒過(guò)程
三、狀態(tài)管理(Status Management)
狀態(tài)管理的目的是用來(lái)發(fā)現工作狀態(tài)中總線(xiàn)上產(chǎn)生的錯誤。
response error
每一個(gè)從節點(diǎn)必須通過(guò)狀態(tài)管理幀發(fā)送response error信號(一個(gè)位長(cháng)),當在響應幀中檢測到錯誤時(shí),這個(gè)信號由從節點(diǎn)的驅動(dòng)器自動(dòng)設定,發(fā)送完狀態(tài)管理幀之后又將該位清除。
Interpretation
主節點(diǎn)接收狀態(tài)信息位并識別從節點(diǎn)狀態(tài) :
評論