LIN總線技術及應用——協議規范(三)

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