lin(local interconnect network)區域性連線網路,相對於can匯流排為較低速匯流排,屬於輔助can網路的低成本網路匯流排。
1.基本思想
1.1 主節點和從節點
lin網路中包含乙個主節點和若干從節點,主節點包含乙個主任務和若干從任務,從節點只包含從任務。
圖1 主/從節點示意圖
主任務:決定匯流排上的報文
從任務:傳送資料
1.2 幀的組成
一幀報文包含乙個頭部(header,主任務提供)和乙個響應(response,從任務提供)。
圖2 幀組成示意
原理:主任務傳送報頭,從任務響應報頭來補充報頭以形成完整的報文。
1.3 資料傳輸
傳輸的資料報含兩種,一種叫signal(訊號報文),一種叫diagnostic message(診斷報文)。
1.4 排程表
主任務在什麼時候傳送相應的報頭及報文傳送順序,是基於排程表的。
2.幀結構
如下圖所示:
圖3 幀結構示意圖
(1)間隔段
間隔段包含至少13個顯性位,後面跟至少1個位傳輸時間的間隔定界符。
圖4 間隔段
(2)同步位元組段
同步位元組段填充的數值位為0x55。從任務應該總是可以檢測到間隔段/同步位元組段的序列。
圖5 同步位元組段
(3)pid段
protected identifier即報文id,分為兩個部分:報文id部分和奇偶檢驗位。
frame identifier
奇偶檢驗位
計算公式如下:
圖6 奇偶檢驗位計算
pid段結構如下圖:
圖7 pid段
(4)資料段
圖8 資料段
(5)checksum
3.幀型別
(1)無條件幀(unconditional frame)
id範圍:0x00 - 0x3b
主任務發報頭,乙個任務響應,乙個或多個任務接收。
例如:
圖9 無條件幀傳輸示意
(2)事件觸發幀(event triggered frame)
id範圍:0x00 - 0x3b
(3)零星幀(sporadic frame)
id範圍:0x00 - 0x3b
僅由主節點傳送。
(4)診斷幀(diagnostic frame)
id範圍:
主請求幀——0x3c(60)
從請求幀——0x3d(61)
(5)使用者自定義幀(user-defined frame)
id範圍:0x3e
(6)保留幀(reserved frame)
id範圍:0x3f
剛好筆者最近有個專案用到lin網路,其實也算是第一次接觸,先大致介紹一下,後續會分享更多學習心得。
程序間通訊,同步
程序間通訊 管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 named pipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semophore 訊號量是乙個計數器,可以用來控...
執行緒間通訊 同步
同步 是指多個任務按照約定的先後次序 相互配合完成一件事情 訊號量 由訊號量決定 執行緒是繼續執行 還是阻塞等待 訊號量代表某種資源 其值表示系統中該資源的數量 訊號量是乙個受保護的量 只能通過特定的三種操作來訪問 初始化p操作 申請資源,有可能阻塞 v操作 釋放資源,不會阻塞 p s 操作 if ...
程序間通訊方式總結(windows 和linux)
windows程序間同步方式有 1.互斥量 mutex 2.訊號量 semaphore 3.事件 event 4.臨界區 critical section 5.互鎖函式 臨界區和互鎖函式沒有相應的核心物件因而不能跨程序 linux程序同步方式有 互斥量 讀寫鎖 條件變數 linux核心同步方法 原子...