lin总线通信
lin總線通信
文章目錄
- lin總線通信
- 一、綜述
- 二、LIN 報文結構
- 三、總線傳輸
- 四、診斷方式
一、綜述
1.采用單主多從的組網方式,無CAN總線那樣的仲裁機制,最多可連接16個節點(1主15從)。
2.主要用于can總線的協助輔助功能,汽車低速反應要求應用,對硬件要求簡單,僅需UART/SCI 接口,輔以簡單驅動程序便可實現 LIN 協議。故幾乎所有的MCU均支持LIN。
3.低成本,最大傳輸速率20kbps。通常低速設計2400bps,中速設計9600bps,高速設計19200bps.
5.在LIN的標準中,令牌被稱為“header”,數據被稱為“response”,報文被稱為“Frame”。在“header”中含有表示報文身份的“ID”,各個節點根據“ID”決定是否發送“Response”。同時,LIN報文是地址尋址方式,總線上的所有節點都能收到報文。
二、LIN 報文結構
1、LIN 總線上具有“顯性”和“隱性”兩種互補的邏輯電平。其中,顯性電平(參考地電壓)是邏輯 0,隱性電平(電源電壓)是邏輯1。
2、如上介紹所說LIN采用的是“主從”通信方式。LIN報文的一幀由“Header”和“Response”組成,“Header”由主任務(主節點)發送,“Response”由從任務(主節點或者從節點)發送。下面將分別介紹“Header”和“Response”。
Header
“Header”又可以分為“Break”、“Synch”和“PID”3個場(圖1)。
? 圖1 header 結構
Break場
Break場不同與其他場,它有意的造成UART通信中的FramingError(從起始位到第10位沒有檢出停止位時的錯誤)來提示LIN總線中的所有從節點之后要開始進行LIN報文的傳輸了。
Break場又可以分為“Break”,“Break-delimiter”,“Break”為13位以上的顯性位,“Break-delimiter”為1位的隱形位,“Break-delimiter”是“Break”結束的標志。
Synch場
Synch場即同步場,第一講在介紹同期信號時提到過同步場。同步場是為了修正各個節點間時鐘的誤差,固定發送0x55的UART數據(包含起始位/停止位)。從節點根據最初和最終的下降沿除以8來算出1位的時間,并以此作為基準來調整自己的時鐘誤差(圖 2)。如果從節點使用的是高精度時鐘的話(允許誤差±1.5%),則不需要調整時鐘的誤差。
圖2synch結構 (參照VectorJapan資料作成)
PID場
ID范圍 0-0x3f
PID場標識LIN報文識別信息,由6位(位0~位5)的報文ID和2位(位6、位7)的奇偶校驗位,合計8位組成(圖3)。
Response
Response由“數據”和“和校驗”2個場組成。都可以通過UART的形式進行傳輸。
圖4數據場結構 (參照VectorJapan資料作成)
數據場
數據場最大可以傳輸8Byte數據
和校驗場
和校驗即我們通常說的Checksum,用來確認接收的數據是否正常。和校驗場的具體值為各個數據場的和的反數,如果有溢出的話,則需要取余運算(mod256)。和校驗有“標準和校驗(Classic Checksum)”和“擴張和校驗(Enhanced Checksum)”兩種形式:
? lin1.3 classic checksum lin2.0 enhanced checksum
標準和校驗
計算對象為所有數據場
LIN1.x為所有報文都使用
LIN2.x為診斷報文(ID60~61)使用
擴張和校驗
計算對象為PID場和數據場
LIN2.x為報文ID0~59使用
通過上述結構,各個報文在LIN總線上傳輸。通過Header調整時鐘誤差,確認報文信息,進行數據的接收和發送,并且有奇偶校驗與和校驗來確保數據的正確性。
時間規定
LIN報文的傳輸是根據LIN的時間表執行的。按照LIN的硬件結構,報文的傳輸時間可以分為“Response時間”和“間隔時間”,設計時間表時需要考慮兩者的誤差(圖5)。
三、總線傳輸
1、主機節點報文發送
A.主機任務主要執行以下功能:
1.定義總線上的通信速率。(同步場?待考)
2.發送報文幀頭,包含同步間隔場、同步場和標識符場三個部分。
3.監控總線通信,通過校驗和確定數據正確性與否。
4.使從機進入喚醒或睡眠狀態,并響應從機的喚醒要求。
2、從機節點報文發送
B.從機任務既可運行于主機又可運行于從機,它主要完成以下功能:
1.等待主機任務發送的同步間隔,使從機與主機于同步場中獲得同步。
2.分析標識符場,若與自己相關,則接收或發送數據,若與自己無關則什么都不做。
3.檢查和發送校驗和。
4.接受主機任務的喚醒和睡眠請求。
四、診斷方式
主節點的診斷:
主節點通常與CAN等主干網絡連接。因此,不使用LIN而是使用主干網絡進行診斷。
從節點的診斷:
LIN通信由主節點進行通信控制,因此從節點不能與診斷測試儀直接通信。所以,從節點的診斷必須通過主節點進行。
轉載參考
LIN通信入門二 - 知乎 (zhihu.com)
LIN總線入門 - 知乎 (zhihu.com)
LIN總線協議簡介_IOT2017的博客-CSDN博客_lin協議
總結
- 上一篇: 基础数据类型上机题
- 下一篇: Linux网络相关命令:netstat,