基于STM32的紅外測距系統(tǒng)設(shè)計_第1頁
基于STM32的紅外測距系統(tǒng)設(shè)計_第2頁
基于STM32的紅外測距系統(tǒng)設(shè)計_第3頁
基于STM32的紅外測距系統(tǒng)設(shè)計_第4頁
基于STM32的紅外測距系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于STM32的紅外測距系統(tǒng)設(shè)計基于STM32的紅外測距系統(tǒng)設(shè)計-PAGEII--PAGEII-基于STM32的紅外測距系統(tǒng)設(shè)計基于STM32的紅外測距系統(tǒng)設(shè)計摘要隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,出現(xiàn)了很多新的領(lǐng)域,為了實現(xiàn)對物體近距離、高精度的無線測量,本論文對紅外測距領(lǐng)域進(jìn)行了研究。本論文采用單片機(jī)作為處理器,編寫A/D轉(zhuǎn)換程序及LCD顯示程序,紅外傳感器作為工作模塊,完成一套高精度顯示、實時測量的紅外測距系統(tǒng)。本系統(tǒng)結(jié)構(gòu)簡單、體積小、測量精度高、成本低、方便使用.本論文所介紹的是一種基于STM32單片機(jī)并運用日本夏普公司型號為GP2Y0A21的紅外傳感器所設(shè)計的紅外測距系統(tǒng)。首先,介紹紅外線及紅外傳感器的分類及應(yīng)用、STM32單片機(jī)的簡介與功能;其次,闡述紅外測距系統(tǒng)工作原理及基本結(jié)構(gòu)并對單片機(jī)、紅外傳感器、LCD液晶顯示屏的工作電路做了介紹;再次,對系統(tǒng)進(jìn)行了整體設(shè)計構(gòu)想,先后對系統(tǒng)硬件及軟件進(jìn)行設(shè)計,并對整個系統(tǒng)的功能進(jìn)行了調(diào)試。最后對整個設(shè)計進(jìn)行總結(jié),說明紅外測距系統(tǒng)實現(xiàn)的可行性。關(guān)鍵詞紅外測距;單片機(jī);A/D轉(zhuǎn)換;LCDSTM32—basedinfraredrangingsystemdesignAbstractWiththedevelopmentofmodernscienceandtechnology,therearemanynewareas,inordertoachievetheobjectcloserange,high—precisionwirelessmeasurement,thistopicofinfraredrangingisstudied.ThistopicusingSCMastheprocessor,towriteA/DconverterandLCDdisplayprogram,aninfraredsensorasaworkingmodule,completesetofprecisiondisplay,real—timemeasurementofinfraredrangingsystem.Thissystemhastheadvantagesofsimplestructure,smallsizeandhighaccuracy,lowcostandconvenientuse.ThispaperintroducedisbasedSTM32microcontrolleranduseofJapan’sSharpCorporationmodelGP2Y0A21infraredsensordesignedinfraredrangingsystem。Firstly,introducetheclassificationandapplicationofinfrareddistancemeasurement,italsointroducesthefunctionofSTM32microcontroller。ThenillustratetheworktheoryandbasicstructureofitandintroducetheLCDscreenandworkcircuit.Again,thesystemhascarriedontheoveralldesignidea,successivelyonthesystemhardwareandsoftwaredesign,andprobesintothefunctionofthewholesystemdebugging.Finally,summarizetheentiredesigntoillustratethefeasibilityofinfrareddistancemeasurement。KeywordsInfraredrange,SCM,A/Dconverter,LCDPAGEII---PAGEIII-目錄摘要 =1\*ROMANIAbstract =2\*ROMANIITOC\o"1—4"\h\z\u第1章緒論 41。2本論文主要研究內(nèi)容 4第2章紅外測距系統(tǒng)硬件設(shè)計 6HYPERLINK\l”_Toc356383537”2。1紅外測距系統(tǒng)的工作原理 6_Toc356383539”2.1。2反射能量法測距原理 62.1。3相位法測距原理 6_Toc356383542”2.2紅外測距系統(tǒng)的基本結(jié)構(gòu) 7HYPERLINK\l”_Toc356383543"2。2.1紅外傳感器模塊 82.2。2單片機(jī)處理模塊 9HYPERLINK\l”_Toc356383545”2.2。3LCD顯示模塊 16_Toc356383547”第3章紅外測距系統(tǒng)的軟件設(shè)計及功能調(diào)試 183.1紅外測距系統(tǒng)工作流程 183.2軟件程序設(shè)計 19HYPERLINK\l”_Toc356383550”3.3硬件功能調(diào)試 19HYPERLINK\l”_Toc356383551"3.4軟件功能調(diào)試 20HYPERLINK\l”_Toc356383552"3。5測量數(shù)據(jù)繪圖 203.6本章小結(jié) 23HYPERLINK\l”_Toc356383554”結(jié)論 25致謝 26參考文獻(xiàn) 27HYPERLINK\l”_Toc356383557"附錄A 29HYPERLINK\l”_Toc356383558"附錄B 35附錄C 38-PAGE10--PAGE5-緒論課題研究背景及意義隨著科學(xué)技術(shù)的不斷發(fā)展,在測距領(lǐng)域也先后出現(xiàn)了激光測距、微波雷達(dá)測距、超聲波測距及紅外線測距等方式.激光測距是以激光為傳輸信號對目標(biāo)物體進(jìn)行精確的測量。激光測距在工作開始瞬間向物體發(fā)射出一束很細(xì)的激光,并由接受端接收物體反射回來的激光束,同時計時器通過測定激光束從發(fā)射到接收的時間進(jìn)而計算出從測量者到物體的距離。該方法對使用環(huán)境要求較高,應(yīng)用范圍較少.微波雷達(dá)測距是軍事和工業(yè)上開發(fā)采用的技術(shù),其技術(shù)要求嚴(yán)格和設(shè)備價格非常之高,在民用市場上幾乎得不到應(yīng)用.超聲波測距原理與激光測距原理相似,只不過是以聲音為傳輸介質(zhì),但是此方法靈活性差、組件造價相對昂貴,在市場開拓空間并不大。作為一種應(yīng)用廣泛、測量精度高的測量方式,紅外測距利用紅外線傳播時不擴(kuò)散、折射率小的特性,根據(jù)紅外線從發(fā)射模塊發(fā)出到被物體反射回來被接受模塊接受所需要的時間,采用相應(yīng)的測距公式來實現(xiàn)對物體距離的測量。紅外測距最早出現(xiàn)于上世紀(jì)60年代,是一種以紅外線作為傳輸介質(zhì)的測量方法。紅外測距的研究有著非比尋常的意義,其本身具有其他測距方式?jīng)]有的特點,技術(shù)難度相對不大,系統(tǒng)構(gòu)成成本較低、性能良好、使用方便、簡單,對各行各業(yè)均有著不可或缺的貢獻(xiàn),因而其市場需求量更大,發(fā)展空間更廣.紅外測距儀是指用調(diào)制的紅外光進(jìn)行精密的距離測量,測量范圍一般為1-5公里,在100米以內(nèi)的范圍內(nèi)則超聲波測距更有優(yōu)勢,但是超聲波測距無法檢測到1米以內(nèi)的區(qū)域距離,而紅外測距可以精準(zhǔn)的測出這一段距離,本論文研究的就是這一種情況的紅外線測距。本論文主要研究內(nèi)容紅外線別名紅外光或者熱輻射線,是一種波長比紅色可見光(約㎜)較長、比微波(約㎜)較短的電磁波.以波長長度為基準(zhǔn),紅外線可分為三部分,即近紅外線是波長為㎜之間;中紅外線是波長為㎜之間;遠(yuǎn)紅外線是波長為㎜之間。物質(zhì)本身溫度在不低于絕對零度(-273.15℃)的情況下均可以產(chǎn)生紅外線。它不能引起人的視覺反應(yīng),有顯著的熱效應(yīng)(易被物體吸收而轉(zhuǎn)化為內(nèi)能).能產(chǎn)生反射、折射、干涉、衍射等光學(xué)現(xiàn)象。不易被云霧等懸浮微粒散射而具有較強(qiáng)的穿透力.憑借著諸多優(yōu)點,紅外線在軍事、人造衛(wèi)星以及工業(yè)、衛(wèi)生、科研等工作領(lǐng)域方面的應(yīng)用日益廣泛,有著不可替代的作用及研究價值。紅外測距傳感器是以紅外線為傳輸介質(zhì)的精確測量系統(tǒng),主要應(yīng)用于現(xiàn)代科學(xué)技術(shù)、國防軍隊建設(shè)、工業(yè)和農(nóng)業(yè)等領(lǐng)域。按照其功能可以分為五種類型:(1)輻射計,又稱“發(fā)射計”,是一種用于電磁輻射和光譜測量的裝置。(2)搜尋和鎖定系統(tǒng),具有尋找和鎖定紅外目標(biāo)的功能,確定其空間位置并對它的運動進(jìn)行追蹤。(3)熱成像系統(tǒng),通過輻射的分布圖像。(4)紅外測距系統(tǒng)。(5)綜合系統(tǒng),是集于兩個或者多個的系統(tǒng)功能的組合系統(tǒng)。本論文選用的紅外測距傳感器GP2Y0A21是由日本夏普公司推出的一款性價比高、最常用的紅外測距傳感器,與其前身GP2D12相比,測量射程相同,但探測面積略有增加,可用來對物體的距離進(jìn)行測量.具有體積小、功耗低、價格便宜等優(yōu)點,而且測量效果好適合在小范圍內(nèi)高精度測量物體的實時距離。紅外傳感器GP2Y0A21技術(shù)規(guī)格如表1所示。表1紅外傳感器GP2Y0A21技術(shù)規(guī)格測量射程范圍10-80cm最大允許角度〉40°電源電壓4。5-5。5V平均功耗33-40mA峰值功耗200mA更新頻率/周期25Hz/40ms模擬輸出噪聲〈200mV單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機(jī)系統(tǒng)。本論文選用的單片機(jī)型號為STM32F103RBT6,其中STM32代表ARMCortex-M內(nèi)核32位微控制器;F代表芯片子系列;103代表增強(qiáng)型系列;R表示芯片有64個引腳;B代表內(nèi)嵌Flash容量為128K字節(jié);T代表芯片封裝為LQFP封裝;6代表工作溫度范圍為—40—85℃.紅外測距系統(tǒng)硬件設(shè)計紅外測距系統(tǒng)的工作原理時間差法測距原理時間差法測距原理是將紅外測距傳感器的紅外發(fā)射端發(fā)送信號與接收端接受信號的時間差t寫入單片機(jī)中,通過光傳播距離公式來計算出傳播距離L,見公式(2—1)。(2—1)式中c是光的傳播速度為。反射能量法測距原理反射能量法是由發(fā)射控制電路控制發(fā)光元件發(fā)出信號(通常為紅外線)射向目標(biāo)物體,經(jīng)物體反射后傳回系統(tǒng)的接收端,通過光電轉(zhuǎn)換器接收的光能量大小進(jìn)而計算出目標(biāo)物體的距離L,見公式(2—2)。(2—2)式中P為接收端接收到的能量,K為常數(shù),其大小由發(fā)射系統(tǒng)輸出功率、轉(zhuǎn)換效率決定,d為被測目標(biāo)漫反射率。相位法測距原理相位測距法是利用無線電波段的頻率,對紅外激光束進(jìn)行幅度調(diào)制并測定調(diào)制光往返一次所產(chǎn)生的相位延遲,再根據(jù)調(diào)制光的波長,換算出此相位延遲所代表的距離D,此方式測量精度非常之高,相對誤差可以保持在百分之一以內(nèi),但要求被測目標(biāo)必須能主動發(fā)出無線電波產(chǎn)生相應(yīng)的相位值。見公式(2—3)。(2—3)式中c是光的傳播速度為,是調(diào)制信號的角頻率。三角法測距原理三角法測距原理是由一個紅外發(fā)射管和一個PSD(PositionSensingDevice位置敏感檢測裝置)以及相應(yīng)的計算電路來實現(xiàn)的.而夏普公司的PSD具有更優(yōu)良的性能,它可以檢測到光點落在它上面微小的位移,分辨率達(dá)微米,紅外傳感器GP2Y0A21正是利用了這個特性來實現(xiàn)對目標(biāo)物體距離的精確測量。如圖1所示。圖1三角法測距原理紅外測距傳感器首先通過紅外發(fā)射管發(fā)出紅外線,遇到障礙物反射回來落在PSD上形成了一個等腰三角形。而兩個底角是固定的,由發(fā)射管來確定,且紅外發(fā)射管到PSD的距離為已知,此時便可運用三角函數(shù)來推算出高,即我們要測量的距離。本論文就是采用此原理來實現(xiàn)對物體距離的測量。紅外測距系統(tǒng)的基本結(jié)構(gòu)紅外測距系統(tǒng)主要有紅外傳感器模塊(包括紅外發(fā)射端和紅外接收端兩部分)、單片機(jī)處理模塊、LCD顯示模塊三大部分組成。如圖2所示。圖2紅外測距系統(tǒng)基本結(jié)構(gòu)圖3為紅外測距系統(tǒng)整體硬件原理圖,對應(yīng)系統(tǒng)組成的三大部分,由圖可知,系統(tǒng)工作核心為單片機(jī),紅外傳感器及LCD液晶顯示屏分別接收單片機(jī)發(fā)出的指令來實現(xiàn)各自的功能,最后結(jié)合各個部分的功能來實現(xiàn)整個紅外測距系統(tǒng)的運作。對于單片機(jī)、紅外傳感器、LCD液晶顯示屏的工作原理及實現(xiàn)功能在下文會一一對其進(jìn)行介紹.圖3紅外測距系統(tǒng)硬件工作原理圖紅外傳感器模塊本模塊選用的是由日本夏普公司研發(fā)的型號為GP2Y0A21的紅外傳感器。引腳圖如圖4所示。此紅外傳感器一共有三個引腳,其中VCC(電源電壓)為信號接入,接入電源電壓為4.5—5.5V,單片機(jī)5V工作電壓即可;GND為接地引腳,連接地線即可;Vout為模擬電壓輸出引腳,此引腳輸出的模擬電壓值為0。4-2。4V,相對應(yīng)的距離范圍是80—10㎝。此引腳需要接入單片機(jī)處理模塊中的多路A/D轉(zhuǎn)換通道上的任意一路上。即STM32單片機(jī)內(nèi)部A/D轉(zhuǎn)換通道的PA7引腳上。圖4GP2Y0A21引腳圖根據(jù)紅外傳感器的電壓和相對應(yīng)的距離測量值可知,夏普GP2Y0A21系列的紅外傳感器輸出曲線是非線性的,且每個型號的紅外傳感器輸出曲線都不相同.所以對所使用紅外傳感器的矯正是必須要做的,創(chuàng)建出一張實測輸出曲線圖,以便在實際測量的過程中獲得真實準(zhǔn)確的測量數(shù)據(jù)。圖5為本論文使用的紅外傳感器GP2Y0A21實測輸出曲線.

