LIN2.1協(xié)議在車窗控制系統(tǒng)中的應(yīng)用
當(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)品的Func tion 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添加的新功能,用來將從節(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),一般來說,從節(jié)點(diǎn)所用到的所有幀的ID會(huì)被排列成一個(gè)幀數(shù)組。如果要分配幀ID,則通過D2到D5給出新的幀ID;如果要禁止某個(gè)幀,則將這個(gè)幀對(duì)應(yīng)的PID設(shè)為0x00;如果要繼續(xù)使用現(xiàn)在的幀ID,則將這個(gè)幀對(duì)應(yīng)的PID設(shè)為0xFF。
(5)讀取從節(jié)點(diǎn)信息
讀取節(jié)點(diǎn)信息根據(jù)D1中ID的值,可以讀取不同的從節(jié)點(diǎn)信息。目前,只規(guī)定了ID為0和ID為1的情況,其他可保留或由用戶自己確定。
3 LIN通信的實(shí)現(xiàn)
3.1 TLE9832的LIN模塊
TLE9832是一款由英飛凌公司生產(chǎn)的8位功率級(jí)單片機(jī),專門用于車窗控制。其中的LIN總線模塊支持LIN2.1和LIN2.0,并向下兼容LIN 1.3。該模塊可以工作在普通模式、接收模式和禁止模式下。各個(gè)模式的特點(diǎn)如表1所列。
其中,普通模式又可根據(jù)傳輸速率的大小分為低速模式、中速模式、高速模式和Flash模式。低速模式的最大傳輸速率為10.4 kbps;中速模式是普通的LIN傳輸模式,最大傳輸速率為20 kbps;高速模式的最大傳輸速率為40 kbps;Flash模式的最大傳輸速率為11 5 khps。為了避免打斷傳輸過程,在普通模式下禁止改變傳輸速率。正確的做法是先禁止發(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的防夾車窗控制系統(tǒng)是英飛凌-同濟(jì)微控制器與嵌入式系統(tǒng)實(shí)驗(yàn)室的最新研究成果。用戶可以通過按鍵或者LIN總線控制車窗的上升和下降。基于TLE9832的防夾車窗系統(tǒng)原理圖如圖4所示。可通過控制PWM信號(hào)控制電機(jī)的轉(zhuǎn)速,而霍爾傳感器TLE4966又會(huì)采集電機(jī)的轉(zhuǎn)速并傳送給TLE9832,這樣就構(gòu)成了閉環(huán)控制。此外,電機(jī)的電樞電流在轉(zhuǎn)化為電壓信號(hào)后,被傳送給TLE9832的ADC模塊。如果車窗在上升過程中遇到不正常的阻力,電樞電流和電機(jī)轉(zhuǎn)速都會(huì)發(fā)生異常的變化,TLE9832可以根據(jù)這種變化判斷是否執(zhí)行防夾算法,避免傷害乘客。
3.3 LIN通信部分的軟件設(shè)計(jì)
LIN通信部分的程序流程如圖5所示??蓪④嚧翱刂破髦蠰IN通信部分的程序分為兩個(gè)部分:
①第一部分為初始化,在每次重新上電后,程序都會(huì)首先讀取Flash中的數(shù)據(jù),若0x8000中的數(shù)據(jù)為0x78,則判斷產(chǎn)品在出廠后執(zhí)行過保存配置的功能。所以程序會(huì)將存儲(chǔ)在Flash中的NAD和幀ID讀出來,作為當(dāng)前的NAD和幀ID。接著是初始化LIN模塊,包括設(shè)置與LIN通信相關(guān)的定時(shí)器和UART等外設(shè),設(shè)置從節(jié)點(diǎn)的各個(gè)參數(shù)、波特率等。
評(píng)論