<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > LIN2.1協(xié)議在車窗控制系統(tǒng)中的應用

          LIN2.1協(xié)議在車窗控制系統(tǒng)中的應用

          作者: 時間:2017-06-07 來源:網(wǎng)絡 收藏

          引言

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

          1 協(xié)議的新特點

          1.1 事件觸發(fā)幀的競爭處理

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

          本文引用地址:http://www.ex-cimer.com/article/201706/350602.htm



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

          1.2 節(jié)點配置功能的完善

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

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



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

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

          1.3 診斷分級
          LIN2.1的另一大新特點是根據(jù)診斷功能將從節(jié)點分為3個級別。

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

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

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

          2 LIN2.1協(xié)議的節(jié)點配置功能

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

          (2) 有條件分配NAD
          當用戶替換或增加從節(jié)點時,可能會出現(xiàn)兩種情況:

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

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

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


          ① 根據(jù)ID讀取從節(jié)點的相關信息。
          ② 根據(jù)Byte提取相關信息中一個8位數(shù)據(jù),例如Byte=1,則提取D1。
          ③ 與Invert進行異或運算。
          ④ 與Mask進行與運算。
          ⑤ 如果結(jié)果為0,則修改NAD。

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

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

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

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

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

          3 LIN通信的實現(xiàn)

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


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

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

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

          3.2 基于TLE9832的車窗防夾控制系統(tǒng)
          基于TLE9832的防夾系統(tǒng)是英飛凌同濟微控制器與嵌入式系統(tǒng)實驗室的最新研究成果。用戶可以通過按鍵或者LIN總線控制車窗的上升和下降。基于TLE9832的防夾車窗系統(tǒng)原理圖如圖4所示??赏ㄟ^控制PWM信號控制電機的轉(zhuǎn)速,而霍爾傳感器TLE4966又會采集電機的轉(zhuǎn)速并傳送給TLE9832,這樣就構(gòu)成了閉環(huán)控制。此外,電機的電樞電流在轉(zhuǎn)化為電壓信號后,被傳送給TLE9832的ADC模塊。如果車窗在上升過程中遇到不正常的阻力,電樞電流和電機轉(zhuǎn)速都會發(fā)生異常的變化,TLE9832可以根據(jù)這種變化判斷是否執(zhí)行防夾算法,避免傷害乘客。



          圖4 基于TLE9832的防夾車窗系統(tǒng)原理圖

          3.3 LIN通信部分的軟件設計
          LIN通信部分的程序流程如圖5所示。可將器中LIN通信部分的程序分為兩個部分:



          圖5 LIN通信部分程序流程

          ① 第一部分為初始化,在每次重新上電后,程序都會首先讀取Flash中的數(shù)據(jù),若0x8000中的數(shù)據(jù)為0x78,則判斷產(chǎn)品在出廠后執(zhí)行過保存配置的功能。所以程序會將存儲在Flash中的NAD和幀ID讀出來,作為當前的NAD和幀ID。接著是初始化LIN模塊,包括設置與LIN通信相關的定時器和UART等外設,設置從節(jié)點的各個參數(shù)、波特率等。

          ② 第二部分則放在定時器中斷里面,在每次中斷時進行節(jié)點配置、數(shù)據(jù)的發(fā)送和接收。首先是根據(jù)幀ID判斷有無節(jié)點配置任務,若有則根據(jù)SID執(zhí)行各種節(jié)點配置任務;接著根據(jù)收到的數(shù)據(jù)幀內(nèi)容控制車窗的自動上升和自動下降;最后將車窗信息,包括電樞電流、車窗位置等發(fā)給主節(jié)點。

          4 LIN通信的測試結(jié)果
          本測試借助Kvaser公司出品的LIN通信測試工具Leaf Professional LIN及其配套軟件CANLab完成。測試時測試工具設置為主節(jié)點,TLE9832單片機設置為從節(jié)點,比特率設置為19 200 bps。初始NAD設置為0x06,初始幀ID為無條件幀0x00、0x01和診斷配置幀0x3C、0x3D,SupplierID和Function ID都為0x0000。

          首先測試節(jié)點配置的各個功能:先測試分配NAD功能,將NAD修改為0x03;接著測試有條件分配NAD功能,將NAD修改為0x08;然后測試分配一系列幀ID功能,并保存設置;最后重新上電,并讀取從節(jié)點信息。節(jié)點配置功能的測試結(jié)果如圖6所示。



          圖6 節(jié)點配置功能的測試結(jié)果

          然后通過LIN總線控制車窗自動上升和下降,測試結(jié)果如圖7所示。

          圖7 車窗自動上升下降功能的測試結(jié)果

          最后通過LIN總線獲得車窗上升過程中電樞電流的數(shù)據(jù),并轉(zhuǎn)換成圖形,如圖8所示。其中電流值為經(jīng)過A/D轉(zhuǎn)換后的結(jié)果。



          圖8 車窗上升過程中的電樞電流值

          結(jié)語
          本文基于LIN2.1協(xié)議設計了防夾車窗控制系統(tǒng)中的通信模塊??梢钥闯觯撃K可以很好地滿足用戶在數(shù)據(jù)傳輸和診斷等方面的需求。LIN總線自身的發(fā)展必將推動車身控制領域的進一步發(fā)展。



          評論


          相關推薦

          技術(shù)專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();