<button id="u2w23"></button>

<tbody id="u2w23"><track id="u2w23"></track></tbody><dd id="u2w23"><track id="u2w23"></track></dd><button id="u2w23"><acronym id="u2w23"></acronym></button> <tbody id="u2w23"><noscript id="u2w23"></noscript></tbody>

  • <button id="u2w23"></button><li id="u2w23"><acronym id="u2w23"><cite id="u2w23"></cite></acronym></li>

  • LIN2.1協議在車窗控制系統中的應用

    [來源] 達內    [編輯] 達內   [時間]2013-03-20

    LIN協會于1999年發布了第一版LIN協議,至今已有十幾年了,在這十幾年中,LIN總線不斷發展,已經在以車身控制為主的許多場合得到了應用。LIN總線至今一共有7個版本,其中,LIN2.1協議于2006年11月發布,是目前較新的一個版本。它與最新的LIN2.2協議幾乎沒有區別,卻比它的前身LIN...

      LIN協會于1999年發布了第一版LIN協議,至今已有十幾年了,在這十幾年中,LIN總線不斷發展,已經在以車身控制為主的許多場合得到了應用。LIN總線至今一共有7個版本,其中,LIN2.1協議于2006年11月發布,是目前較新的一個版本。它與最新的LIN2.2協議幾乎沒有區別,卻比它的前身LIN2.0協議有明顯的改進,主要體現在加入了事件觸發幀的競爭處理、完善了節點配置功能和進行了診斷分級三個方面。這些改進使用戶可以更加方便和快速地組織LIN網絡,可以根據自己的需求重新設置LIN網絡,既保證了產品的穩定性,又滿足了用戶的個性化需求,是LIN總線自身發展過程中很有意義的一步。

      1 LIN2.1協議的新特點

      1.1 事件觸發幀的競爭處理

      如果有多于一個的從節點在同一個幀時隙里響應幀頭,就會導致競爭,競爭處理都是由主節點完成的。LIN2.0的事件觸發幀競爭處理機制如圖1所示。某主節點的進度表中有無條件幀A、事件觸發幀和無條件幀B。當競爭發生后,主節點會繼續按照之前的進度表,在接收完所有與事件觸發幀相關的無條件幀后,再發送事件觸發幀幀頭。LIN2.1對此作出了改進,它引入了競爭處理進度表,LIN2.1的事件觸發幀競爭處理機制如圖2所示。每個事件觸發幀都有與之相對應的競爭處理進度表,主節點在競爭處理進度表里處理完競爭后,再返回執行普通的進度表。顯然,LIN2.1的競爭處理機制需要花費的時間較短。

      

     

      圖1 LIN2.0的事件觸發幀競爭處理機制  圖2 LIN2.1的事件觸發幀競爭處理機制

      1.2 節點配置功能的完善

      1.2.1 新增分配一系列幀ID的功能

      將配置功能分配幀ID改為分配一系列幀ID。LIN2.0和LIN2.1協議中分配幀ID的格式如圖3所示。在LIN2.0中,只有NAD和Supplier ID都匹配的情況下,分配才能成功,但每次只能分配一個幀ID。而在LIN2.1中,只需要NAD匹配就可以了,每次可以分配最多4個幀ID,而LIN2.0中的Message ID在LIN2.1中已經被取消了。這種改進的目的是提高LIN網絡配置的效率,更改后分配幀ID的速度最快可達到原來的4倍。

      

     

      圖3 LIN2.0和LIN2.1協議中分配幀ID的格式

      1.2.2 新增保存配置的功能

      LIN2.1協議新增了保存從節點配置信息的功能,將從節點的配置信息存入到掉電不易失的存儲空間中。這樣,主節點對從節點的配置在復位后也不會丟失。

      1.3 診斷分級

      LIN2.1的另一大新特點是根據診斷功能將從節點分為3個級別。

      (1) 診斷一級

      診斷一級一般應用于智能傳感器或執行器等一些不需要或只需要很少診斷功能的器件。診斷一級支持所有節點配置功能,并且只需要單幀傳輸。

      (2) 診斷二級

      與診斷一級相比,診斷二級的節點增加了節點辨識的功能。例如,用戶可以獲得產品的軟、硬件版本號等。此外,診斷二級還支持讀寫軟件內部的參數,比如溫度、車速等。診斷二級支持多幀傳輸。

      (3) 診斷三級

      診斷三級的節點不僅包含了前面兩級的所有功能,還支持內部Flash的擦寫,用戶可以通過LIN總線燒寫程序。診斷三級支持多幀傳輸。

      2 LIN2.1協議的節點配置功能

      (1) 分配NAD

      為了避免某個NAD被重復使用,用戶可能需要為從節點分配新的NAD。

      (2) 有條件分配NAD

      當用戶替換或增加從節點時,可能會出現兩種情況:

      ① 一種是用戶不知道新增從節點的初始NAD,因此,必須以“廣播”的方式尋找所有的從節點并分配有效的NAD(“廣播”指的是給網絡中的所有從節點發送請求,它有一個專用的NAD為0x7F)。但如果直接這樣做,會導致所有的從節點獲得同一個NAD,這顯然是不允許的。為了避免這個情況,可以加入限制條件。

      ② 另一種是用戶知道新增節點的初始NAD,但其和LIN網絡中已有從節點的NAD重復了。如果用戶只按照原始NAD分配新的NAD,則會導致兩個從節點的NAD都被修改。因此,必須加入限制條件。

      當從節點獲得有條件分配NAD的請求后,將根據下面的步驟判斷是否要修改NAD:

      ① 根據ID讀取從節點的相關信息。

      ② 根據Byte提取相關信息中一個8位數據,例如Byte=1,則提取D1。

      ③ 與Invert進行異或運算。

      ④ 與Mask進行與運算。

      ⑤ 如果結果為0,則修改NAD。

      例如:本產品被新增到一個LIN網絡中,初始NAD為0x06,但網絡中已有了一個NAD為0x06的從節點。于是,用戶可以利用本產品的Function ID,假設為0x0000,分配新的NAD為0x08。這里假設已存在的從節點的Function ID不為0x0000。這樣,只有新增節點的NAD會被修改,而已存在從節點的NAD維持為0x06不變。

      (3) 保存配置

      保存配置是LIN2.1添加的新功能,用來將從節點的當前配置存入非易失的存儲空間中,下次上電時可以讀出配置數據,這里主要是保存NAD和幀ID。

      (4) 分配一系列幀ID

      這一功能可以配置最多4個幀ID,注意診斷幀ID和保留幀ID是不能配置的。

      主節點的請求幀在D1中給出需要分配幀ID的第一個幀在幀數組中的序號,一般來說,從節點所用到的所有幀的ID會被排列成一個幀數組。如果要分配幀ID,則通過D2到D5給出新的幀ID;如果要禁止某個幀,則將這個幀對應的PID設為0x00;如果要繼續使用現在的幀ID,則將這個幀對應的PID設為0xFF。

      (5) 讀取從節點信息

      讀取節點信息根據D1中ID的值,可以讀取不同的從節點信息。目前,只規定了ID為0和ID為1的情況,其他可保留或由用戶自己確定。

      3 LIN通信的實現

      3.1 TLE9832的LIN模塊

      TLE9832是一款由英飛凌公司生產的8位功率級單片機,專門用于車窗控制。其中的LIN總線模塊支持LIN2.1和LIN2.0,并向下兼容LIN1.3。該模塊可以工作在普通模式、接收模式和禁止模式下。各個模式的特點如表1所列。

      表1 TLE9832 LIN模塊各個模式的特點

      

     

      其中,普通模式又可根據傳輸速率的大小分為低速模式、中速模式、高速模式和Flash模式。低速模式的最大傳輸速率為10.4 kbps;中速模式是普通的LIN傳輸模式,最大傳輸速率為20 kbps;高速模式的最大傳輸速率為40 kbps;Flash模式的最大傳輸速率為115 kbps。為了避免打斷傳輸過程,在普通模式下禁止改變傳輸速率。正確的做法是先禁止發送功能,再改變傳輸速率,最后允許發送功能。

      LIN模塊在普通模式下還建立了一種自動省電機制。當發送隊列中沒有數據時,將自動禁止發送功能;當有發送請求時,將自動開啟發送功能。

    資源下載

    ?