LIN匯流排的學習

2021-09-25 01:53:53 字數 3206 閱讀 9299

lin 是 local interconnect network 的縮寫,是基於 uart/sci,通用非同步收發器/序列通訊介面)的低成本序列通訊協議。可用於汽車、家電、辦公裝置等多種領域。

作為乙個低成本的輔助匯流排,lin匯流排在汽車電子中應用廣泛,車門、車窗、車燈以及中控鎖等低速應用都使用lin匯流排。其實如果在新能源汽車中,can實現這些功能會更簡單,但限於汽車裡的配件太多,在製作時要與各個配件的**商來進行相容,其中包括因為考慮成本使用lin的低速配件**商。現在lin的使用還是挺廣泛的,有必要學習一下。

最高速率20kbit/s

單主多從結構

成本低

訊號傳輸延遲可計算

emc(電磁相容性)效能可**

lin 提供訊號處理、配置、識別和診斷四項功能

單線傳輸,傳輸速率低

lin匯流排在物理上是乙個上拉帶12v的集電極開漏匯流排,多個節點可以併聯到乙個主節點上。它與iic的sda線類似,但是不需要scl時鐘線,lin靠主機從機雙方約定的波特率來進行通訊,類似於uart。與串列埠不同的是,它是通過同步場來進行同步,傳輸更加可靠。相對於can的雙絞線結構來說,lin一條線的抗干擾能力較弱,為了增強emc電磁相容效能,將通訊速率限制在20kbit/s。

單主多從結構

lin匯流排的結構是主從結構的星型模型,所有的從機都連線到乙個主機上。傳輸只能由主機發起,從機不能主動發起請求。可以把從機看做訊息的發布者,主機看做訊息的訂閱者,要想獲得乙個訊息(某個變數的值),主機必須不斷的去讀對應的報文。這個結構就決定了lin匯流排只能傳輸少量的訊息,來保證訊息更新的實時性。

輕量的處理協議棧

在can匯流排的傳輸協議棧中,占有相當大的**量,包括can的驅動層、tp、uds等;lin不需要這麼複雜,只有簡單的驅動、排程表、睡眠喚醒等,所以**量少了乙個數量級,但是在lin的上層服務中還是要轉換成can訊號來進行傳輸,所以最後lin還是要回歸can訊號。

lin匯流排是單主多從的星型結構,lin匯流排一般不單獨存在,主機經常與上層網路(如can)相連。

乙個節點不一定對應乙個ecu,因為乙個ecu上面可能提供多個lin介面

幀主要包含幀頭和應答兩部分

幀頭包括同步間隔段、同步段和受保護id段(pid),由主機節點傳送

應答包括資料段和校驗和段,由從機節點傳送

0為顯性電平,1為隱性電平

同步間隔段由同步間隔和同步間隔段間隔符組成

位元組域:標準的uart資料傳輸格式

位元組域包括1位起始位(顯性)+8位資料位+1位停止位(隱性)

受保護id段由6位幀id和2位奇偶校驗位組成

pid並不是從機節點位址,而是想要訂閱的報文id。乙個從機節點可以提供多個報文id的服務,比如乙個車燈控制ecu,可以提供燈控制、狀態、故障碼等多個lin的id服務,而從機節點位址是隱性的與其所提供的報文id有對應關係的。

幀id範圍為0x00~0x3f共64個

這裡因為資料傳送先傳送lsb,所以先傳送奇偶檢驗位的p1,傳送的時候幀id上面的位被2個奇偶檢驗位佔據,所以id就相當於整個幀的低6位而不是高6位

校驗公式如下,其中「⊕」代表「異或」運算, 「¬」代表「取非」運算。

p0 = id0⊕id1⊕id2⊕id4

p1 = ¬(id1⊕id3⊕id4⊕id5)

由公式可以看出, pid 不會出現全 0 或全 1 的情況,因此,如果從機節點收到了「0xff」或「0x00」,可判斷為傳輸錯誤。

幀的型別

節點傳送的資料位於資料段,最高8個位元組,先傳送編號最低的data1,依次增加傳送。

lin一幀資料最大傳輸8個位元組。在lun2.x中規定,lin可以傳輸的位元組數可以是2,4,8而並不是1-8內任意乙個數字。一般而言,車內會選擇乙個統一位元組數,最常用的比如每幀都傳8個位元組

資料段包含了兩種資料型別,訊號或診斷訊息

當幀id型別為訊號攜帶幀,資料段儲存的是訊號,乙個幀id對應乙個或多個訊號

當幀id型別為診斷幀時,資料段儲存的是診斷訊息

校驗和段是對幀中所傳輸的內容進行校驗。

校驗和分為標準型校驗和和增強型檢驗和

採用標準型校驗和還是增強型校驗和由主機節點管理,發布節點和各收聽節點根據幀 id 來判斷採用哪種校驗和。

校驗方法為將校驗物件的各位元組作帶進製二進位制加法(每當結果大於等於 256 時就減去 255),並將所得最終的和逐位取反,以該結果作為要傳送的校驗和。接收方根據校驗和型別,對接收資料作相同的帶進製二進位制加法,最終的和不取反,並將該和與接收到的校驗和作加法,如果結果為 0xff,則校驗和無誤,這在一定程度上保證了資料傳輸的正確性。

例子

採用標準型校驗和, data1 = 0x4a, data2 = 0x55, data3 = 0x93, data4 = 0xe5,計算方法如表 3.3所示:

LIN匯流排資料記錄

lin匯流排資料記錄 以下是豐田蘭德酷路澤 空調模組的資料記錄,通過lin來傳輸資料,採用lin uart採集來的資料。全自動空調,可以直接通過lin來控制空調開關及各項功能。bdr 9600kbps 前排空調 idlen data0 data1 data2 data3 data4 data5 da...

LIN匯流排協議記錄

最近調研了lin匯流排,記錄一下,以備查詢。lin匯流排 針對汽車分布式電子系統而定義的一種低成本的序列通訊網路。基於sci uart 資料格式,採用單主控制器 多從裝置的模式,是uart的一種特殊情況。lin網路中節點數量不能超過16個,否則節點增加將會導致網路阻抗,導致環境條件變差。同步機制 主...

汽車Lin匯流排特點

序列通訊 線間干擾小,節省線束,傳輸距離長 單線傳輸 增強的iso 9141 iso 15765 1 總線電壓基於vbat 最高速率 20kbit s 單主多從結構,無需仲裁 主節點同時包含主任務和從任務,從節點只包含從任務,主任務負責匯流排上的報文,從任務負責傳送資料 主任務傳送報頭,從任務用響應...