圖5夏普GP2Y0A21輸出曲線單片機(jī)處理模塊STM32單片機(jī)是ST(意法半導(dǎo)體)公司基于ARM最新Cortex-M架構(gòu)內(nèi)核的32位處理器產(chǎn)品,內(nèi)置128KB的Flash、20K的RAM、12位A/D轉(zhuǎn)換、4個16位定時器和3路USART通訊口等多種功能資源,時鐘頻率最高可達(dá)到72MHz。圖6STM32單片機(jī)引腳圖圖6為STM32單片機(jī)的引腳圖,由圖可見此系列單片機(jī)功能之全、用法之便、外設(shè)之多,一個共有64個擴(kuò)展I/O口,方便外接工作模塊,這里就不一一介紹了。本論文所研究的紅外測距系統(tǒng)應(yīng)用到以下引腳,如表2所示,除了表2所示之外,還有一些電源引腳和接地引腳,在圖上沒有一一列出,在這里需要說明一下的是,單片機(jī)外加電源為+5.0V,內(nèi)部工作電源為+3.3V,紅外傳感器的工作電壓為4。5—5.5V,直接接到單片機(jī)+5.0V上即可,液晶顯示屏LCD1602的電源電壓為+5.0V。對于紅外傳感器來說,工作電壓的要求相對嚴(yán)格,過高容易燒壞傳感器內(nèi)部結(jié)構(gòu),過低達(dá)不到指定的測量范圍,所以條件允許的情況下應(yīng)該為其單獨準(zhǔn)備一個+5。0V的電源。表2紅外測距系統(tǒng)各引腳功能符號引腳名稱連接對象及功能23PA7連接紅外傳感器Vout引腳,作為單片機(jī)的模擬電壓輸入。14PA0連接LCD1602的R/S引腳,作為LCD的輸入引腳,接收判斷來自單片機(jī)的高低電平,然后選擇輸入指令或者數(shù)據(jù)。15PA1連接LCD1602的R/W引腳,作為LCD的輸入引腳,接收判斷來自單片機(jī)的高低電平,然后選擇寫入指令/數(shù)據(jù)或者讀取信息。16PA2連接LCD1602的E引腳,作為LCD的輸入引腳,接收判斷來自單片機(jī)的高低電平對LCD進(jìn)行使能。8PC0連接LCD1602的DB0引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。9PC1連接LCD1602的DB1引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。10PC2連接LCD1602的DB2引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。11PC3連接LCD1602的DB3引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù).24PC4連接LCD1602的DB4引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。25PC5連接LCD1602的DB5引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。37PC6連接LCD1602的DB6引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。38PC7連接LCD1602的DB7引腳,作為LCD的輸入/輸出引腳,并在單片機(jī)與LCD之間傳輸數(shù)據(jù)。STM32單片機(jī)的最小工作系統(tǒng),顧名思義就是可以使單片機(jī)工作起來同時由最少的器件構(gòu)成的系統(tǒng).最小工作系統(tǒng)雖然結(jié)構(gòu)簡單,但卻是大多數(shù)單片機(jī)控制系統(tǒng)不可缺少的重要部分,所以要熟練運用單片機(jī)的各種各樣的功能就必須要熟悉掌握并了解最小工作系統(tǒng)的組成.STM32單片機(jī)最小工作系統(tǒng)包括以下四部分:1、電源系統(tǒng)圖7電源系統(tǒng)工作原理圖如圖7所示,STM32單片機(jī)的供電系統(tǒng)設(shè)計還是比較簡單、易懂、方便使用理解的。從電腦USB端口或者其它的供電設(shè)備接入+5V的電源,當(dāng)選擇U8這個USB座時,此時的功能是通過USB座給單片機(jī)開發(fā)板下載程序和供電;當(dāng)選擇U4這個USB座時,此時的功能是通過USB座與外界進(jìn)行通信或者給單片機(jī)開發(fā)板進(jìn)行供電;隨后經(jīng)過P2(P2是一個500mA的自恢復(fù)保險絲,作用是防止單片機(jī)工作過程中短路現(xiàn)象的發(fā)生,當(dāng)電源瞬間短路時,會產(chǎn)生強(qiáng)大的電流,這時會把與單片機(jī)相連設(shè)備的主板給燒壞,同時對開發(fā)板自己也是一種保護(hù))到達(dá)開關(guān)S1和S2,若要給單片機(jī)開發(fā)板通電需要接通開關(guān)S1和S2,若要切斷單片機(jī)開發(fā)板電源,還需要再一次按下開關(guān)S1和S2。當(dāng)單片機(jī)開發(fā)板得到+5V的電源后,一路經(jīng)電解電容C12濾波以后會更加穩(wěn)定的從C12正極輸出,供給單片機(jī)開發(fā)板所需要的地方;另一路直接接入U7(U7是一個型號為AMS1117的穩(wěn)壓芯片,作用就是把+5V的電壓穩(wěn)壓成+3。3V的電壓)的3引腳上,經(jīng)過U7穩(wěn)壓以后由2引腳直接輸出+3。3V電源,一路經(jīng)電容C11濾波以后,作為單片機(jī)開發(fā)板的電源使用或者作為開發(fā)板其它器件的+3.3V電源使用;另一路經(jīng)過電容C13濾波以后,作為單片機(jī)開發(fā)板A/D轉(zhuǎn)換模塊供電電壓。2、復(fù)位系統(tǒng)圖8復(fù)位系統(tǒng)原理圖單片機(jī)復(fù)位系統(tǒng)就是讓程序計數(shù)器回到0000h這個地址,程序重頭開始執(zhí)行,將一些寄存器、存儲單元都置為初始設(shè)定值,單片機(jī)復(fù)位的形式有很多種,比如上電復(fù)位、看門狗復(fù)位、手動復(fù)位等等。本開發(fā)板運用的是外接電路來手動復(fù)位,如圖8所示,STM32單片機(jī)采用低電平復(fù)位,使復(fù)位開關(guān)RESET按下單片機(jī)接入低電平即完成復(fù)位操作。3、時鐘系統(tǒng)時鐘系統(tǒng)相當(dāng)于單片機(jī)的脈搏,好比人得心跳,其重要性不言而喻。STM32單片機(jī)的時鐘系統(tǒng)比較復(fù)雜,由于單片機(jī)本身結(jié)構(gòu)復(fù)雜,外設(shè)模塊又非常多,而需要很高的系統(tǒng)時鐘的模塊又在少數(shù),同時為了降低時鐘功耗減少電磁干擾,單片機(jī)一般都采取多種時鐘控制方法。本論文主要應(yīng)用的是SYSCLK(系統(tǒng)時鐘)的配置,驅(qū)動系統(tǒng)時鐘可由3種不同的時鐘源:(1)STM32單片機(jī)內(nèi)部有一個8MHzRC高速振蕩器,它產(chǎn)生的的時鐘信號會兵分2路,一路直接加到時鐘選擇器開關(guān)(SW),這個開關(guān)是由STM32單片機(jī)的時鐘配置寄存器的第0位和第1位來控制,如若時鐘配置寄存器的第0位和第1位分別寫入0,0的話,內(nèi)部的8MHzRC高速振蕩器產(chǎn)生的8MHz的時鐘信號就可以輕松通過SW開關(guān),此時單片機(jī)就產(chǎn)生了8MHz的系統(tǒng)時鐘。(2)內(nèi)部的8MHzRC高速振蕩器產(chǎn)生的8MHz的時鐘信號另一路經(jīng)過一個1/2分頻器變成了4MHz的時鐘信號加到了PLLSRC(PLLSRC是由STM32單片機(jī)的時鐘配置寄存器的第16位來控制的)這個選擇開關(guān)上,如果時鐘配置寄存器的第16位寫入一個0的話,內(nèi)部的8MHzRC高速振蕩器產(chǎn)生的8MHz的時鐘信號經(jīng)過1/2分頻器變成4MHz的時鐘信號,就會成功的通過開關(guān)PLLSRC,然后到達(dá)STM32單片機(jī)的鎖相環(huán)PLL倍頻器(倍頻器就是起到一個倍頻的作用,通過對時鐘配置寄存器的第18-21位來配置),如果對時鐘配置寄存器第21-18位寫入0110,則就是8倍頻輸出,之前PLL輸入的為4MHz時鐘信號,經(jīng)8倍頻以后就輸出32MHz的時鐘信號了。這時SW第0位和第1位都寫入0,則單片機(jī)系統(tǒng)時鐘為32MHz.(3)在外部8MHz的晶振下和內(nèi)部的振蕩電路的結(jié)合下會產(chǎn)生相對穩(wěn)定的8MHz的系統(tǒng)時鐘。其中一路直接通過SW開關(guān)設(shè)置為01,正好選擇了這路產(chǎn)生的8MHz系統(tǒng)時鐘信號。另一路是首先通過一個選擇開關(guān)PLLXTPRE(PLLXTPRE是由時鐘配置寄存器的第17位來控制的),如若PLLXTPRE被寫入0,這時8MHz的時鐘信號就會通過此開關(guān)到達(dá)開關(guān)PLLSRC;如若PLLXTPRE被寫入1,這時8MHz的時鐘信號就會通過對PLLSRC的設(shè)置然后通過鎖相環(huán)PLL倍頻器的擴(kuò)展加到SW上,通過SW后形成相應(yīng)系統(tǒng)時鐘信號。最后一路是首先遇到了一個1/2分頻器,變成4MHz時鐘信號后,又到達(dá)了PLLXTPRE這個開關(guān)然后,隨后的設(shè)置與上一路時鐘信號一樣,也可得到相應(yīng)的系統(tǒng)時鐘信號。從以上的介紹可以看出STM32單片機(jī)的系統(tǒng)時鐘是很復(fù)雜的,需要很多寄存器的配置,而每個寄存器又有很多位的配置等等要求,但是時鐘系統(tǒng)卻又是單片機(jī)工作起來必不可少的部分,所以更詳細(xì)的學(xué)習(xí)應(yīng)該對我們來說是非常必要的。圖9為STM32單片機(jī)的晶振電路與時鐘振蕩電路。圖9晶振電路(左)時鐘晶振電路(右)4、程序下載電路在某些定義中,程序下載電路不被定義為單片機(jī)的最小工作系統(tǒng),而本論文所運用到的下載電路是USB下載電路.從圖8可知,STM32單片機(jī)下載電路支持JATG/SWD下載,同時還支持串口下載通信。由于本論文研究的紅外測距系統(tǒng)重點應(yīng)用USB下載電路,相對于JTAG/SWD下載的原理這里就不詳細(xì)介紹,其工作原理圖如圖10所示。圖10JTAG/SWD下載電路本論文主要運用到的是STM32單片機(jī)的電源電路、復(fù)位電路、USB下載電路、A/D轉(zhuǎn)換等功能,前兩者在單片機(jī)最小工作系統(tǒng)里已經(jīng)介紹過,下面介紹一下USB下載電路和A/D轉(zhuǎn)換。STM32單片機(jī)主要是采用串口通信的工作原理,串行通信就是指數(shù)據(jù)一位一位地按順序傳輸?shù)耐ㄐ欧绞?最簡單的串口通信電路只需要2根信號線和一根地線皆可以完成,大幅度地降低了使用成本且能實現(xiàn)遠(yuǎn)距離傳輸。在本開發(fā)板上,運用了PL2303(用于實現(xiàn)USB座和標(biāo)準(zhǔn)RS—232串行端口之間的轉(zhuǎn)換)的芯片功能來實現(xiàn)直接運用電腦USB口下載程序的功能。由圖11可以看出,從PL2303輸出的信號直接連接到單片機(jī)的USART1這個串口模塊上,實現(xiàn)了USB轉(zhuǎn)串行通信的連接。圖11USB下載電路STM32單片機(jī)內(nèi)置3個12位模擬/數(shù)字轉(zhuǎn)換模塊(ADC),轉(zhuǎn)換時間最快為。ADC模塊是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器,具有18個通道(16個外部信號源和2個內(nèi)部信號源),也具有自校驗功能,在任何條件下都能保證較高的轉(zhuǎn)換精度。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)有三點:(1)轉(zhuǎn)換時間,從發(fā)出啟動命令后到轉(zhuǎn)換結(jié)束獲得完整的數(shù)字信號為止所需的時間。(2)分辨率,是指數(shù)字量最低位代表的模擬量數(shù)值大小。比如5.0V的電壓,系統(tǒng)使用10位的ADC進(jìn)行測量,就相當(dāng)于把5。0V分成1024份,那么分辨率為5.0/1024=0。005V。(3)轉(zhuǎn)換精度,是指轉(zhuǎn)換結(jié)束后所得的結(jié)果相對于實際值的準(zhǔn)確度,可用滿量程的百分?jǐn)?shù)來表示。本論文所設(shè)計的紅外測距系統(tǒng)只需要一個ADC即可完成。以ADC1為基礎(chǔ)來實現(xiàn)A/D轉(zhuǎn)換功能,首先需要對ADC模塊的輸入通道進(jìn)行了解,STM32單片機(jī)的A/D轉(zhuǎn)換通道很多,共有18路,本論文應(yīng)用的是通道7(PA7)來實現(xiàn)對Vout的模擬/數(shù)字轉(zhuǎn)換。其次就是ADC模塊的工作電壓,在這18路通道中只能實現(xiàn)0-3。6V之間的轉(zhuǎn)換,也就是說不支持負(fù)電壓和大于3。6V電壓的工作轉(zhuǎn)換.再者就是以什么樣方式來啟動A/D轉(zhuǎn)換,如單片機(jī)的定時捕獲、EXTI線中斷等等.然后就是ADC轉(zhuǎn)換器的分組,STM32單片機(jī)ADC轉(zhuǎn)換器分為2個通道組:規(guī)則通道組(最多包含16個轉(zhuǎn)換通道)和注入通道組(最多包含4個轉(zhuǎn)換通道),兩個組別只能一組一組進(jìn)行轉(zhuǎn)換,當(dāng)一組進(jìn)行轉(zhuǎn)換時另一組可視為中斷,可打斷當(dāng)前執(zhí)行也可等到執(zhí)行完畢隨后執(zhí)行.最后就是把通過A/D轉(zhuǎn)換得到的數(shù)據(jù)存入相應(yīng)的數(shù)據(jù)寄存器,等待下一次轉(zhuǎn)換或者結(jié)束。對于A/D轉(zhuǎn)換電路來說,如果單片機(jī)處理模塊是整個紅外測距系統(tǒng)的重點研究模塊,那么A/D轉(zhuǎn)換電路就是重中之中。從紅外測距系統(tǒng)啟動開始,到單片機(jī)初始化,再到測量距離的實施,最后到LCD的顯示,如果A/D轉(zhuǎn)換功能癱瘓,就意味著單片機(jī)與紅外傳感器的溝通橋梁斷掉,也就是說大腦與肢體的分離,是不能讓整個系統(tǒng)運轉(zhuǎn)起來的。對于此次所采用的STM32單片機(jī)的開發(fā)板,還有很多功能,比如測溫功能、鍵盤功能、數(shù)碼管顯示功能等等,由于對于紅外測距系統(tǒng)的設(shè)計沒有直接的關(guān)系,就不一一進(jìn)行詳細(xì)介紹,各部分的工作原理圖見附錄B里.LCD顯示模塊本論文所設(shè)計的紅外測距系統(tǒng)最終是要求顯示出測量物體的距離,所應(yīng)用的液晶顯示屏型號為LCD1602。圖12為LCD1602原理圖。圖12LCD1602原理圖由圖12可知,LCD1602結(jié)構(gòu)非常簡單、使用方便,共有16個引腳,其每個引腳功能表3所示。通過表3所示,把LCD1602每個引腳的功能了解掌握,并與STM32單片機(jī)的相應(yīng)I/O口連接上,燒入顯示程序即可完成紅外測距系統(tǒng)的最終要求。本章小結(jié)本論文所設(shè)計的紅外測距系統(tǒng)是以STM32單片機(jī)為核心,應(yīng)用由日本夏普公司研發(fā)的型號為GP2Y0A21的紅外傳感器的測距功能和液晶顯示屏LCD1602的顯示功能。首先通過對單片機(jī)的電源電路、復(fù)位電路、時鐘電路、USB下載電路和A/D轉(zhuǎn)換電路等功能進(jìn)行主要學(xué)習(xí)了解并運用,然后了解紅外傳感器GP2Y0A21的使用方法與特性,結(jié)合單片機(jī)和紅外傳感器的功能,采集出電壓并通過電壓距離公式轉(zhuǎn)換為測量距離。最后通過LCD1602的顯示功能給予顯示,使整個系統(tǒng)更加完美的來完成對物體距離的測量.表3LCD1602引腳功能圖符號名稱電平輸入/輸出功能1VSS電源地2VDD電源(+5V)3VL對比調(diào)整電壓,接滑動變阻器4R/S0/1輸入0=輸入指令;1=輸入數(shù)據(jù)5R/W0/1輸入0=向LCD寫入指令或數(shù)據(jù);1=從LCD讀取信息6E1,1→0輸入使能信號,1時讀取信息,1→0時執(zhí)行命令7DB00/1輸入/輸出數(shù)據(jù)總線line0(最低位)8DB10/1輸入/輸出數(shù)據(jù)總線line19DB20/1輸入/輸出數(shù)據(jù)總線line210DB30/1輸入/輸出數(shù)據(jù)總線line311DB40/1輸入/輸出數(shù)據(jù)總線line412DB50/1輸入/輸出數(shù)據(jù)總線line513DB60/1輸入/輸出數(shù)據(jù)總線line614DB70/1輸入/輸出數(shù)據(jù)總線line715BLA+VCCLCD背光電源正極16BLKGNDLCD背光電源負(fù)極紅外測距系統(tǒng)的軟件設(shè)計及功能調(diào)試紅外測距系統(tǒng)工作流程在整個紅外測距系統(tǒng)工作中,當(dāng)系統(tǒng)被接入啟動電源后,首先,對STM32單片機(jī)進(jìn)行初始化,當(dāng)單片機(jī)接收到紅外傳感器GP2Y0A21傳輸?shù)哪M電壓信號后,經(jīng)過A/D轉(zhuǎn)換電路,將輸入單片機(jī)的模擬電壓信號Vout轉(zhuǎn)換為單片機(jī)可識別的數(shù)字信號,并經(jīng)過電壓距離轉(zhuǎn)換程序,轉(zhuǎn)換出要測量的距離,然后通過10次均值濾波來提高測量的精確度,最后在通過液晶顯示屏LCD1602顯示出測量結(jié)果.紅外測距系統(tǒng)工作流程圖如圖13所示。圖13紅外測距系統(tǒng)工作流程圖軟件程序設(shè)計對便于編程,一定要有一個好的編譯器。對于STM32單片機(jī)來講,可以編譯其的開發(fā)工具有很多,如IAR,KEIL,ADS等等,本論文研究的過程中選擇KEIL進(jìn)行編程的。下面對KEIL進(jìn)行一下簡介:KEILMDK開發(fā)工具源自德國KEIL公司,被全球的嵌入式開發(fā)工程師驗證和使用,是ARM公司目前推出的最新的針對各種嵌入式處理器的軟件開發(fā)工具.LEIMDK集成了業(yè)內(nèi)最先進(jìn)的技術(shù),支持ARM7、ARM9、和最新的Cortex-M系列內(nèi)核處理器,啟動代碼不需要人工配置,集成Flash燒寫模塊,強(qiáng)大的Simulation設(shè)備模擬,性能分析等功能。目前KEILMDK在國內(nèi)ARM開發(fā)工具市場已經(jīng)達(dá)到九層的占有率。紅外測距系統(tǒng)軟件程序主要由主程序、A/D轉(zhuǎn)換程序、延時函數(shù)、LCD顯示程序等等,在紅外測距系統(tǒng)硬件已經(jīng)確定的情況下,程序設(shè)計步驟為:(1)分析紅外測距系統(tǒng)功能,對已知條件及運算控制的要求進(jìn)行掌握,準(zhǔn)確地編寫出能完成規(guī)定任務(wù)的程序.(2)確定所需要函數(shù)及算法,根據(jù)系統(tǒng)設(shè)計要求及功能特點,選擇相應(yīng)的解決方法。(3)設(shè)計系統(tǒng)工作流程圖,采用直觀的方式清晰地表達(dá)出程序的整體設(shè)計思想。(4)根據(jù)系統(tǒng)工作流程圖編寫源程序,對主函數(shù)及子函數(shù)的功能進(jìn)行逐一分析,并寫出相應(yīng)的程序。(5)調(diào)試源程序,將編好的程序通過編譯去除語法及功能上的錯誤,然后將程序燒入單片機(jī)中以達(dá)到最終要求。在這里需要說明的是按照紅外傳感器GP2Y0A21給出使用手冊,正常經(jīng)過軟件編程并成功下載到STM32單片機(jī)之后,測量結(jié)果所繪制的電壓距離曲線應(yīng)該是一條非線性曲線,如圖5所示。但是為了更方地使用此款紅外傳感器,在更多商家的研究與開發(fā)下,通過不斷地采集實驗數(shù)據(jù)并對此款傳感器進(jìn)行曲線擬合,最終實現(xiàn)了輸出曲線近似線性化的處理。本論文采用了這個擬合之后的公式,并在編程時直接編入電壓距離轉(zhuǎn)換公式,燒入單片機(jī)內(nèi)直接進(jìn)行測量。硬件功能調(diào)試單片機(jī)處理模塊、紅外傳感器模塊及LCD顯示模塊是紅外測距系統(tǒng)的三大組成,也是硬件設(shè)計中重要的部分,所以在設(shè)計完成后要分別對這三部分進(jìn)行功能調(diào)試以達(dá)到穩(wěn)定的工作要求。首先,對單片機(jī)處理模塊進(jìn)行調(diào)試,此模塊是整個紅外測距系統(tǒng)工作的大腦,所以對此模塊的要求絕對要做到萬無一失,對此模塊我進(jìn)行了如下調(diào)試:(1)檢查開發(fā)板電源電路是否短路,造成開發(fā)板損壞。(2)檢查開發(fā)板焊接情況,有無虛焊、錯焊等現(xiàn)象。(3)檢查帶有極性原件的焊接是否焊反。(4)在確定整個開發(fā)板無誤的情況下,先燒入簡單程序試一試開發(fā)板的功能,隨后再燒入紅外測距系統(tǒng)程序。其次,對紅外傳感器模塊進(jìn)行檢查,由于本論文重點研究方向不在傳感器內(nèi)部結(jié)構(gòu)與工作原理方面,所采用的紅外傳感器GP2Y0A21是由日本夏普公司所提供的完整模塊,所以只需把單片機(jī)編入A/D轉(zhuǎn)換程序后是紅外傳感器的Vout引腳接入單片機(jī)的PA7引腳,通過串口檢驗是否有電壓輸入,如若有則證明此模塊可以作為所設(shè)計系統(tǒng)的紅外傳感器模塊,如若沒有,則需調(diào)試或者調(diào)換另一模塊。最后,對液晶顯示屏LCD1602模塊進(jìn)行調(diào)試,在調(diào)試此模塊時,遇到的最大一個問題就是對LCD1602引腳3(VL)功能的忽視,最開始并沒有對此引腳接入相應(yīng)的滑動變阻器,導(dǎo)致了無論怎么調(diào)試程序或者更改硬件都無法顯示最簡單的字符,在不斷地實驗中發(fā)現(xiàn)了這個故障,最終接入相應(yīng)的滑動變阻器并調(diào)整到適當(dāng)?shù)奈恢茫罱K在LCD上得到了顯示的字符.再者就是由于紅外測距系統(tǒng)中單片機(jī)與LCD之間的連接為直接采用跳線連接I/O的方法,為了提高系統(tǒng)工作的穩(wěn)定性及抗干擾能力,防止工作過程中排針與跳線之間松動,單對LCD顯示模塊又焊接了一塊擴(kuò)展板,把接地端及電源端盡量合并,減少對跳線的使用,提高系統(tǒng)工作穩(wěn)定性及可靠性.軟件功能調(diào)試對于紅外測距系統(tǒng)軟件的調(diào)試,主要是對主程序及子程序的調(diào)試,在最開始編寫程序的時候,首先對主函數(shù)進(jìn)行大致編寫,并逐一加入一些算法公式及相應(yīng)的函數(shù)語句。然后再開始編寫相應(yīng)的功能模塊的子程序,對A/D轉(zhuǎn)換程序、LCD1602顯示程序等都需要一一編寫。在硬件電路制作并調(diào)試好以后,便可將編譯后的程序下載到單片機(jī)中運行調(diào)試。根據(jù)所設(shè)計的電路結(jié)構(gòu)、編寫的程序及傳感器本身的功能,在測量范圍內(nèi)對各個距離進(jìn)行多次測量并與實際距離相比較,通過對實驗數(shù)據(jù)的分析,不斷調(diào)節(jié)器件和修改程序使紅外測距系統(tǒng)能更精確、更穩(wěn)定地達(dá)到實際使用的要求。測量數(shù)據(jù)繪圖經(jīng)過對紅外測距系統(tǒng)硬件及軟件的調(diào)試后使整個系統(tǒng)能正常運行,接下來就是要對整個系統(tǒng)的功能進(jìn)行實際測量與驗證。紅外傳感器GP2Y0A21正常的電壓距離輸出曲線為圖5所示.由于我們采用的是擬合后的測量公式,見公式(3—1),所測量的數(shù)據(jù)曲線會有所不同.測量數(shù)據(jù)如表4所示。(3—1)式中R代表測量距離,AD代表輸入單片機(jī)的AD轉(zhuǎn)換值,m,b,k均為常量;m=0。0000954,b=0。000502,k=4。表4測量數(shù)據(jù)電壓V2.411。340。930.750.630。520。430。40AD754414290235190166141123測量值Rcm9.8720.9629。7541。0650。0961.0169.9879。891/(R+k)0。0720。0400.0290。0220.0180.0150.0130。011實際距離cm1020304050607080經(jīng)過實際測量,得出如表4的實驗數(shù)據(jù),為了對比實驗結(jié)果分別以距離、電壓兩個變量作為橫縱坐標(biāo)對數(shù)據(jù)進(jìn)行繪圖,由于數(shù)據(jù)是離散的且不遵守某個函數(shù),選擇采用Labview軟件進(jìn)行作圖。圖14是距離與電壓輸出曲線圖,也就是經(jīng)過擬合加入常量后的曲線,與實測輸出曲線相比更近乎線性化,由圖可知,紅外測距系統(tǒng)在10—80cm范圍內(nèi)為正常測量范圍.圖14電壓距離輸出曲線圖15是1/(R+k)與電壓輸出曲線,為了使曲線線性化便于分析和處理數(shù)據(jù),把公式(3—1)進(jìn)行整理,使1/(R+k)與電壓成線性關(guān)系,并繪圖??梢姡跊]有經(jīng)過公式變換的電壓距離輸出曲線是一條非線性反比例輸出曲線,經(jīng)過轉(zhuǎn)換,添加常數(shù)參數(shù)使1/(R+k)與電壓成線性關(guān)系.圖151/(R+k)與電壓輸出曲線圖16,圖17,圖18是測量數(shù)據(jù)中采集的照片。圖16圖17圖18本章小結(jié)對于整個紅外測距系統(tǒng)軟件的設(shè)計,是在硬件設(shè)計大致完成的基礎(chǔ)上展開的,主要是對STM32單片機(jī)運行程序的編寫,還有系統(tǒng)整體工作流程的設(shè)計與搭建。在程序編寫的過程中我深刻地認(rèn)識到了各種工作語言的重要性,并且你需要對STM32單片機(jī)各種函數(shù)語句的使用進(jìn)行掌握,單是函數(shù)語句的名稱就很難記住,更何況每個語句的功能及使用方法.所以,通過系統(tǒng)軟件的設(shè)計,在STM32單片機(jī)編程著方面我得到了很大的提高,而在編譯每個程序的過程中對語句的修改更讓我煞費苦心,有的語句可以很通順的編寫成功,而有些語句則需改了又改才可以正常運行。對我自己的品質(zhì)也進(jìn)行了歷練,讓我更加知道了持之以恒的道理。最終所編寫的主要工作程序見附錄A。從測量數(shù)據(jù)與繪圖來看,本論文所研究的紅外測距系統(tǒng)工作范圍在10—80厘米,其電壓與距離的不是純線性關(guān)系,是一條平滑的非線性反比例曲線。在工作范圍內(nèi),此系統(tǒng)可以高精度實現(xiàn)對物體距離的測量。當(dāng)然,系統(tǒng)在工作穩(wěn)定性上還需要改進(jìn)。結(jié)論對本論文所設(shè)計的紅外測距系統(tǒng)進(jìn)行測量、校準(zhǔn)發(fā)現(xiàn)其測量范圍在10-80厘米內(nèi)的平面物體。最大誤差為0.5厘米,而且能在短時間內(nèi)多次測量,經(jīng)修改的紅外測距系統(tǒng)穩(wěn)定性比較好、靈敏度也較高、結(jié)構(gòu)簡單,測量時只需保證周圍沒有干擾物體即可,當(dāng)然在檢測過程中也發(fā)現(xiàn)了一些不足的地方:1、根據(jù)紅外傳感器GP2Y0A21的使用手冊可知其工作電壓有著精確的范圍,所以在工作測量時,必須保證其電壓源的穩(wěn)定,且在10厘米之內(nèi)和80厘米之外傳感器均會傳回不準(zhǔn)確的測量值。也就是說在此范圍之外的物體是無法測量的。2、由于本論文所設(shè)計的紅外測距系統(tǒng)比較簡單,所以在測量時紅外測距傳感器并為固定在指定位置,而恰巧紅外傳感器接收端與發(fā)射端和地面呈的角度對這測量精度有著很大影響,所以在工作測量時,一定要注意紅外傳感器的擺放角度。3、由于實驗條件有限,對此紅外測距系統(tǒng)并為在不同溫度下分別進(jìn)行實驗,所以不能確定的是外界溫度的高低變化對測量精度是否有影響。4、由于實驗條件有限,對此紅外測距系統(tǒng)并為在加有電磁干擾的情況下進(jìn)行測量,所以不能確定的是測量過程中外界電磁波的有無對測量精度是否有影響。5、在干凈清新的空氣下所測量的結(jié)果一般要比塵埃過多情況下精準(zhǔn)的多,也就是說空氣環(huán)境質(zhì)量對此紅外測距系統(tǒng)也有著相對的影響.6、對于不同形狀的測量物體也有著相對的影響,由于不規(guī)則的形狀影響了紅外線的發(fā)射與接收,所得到的測量結(jié)果也相對精度較低,于平面物體測量結(jié)果的穩(wěn)定性和精確度就較高。本紅外測距系統(tǒng)采用的是紅外傳感器GP2Y0A21和三角測距原理,由于紅外傳感器本身測量距離的限制,加上三角測距原理固有的缺陷,經(jīng)過上述實驗分析得知,在穩(wěn)定的電源、干凈清晰的空氣、穩(wěn)定的溫度、無外界電磁干擾、無障礙物的情況下,在測量允許的范圍內(nèi),此紅外測距系統(tǒng)能獲得較高的測量精度。雖然最終所設(shè)計的紅外測距系統(tǒng)未能達(dá)到更高的要求,但在工作范圍內(nèi)測量結(jié)果誤差影響相對較小,可以滿足日常生活、工業(yè)生產(chǎn)的測量要求。同時通過此次課題設(shè)計大大地提高了我對單片機(jī)的認(rèn)識,在電路分析及編程能力方面也有著顯著的提高,對我意義匪淺。致謝為期將近三個月的時間,本篇論文終于撰寫完畢.在此期間我遇到了無數(shù)的困難和挫折,都在老師和同學(xué)的幫助下順利度過。本論文的撰寫工作主要是在我的導(dǎo)師盧迪老師的悉心指導(dǎo)下完成的,盧迪老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的管理方法給我了極大的幫助和信心。在論文撰寫期間,她對我進(jìn)行了無私的指導(dǎo)和幫助,盡其所能的對我的每一項學(xué)術(shù)知識進(jìn)行鞏固,不厭其煩的對我的論文進(jìn)行修改。另外,在查找資料的時候,圖書館的老師也給我提供了很多方面的支持與幫助,在此,我向幫助和指導(dǎo)過我的各位老師表示最衷心的感謝。同時,我要感謝我的學(xué)長還有我的同學(xué),在實驗室工作和論文撰寫期間,他們給予了我熱情的幫助,如果沒有他們的幫助與啟發(fā)我將很難完成本篇論文的撰寫。還要感謝本文所涉及到的各位學(xué)者,本文借鑒了數(shù)位學(xué)者的理論知識和研究成果,讓我更好地完成了對論文的撰寫.在論文撰寫期間我也要感謝我的家人,是他們給予了我莫大的支持,讓我更安心地去完成此次論文地撰寫。由于我的學(xué)術(shù)水平有限,本論文難免會有不足之處,懇請各位老師和同學(xué)批評和指正。參考文獻(xiàn)彭偉.GP2D12紅外測距傳感器曲線擬合設(shè)計.湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報.2012,12(1):1-3.韋偉,周凌翱,劉青.一種便攜式的紅外測距系統(tǒng).電子設(shè)計工程.2011,19(21):1—3.劉昌輝,帥考,楊維榮.嵌入式視覺的測距系統(tǒng)設(shè)計.武漢工程大學(xué)學(xué)報.2015,37(4):1—4.毛玲,李振波,張大偉,陳佳品.基于紅外傳感器的移動微機(jī)器人定位系統(tǒng).傳感器與微系統(tǒng).2014,33(12):1—4.魏雅,杜云.基于單片機(jī)遙控超聲波測距智能小車.信息技術(shù).2014,11:1-4.朱杰,何凌霄,林凡強(qiáng),茍喬欣.最小二乘法分段擬合紅外測距系統(tǒng).電子器件.2014,37(3):1—5.王慧娟,袁全波,房好帥.基于ARM的移動機(jī)器人紅外測距系統(tǒng)設(shè)計.北華航天工業(yè)學(xué)院學(xué)報.2010,20(2):1-3.賀洪江,程琳.基于STM32與MODBUS協(xié)議的超聲波測距儀設(shè)計.儀表技術(shù)與傳感器.2014,11:1-4.王玲,鄒小昱,劉思瑤,陳兵林,朱宏超,朱镕杰.棉花采摘機(jī)器人紅外測距技術(shù)研究.農(nóng)業(yè)機(jī)械學(xué)報.2014,45(7):1—6.Dagangmiao,ShouxiangJiang,SongminShang,Zhuomingchen.EffectofheattreatmentoninfraredreflectionpropertyofAl—dopedZnOfilms.SolarEnergyMaterialsandSolarCells.2014,127:1-6.ShengLu,Xiao-LiCao,Zhong-JianCai,Gao—RongZengandTanLiu.AnEmbeddedCPUBasedAutomaticRanging.2007MediterraneanConferenceOnControlAndAutomation,Athens-Greece,July27—29,2007:1-5.QiZHANGHaoYANGYuguangWEI.CalibrationofLiDARdeviceusing

