摘 要: 采用AT89S52作為控制器,連接并控制自主設(shè)計(jì)的超聲波倒車?yán)走_(dá)的接收與發(fā)送模塊,??刂破鲗?a href="http://forexkbc.com/article/index.aspx?id=22065">倒車?yán)走_(dá)模塊的數(shù)據(jù)以LIN協(xié)議規(guī)定的報(bào)文格式發(fā)送到LIN總線,通信過程按照LIN協(xié)議規(guī)定的一主多從的通信方式,。實(shí)驗(yàn)表明,該系統(tǒng)數(shù)據(jù)的傳輸符合LIN協(xié)議標(biāo)準(zhǔn),,能夠很好地與其他符合LIN標(biāo)準(zhǔn)的汽車電子設(shè)備進(jìn)行通信,,具有較好的實(shí)際應(yīng)用價(jià)值。
關(guān)鍵詞: LIN總線,;倒車?yán)走_(dá),;超聲波
隨著汽車工業(yè)的發(fā)展和人們生活水平的提高,城市里汽車的數(shù)量迅速增加,,出現(xiàn)了交通擁擠,、停車難等問題,為了解決汽車后視鏡存在的后視盲區(qū)問題,,免除駕駛員的視野死角和視線模糊的缺陷,,減少汽車倒車時(shí)的碰撞事故,各種汽車倒車?yán)走_(dá)應(yīng)運(yùn)而生[1],。自從20世紀(jì)80年代中期德國博世公司開發(fā)現(xiàn)場總線CAN以來,,發(fā)展迅速并引起廣泛關(guān)注,目前CAN總線已經(jīng)成為汽車總線推廣,、應(yīng)用的主流,。
然而,由于CAN總線復(fù)雜的仲裁機(jī)制使其在低端市場的生產(chǎn)成本受到了挑戰(zhàn),;另外,,在汽車使用中,其穩(wěn)定性相比另一種專門應(yīng)用于低端市場的LIN總線也存在一些不足[2],。
本設(shè)計(jì)正是基于以上的應(yīng)用背景設(shè)計(jì),,與傳統(tǒng)的單獨(dú)倒車系統(tǒng)相比,在兼容性和汽車布線方面具有強(qiáng)大的優(yōu)勢,;同時(shí)與主流的CAN總線相比在成本和穩(wěn)定性方面具有相當(dāng)?shù)膬?yōu)勢,。所以LIN總線做為CAN總線的補(bǔ)充和輔助總線,在倒車?yán)走_(dá),、車燈控制等低端的應(yīng)用必將受到更加廣泛的關(guān)注,。
1 系統(tǒng)的整體設(shè)計(jì)思路
本設(shè)計(jì)主要由超聲波測距和LIN總線通信兩部分組成。
(1)超聲波測距,。由探頭,、發(fā)射電路,、接收電路、選頻電路和單片機(jī)處理組成,。主要過程是:單片機(jī)產(chǎn)生20個(gè)0.5 ms脈沖信號(hào),,頻率為40 kHz,自動(dòng)避過大約為2 ms的盲區(qū)時(shí)間,,然后開始計(jì)時(shí),,脈沖原始信號(hào)為5 V,該信號(hào)經(jīng)過運(yùn)放放大后,,可驅(qū)動(dòng)超聲波發(fā)射探頭發(fā)出15 V,、40 kHz的脈沖超聲波。由于接收頭與發(fā)射頭配對,,因此,,接收后可將超聲波調(diào)制脈沖變?yōu)榻蛔冸妷盒盘?hào),經(jīng)運(yùn)算放大后加至高通有源濾波電路濾除低頻雜波,,最后產(chǎn)生一個(gè)TTL電平的回波信號(hào),。該信號(hào)輸入到單片機(jī)產(chǎn)生外部中斷,停止單片機(jī)的定時(shí)器,,然后讀出計(jì)時(shí)器的時(shí)間差,,得到超聲波發(fā)射出去碰到阻礙物回射的時(shí)間差,再根據(jù)公式d=v*t/2得出距離障礙物的距離,。原理框圖如圖1所示,。
(2)LIN總線通信。將超聲波測距得到的數(shù)據(jù)通過LIN總線的方式發(fā)送出去,,并產(chǎn)生不同頻率的報(bào)警提示,,電路由LIN收發(fā)器、單片機(jī)和報(bào)警電路3部分組成,。單片機(jī)接收超聲波測距電路傳回的數(shù)據(jù),,并對數(shù)據(jù)進(jìn)行處理。當(dāng)判斷到有障礙物的時(shí)候,,通過報(bào)警電路產(chǎn)生報(bào)警提示,。當(dāng)距離障礙物較遠(yuǎn)時(shí),報(bào)警聲音的間斷比較緩慢,;當(dāng)距離障礙物較近時(shí),,報(bào)警聲音比較急促。數(shù)據(jù)部分則主要通過LIN總線收發(fā)器產(chǎn)生符合LIN總線協(xié)議標(biāo)準(zhǔn)的信號(hào)進(jìn)行通信,。其主要框圖如圖2所示,。
2 超聲波測距模塊的設(shè)計(jì)
2.1 超聲波測距模塊的硬件設(shè)計(jì)
2.1.1 發(fā)射電路
發(fā)射模塊的主要作用是對超聲波發(fā)射探頭進(jìn)行功率驅(qū)動(dòng),由單片機(jī)引腳輸出40 kHz的脈沖信號(hào),,經(jīng)CD4049轉(zhuǎn)變成24 V電壓信號(hào)激勵(lì)超聲波探頭,,從而產(chǎn)生頻率為40 kHz的超聲波并發(fā)射出去,。
2.1.2 接收電路
前端放大電路:前置放大電路單元的作用是對有用的信號(hào)進(jìn)行放大,并抑制其他的噪聲和干擾,,從而達(dá)到最大信噪比,,以利于后續(xù)電路的設(shè)計(jì)[3]。
帶通濾波電路:在傳感器接收的信號(hào)中,,除了障礙物反射的回波外,,總混有雜波和干擾脈沖等環(huán)境噪聲。而前端放大電路在放大有用信號(hào)的同時(shí),,也會(huì)將一部分的噪聲信號(hào)同時(shí)放大,,并沒有提高輸入信號(hào)的信噪比[4]。由于集成運(yùn)放的開環(huán)電壓增益和輸入阻抗均很高,,輸出阻抗又低,,構(gòu)成有源濾波電路后仍具有一定的電壓放大和緩沖作用,,所以采用有源濾波電路抑制無用頻率干擾信號(hào)[5],。
由于在本系統(tǒng)中,總噪聲包括在低頻段的室內(nèi)環(huán)境噪聲和50 Hz工頻干擾,,以及在高頻率段的接收機(jī)內(nèi)部噪聲,。故選用由TL082運(yùn)算放大器以及外圍電阻電容構(gòu)成的帶通濾波電路。經(jīng)過此濾波電路后,,40 kHz左右的有用回波信號(hào)被保留,,而無用信號(hào)被削弱,為下一級(jí)的檢波電路提供較高信噪比的輸入信號(hào),。
2.1.3 檢測電路
接收傳感器輸出信號(hào)經(jīng)過上述放大濾波電路后,,就可以進(jìn)行信號(hào)檢測。其目的是確定接收信號(hào)的到達(dá)時(shí)間,,這是整個(gè)電路中的關(guān)鍵,,因?yàn)樗粌H決定系統(tǒng)的測量精度,還關(guān)系到整個(gè)系統(tǒng)是否能正常工作[6],。
2.2 超聲波倒車?yán)走_(dá)的軟件設(shè)計(jì)
本系統(tǒng)采用了AT89S52單片機(jī),,用單片機(jī)匯編語言實(shí)現(xiàn)軟件編程。整個(gè)系統(tǒng)軟件功能的實(shí)現(xiàn)可以分為主程序,、子程序,、中斷服務(wù)子程序3個(gè)主要部分。
中斷服務(wù)程序響應(yīng)單片機(jī)的外部中斷,,在系統(tǒng)主程序中,,發(fā)射的40 kHz脈沖信號(hào)遇到障礙物反射后,經(jīng)接收檢測電路產(chǎn)生外中斷信號(hào)至單片機(jī),。在中斷服務(wù)程序中,,首先進(jìn)行必要的現(xiàn)場保護(hù),,再把進(jìn)入中斷服務(wù)程序處的計(jì)數(shù)值讀出并對該數(shù)據(jù)進(jìn)行處理,計(jì)算得到相應(yīng)的距離值,,同時(shí)轉(zhuǎn)換為十進(jìn)制,,最后送到輸出顯示。
定時(shí)器中斷子程序主要完成計(jì)時(shí)工作,,由于51 μ單片機(jī)是16位定時(shí)器,,最大計(jì)時(shí)時(shí)間為65 536 μs,當(dāng)測量的距離很遠(yuǎn)的時(shí)候,,定時(shí)器就會(huì)發(fā)生溢出,,所以必須對溢出中斷進(jìn)行相應(yīng)地設(shè)置才能使得單片機(jī)正常工作。同時(shí)由于電路的測量距離有限(最遠(yuǎn)為5 m),,當(dāng)測量距離超出5 m時(shí),,接收探頭就不能檢測回波,即不能產(chǎn)出外部中斷,,更不可能關(guān)閉定時(shí)器,。
3 LIN總線模塊設(shè)計(jì)
3.1 硬件設(shè)計(jì)原理
整個(gè)節(jié)點(diǎn)的主控部分是由控制器AT89S52、LIN收發(fā)器TJA1020組成,。本設(shè)計(jì)需要5 V,、12 V電源,為了節(jié)省外接電源,、簡化電路的外接線,,采用了單電源設(shè)計(jì),即系統(tǒng)的電源輸入為12 V,,用于TJA1020的供電,。另外,通過LM7805穩(wěn)壓管12 V變?yōu)? V,,用于提供單片機(jī)和LCD液晶顯示屏的電源,。單片機(jī)的P3.0(RXD)和P3.1(TXD)分別連接TJA1020的RXD、TXD管腳,,用于發(fā)送接收數(shù)據(jù),,并把數(shù)據(jù)顯示在LCD上,TJA1020的LIN管腳接DB9針接口的7腳,,而DB9針接口則可以直接與Kvaser LIN總線分析儀連接,,便于與上位機(jī)進(jìn)行直接通信。
基于單片機(jī)構(gòu)成的LIN節(jié)點(diǎn)實(shí)現(xiàn)方案有查詢,、中斷2種方式,,其區(qū)別在于報(bào)文頭接收判斷方法不同。(1)查詢方式硬件電路簡單,對時(shí)鐘要求比較高,,系統(tǒng)中斷的種類和次數(shù)少,,程序運(yùn)行比較穩(wěn)定。但不足的是系統(tǒng)大部分時(shí)間都花費(fèi)在對幀報(bào)文頭的等待查詢上,,系統(tǒng)資源利用率低,;(2)中斷方式對查詢方式的不足之處加以改進(jìn)和提高,間隔場,、同步字節(jié)場的接收完全采用中斷方式進(jìn)行,。中斷方式的優(yōu)點(diǎn)是對主程序運(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)查詢本身的超聲波倒車?yán)走_(dá)是否需要數(shù)據(jù)傳輸,,如果有,,則將數(shù)據(jù)裝進(jìn)LIN數(shù)據(jù)信箱,,然后按照LIN通信的過程發(fā)送同步間隔場、同步場,、標(biāo)識(shí)符場,、數(shù)據(jù)場和校驗(yàn)和場;如果沒有,,則按照順序發(fā)送報(bào)文頭,,每個(gè)ID對應(yīng)一個(gè)報(bào)文頭,然后總線等待從節(jié)點(diǎn)響應(yīng),。程序框圖如圖3所示,。
從節(jié)點(diǎn)包括2類:(1)帶有倒車?yán)走_(dá)的從節(jié)點(diǎn),它有1個(gè)ID信箱,,將自己在總線獲得的ID放在里面,,每當(dāng)識(shí)別到有報(bào)文幀來的時(shí)候,提取報(bào)文頭里的ID與本身信箱里的ID進(jìn)行對比,。如果相同則將采集到的超聲波數(shù)據(jù)裝進(jìn)數(shù)據(jù)信箱,然后把數(shù)據(jù)做為數(shù)據(jù)響應(yīng)發(fā)送出去,;否則保持沉默,,不發(fā)送任何數(shù)據(jù),。(2)不帶倒車?yán)走_(dá)系統(tǒng)的從節(jié)點(diǎn),其主要功能是對接收總線的數(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í)符,,對總線上所有的信號(hào)進(jìn)行接收,并且根據(jù)校驗(yàn)和場的數(shù)據(jù),,分析數(shù)據(jù)傳輸過程是否出現(xiàn)錯(cuò)誤,,如果沒有,則將數(shù)據(jù)顯示出來,;如果有,,則產(chǎn)生提醒信號(hào)并將數(shù)據(jù)丟棄掉。
4 倒車?yán)走_(dá)系統(tǒng)實(shí)驗(yàn)及數(shù)據(jù)分析
4.1 超聲波測距誤差及分析
超聲波測距在室溫下進(jìn)行測試,,其數(shù)據(jù)如表1所示,。經(jīng)過多次測量發(fā)現(xiàn),在同一溫度下測量結(jié)果有如下規(guī)律:
(1)對于同一距離進(jìn)行多次測量取平均值的方法,,測試范圍在0.4~1.2之間精度較好,。
(2)測量誤差隨著所測距離的增大而增大。
其中的誤差有2種:(1)固定誤差,,測量的起始位置與探頭的壓電晶片所在位置之間的距離,,這種誤差不隨測量環(huán)境和距離的變化而變化;(2)可變誤差,,隨著距離的增大而增大,,主要是由接收超聲波越過閾值的時(shí)間與超聲波實(shí)際到達(dá)探頭的時(shí)間不同引起的?! ?br />
4.2 結(jié)合LIN總線分析儀進(jìn)行通信測試
使用瑞典Kvaser公司生產(chǎn)的LIN總線分析儀,,能夠檢測出符合LIN協(xié)議標(biāo)準(zhǔn)的信號(hào),并在電腦顯示中,,可以對LIN報(bào)文的每一部分進(jìn)行分析,。測試系統(tǒng)將實(shí)驗(yàn)板與LIN總線分析儀Kvaser Leaf Professional相連接、Kvaser Leaf Professional與電腦相連接,,在電腦端采用NI公司的LabVIEW軟件進(jìn)行編程,,并將數(shù)據(jù)顯示在顯示屏上面。圖4所示為采用NI公司LabVIEW軟件自行編寫的LIN數(shù)據(jù)接收界面,,能夠接收LIN總線的數(shù)據(jù)并顯示在界面上,,可以清晰地看到報(bào)文幀的內(nèi)容,其中Data為數(shù)據(jù)場,顯示最長8個(gè)字節(jié)的數(shù)據(jù),,DLC為數(shù)據(jù)場長度,,范圍為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)該具備測試通過同步場測試通信波特率的能力,。所以在途中不管選擇多大的波特率,測試出來的都是總線上的波特率,。本設(shè)計(jì)的波特率是4 800 b/s,,測試結(jié)果為4 801 b/s,可見誤差為1,。Time為收到報(bào)文的時(shí)間,,PA為標(biāo)識(shí)符,CS為校驗(yàn)和場數(shù)據(jù),,由此可以計(jì)算出通信過程數(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)的汽車電子設(shè)備進(jìn)行通信,,具有較好的實(shí)際應(yīng)用價(jià)值。由于目前國內(nèi)汽車總線正處于發(fā)展階段,,相比歐美國家來說存在一定的差距,,本設(shè)計(jì)雖然基本上實(shí)現(xiàn)了LIN總線通信的功能,,但與標(biāo)準(zhǔn)的LIN協(xié)議通信還有一定的距離,。
參考文獻(xiàn)
[1] 馬建輝,王知學(xué),,李研強(qiáng),,等.基于LIN總線的車燈控制系統(tǒng)[J].EDN電子設(shè)計(jì)技術(shù),2007(8):173-175.
[2] 田亮,,喬弘.LIN總線協(xié)議分析[J].中國儀器儀表,,2004(3):5-6.
[3] 朱利娜.基于單片機(jī)的超聲波測距倒車?yán)走_(dá)的研究[J].微計(jì)算機(jī)信息,2007,,23(8-2):69-71.
[4] 呂科,,羅永革,石振東,等.基于總線的超聲波倒車?yán)走_(dá)設(shè)計(jì)[J].湖北汽車工業(yè)學(xué)院學(xué)報(bào),,2006,,20(2):4-6.
[5] 李雙科,吳記群.基于AT89S51單片機(jī)控制的汽車倒車?yán)走_(dá)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報(bào),,2005,,5(4):29-30.
[6] 朱華.發(fā)展中的汽車倒車?yán)走_(dá)[J].城市車鏈,2006(1):57-59.