基于LIN總線的倒車(chē)?yán)走_(dá)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于單片機(jī)構(gòu)成的LIN節(jié)點(diǎn)實(shí)現(xiàn)方案有查詢(xún)、中斷2種方式,其區(qū)別在于報(bào)文頭接收判斷方法不同。(1)查詢(xún)方式硬件電路簡(jiǎn)單,對(duì)時(shí)鐘要求比較高,系統(tǒng)中斷的種類(lèi)和次數(shù)少,程序運(yùn)行比較穩(wěn)定。但不足的是系統(tǒng)大部分時(shí)間都花費(fèi)在對(duì)幀報(bào)文頭的等待查詢(xún)上,系統(tǒng)資源利用率低;(2)中斷方式對(duì)查詢(xún)方式的不足之處加以改進(jìn)和提高,間隔場(chǎng)、同步字節(jié)場(chǎng)的接收完全采用中斷方式進(jìn)行。中斷方式的優(yōu)點(diǎn)是對(duì)主程序運(yùn)行的影響較小,系統(tǒng)的資源利用率高。不足的是增加了單片機(jī)的外圍電路,硬件較復(fù)雜。綜合以上特點(diǎn),本設(shè)計(jì)采用中斷方式接收。
3.2 軟件設(shè)計(jì)原理
LIN總線通信系統(tǒng)由主節(jié)點(diǎn)和從節(jié)點(diǎn)組成,主節(jié)點(diǎn)包括主任務(wù)、同時(shí)也可以包括從任務(wù);從節(jié)點(diǎn)則只能包括從任務(wù),整個(gè)通信是由主任務(wù)發(fā)起的。首先主節(jié)點(diǎn)查詢(xún)本身的超聲波倒車(chē)?yán)走_(dá)是否需要數(shù)據(jù)傳輸,如果有,則將數(shù)據(jù)裝進(jìn)LIN數(shù)據(jù)信箱,然后按照LIN通信的過(guò)程發(fā)送同步間隔場(chǎng)、同步場(chǎng)、標(biāo)識(shí)符場(chǎng)、數(shù)據(jù)場(chǎng)和校驗(yàn)和場(chǎng);如果沒(méi)有,則按照順序發(fā)送報(bào)文頭,每個(gè)ID對(duì)應(yīng)一個(gè)報(bào)文頭,然后總線等待從節(jié)點(diǎn)響應(yīng)。程序框圖如圖3所示。本文引用地址:http://butianyuan.cn/article/197680.htm
從節(jié)點(diǎn)包括2類(lèi):(1)帶有倒車(chē)?yán)走_(dá)的從節(jié)點(diǎn),它有1個(gè)ID信箱,將自己在總線獲得的ID放在里面,每當(dāng)識(shí)別到有報(bào)文幀來(lái)的時(shí)候,提取報(bào)文頭里的ID與本身信箱里的ID進(jìn)行對(duì)比。如果相同則將采集到的超聲波數(shù)據(jù)裝進(jìn)數(shù)據(jù)信箱,然后把數(shù)據(jù)做為數(shù)據(jù)響應(yīng)發(fā)送出去;否則保持沉默,不發(fā)送任何數(shù)據(jù)。(2)不帶倒車(chē)?yán)走_(dá)系統(tǒng)的從節(jié)點(diǎn),其主要功能是對(duì)接收總線的數(shù)據(jù)進(jìn)行顯示,并在必要的時(shí)候充當(dāng)網(wǎng)關(guān)的作用,將收集到的LIN信號(hào)轉(zhuǎn)換成其他總線信號(hào)進(jìn)行下一步的傳輸,其本身并不發(fā)送數(shù)據(jù),所以該ID定義全局的標(biāo)識(shí)符,對(duì)總線上所有的信號(hào)進(jìn)行接收,并且根據(jù)校驗(yàn)和場(chǎng)的數(shù)據(jù),分析數(shù)據(jù)傳輸過(guò)程是否出現(xiàn)錯(cuò)誤,如果沒(méi)有,則將數(shù)據(jù)顯示出來(lái);如果有,則產(chǎn)生提醒信號(hào)并將數(shù)據(jù)丟棄掉。
4 倒車(chē)?yán)走_(dá)系統(tǒng)實(shí)驗(yàn)及數(shù)據(jù)分析
4.1 超聲波測(cè)距誤差及分析
超聲波測(cè)距在室溫下進(jìn)行測(cè)試,其數(shù)據(jù)如表1所示。經(jīng)過(guò)多次測(cè)量發(fā)現(xiàn),在同一溫度下測(cè)量結(jié)果有如下規(guī)律:
(1)對(duì)于同一距離進(jìn)行多次測(cè)量取平均值的方法,測(cè)試范圍在0.4~1.2之間精度較好。
(2)測(cè)量誤差隨著所測(cè)距離的增大而增大。
其中的誤差有2種:(1)固定誤差,測(cè)量的起始位置與探頭的壓電晶片所在位置之間的距離,這種誤差不隨測(cè)量環(huán)境和距離的變化而變化;(2)可變誤差,隨著距離的增大而增大,主要是由接收超聲波越過(guò)閾值的時(shí)間與超聲波實(shí)際到達(dá)探頭的時(shí)間不同引起的?! ?br />4.2 結(jié)合LIN總線分析儀進(jìn)行通信測(cè)試
使用瑞典Kvaser公司生產(chǎn)的LIN總線分析儀,能夠檢測(cè)出符合LIN協(xié)議標(biāo)準(zhǔn)的信號(hào),并在電腦顯示中,可以對(duì)LIN報(bào)文的每一部分進(jìn)行分析。測(cè)試系統(tǒng)將實(shí)驗(yàn)板與LIN總線分析儀Kvaser Leaf Professional相連接、Kvaser Leaf Professional與電腦相連接,在電腦端采用NI公司的LabVIEW軟件進(jìn)行編程,并將數(shù)據(jù)顯示在顯示屏上面。圖4所示為采用NI公司LabVIEW軟件自行編寫(xiě)的LIN數(shù)據(jù)接收界面,能夠接收LIN總線的數(shù)據(jù)并顯示在界面上,可以清晰地看到報(bào)文幀的內(nèi)容,其中Data為數(shù)據(jù)場(chǎng),顯示最長(zhǎng)8個(gè)字節(jié)的數(shù)據(jù),DLC為數(shù)據(jù)場(chǎng)長(zhǎng)度,范圍為0~8,MsgID是接收到的幀的標(biāo)識(shí)符,用十進(jìn)制標(biāo)識(shí)。圖4中的ID為50,即0X32,BR表示接收到幀的波特率,由于采用從節(jié)點(diǎn)接收信號(hào),根據(jù)LIN總線協(xié)議,從節(jié)點(diǎn)應(yīng)該具備測(cè)試通過(guò)同步場(chǎng)測(cè)試通信波特率的能力。所以在途中不管選擇多大的波特率,測(cè)試出來(lái)的都是總線上的波特率。本設(shè)計(jì)的波特率是4 800 b/s,測(cè)試結(jié)果為4 801 b/s,可見(jiàn)誤差為1。Time為收到報(bào)文的時(shí)間,PA為標(biāo)識(shí)符,CS為校驗(yàn)和場(chǎng)數(shù)據(jù),由此可以計(jì)算出通信過(guò)程數(shù)據(jù)傳輸是否出錯(cuò)。
本系統(tǒng)實(shí)現(xiàn)了與瑞典Kvaser公司的LIN總線分析儀相互進(jìn)行通信,實(shí)驗(yàn)表明該系統(tǒng)數(shù)據(jù)的傳輸符合LIN協(xié)會(huì)規(guī)定的LIN協(xié)議標(biāo)準(zhǔn),能夠很好地與其他符合LIN標(biāo)準(zhǔn)的汽車(chē)電子設(shè)備進(jìn)行通信,具有較好的實(shí)際應(yīng)用價(jià)值。由于目前國(guó)內(nèi)汽車(chē)總線正處于發(fā)展階段,相比歐美國(guó)家來(lái)說(shuō)存在一定的差距,本設(shè)計(jì)雖然基本上實(shí)現(xiàn)了LIN總線通信的功能,但與標(biāo)準(zhǔn)的LIN協(xié)議通信還有一定的距離。
評(píng)論