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