infrared

images.InternationalsymposiumonInnovationandsustainabilityofmodernrailway

3rd.Nanchang.2013:1-4.LiangXu,ZhiqiangMeng.AnInfraredRangingSystemForAutomotiveAnti-collision.Internationalworkshoponinternetofthings’technologyandinnovativeapplicationdesign.Beijing.2012:1-5.D.Salido-Monzu,E.Martin—Gorostiza,J。L.Lazaro-Galilea,F(xiàn)。Domingo—Perez.MultipathMitigationforaPhase-BasedInfraredRangingSystemAppliedtoIndoorPositioning.2013InternationalConferenceonIndoorPositioningandIndoorNavigation,October2013:1-5.李錄鋒.基于AT89C51超聲波測距控制系統(tǒng)設(shè)計.制造業(yè)自動化.2012,34(2):1-3.蔡紅霞,劉繼勇.基于FPGA脈沖激光測距高精度時間間隔的測量.計算機(jī)與數(shù)字工程.2013,11:1-3.附錄A/**********************************本程序主要功能:將紅外測距傳感器測得距離顯示在lcd上**************************************************/#include”stm32f10x。h”#include"SYSTICK。h”#include"USART.h”#include"led。h"#include”ADC.h"#include"lcd1602.h”#include”GPIO.h"intmain(void){u8i=0;floatfloat_Distance,Sum_Distance=0。0;//浮點距離值單位cmu16Distance;//整型距離之 u16adc;//AD轉(zhuǎn)換值12位AD floatadc1;//AD轉(zhuǎn)換電壓 SystemInit();//系統(tǒng)初始化 SYSTICK_Init(); //延時初始化 LCD_GPIO_Config(); LCD_INIT();//LCD初始化 USART1_Config(); //串口1初始化 ADC_Config(); LCD_write_string(5,0,"HUST"); LCD_write_string(1,1,”DISTANCE:"); while(1) { adc=Get_AD(); adc=adc〉〉2;//12位AD轉(zhuǎn)換為10位AD// Distance=(10485/(average_adc+5))-4;float_Distance=(1/(adc*(0。0000954)+0.000502))—4; Sum_Distance+=float_Distance; if(10==i) { float_Distance=Sum_Distance/10; Display_Distance(10,1,float_Distance); printf("濾波后的距離%3.2fcm\n",float_Distance); Sum_Distance=0.0; i=0; }adc1=((float)adc*3。3/4096);//printf("\r\n電壓值=%2.2fV\r\n",adc1);// printf("當(dāng)前距離%dCM\n",Distance);//printf(”AD轉(zhuǎn)換值%d\n",adc);//printf(”實時距離%3。1fcm\n”,float_Distance);// Display_Distance(10,1,float_Distance); i++; delay_ms(100); }}#include”ADC.h”/****************************************************************函數(shù)名:ADC_Config功能:ADC初始化***************************************************************/voidADC_Config(void){ ADC_InitTypeDefADC_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOA,ENABLE);//打開ADC1時鐘,打開GPIOC時鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;//PA7配置成模擬輸入模式 GPIO_InitStructure。GPIO_Mode=GPIO_Mode_AIN; GPIO_Init(GPIOA,&GPIO_InitStructure); ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; //獨立模式 ADC_InitStructure.ADC_ScanConvMode=ENABLE; //連續(xù)多通道模式 ADC_InitStructure.ADC_ContinuousConvMode=ENABLE; //連續(xù)轉(zhuǎn)換 ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None; //模數(shù)轉(zhuǎn)換由軟件啟動ADC_InitStructure。ADC_DataAlign=ADC_DataAlign_Right; //ADC數(shù)據(jù)右對齊 ADC_InitStructure.ADC_NbrOfChannel=1; //掃描通道數(shù),從1到16 ADC_Init(ADC1,&ADC_InitStructure); ADC_RegularChannelConfig(ADC1,ADC_Channel_7,1,ADC_SampleTime_71Cycles5);//通道PA7,采用時間為55.5周期,1代表規(guī)則通道第一個 ADC_Cmd(ADC1,ENABLE);//使能ADC1 ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能ADC1_7軟件轉(zhuǎn)換開始}u16Get_AD(void){ while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//檢測轉(zhuǎn)換結(jié)束標(biāo)志位,等待轉(zhuǎn)換結(jié)束returnADC_GetConversionValue(ADC1); //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果}#include”lcd1602.h"#include"SYSTICK。h”#include”GPIO.h”#include〈stdio.h〉/**********判忙函數(shù)*****************/u8LCD_check_busy(){//u8ReadValue;GPIO_Write(GPIOC,0xFF);RS_CLR;delay_us(1);RW_SET;delay_us(1);do{EN_CLR;delay_us(200);EN_SET;delay_us(200);}while(GPIOC-〉IDR&0X80);return(u8)0;}/*************lcd寫命令********************/voidLCD_write_com(unsignedcharcom){//while(LCD_check_busy());//????EN_CLR;delay_us(1);RS_CLR;delay_us(1);RW_CLR; delay_us(1);GPIO_Write(GPIOC,com);delay_us(500);EN_SET;delay_ms(1);EN_CLR;delay_us(100);}/***************LCD寫數(shù)據(jù)*****************/voidLCD_write_data(charData){while(LCD_check_busy());EN_CLR;delay_us(1);RS_SET;delay_us(1);RW_CLR;delay_us(1);GPIO_Write(GPIOC,Data);delay_us(500);EN_SET;delay_ms(1);EN_CLR;delay_us(100);}/********清屏***************/voidLCD_Clear(void){LCD_write_com(0x01);delay_ms(5);}/***************lcd寫字符串******************/voidLCD_write_string(unsignedcharx,unsignedchary,char*s){if(y==0){LCD_write_com(0x80+x);}else{LCD_write_com(0xc0+x);}while(*s){ LCD_write_data(*s);s++;delay_us(500);}}/***************lcd寫字符函數(shù)*******************/voidLCD_write_char(unsignedcharx,unsignedchary,unsignedchardata){ if(y==0){LCD_write_com(0x80+x);}else{LCD_write_com(0xc0+x);}LCD_write_data(data);delay_us(500);}/***********lcd初始化***********************/voidLCD_INIT(void){delay_ms(15);LCD_write_com(0x38);delay_ms(5);LCD_write_com(0x38);delay_ms(5);LCD_write_com(0x38);delay_ms(5);LCD_write_com(0x38);delay_ms(5);LCD_write_com(0x08);delay_ms(5);LCD_write_com(0x01);delay_ms(6);LCD_write_com(0x06);delay_ms(5);LCD_write_com(0x0c);delay_ms(5);}/******************************************函數(shù)功能:在指定位置顯示距離*輸入:坐標(biāo),距離值****************************************/voidDisplay_Distance(unsignedcharx,unsignedchary,floatnumber){ charnum[10];char*str=num;//為指針分配棧上內(nèi)存空間 sprintf(str,”%4.2f”,number); LCD_write_string(x,y,str);} 附錄B

