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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于LIN2.1協(xié)議的車窗控制系統(tǒng)的應(yīng)用

          基于LIN2.1協(xié)議的車窗控制系統(tǒng)的應(yīng)用

          作者: 時(shí)間:2013-12-31 來(lái)源:網(wǎng)絡(luò) 收藏

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

            1 的新特點(diǎn)

            1.1 事件觸發(fā)幀的競(jìng)爭(zhēng)處理

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

            基于LIN2.1協(xié)議的車窗控制系統(tǒng)的應(yīng)用

            圖1 LIN2.0的事件觸發(fā)幀競(jìng)爭(zhēng)處理機(jī)制  圖2 LIN2.1的事件觸發(fā)幀競(jìng)爭(zhēng)處理機(jī)制

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

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

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

            基于LIN2.1協(xié)議的車窗控制系統(tǒng)的應(yīng)用

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

            1.2.2 新增保存配置的功能

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

            1.3 診斷分級(jí)

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

            (1) 診斷一級(jí)

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

            (2) 診斷二級(jí)

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

           ?。?) 診斷三級(jí)

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

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

           ?。?) 分配NAD

            為了避免某個(gè)NAD被重復(fù)使用,用戶可能需要為從節(jié)點(diǎn)分配新的NAD。

           ?。?) 有條件分配NAD

            當(dāng)用戶替換或增加從節(jié)點(diǎn)時(shí),可能會(huì)出現(xiàn)兩種情況:

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

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

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

           ?、?根據(jù)ID讀取從節(jié)點(diǎn)的相關(guān)信息。

           ?、?根據(jù)Byte提取相關(guān)信息中一個(gè)8位數(shù)據(jù),例如Byte=1,則提取D1。

           ?、?與Invert進(jìn)行異或運(yùn)算。

           ?、?與Mask進(jìn)行與運(yùn)算。

           ?、?如果結(jié)果為0,則修改NAD。

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

            (3) 保存配置

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

            (4) 分配一系列幀ID

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

            主節(jié)點(diǎn)的請(qǐng)求幀在D1中給出需要分配幀ID的第一個(gè)幀在幀數(shù)組中的序號(hào),一般來(lái)說(shuō),從節(jié)點(diǎn)所用到的所有幀的ID會(huì)被排列成一個(gè)幀數(shù)組。如果要分配幀ID,則通過(guò)D2到D5給出新的幀ID;如果要禁止某個(gè)幀,則將這個(gè)幀對(duì)應(yīng)的PID設(shè)為0x00;如果要繼續(xù)使用現(xiàn)在的幀 ID,則將這個(gè)幀對(duì)應(yīng)的PID設(shè)為0xFF。

           ?。?) 讀取從節(jié)點(diǎn)信息

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

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

            3.1 的LIN模塊

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

            表1  LIN模塊各個(gè)模式的特點(diǎn)

            基于LIN2.1協(xié)議的車窗控制系統(tǒng)的應(yīng)用

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

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

            3.2 基于TLE9832的車窗防夾控制系統(tǒng)

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


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();