0.0基礎知識
LIN的全稱為Local Interconnect Network。LIN主要功能是為CAN總線網絡提供輔助功能,應用場合有智能傳感節點、自動車窗節點等。
1.0硬件
1.1特點
1.采用單主多從的組網方式,無CAN總線那樣的仲裁機制,最多可連接16個節點(1主15從)。
2.對硬件要求簡單,僅需UART/SCI 接口,輔以簡單驅動程序便可實現 LIN 協議。故幾乎所有的MCU均支持LIN。
3.不需要單獨的晶振,便能完成主、從節點的同步,硬件成本大幅降低。
4.僅使用一根信號線便可完成信息的傳輸,即所謂的 單總線設備 。
5.傳輸速率最高可達20Kbps,符合A類網絡標準,滿足車身控制需要。
6.LIN 網絡中新節點的加入,對網絡中其他原有節點的軟硬件設計不會造成影響。
1.2LIN網絡主從節點的功能
LIN網絡中的節點任務分為主機任務和從機任務兩類。其中,主機任務只在主機節點上運行,而從機任務在主機節點和從機節點上均可運行。也就是說,主機節點可以實現主機任務和從機任務。
A.主機任務主要執行以下功能:
- 1.定義總線上的 通信速率 。
- 2.發送 報文幀頭 ,包含同步間隔場、同步場和標識符場三個部分。
- 3.監控總線通信,通過 校驗和確定數據正確性與否 。
- 使從機進入喚醒或睡眠狀態 ,并響應從機的喚醒要求。
B.從機任務既可運行于主機又可運行于從機,它主要完成以下功能:
- 1.等待主機任務發送的同步間隔,使從機與主機于同步場中獲得同步。
- 2.分析標識符場,若與自己相關,則接收或發送數據,若與自己無關則什么都不做。
- 3.檢查和發送校驗和。
- 4.接受主機任務的喚醒和睡眠請求。
2.0軟件
2.1顯隱性
LIN 總線上具有“顯性”和“隱性”兩種互補的邏輯電平。
其中,顯性電平(參考地電壓)是邏輯 0,隱性電平(電源電壓)是邏輯1。
2.2LIN報文的幀結構
LIN總線的一幀主要由兩部分組成,即 報文頭(Header)和報文響應(Response) 。
報文頭是由一個主機節點的主機任務發出的,而 報文響應(以下簡稱響應) 是由一個主機節點或從機節點的從機任務發出的。
其中報文頭由 同步間隔場 (最小13個顯性位)、 同步場 (1個字節,數據不變,0x55)、和 標識符PID場 (1個字節)三部分組成;
報文響應由2/4/8個字節的 數據場 、 校驗和場 (1個字節)所組成。
報文頭和響應之間有一個 幀內空間分隔 ,最小空間為0。
2.3字符場格式
LIN 的字節場格式就是通常的“ SCI ”或“ UART ”串行數據格式(N81編碼)。即每個字節場的長度是10個位定時(BIT TIME): 1bit起始位+8bits數據位+1bit停止位 。
起始位(START BIT) 是一個“顯性”位,它標志著字節場的開始。
接著是8個數據位,首先發送最低位。
停止位(STOP BIT) 是一個“隱性”位,它標志著字節場的結束。LIN報文幀中的同步場、標識符場、數據場、校驗和場的格式都符合上述字節場的格式。
2.4間隔場
間隔場是唯一一個不符合字節場格式的場。 從節點需要檢測到至少連續11個顯性位才認為是間隔信號。
2.5同步場
一個字節,即0x55。
2.6LIN的被保護標識符場(PID場)
PID場定義了 報文的內容和長度 。
如圖,PID場分為6個標識符位和2個ID奇偶校驗位。
6個標識符位我們稱之為ID 。如果加上2個奇偶校驗位就變成PID了,即Protected ID。
6個標識符位中,標識符后兩位為 數據長度控制位 。
總的來看,ID的范圍是0-0x3F。
注意是ID,不是PID,要區分開。
上圖中的ID4和ID5為數據長度控制位(ID4是低位)。
- 值為00或10時,數據長度為2個字節。
- 值為01時,數據長度為4個字節。
- 值為11時,數據長度為8個字節。
P0和P1為奇偶校驗位。
2.7數據場
數據場主要需注意每個字節先傳輸的是最低位。即如果某一信號長度超過1個字節,采用低位在前的方式發送(小端)。
2.8校驗和場(checksum)
校驗和場 是數據場所有字節的和的反碼 。所有 數據字節的和的補碼,與校驗和字節相加所得的和必須是0xFF 。
下圖是一些LIN總線數據,以最后一組為例,2個0xFF之和為0x1FE,處理后仍然為0xFF。故8個0xFF加和之后仍為0xFF,取反碼為0x00。
3.0形象理解
總線原理:
物理上就一根線,關聯節點都接上,有且僅有一個主設備,N多從設備,每個節點要通信的內容都事先編號號。
這就好比大家開晚會,話筒就一個,主持人一個,N個嘉賓,每人的話題都有一個編號。
表達順序是這樣的,
晚會開始前,大家睡覺的睡覺,閑的閑
1 主持人,把話筒對著大鼓,敲-停-, 敲-停-, … 敲-停-
這樣大家都被吵醒了,晚會開始了
晚會都是談話內容,都是下面步驟的重復
- t1 主持人把話筒同音閉了一會,--LIN總線的Break
- t2 主持人試了試話題,呼呼呼呼--LIN總線的同期
- t3 主持人說,下面是由 PID編號的人講話--LIN總線的PID
- t4 有PID的人,就開始說了 D0,D1,D2,D3,D4,D5,D6,D7 --LIN總線的數據
- t5 有PID的人,接著說了就這樣了--LIN總線的 CRC
就這樣重復了多次之后,主持人
- e1 主持人把話筒同音閉了一會,--LIN總線的Break
- e2 主持人試了試話題,呼呼呼呼--LIN總線的同期
- e3 主持人說,下面是由 PID編號是睡眠的人講話(就他自己)--LIN總線的PID
- e4 有PID的人,就開始說了 Go to sleep --LIN總線的數據,最多8個Byte
- e5 有PID的人,接著說了就這樣了--LIN總線的 CRC
就這樣,晚會結束了,大家睡覺的睡覺 休息的休息
搞笑的結束了,稍微來點關鍵詞
- . 物理上就一根線,多節點送信,又沒有沖突檢測,怎么辦,主設備調度啊
- . 速度怎么樣,和CAN相比,十幾kbps不算高,不過連接上的設備就那么大信息量,正好啦
- . 價額怎么樣,便宜啊,一個物理tranceiver,一個帶UART的CPU,再來的點軟件,搞定了
- . 安全系數怎么樣,PID帶校驗,數據帶CRC校驗,能發現錯誤,報告
- . 擴展性怎么樣,用兩個特定的PID,做數據鏈路層,創送上層的大包TP層,
- TP層上面在支持個診斷功能,能做些其他事情了
- . 各版本兼容性怎么樣,主設備版本高,就能管理協調好
- 反之,從設備版本高,有些浪費
-
CAN總線
+關注
關注
145文章
1937瀏覽量
130640 -
接口
+關注
關注
33文章
8526瀏覽量
150862 -
LIN總線
+關注
關注
19文章
109瀏覽量
27456 -
uart
+關注
關注
22文章
1228瀏覽量
101199
發布評論請先 登錄
相關推薦
評論