版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
密級:公開NANCHANGUNIVERSITY學(xué)士學(xué)位論文THESISOFBACHELOR〔2023—2023年〕題目基于單片機(jī)的北斗導(dǎo)航接收機(jī)設(shè)計學(xué)院:信息工程系電子信息工程專業(yè)班級:生物醫(yī)學(xué)工程111班學(xué)生姓名:李杰學(xué)號:6103411013指導(dǎo)教師:盧宗武職稱:講師起訖日期:2023年3月16日至2023年6月1日南昌大學(xué)學(xué)士學(xué)位論文原創(chuàng)性申明本人鄭重申明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果。對本文的研究作出重要奉獻(xiàn)的個人和集體,均已在文中以明確方式說明。本人完全意識到本申明的法律后果由本人承當(dāng)。作者簽名:日期:學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保存、使用學(xué)位論文的規(guī)定,同意學(xué)校保存并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)南昌大學(xué)可以將本論文的全部或局部內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。保密□,在年解密后適用本授權(quán)書。本學(xué)位論文屬于不保密□?!舱堅谝陨舷鄳?yīng)方框內(nèi)打“√〞〕作者簽名:日期:導(dǎo)師簽名:日期:基于單片機(jī)的北斗導(dǎo)航接收機(jī)設(shè)計專業(yè):生物醫(yī)學(xué)工程學(xué)號:6103411013學(xué)生姓名:李杰指導(dǎo)教師:盧宗武摘要衛(wèi)星導(dǎo)航已經(jīng)成為繼互聯(lián)網(wǎng)、移動通信之后開展最快的信息產(chǎn)業(yè)之一,但凡涉及到位置、速度、時間信息的領(lǐng)域都與衛(wèi)星導(dǎo)航技術(shù)息息相關(guān)。中國北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDouNavigationSatelliteSystem,BDS)是中國自行研制的全球衛(wèi)星導(dǎo)航系統(tǒng),是繼美國全球定位系統(tǒng)(GPS)、俄羅斯格洛納斯衛(wèi)星導(dǎo)航系統(tǒng)(GLONASS)之后第三個成熟的衛(wèi)星導(dǎo)航系統(tǒng)。隨著北斗導(dǎo)航系統(tǒng)的不斷完善和相關(guān)芯片的開展,基于北斗導(dǎo)航系統(tǒng)的應(yīng)用越來越廣泛。本課題采用u-BloxM8導(dǎo)航信號接收模塊,結(jié)合STC12C5A32S2單片機(jī)設(shè)計北斗導(dǎo)航系統(tǒng)的接收機(jī)。U-BloxM8是三模接收模塊,能夠同時接收GPS、北斗、GLONASS的信號。本課題完成了導(dǎo)航信息接收機(jī)的根本設(shè)計,實(shí)現(xiàn)了位置經(jīng)緯度、移動速度、標(biāo)準(zhǔn)時間等相關(guān)信息的顯示功能,為今后北斗導(dǎo)航系統(tǒng)在各領(lǐng)域中的應(yīng)用打下堅實(shí)的根底。關(guān)鍵詞:北斗(BD)導(dǎo)航;u-BloxM8模塊;單片機(jī);導(dǎo)航數(shù)據(jù)AbstractThesatellitenavigationhasbecomeoneofthefastestdevelopinginformationindustriesfollowingtheInternetandthemobilecommunication.Alldomainsrelatedtotheposition,velocity,andtimeinformationarerelatedcloselywiththesatellitenavigationtechnology.TheBeiDouNavigationSatelliteSystem,aglobalnavigationsatellitesystem,isdevelopedandoperatedbyChinaindependently,whichhasbecomethethirdmaturesatellitenavigationsystemfollowingtheUSGlobalPositioningSystem(GPS)andtheRussianGlobalnavigationsatellitesystem(GLONASS).WiththeperfectionoftheBeiDouNavigationSatelliteSystemanddevelopmentoftherelevantchips,theapplicationbasedonBeiDouNavigationSatelliteSystemisbecomingmoreandmorepopular.ThepaperdesignsareceiverofBeiDouNavigationSatelliteSystemusingthemoduleofu-BloxM8navigationsignalreceiver,combinedwiththeSTC12C5A32S2Singlechipmicrocomputer.TheU-BloxM8isareceivermodulewhichcanreceiveGPS,BeiDou,andtheGLONASSsignalsimultaneously.Thebasicdesignofthenavigationinformationreceiveriscompleted,whichrealizesthedisplayoftheinformationrelatedtothelocationoflongitudeandlatitude,themovingspeed,andthestandardtime,layingaslolidfoundationfortheapplicationofBeiDouNavigationSatelliteSysteminvariousfieldsinfuture.Keywords:BeiDouNavigationSatelliteSystem;u-BloxM8module;Singlechipmicrocomputer;Navigationdata目錄TOC\o"1-3"\h\u10436摘要 I21761AbstractII4822第一章前言1222381.1課題研究背景1115681.2國內(nèi)外研究現(xiàn)狀及開展趨勢2106671.3本文研究內(nèi)容2168511.4本課題研究方案327839第二章北斗導(dǎo)航系統(tǒng)定位信息接收模塊4320622.1北斗導(dǎo)航定位系統(tǒng)455432.1.1工作原理4137432.2u-BloxM8模塊512842.2.1u-BloxM8模塊介紹518372.2.2u-BloxM8數(shù)據(jù)輸出格式6299242.2.3u-BloxM8輸出語句格式616661第三章基于單片機(jī)的北斗導(dǎo)航接收機(jī)的硬件設(shè)計917173.1總體硬件方案的設(shè)計9145103.2局部硬件設(shè)備根底介紹10219863.2.1STC12C5A32S2簡介10291473.2.212864液晶顯示模塊簡介12236513.2.3MAX232簡介1321988第四章基于單片機(jī)的北斗導(dǎo)航接收機(jī)的軟件開發(fā)1583884.1開發(fā)環(huán)境及軟件方案設(shè)計15127734.1.1單片機(jī)軟件開發(fā)工具——KeiluVision31585634.1.2keil軟件調(diào)試及編譯與運(yùn)行16167474.1.3軟件設(shè)計思路17202984.2模塊軟件設(shè)計17284864.2.1液晶顯示初始化模塊17147774.2.2液晶顯示模塊1814334.2.3單片機(jī)中斷初始化模塊19248314.2.4數(shù)據(jù)接收模塊2040094.2.5時序模塊2118654.3導(dǎo)航數(shù)據(jù)解析顯示21772第五章系統(tǒng)調(diào)試與結(jié)果24245005.1硬件調(diào)試24130405.2軟件調(diào)試24129375.3設(shè)計結(jié)果24266925.4結(jié)果分析262092第六章總結(jié)272330致謝2814475參考文獻(xiàn)2922266附錄30第一章前言1.1課題研究背景20世紀(jì)70年代以來,美國和蘇聯(lián)相繼啟動各自的衛(wèi)星導(dǎo)航定位方案,面對衛(wèi)星導(dǎo)航技術(shù)的迅速開展及其在國民經(jīng)濟(jì)開展和現(xiàn)代戰(zhàn)爭中的重要作用,根據(jù)國情,我國在1980年開始建立一個獨(dú)立的北斗衛(wèi)星導(dǎo)航系統(tǒng)[1]。2003年,我國順利建成北斗的驗(yàn)證系統(tǒng),即北斗雙星系統(tǒng)。我國衛(wèi)星北斗導(dǎo)航系統(tǒng)的順利建成,改變我國長期缺少高精度、實(shí)時定位的局面,打破美國和俄羅斯在這一領(lǐng)域的壟斷的局面,填補(bǔ)我國衛(wèi)星導(dǎo)航定位系統(tǒng)的領(lǐng)域空白。并且北斗導(dǎo)航系統(tǒng)在推動國內(nèi)多個領(lǐng)域開展起著及其重要的作用,成為我國帶動科技開展,經(jīng)濟(jì)開展不可缺少的工具。北斗導(dǎo)航系統(tǒng)在各個領(lǐng)域中的應(yīng)用情況[4]如下:北斗定位技術(shù)的陸地應(yīng)用北斗定位系統(tǒng)在陸地上的開發(fā)應(yīng)用上表達(dá)出其及其重要的地位,表達(dá)在許多方面,如:各種車輛的行駛狀態(tài)監(jiān)控;旅游者或旅游車的景點(diǎn)導(dǎo)航;應(yīng)急車輛的快速引導(dǎo)行駛;高精度時間比對和頻率控制;大氣物理觀測;地殼內(nèi)物理資源勘探;工程建設(shè)的施工放樣測算;大型建筑和煤氣田的沉降檢測;板內(nèi)運(yùn)動狀態(tài)和地殼形變測量;陸地以及海洋大地測量基準(zhǔn)的測定;工程、區(qū)域、國家等各種類型大地測量控制網(wǎng)的測量和建設(shè)等。北斗定位技術(shù)的海洋應(yīng)用北斗定位系統(tǒng)在海洋方面同樣有著極其重要的作用,比方:遠(yuǎn)洋船舶的最正確航線測定;遠(yuǎn)洋船隊在途中航行的實(shí)時調(diào)度和監(jiān)測;內(nèi)河船只的實(shí)時調(diào)度和自主導(dǎo)航測量;海洋救援的搜索和定點(diǎn)測量;遠(yuǎn)洋漁船的結(jié)隊航行和作業(yè)調(diào)度;海洋油氣平臺的就位和復(fù)位測定;海底沉船位置的精確探測;海底管道鋪設(shè)測量;海岸地球物理勘探;水文測量;海底大地測量控制網(wǎng)的布測;海底地形的精細(xì)測量;船運(yùn)貨物失竊報警;凈化海洋;海洋糾紛或海損事故的定點(diǎn)測定;港口交通管制;海洋災(zāi)難檢測等。北斗定位技術(shù)的航空應(yīng)用北斗定位系統(tǒng)在航空方面的應(yīng)用主要表達(dá)在:民航飛機(jī)的在途自主導(dǎo)航;飛機(jī)精密著陸;飛機(jī)空中加油控制;飛機(jī)編隊飛行的平安保護(hù);航空援救的搜索和定點(diǎn)測量;機(jī)載地球物理勘探;飛機(jī)探測災(zāi)區(qū)大小和標(biāo)定測量;攝影和遙感飛機(jī)的七維狀態(tài)參數(shù)和三維姿態(tài)參數(shù)測量等。由上可知,北斗系統(tǒng)在我國已經(jīng)是多個領(lǐng)域繼續(xù)開展不可或缺的核心工具。我們要利用這套系統(tǒng),最根本的就是要擁有能接收北斗系統(tǒng)發(fā)送的信號并且有能夠?qū)崟r輸出顯示的設(shè)備工具。輸出顯示的定位信息包括定位地點(diǎn)的經(jīng)緯度、UTC標(biāo)準(zhǔn)時間、海平面高度、物體移動速度等。在市場已經(jīng)出現(xiàn)一些價格比擬昂貴的北斗導(dǎo)航儀器,且由于北斗系統(tǒng)開展時間較短,相較美國的GPS定位系統(tǒng)及俄羅斯的GLONASS系統(tǒng)在精度方面有一些差距,使得對于普通的使用者來說,北斗系統(tǒng)儀器不會是最適宜的選擇?;诖饲闆r,本課題針對普通用戶使用北斗系統(tǒng)儀器的實(shí)際需要,設(shè)計并制作基于單片機(jī)的北斗定位信息顯示系統(tǒng)。1.2國內(nèi)外研究現(xiàn)狀及開展趨勢我國在上世紀(jì)90年代開始建立北斗系統(tǒng),至2003年順利建成北斗驗(yàn)證系統(tǒng)即:北斗雙星系統(tǒng)。北斗系統(tǒng)的建成打破美國和俄羅斯在這一領(lǐng)域的壟斷的局面,更重要的是,填補(bǔ)我國缺少高精度、實(shí)時定位系統(tǒng)的空白[6]。這對于我過促進(jìn)科技及經(jīng)濟(jì)開展具有重要意義。斗衛(wèi)星系統(tǒng)是中國獨(dú)立自主設(shè)計、建設(shè)的衛(wèi)星導(dǎo)航系統(tǒng),也是聯(lián)合國有關(guān)機(jī)構(gòu)認(rèn)定的全球衛(wèi)星導(dǎo)航四大核心供給商之一。北斗一代的建成使中國成為在GPS、GLONASS之后,能夠獨(dú)立提供效勞的3大衛(wèi)星導(dǎo)航系統(tǒng)之一[2]。北斗系統(tǒng)的建設(shè)分兩步,首先建立提供效勞的導(dǎo)航定位系統(tǒng)〔北斗一代〕,然后在此根底上進(jìn)行完善實(shí)現(xiàn)具有全球?qū)Ш焦δ艿谋倍穼?dǎo)航定位系統(tǒng)〔北斗二代〕。北斗衛(wèi)星導(dǎo)航是我國首次建成的擁有全天候、高精度、大范圍、快速實(shí)時等特點(diǎn)的衛(wèi)星導(dǎo)航定位系統(tǒng),具有快速定位、簡短報文通信和精密授時3大功能。2023年12月27日,北斗系統(tǒng)空間信號接口控制文件正式版正式公布,北斗導(dǎo)航業(yè)務(wù)對亞太地區(qū)提供無源定位、導(dǎo)航、授時效勞[2]。北斗衛(wèi)星導(dǎo)航系統(tǒng)同時具備定位于通信功能,相對于GPS有自己獨(dú)到的優(yōu)勢,但在民用領(lǐng)域有良好的前景,影響、制約北斗系統(tǒng)在民用領(lǐng)域獲得廣泛應(yīng)用的主要因素就是系統(tǒng)用戶終端[2]。北斗衛(wèi)星導(dǎo)航系統(tǒng)雖然沒有GPS廣泛應(yīng)用,但隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)的開展與民用方面的深入應(yīng)用,相信越來越會被廣泛應(yīng)用。1.3本文研究內(nèi)容本設(shè)計采用以單片機(jī)為核心,讀取北斗導(dǎo)航模塊的標(biāo)準(zhǔn)數(shù)據(jù),并在LCD屏幕顯示當(dāng)前位置的經(jīng)緯度信息。能夠正確畫出系統(tǒng)原理圖,并正確調(diào)試電路,完成PC機(jī)位置顯示軟件的設(shè)計,即程序的調(diào)試,最終完成接收機(jī)的實(shí)物制作,為今后開發(fā)北斗導(dǎo)航儀打下根底。1.4本課題研究方案本課題介紹一種低本錢而且能滿足功能使用要求的基于單片機(jī)的u-BloxM8接收機(jī)的設(shè)計方案。此設(shè)計基于單片機(jī)、u-BloxM8、LCD液晶顯示屏等硬件,并使用C語言編程來實(shí)現(xiàn)信號的提取、顯示及根本信息的控制操作等。本課題研究設(shè)計采用以u-BloxM8為核心的GNSS定位技術(shù)。系統(tǒng)以STC12C5A32S2單片機(jī)為主控,從GNSS定位模塊中獲取當(dāng)前位置〔經(jīng)緯度〕、時間等信息,并使用LCD液晶顯示屏顯示這些信息。如圖1.1所示:圖1.1系統(tǒng)方案圖第二章北斗導(dǎo)航系統(tǒng)定位信息接收模塊2.1北斗導(dǎo)航定位系統(tǒng)北斗衛(wèi)星導(dǎo)航系統(tǒng)﹝BeiDouNavigationSatelliteSystem,英文縮寫B(tài)DS﹞是中國正在實(shí)施的自主開展、獨(dú)立運(yùn)行的全球衛(wèi)星導(dǎo)航系統(tǒng)。系統(tǒng)建設(shè)目標(biāo)是:建成獨(dú)立自主、開放兼容、技術(shù)先進(jìn)、穩(wěn)定可靠的覆蓋全球的北斗衛(wèi)星導(dǎo)航系統(tǒng),促進(jìn)衛(wèi)星導(dǎo)航產(chǎn)業(yè)鏈形成,形成完善的國家衛(wèi)星導(dǎo)航應(yīng)用產(chǎn)業(yè)支撐、推廣和保障體系,推動衛(wèi)星導(dǎo)航在國民經(jīng)濟(jì)社會各行業(yè)的廣泛應(yīng)用[2]。在2000年,建成“北斗一號〞衛(wèi)星導(dǎo)航系統(tǒng)(compass),使我國成為繼美國、俄羅斯之后,在全球第三個擁有自主衛(wèi)星導(dǎo)航系統(tǒng)的國家,并且北斗衛(wèi)星導(dǎo)航試驗(yàn)系統(tǒng)已成功應(yīng)用于測繪、交通、救災(zāi)和公共平安等諸多領(lǐng)域,產(chǎn)生顯著的經(jīng)濟(jì)效益[12]。2.1.1工作原理北斗衛(wèi)星導(dǎo)航系統(tǒng)由空間段、地面段和用戶段三局部組成,空間段包括5顆靜止軌道衛(wèi)星和30顆非靜止軌道衛(wèi)星,地面段包括主控站、注入站和監(jiān)測站等假設(shè)干個地面站,用戶段包括北斗用戶終端以及與其他衛(wèi)星導(dǎo)航系統(tǒng)兼容的終端[12]。北斗衛(wèi)星導(dǎo)航試驗(yàn)系統(tǒng)的根本功能包括:定位、通信和授時。與美國的GPS系統(tǒng)和俄羅斯的格洛納斯系統(tǒng)不同,北斗導(dǎo)航試驗(yàn)系統(tǒng)是有源定位系統(tǒng),對所有終端的位置的計算不是在衛(wèi)星上進(jìn)行,而是在地面控制中心完成的。因此,地面中心站可以北流全部北斗用戶的位置及時間信息,并負(fù)責(zé)整個系統(tǒng)的監(jiān)控管理。北斗衛(wèi)星導(dǎo)航試驗(yàn)系統(tǒng)ITU登記的頻段為衛(wèi)星無線電定位業(yè)務(wù)頻段,上行為L頻段〔頻率1610~1626.5MHz〕,下行為s頻段(頻率2483.5~2500MHz),系統(tǒng)能容納的用戶數(shù)為每小時540000戶。覆蓋范圍是北緯5°~55°,東經(jīng)70°~140°之間的心臟地區(qū),最寬處在北緯35°左右。其定位精度〔1σ〕位100m,設(shè)立標(biāo)校站之后可達(dá)20m;高程控制精度〔1σ〕為10m。兩顆北斗導(dǎo)航定位衛(wèi)星都是地球同步靜止的軌道衛(wèi)星,軌道較其他導(dǎo)航系統(tǒng)偏高,距離地面36000km。作為區(qū)域衛(wèi)星導(dǎo)航系統(tǒng),使其能夠全天候、全天時監(jiān)控全中國和周邊地區(qū),只能選擇高軌道運(yùn)行。北斗導(dǎo)航系統(tǒng)的定位是基于三球交會原理[2],如圖2.1所示,用戶接收機(jī)在某一時刻同時接收三顆以上衛(wèi)星信號,測量出測站點(diǎn)〔用戶接收機(jī)〕至三顆衛(wèi)星的距離,解算出衛(wèi)星的空間坐標(biāo),再利用距離交會法〔從兩個點(diǎn)測量至某一待測點(diǎn)的距離,然后根據(jù)這兩段距離的交點(diǎn)確定該待測點(diǎn),這種方法稱為距離交會法?!尘涂梢越馑愠鰷y站點(diǎn)的位置。目前,國際上四大衛(wèi)星導(dǎo)航系統(tǒng)GPS、GLONASS、Galileo和北斗衛(wèi)星導(dǎo)航系統(tǒng)的定位原理都是相同的,均是采用三球交會的幾何原理來實(shí)現(xiàn)定位,具體流程如下:〔1〕用戶測量出自身到三顆衛(wèi)星的距離;〔2〕衛(wèi)星的位置精確,通過電文播發(fā)給用戶;〔3〕以衛(wèi)星為球心,距離為半徑畫球面;〔4〕三個球面相交得兩個點(diǎn),根據(jù)地理常識排除一個不合理點(diǎn)即得用戶位置。圖2.1三球交會定位原理示意圖2.2u-BloxM8模塊2.2.1u-BloxM8模塊介紹圖2.2u-BloxM8實(shí)物如圖2.1為瑞士u-blox公司推出NEO系列的M8,它能夠同時獲取和跟蹤不同的GNSS〔全球?qū)Ш叫l(wèi)星〕系統(tǒng):并行接收GPS〔QZSS〕和GLONASS或BeiDou,或同時接收GLONASS和BD。此平臺專門適應(yīng)于即使在GPS信號差的環(huán)境下〔尤其是城市峽谷〕都需要最高的可用性和準(zhǔn)確性的高性能應(yīng)用。由于GPS/SBAS操作在晴空郊外條件下就可到達(dá)最正確定位,M8平臺還配備了內(nèi)置的智能自動切換功能??筛鶕?jù)GNSS衛(wèi)星的可見性和可靠性,自動切換到單一GNSS操作模式。相比于單一GPS模塊,M8在獲取定位信息是可以搜到更多的衛(wèi)星。一般情況下,比擬容易搜索到15顆左右的衛(wèi)星。而單一GPS模塊一般也只能搜到9到10顆衛(wèi)星。因?yàn)樗训礁嗟男l(wèi)星,定位精度HDOP數(shù)值能到達(dá)0.5米~1.0米。相較于其他眾多的導(dǎo)航模塊,如:國產(chǎn)的UM220-III、u-blox_7m等,u-blox_8M有功耗低、冷啟動時間短、定位速度快、靈敏度高等優(yōu)點(diǎn)。2.2.2u-BloxM8數(shù)據(jù)輸出格式表2.1預(yù)留字符定義十六進(jìn)制十進(jìn)制定義<CR>OD13回車:語句定界符結(jié)束,C語言表示為〞\r〞<LF>OA10換行,C語言表示為〞\n〞$2436參數(shù)語句定界符開始*2A42和校驗(yàn)字段定界符,2C44字段定界符\5C92預(yù)留^5E5E用十六進(jìn)制表示的編碼定界符~7E126預(yù)留<del>7F127預(yù)留如表2.1,為模塊輸出的語句中包含的一些字符意義,其中‘$’為每一幀數(shù)據(jù)的開始標(biāo)志,以換行符‘\n’結(jié)束一幀數(shù)據(jù);‘,’為在同一幀數(shù)據(jù)中,用‘,’隔開表示不同意義的數(shù)據(jù),如:<yyyyy.yyyy>,<hhmmss.ss>;表2.2導(dǎo)航系統(tǒng)標(biāo)識符標(biāo)識符導(dǎo)航系統(tǒng)BD北斗GPGPSGN雙?!脖倍?GPS〕由于u-BloxM8可以接收多個導(dǎo)航系統(tǒng)的信號,根據(jù)天線的不一樣,模塊所接收的信號根據(jù)系統(tǒng)參數(shù)的不一樣接收到的數(shù)據(jù)流也不一樣,如表2.2。表2.3常用導(dǎo)航信息語句標(biāo)識符語句標(biāo)識符語句內(nèi)容GGA位置信息GLL大地坐標(biāo)位置信息GSA精度因子和有效衛(wèi)星號GSV可視的衛(wèi)星狀態(tài)RMC最簡導(dǎo)航傳輸數(shù)據(jù)VTG航跡向和地速TXT短文本信息的傳送SIR設(shè)置模塊當(dāng)前工作模式及啟動狀態(tài)CAS01設(shè)置串口通信波特率CAS02設(shè)置定位更新率表2.3列出一般常用的語句中包含的信息,不同的導(dǎo)航系統(tǒng)根據(jù)需要選用其中一句或多句語句進(jìn)行信息提取再解析得到普通用戶可以理解的信息。2.2.3u-BloxM8輸出語句格式u-BloxM8并行接收GPS(QZSS)和GLONASS或BeiDou,或同時接收GLONASS和BD,或同時接收GPS和BD。本設(shè)計采用GPS和BD的雙模天線,可以同時接收GPS和BD的信號,所以輸出的語句為GPS和BD的混模信號,即導(dǎo)航標(biāo)志符為:GN。如下為幾種比擬常用語句的格式:GGA(GNGGA)功能描述:輸出語句。結(jié)構(gòu):$GNGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>表2.4GGA語句格式說明編號含義取值范圍單位備注格式<1>定位時刻〔UTC時間〕hhmmss.sss<2>緯度hhmmss.sss<3>緯度方向N/SN-北緯,S-南緯<4>經(jīng)度dddmm.mmmm<5>經(jīng)度方向E/WE-東經(jīng),W-西經(jīng)<6>狀態(tài)指示0-10=定位無效,1=定位有效<7>參與定位的衛(wèi)星數(shù)目00-12前導(dǎo)位數(shù)缺乏那么補(bǔ)0<8>HDOP值0.5-99.9<9>天線大地高-9999.9-9999.9<10>天線大地高單位米<11>高程異?!睠GS2000〕-999.99-999.9<12>高程異常單位米<13>差分?jǐn)?shù)據(jù)齡期<14>差分站臺ID號0000-1023前導(dǎo)位數(shù)缺乏那么補(bǔ)0<15>校驗(yàn)和RMC(GNRMC)功能描述:輸出語句。結(jié)構(gòu):$GNRMC,<1>,<2>,<2>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><12>表2.4RMC語句格式說明編號含義取值范圍單位備注格式<1>定位時刻〔UTC時間〕時分秒hhmmss.sss<2>定位狀態(tài)位A/VA-有效定位V-無效定<3>緯度hhmmss.sss<4>緯度方向N/SN-北緯,S-南緯<5>經(jīng)度dddmm.mmmm<6>經(jīng)度方向E/WE-東經(jīng),W-西經(jīng)<7>地面速度000.0-999.9節(jié)<8>地面航向000.0-359.9度以真北為參考基準(zhǔn),沿順時針方向至航向的角度。<9>日期日月年dd表示日mm表示月yy表示年ddmmyy<10>磁偏角000.0-180度<11>磁偏角方向E/WE〔東〕或W〔西〕<12>模式指示A/D/E/N米A-自主定位,D-差分,E-估算,N-數(shù)據(jù)無效RMC(GNRMC)功能描述:輸出語句。結(jié)構(gòu):$GNGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,*<8>表2.4RMC語句格式說明編號含義取值范圍單位備注格式<1>GSV語句總數(shù)1~9<2>當(dāng)前GSV語句序號1~9<3>視野內(nèi)衛(wèi)星數(shù)00-12<4>衛(wèi)星號01-32<5>衛(wèi)星仰角00-90度<6>衛(wèi)星方位角000-359度<7>信噪比Db-Hz重復(fù)4~7字其它衛(wèi)星信息第三章基于單片機(jī)的北斗導(dǎo)航接收機(jī)的硬件設(shè)計3.1總體硬件方案的設(shè)計北斗和GPS接收模塊通過天線接收衛(wèi)星信號,可以實(shí)現(xiàn)對天線視界內(nèi)衛(wèi)星的跟蹤、鎖定和測量。在獲取衛(wèi)星的位置信息和測量出衛(wèi)星信號傳播時間之后,就可以計算出天線位置。用戶通過輸入輸出接口,與北斗和GPS接收模塊進(jìn)行信息交換,實(shí)現(xiàn)顯示相應(yīng)的定位信息。本課題要求通過單片機(jī)控制北斗導(dǎo)航器件實(shí)現(xiàn)定位信息顯示功能。在這里使用STC12C5A32S2型單片機(jī)作為處理器,利用STC12C5A32S2單片機(jī)的串行接口〔RXD〕接收北斗和GPS的混模信號[3],并通過軟件實(shí)現(xiàn)顯示定位數(shù)據(jù),最后通過單片機(jī)的并行接口輸出至液晶顯示模塊顯示的方案。該BD+GPS定位信息顯示系統(tǒng)硬件局部主要由以下幾個局部組成:信號接收局部:以u-BloxM8接收模塊為核心的GPS+BDS接收機(jī);數(shù)據(jù)處理電路:以STC12C5A32S2單片機(jī)作為微處理器控制GPS和北斗系統(tǒng)的混模信號;顯示局部:12864LCD液晶顯示模塊;其他局部:電源電路、外圍電路、程序?qū)懭雴纹瑱C(jī)電路等;數(shù)據(jù)處理器系統(tǒng):本課題以STC12C5A32S2單片機(jī)作為數(shù)據(jù)處理器,控制讀取GPS和北斗系統(tǒng)的混模信號和數(shù)據(jù)傳輸。利用單片機(jī)串行接口(RXD)接收u-BloxM8導(dǎo)航接收模塊輸出的GNRMC語句數(shù)據(jù),并將接收到的數(shù)據(jù)經(jīng)過分析和處理后通過并行接口發(fā)送到12864液晶顯示器顯示。外圍電路:外圍電路是由u-BloxM8接收模塊及其輔助電路組成、LCD液晶顯示模塊的電源電路、顯示電路。u-BloxM8接收模塊主要由變頻器、信號通道、存儲器、中央處理器和輸入輸出接口構(gòu)成。接收天線獲取的衛(wèi)星信號,可以實(shí)現(xiàn)對天線范圍內(nèi)衛(wèi)星的跟蹤、鎖定和測量。圖3.1北斗導(dǎo)航系統(tǒng)接收機(jī)的硬件設(shè)計如圖3.1所示為硬件連接,u-BloxM8模塊通過天線接收到數(shù)據(jù)信號經(jīng)過芯片MAX232把高電平轉(zhuǎn)換成TTL電平,單片機(jī)通過RXT接口將接收到的數(shù)據(jù)存儲至緩沖區(qū)〔SBUF〕,再通過并行接口將數(shù)據(jù)發(fā)送到LCD上顯示。u-BloxM8模塊第二章已做詳細(xì)介紹,以下不再贅述。3.2局部硬件設(shè)備根底介紹本設(shè)計使用的主要硬件有:單片機(jī)STC12c5A32S2、定位信號接收模塊u-BloxM8、電平轉(zhuǎn)換芯片MAX232、LCD液晶顯示屏等。3.2.1STC12C5A32S2簡介圖3.2STC12c5A32S2芯片引腳圖如圖3.2所示為單片機(jī)STC12C5A32S2的管腳排布,下面對局部管腳的功能和其他方面的作用進(jìn)行介紹[3]。1、STC12c5A32S2芯片局部管腳介紹:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1〞時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1〞時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的上下電平要求的寬度。因?yàn)橐粋€機(jī)器周期含有6個狀態(tài)周期,而每個狀態(tài)周期為2個振蕩周期,所以一個機(jī)器周期共有12個振蕩周期,如果外接石英晶體振蕩器的振蕩頻率為12MHZ,一個振蕩周期為1/12us,故而一個機(jī)器周期為1us。RST:復(fù)位,復(fù)位時單片機(jī)的初始化操作,其功能是把PC重新賦值0000H,使單片機(jī)從0000H開始執(zhí)行程序。當(dāng)因?yàn)槌绦蜻\(yùn)行出錯或操作失誤使系統(tǒng)不能繼續(xù)運(yùn)行程序,此時可以按復(fù)位鍵重新啟動單片機(jī),重新開始運(yùn)行程序。STC12c5A32S2系列主要性能高速:1個時鐘/機(jī)器周期,增強(qiáng)型8051內(nèi)核,速度比普通8051快8~12倍。寬電壓:5.5~3.3V,2.2~3.6V〔STC12LE5A60S2系列〕。增加第二復(fù)位功能腳〔高可靠復(fù)位,可調(diào)整復(fù)位門檻電壓,頻率<12MHz時,無需此功能〕。增加外部掉電檢測電路,可在掉電時,及時將數(shù)據(jù)保存進(jìn)EEPROM,正常工作時無需操作EEP。低功耗設(shè)計:空閑模式,〔可由任意一個中斷喚醒〕。低功耗設(shè)計:掉電模式〔可由外部中斷喚醒〕,可支持下降沿/上升沿和遠(yuǎn)程喚醒。工作頻率:0~35MHz,相當(dāng)于普通8051:0~420MHz。時鐘:外部晶體或內(nèi)部RC振蕩器可選,在ISP下載編程用戶程序時設(shè)置。32K字節(jié)片內(nèi)Flash程序存儲器,1280字節(jié)片內(nèi)RAM數(shù)據(jù)存儲器,芯片內(nèi)EEPROM功能,擦寫次數(shù)10萬次以上,ISP/IAP在系統(tǒng)可編程/在應(yīng)用可編程,無需編程器/仿真器;8通道,10位高速ADC,速度可達(dá)25萬次/秒;2路PWM還可當(dāng)2路D/A使用;2通道捕獲/比擬單元〔PWM/PCA/CCP〕,也可用來再實(shí)現(xiàn)2個定時器或2個外部中斷〔支持上升沿/下降沿中斷〕;4個16位定時器,兼容普通8051的定時器T0/T1;2路PCA實(shí)現(xiàn)2個定時器;可編程時鐘輸出功能,T0在P3.4輸出時鐘,T1在P3.5輸出時鐘,BRT在P1.0輸出時鐘;高速SPI串行通信端口;全雙工異步串行口(UART),兼容普通8051的串口;先進(jìn)的指令集結(jié)構(gòu),兼容普通8051指令集,有硬件乘法/除法指令。10) 通用I/O口,復(fù)位后為:準(zhǔn)雙向口/弱上拉〔普通8051傳統(tǒng)I/O口〕可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏每個I/O口驅(qū)動能力均可到達(dá)20mA,但整個芯片最大不得超過100mA。3.2.212864液晶顯示模塊簡介LCD由兩塊玻璃板構(gòu)成,厚度約為1mm,其間由包含有液晶材料的5μm均勻間隔隔開。因液晶材料本身并不發(fā)光,所以在顯示屏兩邊都設(shè)有作為光源的燈管,在液晶顯示屏反面有一塊背光板〔也稱勻光板〕和反光膜,背光板是由熒光物質(zhì)組成的可以發(fā)射光線,其作用主要是提供均勻的背景光源。本設(shè)計采用QC12864B_LCD顯示模塊,可顯示漢字和圖形,其內(nèi)置字庫8192個中文漢字〔16X16點(diǎn)陣〕、128個字符〔8X16點(diǎn)陣〕及64X256點(diǎn)陣顯示RAM。如圖3.4和表3.1為LCD管腳說明[4]:圖3.4LCD12864引腳排布QC12864B_LCD主要技術(shù)參數(shù)和顯示特性:電源:VDD3.3V~+5V(內(nèi)置升壓電路,無需負(fù)壓);顯示內(nèi)容:128列×64行;顯示顏色:黃綠屏,藍(lán)屏;顯示角度:6:00鐘直視;LCD類型:STN與MCU;接口:8位并口或串行;配置LED背光;多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、睡眠模式等。表3.1QC12864B_LCD管腳說明引腳序號管腳名稱管腳說明1GND電源地2VDD電源輸入〔+5V〕3V0液晶顯示比照度調(diào)節(jié)4RS數(shù)據(jù)輸入5R/W讀寫選擇(1讀;0寫)6E讀寫使能7-14DB0-DB7數(shù)據(jù)總線15PSB并/串口選擇〔H并;L串〕16NC懸空17RST液晶模組復(fù)位18Vout懸空19A電源正〔5V〕20K電源地3.2.3MAX232簡介232是電荷泵芯片,可以完成兩路TTL/RS-232電平的轉(zhuǎn)換,它的的9、10、11、12引腳是TTL電平端用來連接單片機(jī),7、8、13、14為232電平引腳[3]。如圖3.5所示:圖3.5MAX232引腳排布主要特點(diǎn):
1、單5V電源工作。2、LinBiCMOSTM工藝技術(shù)。3、兩個驅(qū)動器及兩個接收器。4、±30V輸入電平。5、低電源電流:典型值是8mA。6、符合甚至優(yōu)于ANSI標(biāo)準(zhǔn)IA/TIA-232-E及ITU推薦標(biāo)準(zhǔn)V.28。7、ESD保護(hù)大于MIL-STD-883〔方法3015〕標(biāo)準(zhǔn)的2000V。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第四章基于單片機(jī)的北斗導(dǎo)航接收機(jī)的軟件開發(fā)4.1開發(fā)環(huán)境及軟件方案設(shè)計4.1.1單片機(jī)軟件開發(fā)工具——KeiluVision3KeilSoftware公司推出的uVision3是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時也是PK51及其它開發(fā)套件的一個重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改良的搜索功能外,uVision3還提供了一個配置向?qū)Чδ?,加速了啟動代碼和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標(biāo)MCU,包括指令集、片上外圍設(shè)備及外部信號等。uVision3提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量。
uVision3提供對多種最新的8051類微處理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等。KeiluVision3主要特點(diǎn):具有Windows風(fēng)格的可視化操作界面如圖4.1,界面友好,使用極為方便。圖4.1KeiluVision3界面支持匯編語言、C51語言及混合編程等多種方式的單片機(jī)設(shè)計。集成非常全面的單片機(jī)支持,能夠完成51系列單片機(jī)及和51系列兼容的絕大局部類型單片機(jī)的程序設(shè)計和仿真。集成豐富的庫函數(shù),以及完善的編譯鏈接工具。提供并口、串口、A/D、D/A、定時器/計數(shù)器及中斷等資源的硬件仿真能力,能夠幫助用戶模擬實(shí)際硬件的執(zhí)行效果。可以與多款外部仿真器聯(lián)合使用,提供了強(qiáng)大的在線仿真調(diào)試能力。內(nèi)嵌RTX-51Tiny和RTX-51FULL內(nèi)核,提供了簡單而強(qiáng)大的實(shí)時多任務(wù)操作系統(tǒng)支持。在一個開發(fā)界面中支持多個工程的程序設(shè)計。支持多級代碼優(yōu)化,最大限度地幫助用戶精簡代碼體積。4.1.2keil軟件調(diào)試及編譯與運(yùn)行翻開軟件,在文件選項中選擇新建工程,同時新建一個新文件用于編寫程序;在工作窗口編寫程序或者是在其他word中編寫復(fù)制到程序編寫窗口,如圖4.2所示;圖4.2程序編寫窗口程序完成后,在編譯鏈接前,設(shè)置生成hex文件,如圖4.3所示;圖4.3設(shè)置輸出hex文件鏈接編譯程序,設(shè)置生成相應(yīng)的.hex文件,用于仿真及寫入單片機(jī),如圖4.4所示;圖4.4連接編譯生成hex文件4.1.3軟件設(shè)計思路本設(shè)計程序設(shè)計分為以下五個主要模塊:LCD液晶顯示模塊、導(dǎo)航數(shù)據(jù)接收模塊、單片機(jī)中斷初始化模塊、時序〔延時〕模塊。其程序流程圖如圖4.5所示。圖4.5程序流程圖本設(shè)計解析GNRMC這幀數(shù)據(jù),當(dāng)模塊接收到此幀數(shù)據(jù)時,將數(shù)據(jù)接收時間、天線移動速度、天線所在地點(diǎn)的經(jīng)緯度在LCD液晶顯示屏上顯示。4.2模塊軟件設(shè)計4.2.1液晶顯示模塊本設(shè)計中使用的QC12864B液晶顯示模塊,其初始化程序如下所示: void12864LCD_initinal(void); {duan=0; wei=0; Basicwrite_com(0x30);//寫指令,初始化屏幕,進(jìn)行清零/屏 delays(1); Basicwrite_com(0x0c); delays(1); Basicwrite_com(0x01); delays(1); }LCD顯示數(shù)據(jù)〔字母、漢字等〕需要先寫入屏幕顯示地址與顯示的數(shù)據(jù),如下為寫入液晶地址與內(nèi)容的函數(shù)://寫數(shù)據(jù) //寫指令函數(shù) voidBasicwrite_com(ucharcom) { lcd_rs=0; lcd_rw=0; lcd_en=0; lcd_psb=0; P0=com;//通過單片機(jī)的P0口將指令發(fā)送至LCD顯示屏 delays(5); lcd_en=1; delays(5); lcd_en=0; } //寫數(shù)據(jù) voidBasicwrite_date(uchardate) { lcd_rs=1; lcd_rw=0; lcd_en=0; lcd_psb=1; P0=date;//通過單片機(jī)的P0口將數(shù)據(jù)發(fā)送至LCD顯示屏 delays(5); lcd_en=1; delays(5); lcd_en=0; }例:假設(shè)要液晶顯示:“南昌大學(xué)〞,“格物致新厚德澤人〞這兩句話,相應(yīng)的程序代碼如下所示:Basicwrite_com〔0x01〕;//首先清屏Basicwrite_com(0x80);//液晶屏幕第一行的首地址//液晶屏幕以兩個字節(jié)為一個地址,一個漢字占兩個 字節(jié),使用for循環(huán)使之能自動寫下一個地址for(a=0;a<9:a++){Basicwrite_date(“南昌大學(xué)〞);}Basicwrite_com(0x90);//LCD液晶顯示屏幕第二行的首地址for(a=0;a<16:a++){Basicwrite_date(“格物致新厚德澤人〞);}4.2.2單片機(jī)中斷初始化模塊當(dāng)u-BloxM8模塊發(fā)送數(shù)據(jù)至單片機(jī)時,單片機(jī)要可以進(jìn)入中斷程序,需要先運(yùn)行翻開總中斷相關(guān)語句,設(shè)置定時器方式等參數(shù)設(shè)置,即為中斷初始化,程序日下所示:voidUart_Init(){//IE=0x;//EA=1;ELVD=0;EADC=0;ES=1;ET1=1;EX1=1;ET0=0;EX0=0;//SCON=0X50; //SM0=0;SM1=0;SM2=1;REN=1;TB8=0;RB8=1;RI=0;TI=0; //TCON=0x; //TF1=1;TR1=1;TF0=0;TR0=0;IE1=1;IT1=1;IE0=0;IT0=0;SCON=0x50;//REN=1允許串行接受狀態(tài),串口工作模式1 TMOD|=0x20;//定時器工作方式2PCON|=0x80;TH1=0xFA; //baud*2波特率9600、數(shù)據(jù)位8、停止位1。效驗(yàn)位無TL1=0xFA;TR1=1;ES=1;//開串口中斷EA=1;//開總中斷}4.2.3數(shù)據(jù)接收模塊單片機(jī)因外部中斷的觸發(fā)跳入中斷接收數(shù)據(jù)存至緩沖區(qū),同時將數(shù)據(jù)發(fā)送給上位機(jī),程序如下所示: voidser_int(void)interrupt4 { if((RI==1)&&(flag==0))//RI接受中斷標(biāo)志 { RI=0; a=num++; rec_data=SBUF; table0[a]=rec_data; if(table0[0]=='$')//如果是此字符;馬上接收數(shù)據(jù) { if(table0[a]=='\n') { num=0; flag=1; ES=0; } } else { num=0; } SBUF=rec_data; //將接收到的數(shù)據(jù)發(fā)送至上位機(jī)的串口助手 while(TI==0); TI=0; } }中斷允許接收數(shù)據(jù)標(biāo)志RI和發(fā)送數(shù)據(jù)標(biāo)志TI不能自動清零,當(dāng)進(jìn)入中斷后要手動清零。4.2.4時序模塊時序模塊即為延時程序,當(dāng)液晶LCD顯示一頁信息后,需要延時一段時間,否那么因?yàn)闀r序過短,我們無法看清楚顯示的信息。延時程序如下所示: voiddelays(uintz)/**延時函數(shù)*/ { uintx=0,y=0; for(x=z;x>0;x--) { for(y=110;y>0;y--); } }4.3導(dǎo)航數(shù)據(jù)解析顯示4.3.1數(shù)據(jù)接收導(dǎo)航模塊啟動后開始接收導(dǎo)航數(shù)據(jù),接收到的各種信息〔如:經(jīng)緯度、標(biāo)準(zhǔn)時間、移動速率等〕數(shù)據(jù)包括在各個語句〔$GNGGA、$GNRMC等〕中,接收到的導(dǎo)航信息傳輸至單片機(jī)的緩沖區(qū),單片機(jī)再將接收到的導(dǎo)航信息發(fā)送至上位機(jī)進(jìn)行顯示如圖4.6所示。在上位機(jī)可以直觀的了解到導(dǎo)航模塊接收到的各類信息,方便我們根據(jù)各個語句的特點(diǎn)進(jìn)行處理并通過顯示系統(tǒng)顯示出導(dǎo)航信息。圖4.6模塊接收的數(shù)據(jù)4.3.2數(shù)據(jù)處理顯示本課題根據(jù)需要,解析顯示的是$GNRMC這一幀內(nèi)包含的數(shù)據(jù)信息。我們需要在u-BloxM8模塊接收到的多幀數(shù)據(jù)中解析提取出$GNRMC這一幀數(shù)據(jù)。根據(jù)圖4.6所示,$GNRMC語句的第四位‘R’或者第五位‘M’在其他語句中沒有出現(xiàn)過,以此,可以將‘R’或‘M’作為程序中提取獲取$GNRMC這一幀數(shù)據(jù)的標(biāo)志。緩沖區(qū)每次存儲一句導(dǎo)航語句,后一句接收到的數(shù)據(jù)覆蓋掉前面存儲到緩沖區(qū)的數(shù)據(jù),每一次接收到的數(shù)據(jù)都進(jìn)行判定是否是$GNRMC這一句語句,假設(shè)是那么進(jìn)行數(shù)據(jù)解析顯示,假設(shè)不是或者定位信息無效,那么繼續(xù)接收信息。接收到的$GNRMC這一幀的數(shù)據(jù)格式為:$GNRMC,<1標(biāo)準(zhǔn)時間>,<2狀態(tài)指示>,<3緯度>,<4緯度方向>,<5經(jīng)度>,<6經(jīng)度方向>,<7地面速率>,<8航向>,<9日期>,<10磁偏角>,<11磁偏角方向><12模式指示>;因此我們要從其中解析出標(biāo)準(zhǔn)時間、經(jīng)緯度方向、地面速率這些信息。本課題中,以數(shù)據(jù)中的‘,’作為別離數(shù)據(jù)標(biāo)志??梢愿鶕?jù)需要解析相應(yīng)的數(shù)據(jù)信息。如下為獲取地面速率的例如程序: if(table0[4]=='M') { ES=0; if(table0[17]!='A')//判斷定位是否有效 break; for(c=0;c<strlen(table0);c++) { if(table0[c]==',') { count++; } if(count==6) { if(cspeed==0) { Basicwrite_com(0x01);//清屏 Basicwrite_com(0x80); for(a=0;a<10;a++) { uchartable10[]="地面速率:"; Basicwrite_date(table10[a]); } Basicwrite_com(0x90); for(a=0;a<5;a++) { Basicwrite_date(table0[c+a+2]); } Basicwrite_com(0x93); for(a=0;a<4;a++) { uchartable10[]="m/s"; Basicwrite_date(table10[a]); } delays(100000); } }}解析出來的地面速率數(shù)據(jù),經(jīng)單片機(jī)處理發(fā)送至LCD液晶顯示屏顯示,顯示的結(jié)果如圖4.9所示。圖4.9地面速率顯示第五章系統(tǒng)調(diào)試與結(jié)果完成系統(tǒng)的硬件設(shè)計、硬件制作和軟件編程后,要使系統(tǒng)能夠按照設(shè)計目的正常運(yùn)行,必須進(jìn)行硬件和軟件調(diào)試。5.1硬件調(diào)試硬件調(diào)試的主要目的是排除硬件故障,其中包括設(shè)計的錯誤和操作過程中造成的錯誤等。檢查設(shè)計的硬件電路板所有的器件和引腳。第一步,用數(shù)字萬用表進(jìn)行逐一對點(diǎn)的檢查,檢查導(dǎo)線間是否有短路與開路的故障及電阻是否正確。第二步測輸入5V電源〔0V地〕是否能正常接入電路,給各元件提供電源;檢查開關(guān)是否正常,連接正是否確。第三步檢測芯片與芯片之間對應(yīng)腳是否導(dǎo)通和截止。(1)將程序代碼經(jīng)過Keil軟件仿真生成的〔.hex〕文件,用編程器將生成的文件導(dǎo)入單片機(jī)STC89C52中。(2)將寫入程序的單片機(jī)插入硬件電路單片機(jī)管座,查看液晶顯示器12864顯示結(jié)果是否符合設(shè)計要求。5.2軟件調(diào)試軟件調(diào)試的目的是利用開發(fā)工具進(jìn)行調(diào)試,發(fā)現(xiàn)并糾正程序的錯誤,同時也可能發(fā)現(xiàn)硬件的故障。軟件調(diào)試是以模塊進(jìn)行的,首先調(diào)試各子程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,最后調(diào)試整個程序,尤其測試是各模塊間能否正確的傳遞參數(shù)。檢查12864液晶顯示模塊程序,觀察在液晶顯示器是否能夠正確顯示相應(yīng)的字符。檢查單片機(jī)中斷初始化模塊,利用串口助手進(jìn)行發(fā)送外部中斷,測試單片機(jī)初始化的參數(shù)設(shè)置是否正確,單片機(jī)能否進(jìn)入中斷接收數(shù)據(jù)。(3)檢查u-BloxM8接收模塊程序,通過觀察LCD12864液晶顯示情況及串口助手顯示的數(shù)據(jù)接收情況來判斷u-BloxM8信號接收狀況。(4)通過數(shù)據(jù)接收模塊程序和12864液晶顯示模塊程序的結(jié)合,觀察12864液晶顯示器上的BD+GPS顯示信息。5.3設(shè)計結(jié)果經(jīng)過軟件局部和硬件局部的調(diào)試,最后實(shí)現(xiàn)了其功能。如圖5.1為BD導(dǎo)航定位信息接收機(jī):圖5.1北斗導(dǎo)航定位信息接收機(jī)接收狀態(tài)如圖5.2所示:圖5.2BD有效定位信號接收天線移動速度如圖5.3所示:圖5.3地面速率接收到有效定位信號的時間顯示如圖5.4所示:圖5.4接收到有效信號的時間接收到有效信號顯示經(jīng)緯度,如圖5.5所示:圖5.5經(jīng)緯度5.4結(jié)果分析在實(shí)驗(yàn)地點(diǎn)獲得相應(yīng)的經(jīng)緯度,并通過“GOOLE地球〞進(jìn)行驗(yàn)證定位的準(zhǔn)確度。實(shí)驗(yàn)地點(diǎn)在我?!材喜髮W(xué)〕信工樓,通過北斗導(dǎo)航系統(tǒng)獲得的相應(yīng)緯度為:2839.85773,即為:28度39分51.46秒,經(jīng)度為:11547.65988,即為:115度47分39.66秒。圖5.6GOOLE地球查詢得到衛(wèi)星電子圖通過“GOOLE地球〞查詢相應(yīng)地點(diǎn)獲得的相應(yīng)緯度為:28度39分15秒,經(jīng)度為:115度47秒39.60秒,如圖5.6所示:第六章總結(jié)隨著導(dǎo)航技術(shù)的深入研究,且國內(nèi)外對此項技術(shù)的極大需求,必會極大的促進(jìn)導(dǎo)航定位技術(shù)的開展。而北斗是繼GPS、GLONASS后出現(xiàn)的第三個導(dǎo)航系統(tǒng),它即繼承了前面兩個導(dǎo)航系統(tǒng)的優(yōu)點(diǎn),又有新的創(chuàng)新,它對促進(jìn)其他領(lǐng)域的開展具有重要的意義。與其他衛(wèi)星導(dǎo)航系統(tǒng)相比,北斗衛(wèi)星導(dǎo)航系統(tǒng)的最大創(chuàng)新在于把導(dǎo)航和通信緊密地結(jié)合在一起,這使得該系統(tǒng)在除根本的導(dǎo)航定位功能外,還具有簡短通信功能。同時,北斗衛(wèi)星導(dǎo)航試驗(yàn)系統(tǒng)具有衛(wèi)星數(shù)量少、投資小、用戶設(shè)備簡單等優(yōu)點(diǎn),可以滿足當(dāng)前我國陸、海、空運(yùn)輸導(dǎo)航定位的需求。但北斗導(dǎo)航也存在較多缺點(diǎn),如不能覆蓋兩極地區(qū),且在赤道附近定位精度差,只能采用二維主動式的定位方式,且需要提供用戶高程數(shù)據(jù),不能滿足高動態(tài)和保密的軍事用戶要求,用戶數(shù)量也受一定限制,體制上不能與國際上的GPS、GLONASS以及將來的伽利略系統(tǒng)兼容。雖然在國內(nèi)北斗導(dǎo)航系統(tǒng)的相關(guān)產(chǎn)業(yè)才剛剛起步,北斗導(dǎo)航系統(tǒng)在民間的使用肯定會越來越廣泛,與現(xiàn)在市場上的GPS系統(tǒng)分庭抗禮。本次畢以設(shè)計的課題,主要是了解北斗導(dǎo)航定位的原理,熟悉北斗導(dǎo)航系統(tǒng)接收機(jī)的工作原理及其各局部工作流程。北斗導(dǎo)航定位信號處理模塊由u-BloxM8實(shí)現(xiàn),通過u-BloxM8與STC12C5A32S2單片機(jī)相連,并連接所需的外圍電路,可以顯示相應(yīng)的定位信息,并詳細(xì)介紹了該北斗導(dǎo)航系統(tǒng)接收機(jī)的硬件和軟件設(shè)計。通過本次設(shè)計,結(jié)合學(xué)習(xí)理論知識,鍛煉了我的綜合運(yùn)用所學(xué)知識的能力,以及解決問題與實(shí)際工程的能力,提高了我搜索資料、查閱文獻(xiàn)資料、設(shè)計手冊、設(shè)計標(biāo)準(zhǔn)的能力,通過對整體的掌控,對局部的取舍,對細(xì)節(jié)的斟酌處理,使我的能力得到提升。因水平有限和時間問題,存在許多缺乏。本設(shè)計只是北斗導(dǎo)航系統(tǒng)入門級的設(shè)計,不能滿足現(xiàn)在市場上劇烈的競爭環(huán)境,功能也有待完善,實(shí)用性還有待提高。致謝本課題是在盧宗武老師的悉心指導(dǎo)下完成的,論文從選題到寫作及最后成稿,盧老師都給予了我精心的指導(dǎo)和極大的幫助。盧老師淵博的科學(xué)知識、遠(yuǎn)見卓識的科學(xué)創(chuàng)新和嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度給了我深遠(yuǎn)的影響,同時盧老師隨和的性格更讓我感到親切。在設(shè)計階段,盧老師在資料搜集、程序調(diào)試、論文寫作等方面都給予我嚴(yán)格的要求和關(guān)鍵性的指導(dǎo),在此衷心感謝幾個月來盧老師對我的關(guān)心和指導(dǎo)。感謝電子信息工程系所有老師在畢業(yè)設(shè)計期間為我們提供良好的實(shí)驗(yàn)環(huán)境。此外,我還要對在這次設(shè)計中,幫助和支持我的同學(xué),表示感謝!李杰2023年5月于南昌大學(xué)信息工程學(xué)院參考文獻(xiàn)[1]袁建平,羅建軍,岳曉奎,等.衛(wèi)星導(dǎo)航原理與應(yīng)用[M].北京:中國宇航出版社,2003.[3]許進(jìn),周寧.GPS接收機(jī)的單片機(jī)通訊接口[J],電子器件,1999,22(3):23-26.[4]索明何,饒運(yùn)濤,邢海霞,等.基于單片機(jī)的液晶顯示系統(tǒng)設(shè)計[J],科技廣場,2023,7(2):22-24.[5]張志良.單片機(jī)原理及控制技術(shù)〔第2版〕.機(jī)械工業(yè)出版社,2005.[6]朱筱虹,李喜來,楊元喜.從國際衛(wèi)星導(dǎo)航系統(tǒng)開展談加速中國北斗衛(wèi)星導(dǎo)航系統(tǒng)建設(shè)[J].測繪通報,2023.[7]趙亮、侯國銳.單片機(jī)C語言編程與實(shí)例.人民郵電出版社,2003.[8]姚永平.STC12C5A60S2系列單片機(jī)手冊[Z].STCMCU.[9]北斗導(dǎo)航系統(tǒng)原理及應(yīng)用,[10]李德瑞,王德強(qiáng).北斗一號用戶機(jī)在無人機(jī)系統(tǒng)中的應(yīng)用[A].中國航空學(xué)會,2006.[11]劉基余,李征航.全球定位系統(tǒng)原理及其應(yīng)用[M],北京:測繪出版社,1993.附錄程序代碼: #include<reg52.h> #include<string.h> #include<intrins.h> #defineucharunsignedchar #defineuintunsignedint sbitduan=P1^0; sbitwei=P1^1; sbitlcd_en=P2^6; sbitlcd_rs=P2^4; sbitlcd_rw=P2^5; sbitlcd_psb=P2^3; sbitctime=P2^2; sbitcspeed=P2^1; sbitclonglati=P2^0; uinta=0,b,c,d; uintcount=0; uchartable0[70]="0"; //hour[]="0" uintnum=0;ucharrec_data=0;//ucharsecond; uinttemp1=0,temp2=0,hourB; bitflag=0; voidLCD_initinal(); voidBasicwrite_com(ucharcom); voidNotewrite_com(ucharcom); voidBasicwrite_date(uchardate); voidNotewrite_date(uchardate); voiddelays(uintz); voiddelayms(uintz); voidUart_Init(); voidmain() { Uart_Init(); LCD_initinal(); Basicwrite_com(0x01);//清屏 Basicwrite_com(0x93); for(b=0;b<4;b++)//局部定義數(shù)組并寫入液晶〔局部定義極大的節(jié)省RAM〕 { uchartable[]="李杰"; Basicwrite_date(table[b]); } Basicwrite_com(0x89); for(b=0;b<10;b++)//局部定義數(shù)組并寫入液晶〔局部定義極大的節(jié)省RAM〕 { uchartableb[]="6103411013"; Basicwrite_date(tableb[b]); } delays(100000); Basicwrite_com(0x01);//清屏 Basicwrite_com(0x80);//局部定義數(shù)組并寫入液晶 for(b=0;b<16;b++) { uchartable1[]="北斗信號接收中..."; Basicwrite_date(table1[b]); } Basicwrite_com(0x98); for(b=0;b<10;b++) { uchartable2[]="請稍后………"; Basicwrite_date(table2[b]); } //delays(10000); Notewrite_com(0x01); while(1) { if(flag==1) { flag=0; if(table0[4]=='M') { ES=0; if(table0[17]!='A')//判斷定位是否有效 break; for(c=0;c<strlen(table0);c++) { if(table0[c]==',') { count++; } if(count==6) { if(cspeed==0) { Basicwrite_com(0x01);//清屏 Basicwrite_com(0x80); for(a=0;a<10;a++) { uchartable10[]="地面速率:"; Basicwrite_date(table10[a]); } Basicwrite_com(0x90); for(a=0;a<5;a++) { Basicwrite_date(table0[c+a+2]); } Basicwrite_com(0x93); for(a=0;a<4;a++) { uchartable10[]="m/s"; Basicwrite_date(table10[a]); } delays(100000); } } if(count==8) { if(ctime==0) { uchartemp1,temp2,shi_1,shi_2; ucharcodesj[]="0123456789"; //Basicwrite_com(0x90); //for(a=0;a<6;a++) //Basicwrite_date(table0[c+2+a]); Basicwrite_com(0x01); Basicwrite_com(0x80); for(a=0;a<7;a++) { uchartable5[]="時間:"; Basicwrite_date(table5[a]); } Basicwrite_com(0x90); for(a=0;a<2;a++) { Basicwrite_date(table0[c+6+a]); } Basicwrite_com(0x91); for(a=0;a<2;a++) { uchartable6[]="年"; Basicwrite_date(table6[a]); } Basicwrite_com(0x92); for(a=0;a<2;a++) { Basicwrite_date(table0[c+4+a]); } Basicwrite_com(0x93); for(a=0;a<2;a++) { uchartable6[]="月"; Basicwrite_date(table6[a]); } Basicwrite_com(0x94); for(a=0;a<2;a++) { Basicwrite_date(table0[c+2+a]); } Basicwrite_com(0x95); for(a=0;a<2;a++) { uchartable6[]="日"; Basicwrite_date(table6[a]); } //讀入時 switch(table0[7])//別離字符串 { case'0':temp1=0;break; case'1':temp1=1;break; case'2':temp1=2;break; } switch(table0[8])//別離字符串 { case'0':temp2=0;break; case'1':temp2=1;break; case'2':temp2=2;break; case'3':temp2=3;break; case'4':temp2=4;break; case'5':temp2=5;break; case'6':temp2=6;break; case'7':temp2=7;break; case'8':temp2=8;break; case'9':temp2=9;break; } d=temp1*10+temp2;//時差轉(zhuǎn)換〔即轉(zhuǎn)換為北京時 間〕 if(d>=16,d<=23) { shi_1=0; shi_2=d-16; } if(d>=2,d<=15) { d+=8; shi_1=d/10; shi_2=d%10; } if(d>=0,d<=1) { shi_1=0; shi_2=d+8; } //以下給液晶寫時間內(nèi)容 Basicwrite_com(0x88); Basicwrite_date(sj[shi_1]); Basicwrite_com(0x89); Basicwrite_date(sj[shi_2]); Basicwrite_com(0x8A); for(a=0;a<2;a++) {
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- KTV裝修施工消防安全協(xié)議
- CRRT助力急性肝衰竭患者康復(fù)
- 土方開挖樁基施工方案
- 電子商務(wù)平臺技術(shù)支持和服務(wù)合同
- 企業(yè)食堂經(jīng)營托管合同
- 小學(xué)第一學(xué)期上學(xué)期德育處工作總結(jié)
- 電子商務(wù)平臺售后服務(wù)規(guī)范
- 《瑜伽館物業(yè)管理方案范本》
- 交通運(yùn)輸服務(wù)勞動合同管理規(guī)定
- 電子商務(wù)平臺SEO優(yōu)化及推廣服務(wù)合同
- 2021年護(hù)士資格考試題庫(1000題附答案)
- 妊娠期糖尿病-妊娠合并糖尿病課件
- 風(fēng)能新能源企業(yè)廢棄物管理標(biāo)準(zhǔn)
- 尺骨鷹嘴骨折的護(hù)理課件
- 2022年醫(yī)學(xué)專題-第01篇3-藥代學(xué)
- 《畫出你的想象》教學(xué)課件
- 2022年勞模工作室創(chuàng)新工作室建設(shè)方案
- 初中地理《世界的氣候》單元教學(xué)設(shè)計以及思維導(dǎo)圖
- 急性腦卒中搶救流程培訓(xùn)課件
- 水滸Q傳鄉(xiāng)試試題答案
- 進(jìn)展性腦卒中的診療策略課件
評論
0/150
提交評論