版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、4XfQINGDAOUNIVERSITY本科畢業(yè)論文(設(shè)計(jì))題目:GPS定位系統(tǒng)設(shè)計(jì)學(xué)院:自動(dòng)化工程學(xué)院專業(yè):電子信息科學(xué)與技術(shù)班級(jí):2007級(jí)1班姓名:#指導(dǎo)教師:#$#2011 年 6 月 2 日GPS 定位系統(tǒng)設(shè)計(jì)TheDesignofGPSPositioningSyste摘要本系統(tǒng)設(shè)計(jì)的是基于GPS定位系統(tǒng)的公交車自動(dòng)報(bào)站系統(tǒng)。硬件上是由單片機(jī)(SPCE061A)、液晶顯示模塊、GPS接受器、SPR模組等組成。能夠?qū)崿F(xiàn)衛(wèi)星定位,公交車語音報(bào)站等功能。該系統(tǒng)通過實(shí)時(shí)對(duì)GPS真塊輸出數(shù)據(jù)采集,并根據(jù)得到的經(jīng)緯度信息判斷公交車當(dāng)前是否到達(dá)預(yù)設(shè)的各個(gè)站點(diǎn)。本系統(tǒng)的優(yōu)越性主要體現(xiàn)在通過GPS寸公
2、交車進(jìn)行實(shí)時(shí)定位,無需人工干預(yù),便可準(zhǔn)確無誤的進(jìn)行自動(dòng)報(bào)站,以實(shí)現(xiàn)朽能化和高可靠性。關(guān)鍵詞GPS單片機(jī)定位報(bào)站AbstractThissystemprovidesthefunctionoftheGPSbuslocationandstopreportingItsbasedontheSPCE061AMCU,LCDmodule,GPSreceiver,SPRmoduleandothercomponents.Itcanachievesatellitepositioning,busstopsreportingandotherfunctions.Thesystemisbasedonreal-timeGPS
3、dataacquisitionmodulegettingtheinformationoflatitudeandlongitudeanddeterminethecurrentbusstop.Advantagesofthissystemismainlythatthroughreal-timeGPSpositioningonthebus,withouthumanintervention,itcanbeaccurateforautomaticstationinordertoachieveenergyandhighreliabilityofthedecadent.KeywordsGPSMCUpositi
4、oningstopreporting目錄前言 1第 1 章總體方案 21.1系統(tǒng)供電電源選擇2.1.2控制器選擇2.1.3定位裝置GPS的選擇3.1.4顯示器件選擇4.第 2 章硬件設(shè)計(jì) 5總體設(shè)計(jì)5.各模塊設(shè)計(jì)6.(1)電源設(shè)計(jì)6.(1)微控制器7.(1)GPS接收器1.2(1)SPR模組14(1)C系列中文液晶模塊15第 3 章軟件設(shè)計(jì) 161GPS定位的實(shí)現(xiàn)1.61.2GPS絕對(duì)定位161.2GPS定位相關(guān)概念161.2GPS接收器1.71.2NMEA0183標(biāo)準(zhǔn)語句171液晶顯示部分設(shè)計(jì)231.3C系列中文模塊顯示資料RAM231.3顯示程序?qū)崿F(xiàn)241SPR_Demo的軟件設(shè)計(jì)251語
5、音報(bào)站設(shè)計(jì)27第 4 章測(cè)試方法 28測(cè)試方法28510-|-MDHcnckfX2A圖2.3LM2596PCB布線圖1IM/LEDU2ASU17+5VN5OUTci6+cr用lOWlOOUF-AGXDWDDAVDD4微控制器.SPCE061A是由凌陽科技推出的一個(gè)16位結(jié)構(gòu)的微控制器。 考慮到用戶在存儲(chǔ)器資源方面較少的資源需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存FLASHROM。較高的處理速度使得以nSP選夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào),適用在數(shù)字語音識(shí)別應(yīng)用領(lǐng)域。SPCE061A在工作電壓范圍內(nèi)(2.6V3.6V)的工作速度0.32MHz49.152MHz,
6、較高的工作速度使其應(yīng)用領(lǐng)域更加拓寬。2K字SRAM和32K字閃存ROM僅僅占了一頁存儲(chǔ)空間,32位可編程的多功能I/O端口;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;低電壓復(fù)位/監(jiān)測(cè)功能;32768Hz實(shí)時(shí)時(shí)鐘;雙通道10位DAC方式的音頻輸出功能;8通道10位模-數(shù)轉(zhuǎn)換輸入功能并具有內(nèi)置自動(dòng)增益控制功能的麥克風(fēng)輸入方式,oSPCE061A是數(shù)字聲音和語音識(shí)別產(chǎn)品的一種最經(jīng)濟(jì)的應(yīng)用。.結(jié)構(gòu)概覽SPCE061A的結(jié)構(gòu)如圖2.5所示:AUD2出仃輸入輸;H接U32管腳通工輸出端口IOA15-D圖2.5SPCE061A的結(jié)構(gòu)ICESCKICESDA16位微FLASH控制牌LINSP”一ICERAM一一MICIN實(shí)忖
7、時(shí)伊雙通芯位DACAUDIIOB15-0ICEEM-CPUfw7通道104,ADG單通道ADC+AGC雙16位定時(shí)滿/計(jì)數(shù)器時(shí)班中斷控制.SPCE061A共有84個(gè)引腳,封裝形式為PLCC84,它的排列如圖2.6所示,.SPCE061A的性能參數(shù)如下:?16位nSP能處理器;?工作電壓:VDD為2.63.6V(cpu);VDDH為VDD5.5V(I/O);?CPU時(shí)鐘:0.32MHz49.152MHz;?32768Hz實(shí)時(shí)時(shí)鐘;?內(nèi)置32K閃存ROM;?內(nèi)置2K字SRAM;?晶體振蕩器;?可編程音頻處理;?系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2A,3.6V;?2個(gè)10位DAC(數(shù)-
8、模轉(zhuǎn)換)輸出通道;?2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值);?32位通用可編程輸入/輸出端口;?14個(gè)中斷源可來自定時(shí)器A/B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;?使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);?具備觸鍵喚醒的功能;O9Q卜 sum金XTE&TVDDXICE:UCERKXIHIMVS5PAINDAOVFCLF二ME啻AG_3二一-s-5-DVO一二二一-NCX,NCNC業(yè)邛?i&Bit1001?I0B13OB14IOBUVSSXROMTL0A15TOA14LOAIJKM12EDAllE0A10IOA圖2.6SPCE061A引
9、腳排列圖?鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào);?7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器?具備串行設(shè)備接口;?聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)功能;.SPCE061A最小系統(tǒng)最小系統(tǒng)接線如圖2.7所示,在OSC0、OSC1端接上晶振及諧振電容,只要在鎖相環(huán)壓控振蕩器的阻容輸入VCP端接上相應(yīng)的電容電阻后即可工作。其它不用的電源端和地端需要接上0.1仙F的去藕電容提高抗干擾能力。.指令系統(tǒng)指令是CPU執(zhí)行某種操作的命令。微處理器(MPU)或微控制器(MCU)所能夠識(shí)別全部指令的集合被稱為指令系統(tǒng)或指令集。 指令系統(tǒng)是制造廠家在當(dāng)初設(shè)計(jì)CPU時(shí)
10、就賦予它的功能, 要求用戶必VflEF 工mi02323-X-1-s1-s - -y y匚晝:一aaaa*W*WN N第一器+=一W一7G_7G_工生三*言一M 二NCNCN:NCFVJ?loanICE12KBI-IQSl:ESLZE?限mONT1OA15JO待命模式(Standbymode)。獲取了經(jīng)緯度數(shù)據(jù),得到位置信息后,可在12864c型液晶中文顯示模塊顯示,單片機(jī)通過串口方式向它發(fā)送控制指令,液晶顯示模塊上電時(shí)需通過軟件初始化并配置相關(guān)參數(shù)。第3章軟件設(shè)計(jì)GPS定位的實(shí)現(xiàn)GPS 絕對(duì)定位絕對(duì)定位也稱單點(diǎn)定位, 指的是在協(xié)議地球坐標(biāo)系中, 直接確定觀測(cè)站相對(duì)于坐標(biāo)原點(diǎn) (地球質(zhì)心)絕對(duì)
11、坐標(biāo)的一種方法。“絕對(duì)”一詞主要是為了區(qū)別相對(duì)定位,絕對(duì)定位和相對(duì)定位在觀測(cè)方式、數(shù)據(jù)處理、定位精度以及應(yīng)用范圍等方面均有原則區(qū)別。絕對(duì)定位的基本原理:以GPS衛(wèi)星和用戶接收機(jī)天線之間的距離(或距離差)觀測(cè)量為基礎(chǔ),根據(jù)已知的衛(wèi)星瞬時(shí)坐標(biāo),來確定接收機(jī)天線所對(duì)應(yīng)的點(diǎn)位,即觀測(cè)站的位置。GPS絕對(duì)定位方法的實(shí)質(zhì)是測(cè)量學(xué)中的空間距離后方交會(huì)。原則上觀測(cè)站位于以3顆衛(wèi)星為球心,相應(yīng)距離為半徑的球與觀測(cè)站所在平面交線的交點(diǎn)上。由于GPS采用單程測(cè)距原理, 實(shí)際觀測(cè)的站星距離均含有衛(wèi)星鐘和接收機(jī)鐘同步差的影響 (偽距) ,衛(wèi)星鐘差可根據(jù)導(dǎo)航電文中給出的有關(guān)鐘差參數(shù)加以修正,而接收機(jī)的鐘差一般難以預(yù)料。通
12、常將其作為一個(gè)未知參數(shù),在數(shù)據(jù)處理中與觀測(cè)站坐標(biāo)一并求解。一個(gè)觀測(cè)站實(shí)時(shí)求解4個(gè)未知數(shù),至少需要4個(gè)同步偽距觀測(cè)值,即4顆衛(wèi)星。絕對(duì)定位可根據(jù)天線所處的狀態(tài)分為動(dòng)態(tài)絕對(duì)定位和靜態(tài)絕對(duì)定位。無論動(dòng)態(tài)還是靜態(tài),所依據(jù)的觀測(cè)量都是所測(cè)的站星偽距。根據(jù)觀測(cè)量的性質(zhì),偽距有測(cè)碼偽距和測(cè)相偽距,絕對(duì)定位相應(yīng)分為測(cè)碼偽距絕對(duì)定位和測(cè)相偽距絕對(duì)定位。GPS 定位相關(guān)概念在本系統(tǒng)中定位是指MCU從GPS模塊發(fā)送過來的數(shù)據(jù)中提取出經(jīng)緯度信息,并根據(jù)兩個(gè)坐標(biāo)之間的換算從而得到位置信息,然后在液晶屏上顯示具體位置。根據(jù)國標(biāo),各級(jí)GPS相鄰點(diǎn)間平均距離應(yīng)符合規(guī)定的要求,而且相鄰點(diǎn)最小距離可為平均距離的1/31/2倍;最
13、大距離可為平均距離的23倍。觀測(cè)時(shí)段:測(cè)站上開始接收衛(wèi)星信號(hào)到觀測(cè)停止,連續(xù)工作的時(shí)問段簡稱時(shí)段。同步觀測(cè):兩臺(tái)或兩臺(tái)以上接收機(jī)同時(shí)對(duì)同一組衛(wèi)星進(jìn)行的觀測(cè)。同步觀測(cè)環(huán):三臺(tái)或三臺(tái)以上接收機(jī)同步觀測(cè)獲得的基線向量所構(gòu)成的閉合環(huán),簡稱同步環(huán)。獨(dú)立基線:對(duì)干N臺(tái)GPS接收機(jī)構(gòu)成的同步觀測(cè)環(huán),有J條同步觀測(cè)基線,其中獨(dú)立基線數(shù)為N1。獨(dú)立基線之間沒有相關(guān)性。獨(dú)立觀測(cè)環(huán):由獨(dú)立觀測(cè)所獲得的基線向量構(gòu)成的閉合環(huán),簡稱獨(dú)立環(huán)。異步觀測(cè)環(huán):在構(gòu)成多邊形環(huán)路的所有基線向量中,只要有非同步觀測(cè)基線向量,則該多邊形環(huán)路叫異步觀側(cè)環(huán),簡稱異步環(huán)。非獨(dú)立基線:除獨(dú)立基線外的其他叫非獨(dú)立基線,總基線數(shù)與獨(dú)立基線之差為非獨(dú)
14、立基線數(shù)。GPS 接收器實(shí)現(xiàn)公交自動(dòng)報(bào)站就必須先要獲得公交車的定位信息,使用GPS接收裝置單片機(jī)發(fā)送定位信息,單片機(jī)接收GPS送來的經(jīng)緯度信息,與預(yù)先存儲(chǔ)的各站點(diǎn)坐標(biāo)庫相比較,當(dāng)進(jìn)入某一站的坐標(biāo)范圍,單片機(jī)控制產(chǎn)生一個(gè)觸發(fā)信號(hào),此時(shí)語音自動(dòng)報(bào)出所到站點(diǎn)。本文使用的GPS以NMEA-0183格式輸出,數(shù)據(jù)代碼為ASCII碼字符。該格式比較直觀和易于處理,通過程序進(jìn)行判別、分離,可提取經(jīng)度以及緯度信息。GPS發(fā)送的經(jīng)緯度信息是將數(shù)字以ASCII碼形式表示,ASCII碼數(shù)字與實(shí)際相應(yīng)數(shù)字具有一一對(duì)應(yīng)的關(guān)系,這方便了我們通過簡單的轉(zhuǎn)換關(guān)系得到以數(shù)字形式表示的經(jīng)緯度信息,從而利于在接下來的比較中只需進(jìn)行
15、簡單的數(shù)值大小比較。SiRFstarm型GPS模塊可輸出5句語句,分別是GPGSV,GPGGA,GPGSA,GPRMC,GPVTGo語句以標(biāo)準(zhǔn)的格式進(jìn)行傳輸。不同的語句中傳送不同的信息。每條語句以$開頭,同一條語句中的不同信息則通過逗號(hào)(ASCII碼形式)分開,一條語句往往包括時(shí)間、經(jīng)緯度等數(shù)據(jù),軟件根據(jù)需要采集相應(yīng)數(shù)據(jù)即可。NMEA0183 標(biāo)準(zhǔn)語句GlobalPositioningSystemFixData(GGA)GPS定位信息$GPGGA,M,M,*hh1UTC時(shí)間,hhmmss(時(shí)分秒)格式2緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)3緯度半球N(北半球)或S(南半球)
16、4經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)5經(jīng)度半球E(東經(jīng))或W(西經(jīng))6GPS狀態(tài):0=未定位,1=非差分定位,2二差分定位,6=正在估算7正在使用解算位置的衛(wèi)星數(shù)量(0012)(前面的0也將被傳輸)8HDOP水平精度因子(0.599.9)9海拔高度(-9999.99999910地球橢球面相對(duì)大地水準(zhǔn)面的高度11差分時(shí)間(從最近一次接收到差分信號(hào)開始的秒數(shù),如果不是差分定位將為空)12差分站ID號(hào)00001023(前面的0也將被傳輸,如果不是差分定位將為空)GPSDOPandActiveSatelHtes(GSA)當(dāng)前衛(wèi)星信息$GPGSA,*hh1模式,M=手動(dòng),A=自動(dòng)
17、定位類型,1二沒有定位,2=2D定位,3=3D定位3PRN碼(偽隨機(jī)噪聲碼),正在用于解算位置的衛(wèi)星號(hào)(0132,前面的0也將被傳輸)。4PDOP位置精度因子(0.5995HDOP水平精度因子(0.5996VDOP垂直精度因子(0.599.9)GPSSatellitesinView(GSV)可見衛(wèi)星信息$GPGSV,*hhGSV語句的總數(shù)本句GSV的編號(hào)可見衛(wèi)星的總數(shù)(0012,前面的0也將被傳輸)PRN碼(偽隨機(jī)噪聲碼)(0132,前面的0也將被傳輸)衛(wèi)星仰角(0090度,前面的0也將被傳輸)衛(wèi)星方位角(000359度,前面的0也將被傳輸)信噪比(0099dB,沒有跟蹤到衛(wèi)星時(shí)為空,前面的0
18、也將被傳輸)注:,信息將按照每顆衛(wèi)星進(jìn)行循環(huán)顯示,每條GSV語句最多可以顯示4顆衛(wèi)星的信息。其他衛(wèi)星信息將在下一序列的NMEA0183語句中輸出。RecommendedMinimumSpecificGPS/TRANSITData(RMC)推薦定位信息$GPRMC,*hh1UTC時(shí)間,hhmmss(時(shí)分秒)格式2定位狀態(tài),A=有效定位,V-無效定位3緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸4緯度半球N(北半球)或S(南半球)5經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)經(jīng)度半球E(東經(jīng))或W(西經(jīng))地面速率(000.0999.9節(jié),前面的0也將被傳輸)地面航向(000
19、.0359.9度,以真北為參考基準(zhǔn),前面的0也將被傳輸)9UTC日期,ddmmyy(日月年)格式10磁偏角(000.0180.0度,前面的0也將被傳輸)11磁偏角方向,E(東)或W(西)模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)TrackMadeGoodandGroundSpeed(VTG$GPVTG,T,M,N,K,*hh1以真北為參考基準(zhǔn)的地面航向(000359度,前面的0也將被傳輸)2以磁北為參考基準(zhǔn)的地面航向(000359度,前面的0也將被傳輸)3地面速率(000.0999.9節(jié),前面的0也將被傳輸)4地面速率(0000.01851.
20、8公里/小時(shí),前面的0也將被傳輸)5模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)GeographicPosition(GLL)定位地理信息$GPGLL,*hh1緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)2緯度半球N(北半球)或S(南半球)3經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)4經(jīng)度半球E(東經(jīng))或W(西經(jīng))5UTC時(shí)間,hhmmss(時(shí)分秒)格式6定位狀態(tài),A=有效定位,V-無效定位7模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)如實(shí)時(shí)接收GPRMC語句為:$G
21、PRMC,052635,A,3604.2405,N,12025.0738,E,0.00,0.00,150410,*62這是一條GPS定位數(shù)據(jù)信息語句,意思為UTC時(shí)間為05時(shí)26分35秒,當(dāng)前狀態(tài)為定位狀態(tài),位置在北緯36度04.24005分,東經(jīng)120度25.0738分,當(dāng)前處于定位靜止?fàn)顟B(tài),故速度和航向?yàn)?,校驗(yàn)和為62H。圖3.1表示了程序如何控制從語句中提取出經(jīng)緯度數(shù)據(jù)。圖3.1經(jīng)緯度接收提取在軟件設(shè)計(jì)中,GPRMC即可作為語句識(shí)別的ID,語句中各有效信息之間通過逗號(hào)隔開,在語句中位置確定,軟件通過對(duì)接收的逗號(hào)計(jì)數(shù)以提取所需量。當(dāng)程序識(shí)別出GPRMC語句后,允許接收標(biāo)志置位,同時(shí)將逗號(hào)
22、計(jì)數(shù)變量清零。此后每次接收到逗號(hào)該變量加GPRMC語句第3個(gè)逗號(hào)后面代表緯度數(shù)據(jù),第5個(gè)逗號(hào)后面代表經(jīng)度數(shù)據(jù),所以當(dāng)逗號(hào)計(jì)數(shù)到3時(shí),允許接收緯度數(shù)據(jù);逗號(hào)計(jì)數(shù)到5,則可接收經(jīng)度數(shù)據(jù)。當(dāng)接收到語句結(jié)束字符“*”時(shí),則停止接收數(shù)據(jù),相應(yīng)計(jì)數(shù)器也清零,準(zhǔn)備下次接收。軟件設(shè)計(jì)如下:/*$GPRMC,*hh1UTC時(shí)間,hhmmss(時(shí)分秒)格式2定位狀態(tài),A=有效定位,丫=無效定位3緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸4緯度半球N(北半球)或S(南半球)5經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)6經(jīng)度半球E(東經(jīng))或W(西經(jīng))7地面速率(000.0999.9節(jié),前面
23、的0也將被傳輸)地面航向(000.0359.9度,以真北為參考基準(zhǔn),前面的0也將被傳輸)9UTC日期,ddmmyy(日月年)格式10磁偏角(000.0180.0度,前面的0也將被傳輸)磁偏角方向,E(東)或W(西)模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)*/#includespce061a.h#includelcd.h#defineucharunsignedchar#defineuintunsignedintucharStrGpsWD105;ucharStrGpsJD115;uinti,k,b;uintRecflag;uintIgpsWD;
24、uintIgpsJD;uintNumcoma;/voidDisableALLOUT();/voidEnableGPRMC();voiddelay();voiddislpay1();voidmain()_asm(INTOFF);1。存放緯度數(shù)據(jù);/存放經(jīng)度數(shù)據(jù);記錄標(biāo)志;緯度數(shù)據(jù)計(jì)數(shù)變量;經(jīng)度數(shù)據(jù)計(jì)數(shù)變量;逗號(hào)計(jì)數(shù)變量;禁用所有輸出語句;/使t$GPRMC輸出語句;*P_IOB_Attrib=0 x0480;*P_IOB_Dir=0 x0400;*P_IOB_Data=0 x0000;intial_IO_lcd();init_lcd();*P_UART_Command1=0 x0020;*P_U
25、ART_BaudScalarLow=0 x0000;*P_UART_BaudScalarHigh=0 x0005;*P_UART_Command2=0 x0080;delay(100);*P_UART_Command1=0 x0080;_asm(INTIRQ);while(1)display1(0 x80,緯度:);display1(0 x88,經(jīng)度:);if(IgpsWD=10)if(IgpsJD=11)display2(0 x90,StrGpsWD1,StrGpsWD2);緯度strcat(s1,s2);連接字符串s1,s2display2(0 x91,StrGpsWD3,StrGpsWD
26、4);display2(0 x92,StrGpsWD5,StrGpsWD6);display2(0 x93,StrGpsWD7,StrGpsWD8);display2(0 x94,StrGpsWD9,);delay(100);display2(0 x98,StrGpsJD1,StrGpsJD2);經(jīng)度display2(0 x99,StrGpsJD3,StrGpsJD4);display2(0 x9a,StrGpsJD5,StrGpsJD6);display2(0 x9b,StrGpsJD7,StrGpsJD8);display2(0 x9c,StrGpsJD9,StrGpsJD10);dela
27、y(100);*P_Watchdog_Clear=0 x0001;串口接收中斷voidIRQ7(void)_attribute_(ISR);voidIRQ7(void)unsignedintii;ii=*P_UART_Command2;初始化IOB7、IOB10端口內(nèi)部復(fù)位設(shè)置波特率使能接收通道/使能接收中斷顯示接收到的數(shù)據(jù)ii&=0 x0080;if(ii=0 x0080)if(*P_UART_Data=0 x52)/R區(qū)分才旨令GPRMCRecflag=1;i=0;IgpsWD=0;IgpsJD=0;Numcoma=0;if(Recflag=1)if(*P_UART_Data=0 x2c)
28、/檢查逗號(hào),Numcoma+;if(Numcoma=3)*StrGpsWDIgpsWD=*P_UART_Data;IgpsWD+;if(Numcoma=5)*StrGpsJDIgpsJD=*P_UART_Data;IgpsJD+;if(*P_UART_Data=0 x2a)/檢查*StrGpsWDIgpsWD=0;*StrGpsJDIgpsJD尸0;Recflag=0;IgpsWD=0;IgpsJD=0;Numcoma=0;*P_UART_Command2=0 x0000;delay(500);*P_UART_Command2=0 x0080;)延時(shí)子程序voiddelay(uinta)whi
29、le(a-)*P_Watchdog_Clear=0 x0001;分離提取得到的是分離的ASCII碼型的字符串,無法直接用于車輛位置的判斷。根據(jù)數(shù)字的ASCII碼值對(duì)應(yīng)表將它轉(zhuǎn)化數(shù)字并整合成整型或者浮點(diǎn)型式數(shù)值,此時(shí)可方便地與站點(diǎn)坐標(biāo)庫進(jìn)行簡單的數(shù)值比較運(yùn)算。經(jīng)緯度坐標(biāo)的變化1秒約等于30米的距離,故設(shè)定以某站站牌為圓心,半徑60米(即經(jīng)緯度約2秒)內(nèi)區(qū)域?yàn)樵撜咀鴺?biāo)范圍,當(dāng)車駛?cè)朐搱A形區(qū)域則產(chǎn)生到站信號(hào);當(dāng)車駛離該區(qū)域則產(chǎn)生出站信號(hào),單片機(jī)發(fā)出聲音信號(hào),通過外接揚(yáng)聲器實(shí)現(xiàn)語音報(bào)站。坐標(biāo)比較程序:pp=trs_data(StrGpsWD1);qq=trs_data(StrGpsJD1);/轉(zhuǎn)化為浮
30、點(diǎn)型while(TotalStop-)坐標(biāo)比較*P_Watchdog_Clear=0 x0001;if(fabs(pp-strWD皿)=2)if(fabs(qq-strJD皿)=2)flag_in=1;break;3.2液晶顯示部分設(shè)計(jì)C 系列中文模塊顯示資料 RAM顯示數(shù)據(jù)RAM提供64x2個(gè)字節(jié)的空間,最多可以控制4行16字(64個(gè)字)的中文字型顯示,當(dāng)寫入顯示資料RAM時(shí),可以分別顯示CGROM,HCGROM與CGRAM的字型;本系列模塊可以顯示三種字型,分別是半寬的HCGROM字型、CGRAM字型及中文CGROM字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇, 在0000H000
31、6H的編碼中將選擇CGRAM的自定字型,02H7FH的編碼中將選擇半寬英數(shù)字的字型,至于A1以上的編碼將自動(dòng)的結(jié)合下一個(gè)字節(jié),組成兩個(gè)字節(jié)的編碼達(dá)成中文字型的編碼BIG5(A140D75F)GB(A1A0F7FF),詳細(xì)各種字型編碼如下:1,顯示半寬字型:將8位資料寫入DDRAM中,范圍為02H7FH的編碼。.顯示CGRAM字型:將16位資料寫入DDRAM中,總共有0000H,0002H,0004H,0006H四種編碼。.顯示中文字形: 將16位資料寫入DDRAM中, 范圍為A140HD75FH的編碼(BIG5) ,A1A0HF7FFH的編碼(GB)。將16位資料寫入DDRAM方式為透過連續(xù)寫
32、入兩個(gè)字節(jié)的資料來完成,先寫入高字節(jié)(D15D8)再寫入低字節(jié)(D7D0)。3.2.2 顯示程序?qū)崿F(xiàn)字符串組的形式存儲(chǔ)(數(shù)組str24存放站名表),并從臺(tái)東到苗嶺路依次編碼為00H23H,將其對(duì)應(yīng)站名在屏幕上顯小。12864c液晶中文顯示模塊每屏最多可實(shí)現(xiàn)32個(gè)中文字符。 字符顯示RAM在液晶模塊中的地址為80H9FH。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著對(duì)應(yīng)的關(guān)系,其對(duì)應(yīng)關(guān)系如表3.1所小。表3.112864c液晶中文顯示模塊字符顯示地址80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH9
33、8H99H9AH9BH9CH9DH9EH9FHvoidinit_lcd(void)(/*初始化程序*/P_IOA_Buffer|=lcd_rst;/*P_IOA_Buffer&=(lcd_psb);/*復(fù)位*/選擇串口*/lcd_delay(6);wr_lcd(comm,0 x30);/*30-wr_lcd(comm,0 x01);/*lcd_delay(100);wr_lcd(comm,0 x06);/*wr_lcd(comm,0 x0c);/*基本指令動(dòng)作*/清屏,地址指針指向00H*/光標(biāo)的移動(dòng)方向*/開顯示,關(guān)游標(biāo)*/)voidwr_lcd(unsignedintdat_comm,un
34、signedintcontent);/*voiddisplay1(unsignedintaddr,unsignedchar*ch)向液晶發(fā)送字節(jié)子程序*/;/*在地址addr顯示字符子程序*/本文選取了青島市125路公交車從臺(tái)東到苗嶺路共24站作為默認(rèn)線路。各站站名表以3.3SPR_Demo的軟件設(shè)計(jì)為了簡單起見,主函數(shù)中使用按鍵方式選擇播放A2000、S480錄音,函數(shù)流程如圖3.2所示:圖3.2主函數(shù)流程圖在這里掃描鍵盤的操作在128Hz的時(shí)基中斷中進(jìn)行,在語音播放時(shí)按鍵無效。A2000語音播放函數(shù)設(shè)計(jì):由于語音資源存儲(chǔ)在外擴(kuò)存儲(chǔ)器SPR4096上,語音播放采用手動(dòng)播放方式。手動(dòng)語音播放,
35、關(guān)鍵在于語音資源數(shù)據(jù)的獲取, 需要得到語音資源的地址。 下面分析一下剛剛燒錄文件的數(shù)據(jù)格式, 如圖3.3:在上圖的前4個(gè)字節(jié)為“SPR仇的ASCII碼,主要作用是標(biāo)識(shí)該芯片是通過ResWriter工具燒錄的(詳細(xì)參考ResWriter工具使用說明書一一索引表),接下來的4個(gè)字節(jié)為整合后資源的起始地址0000006E(由于SPR4096的最大地址為0 x7ffff,所以使用4個(gè)字節(jié)標(biāo)識(shí),即兩個(gè)字的長度),然后是整合后資源的結(jié)束地址。整合的概念,就是將多個(gè)資源文件通過特定的數(shù)據(jù)格式編成一個(gè)索引表,加在資源文件的前面,然后是資源文件1,資源文件2,ResWriter工具在用戶打開二進(jìn)制文件時(shí)自動(dòng)完成
36、上述過程,稱為整合。ResWriter工具是對(duì)整合后的文件進(jìn)行燒錄。接下來2個(gè)字節(jié)(0008)的數(shù)據(jù)表示整合的文件有8個(gè)資源。以上是整合后文件的一些信息,再接下來分別是每個(gè)資源的長度信息、起始地址和結(jié)束地址。在本例編程中主要關(guān)心語音資源文件起始地址和結(jié)束地址。由圖3.14可見第一個(gè)資源的起始地址存放在0 x0012、0 x0013、0 x0014、0 x0015的4個(gè)單元中,在程序中可以依次求得每個(gè)資源的地址。S480語音播放的實(shí)現(xiàn):由于S480格式的文件有帶文件頭的也有不帶文件頭的,這樣需要在手動(dòng)取語音資源時(shí)進(jìn)行判斷地址的起始地址。在示例中是這樣實(shí)現(xiàn)的,首先讀入前六個(gè)字節(jié)與文件頭(00FF0
37、0FF5355)對(duì)比,如果全部匹配,那么說明這是一個(gè)帶文件頭的資源文件,則取得該資源文件的起始地址的時(shí)候加上48(文件頭長48個(gè)字節(jié)),即作為真實(shí)資源的起始地址;如果沒有全部匹配,按照不帶文件頭的處理。DVR錄音與播放:錄音原理參考凌陽錄音的實(shí)現(xiàn),放音采用的是A2000格式。3.4語音報(bào)站設(shè)計(jì)車輛駛?cè)肽痴痉秶缕眱r(jià)表的同時(shí)需要通過語音報(bào)出當(dāng)前站提醒乘客下車,如“青島大學(xué)站到了,下車請(qǐng)走好”。車輛出站駛離該區(qū)域則語音提示下一站站名,提醒乘客做好下車準(zhǔn)備。語音資源經(jīng)過整合后存儲(chǔ)在外擴(kuò)存儲(chǔ)器SPR4096L1,當(dāng)需要發(fā)音時(shí),單片機(jī)根據(jù)所到站點(diǎn)讀取SP對(duì)應(yīng)聲音文件依次發(fā)聲。語音播放的關(guān)鍵在于語音資源
38、數(shù)據(jù)的獲取,即需要得到語音資源的地址。資源的起始地址以及結(jié)束地址分別以4個(gè)字節(jié)標(biāo)識(shí)。使用如下指令獲得語音資源的來時(shí)和結(jié)束地址。ulCon_AddrHighest=SP_SIOReadAByte(BASE_START_ADDRESS+SndIndex*12);ulCon_AddrHighest=ulCon_AddrHighest24;ulCon_AddrHigh=SP_SIOReadAByte(BASE_START_ADDRESS+SndIndex*12+1);ulCon_AddrHigh=ulCon_AddrHigh16;ulCon_AddrLow=SP_SIOReadAByte(BASE_S
39、TART_ADDRESS+SndIndex*12+2);ulCon_AddrLow=ulCon_AddrLow8;ulCon_AddrLowest=SP_SIOReadAByte(BASE_START_ADDRESS+SndIndex*12+3);ulCon_StartAddr=ulCon_AddrHighest|ulCon_AddrHigh|ulCon_AddrLow|ulCon_AddrLowest;其中BASE_START_ADDRESS定義為0 x0012,每個(gè)地址采用4個(gè)字節(jié)存儲(chǔ), 在分別取得地址后通過“或”操作得到地址。參數(shù)SndIndex是由調(diào)用函數(shù)傳遞過來的,意義在于使用第幾段
40、語音資源。比如使用第一段語音資源,那么傳過來0就可以了。BASE_START_ADDRESS是整合后文件的信息長度,在取得整合前文件的信息的時(shí)候要跳過這一段數(shù)據(jù),即BASE_START_ADDRESS+SndIndex*12為第SndIndex段資源起始地址的最高字節(jié)。第4章測(cè)試方法測(cè)試方法實(shí)現(xiàn)公交車自動(dòng)報(bào)站的關(guān)鍵在于行駛車輛的定位,所以GPS模塊的數(shù)據(jù)接收處理顯得尤為重要。GPS模塊的天線需要置于空曠室外才能達(dá)到最佳效果,置于室內(nèi)或者帶有鐵欄的窗口,會(huì)受到衛(wèi)星分布的限制,以及金屬屏蔽的影響,造成定位不靈敏,不準(zhǔn)確等現(xiàn)象。實(shí)際安裝時(shí),盡量避開上述集中位置,在本設(shè)計(jì)公交車自動(dòng)報(bào)站系統(tǒng)時(shí),需將天線固定于車頂以良好接收衛(wèi)星數(shù)據(jù)。首先測(cè)得125路車各站坐標(biāo),表4.1為125路車下行線苗嶺路一一山東頭站的經(jīng)緯度坐標(biāo)(以站牌所在位置為準(zhǔn))。表4.1苗嶺路一山東頭站經(jīng)緯度坐標(biāo)北緯東經(jīng)苗嶺路360554.551202717.88香港東路360540.171202729.35”海爾路360532.03”1202729.94”山東頭360523.62”1202707.28”*注:經(jīng)緯度坐標(biāo)按照度度。分分分分.分分格式給出;得到各站點(diǎn)經(jīng)緯度坐標(biāo)值后,根據(jù)軟件設(shè)置的以站牌為圓心,半徑60米左右的圓為該站范圍,當(dāng)車輛行駛過程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國旅游保險(xiǎn)行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 2025農(nóng)業(yè)生產(chǎn)承包合同書的寫法
- 2025企業(yè)管理合同范文
- 2025進(jìn)出口合同的商訂與履行
- 2025遙感衛(wèi)星影像數(shù)據(jù)購買合同
- 2025舞蹈班合作合同
- 2025靜壓管樁分包合同書
- 2025有關(guān)租房合同協(xié)議書下載
- 《假如給我三天光明》讀后感兩百字
- 《化學(xué)實(shí)驗(yàn)室安全》課程教學(xué)大綱
- 2024年人教版初二地理上冊(cè)期末考試卷(附答案)
- 《一元一次方程》復(fù)習(xí)學(xué)案
- 三甲醫(yī)院面試自我介紹課件
- 2024文旅景區(qū)秋季稻田豐收節(jié)稻花香里 說豐年主題活動(dòng)策劃方案
- 單招鐵路基礎(chǔ)知識(shí)題庫單選題100道及答案解析
- 高低壓供配電設(shè)備檢查和檢修保養(yǎng)合同3篇
- 投資可行性分析財(cái)務(wù)數(shù)據(jù)全套表格
- 2023-2024學(xué)年福建省廈門市八年級(jí)(上)期末物理試卷
- 易查云全球智能貿(mào)易信息查詢平臺(tái)商業(yè)計(jì)劃書
- 招標(biāo)文件的保密措施
評(píng)論
0/150
提交評(píng)論