附錄C文獻(xiàn)翻譯:基于自動測距嵌入式CPU系統(tǒng)的車輛摘要:基于車輛的光機(jī)電自動測距系統(tǒng)的結(jié)構(gòu)和原理,在嵌入式CPU的基礎(chǔ)上,本文有一個關(guān)于汽車測距系統(tǒng)的體系結(jié)構(gòu)與設(shè)計和風(fēng)險評估與決策的討論和研究。嵌入式系統(tǒng)的解決方案已經(jīng)得到了良好的實時性能,它可以促進(jìn)該系統(tǒng)的數(shù)據(jù)處理能力.本文主要介紹了基于單片機(jī)的測距系統(tǒng)、硬件體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)和一些其他基于嵌入式系統(tǒng)的關(guān)鍵技術(shù)的測距系統(tǒng)等一些缺陷,它還引入了使用兩個激光雷達(dá)光探測和測距方法的解決方案。一、介紹單片機(jī)廣泛用于傳統(tǒng)的控制系統(tǒng)。但隨著科學(xué)技術(shù)和計算機(jī)的發(fā)展,發(fā)現(xiàn)單片機(jī)已經(jīng)不能滿足越來越多的綜合性,多功能化,模塊化的檢測和控制系統(tǒng)的要求。嵌入式系統(tǒng)已經(jīng)有了在未來控制系統(tǒng)發(fā)展趨勢。在這里,我們采用了嵌入式的杰出系統(tǒng)之一:Linux.Linux是一個小型的操作系統(tǒng),只滿足嵌入式系統(tǒng)的需求。它包括一個內(nèi)核和指定的一些系統(tǒng)模塊。小型嵌入式Linux包括三個基礎(chǔ)元素,包括引導(dǎo)程序,微內(nèi)核,初始化過程。支持Linux的CPU系統(tǒng)包括X86,Alpha,Sparc,Mips,PPC,Arm等。Linux的存儲設(shè)備不是傳統(tǒng)的軟磁盤或硬盤,而是ROM,緊湊型閃存,磁盤上的芯片系統(tǒng)或索尼的記憶芯片.內(nèi)存儲器可以使用通用存儲器或特殊的RAM。相比較其他嵌入式系統(tǒng),Linux是不僅免費的,而且是一個開源項目。作為一個可定制的平臺,Linux應(yīng)該是一種流行的嵌入式產(chǎn)品的系統(tǒng)被應(yīng)用于許多公司??紤]到Linux是開放性的、良好的支撐網(wǎng)絡(luò)、穩(wěn)定安全和其他一些優(yōu)點,我們傾向于采用Linux作為嵌入式系統(tǒng)的自動測距系統(tǒng)的車輛.因此,本文對基于Linux系統(tǒng)的車載測距系統(tǒng)的研究。我們將詳細(xì)分析了硬件設(shè)計、軟件設(shè)計和相關(guān)的一些關(guān)鍵技術(shù)。二、基于單片機(jī)的測距系統(tǒng)道路車輛的不斷增加,交通事故也日益增多。作為保護(hù)車輛運行的安全性的有效手段,車輛風(fēng)險評估和決策的自動測距系統(tǒng)也應(yīng)運而生,并逐漸發(fā)展起來。該系統(tǒng)是一種檢測裝置,它可以在碰撞發(fā)生之前給司機(jī)發(fā)出音頻或視覺警告信號。它安裝在車內(nèi),并及時檢測障礙物和車輛,并且當(dāng)之間的距離必要時,發(fā)送警告信號讓司機(jī)采取為應(yīng)對特殊情況的應(yīng)急措施,如果必要的話,開始自動制動系統(tǒng)或觸發(fā)器應(yīng)急系統(tǒng),以避免事故的發(fā)生.該系統(tǒng)的核心是迅速和準(zhǔn)確地測量出車輛與障礙物之間的距離,并及時發(fā)送警告信號。如果一個自動制動剎車系統(tǒng)或一個安裝氣囊安全系統(tǒng),它也可以自動處理高風(fēng)險緊急[1,2,3]?;趥鹘y(tǒng)的單片機(jī)測距系統(tǒng)被示為圖1,它被脈沖觸發(fā)并有激光頭發(fā)出檢測的光束,并且通過獲得的反射光線和距離計算公式來實現(xiàn)。它可以完成的計算,但它也有一些缺陷,它很容易被外部噪聲干擾。并且單片機(jī)數(shù)據(jù)處理能力較弱,脈沖頻率受限制.因此,如果車輛在非常高的速度運行時,基于單片機(jī)測距系統(tǒng)可能過載并進(jìn)行了錯誤的計算將其引導(dǎo)到一個錯誤的決定,這當(dāng)車輛在高速運行時是很危險的。所以現(xiàn)在我們對基于嵌入式系統(tǒng)的測距系統(tǒng)的車輛進(jìn)行探討和研究。該系統(tǒng)是建立在MPC5200嵌入式微處理器,采用光機(jī)電一體化技術(shù)。首先介紹了車輛的風(fēng)險評估和決策的自動測距系統(tǒng)的工作原理。其次對它的實用系統(tǒng)組成進(jìn)行了分析。最后,提供了一個可行的結(jié)構(gòu)自動測距系統(tǒng)的設(shè)計。三、主要工作原理A、嵌入式系統(tǒng)的體系結(jié)構(gòu)車輛的自動測距系統(tǒng)主要由微處理器、功率組件、前探測器(左和右)、背面探測器(左和右)、警報部件和GUI界面。該體系結(jié)構(gòu)示于圖2。該控制模塊由嵌入式微處理器子系統(tǒng)、電源部件、報警部件和GUI模塊,它安裝在轉(zhuǎn)向室的儀器板的;兩個前探測器安裝在后視鏡中的操舵室的左,右兩側(cè)的背面;兩到四組探測器安裝在汽車外側(cè)及汽車的底部;主要控制模塊,前端檢測器和背面探測器與長線驅(qū)動器[4,5,6]相連。B、光機(jī)電一體化系統(tǒng)的工作原理前面和后面的檢測器可用于測量發(fā)射脈沖到達(dá)障礙物并返回到控制模塊的間隔。區(qū)別在于前面探測器發(fā)送時間間隔被嵌入式微處理器得到,而后面檢測器發(fā)送時間間隔由一個HIS/HSO接口得到。該控制模塊將根據(jù)間隔和距離確定危險水平,如果結(jié)果是在安全極限時,警報或安全保護(hù)系統(tǒng)將自動啟動。由前、后、左、右探測器得到不同的報警方式和處理方法用于處理不同的情況。當(dāng)該距離小于預(yù)定值時,系統(tǒng)發(fā)出報警信號;當(dāng)距離小于所述高風(fēng)險值,在系統(tǒng)啟動的安全防護(hù)裝置[7,8,9]。四、激光雷達(dá)測距系統(tǒng)A、系統(tǒng)結(jié)構(gòu)的組成在現(xiàn)代科學(xué)領(lǐng)域,測距技術(shù)包括超聲波測距,激光雷達(dá)測距波,紅外線測距系統(tǒng)和衛(wèi)星導(dǎo)航測距技術(shù).考慮到精度和穩(wěn)定性,我們采用激光雷達(dá)測距技術(shù),并使用激光雷達(dá)作為實際測距成分[10,11]。實際工作系統(tǒng)包括激光測距激光雷、CPU、正面和背面環(huán)境檢測激光雷達(dá)、液晶顯示器、發(fā)送端和接端、車速傳感器等,其工作原理如圖3所示.測距和速度檢測激光雷達(dá)安裝在車輛的前部。系統(tǒng)編碼和調(diào)制從半導(dǎo)體激光器發(fā)出的脈沖。激光雷達(dá)天線發(fā)射激光到障礙物或汽車,并接收由激光雷達(dá)的反射信號,則控制模塊將信號解調(diào)得到的距離和方位。通過控制模塊不斷分析距離和方位數(shù)據(jù),可以判斷對象是否移動和移動物體的速度和距離還有風(fēng)險水平,如果可能與對象發(fā)生碰撞,系統(tǒng)會發(fā)出警報信號,調(diào)整汽車的速度和行駛方向。該系統(tǒng)通過使用光切片法得到目標(biāo)的距離.該系統(tǒng)包括一個CCD攝像機(jī)和激光裝置。相機(jī)設(shè)置為一個固定的姿態(tài)和距離的激光設(shè)備。相機(jī)設(shè)置為一個固定的姿態(tài)和距離與激光裝置之間.目標(biāo)上的投影線由CCD照相機(jī)觀察到.通過三角測量使用檢測到的線得到的車輛的相對位置.該系統(tǒng)的分辨率取決于攝像機(jī)的分辨率的配置。B、硬件設(shè)計1、系統(tǒng)架構(gòu):在的實際的硬件系統(tǒng)構(gòu)成,嵌入式微處理器型號是MPC5200。飛思卡爾的高度集成,高性價比的MPC5200非常適合于網(wǎng)絡(luò),媒體,工業(yè)控制和汽車應(yīng)用.它提供760MIPS與浮點單元(FPU),硬件內(nèi)存管理單元(MMU)用于快速切換任務(wù),多個I/O口,以及工作在一個功耗比的情況下。MPC5200服務(wù)運算網(wǎng)絡(luò)媒體網(wǎng)關(guān)、網(wǎng)絡(luò)訪問存儲、機(jī)頂盒、音頻自動點唱汽車、互聯(lián)網(wǎng)接入、工業(yè)自動化、圖像檢測/分析和電子/醫(yī)療器械市場。實時操作系統(tǒng)(RTOS)[12,13]和開發(fā)板與板級支持包(BSP)的可靠選擇為用戶提供了一個完整而靈活的解決方案.圖4是實用的硬件結(jié)構(gòu)。當(dāng)激光雷達(dá)光學(xué)天線的反射信號被接收,編碼、調(diào)制和解調(diào)之后,它被轉(zhuǎn)換為電壓信號,可以容易地被處理,并且該電壓信號由A/D轉(zhuǎn)換器轉(zhuǎn)換,并通過I/O口發(fā)送到MPC5200.以同樣的方式,從正面,背面,側(cè)面環(huán)境條件探測器從不同方向獲得的信息,并且將它們通過I/O電路發(fā)送到MPC5200處理。MPC5200與PCI顯示模塊或LC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論