高書陽
摘 要 GPS是英文Global Positioning System(全球定位系統(tǒng))的簡稱,中文簡稱為“球位系”。隨著科學技術(shù)發(fā)展,應用十分廣泛,成為了人們生活中不可或缺的一部分。同時因其具有全球覆蓋以及精度高、定位速度快、實時性好、抗干擾能力強等特點,使其成為了迄今為止最好的定位導航系統(tǒng)。本文詳細介紹了采用STC12C5A60S2單片機、GPS接收模塊、12864液晶顯示模塊等器件進行簡易GPS定位系統(tǒng)設計。首先介紹了此系統(tǒng)的研究前景和不同設計方案的優(yōu)缺點,具體闡述了系統(tǒng)的軟件設計、硬件設計等。
關(guān)鍵詞 GPS 單片機 定位系統(tǒng) 12864液晶屏 STC12C5A60S2
中圖分類號:TN8;TN2 文獻標識碼:A 文章編號:1007-0745(2021)07-0001-18
1 緒論
1.1 課題背景及意義
人類首顆GPS試驗衛(wèi)星于1978年2月22日發(fā)射入軌,無線導航定位時代在導航衛(wèi)星這個動態(tài)已知點的基礎上就此開創(chuàng)。來自GPS衛(wèi)星的定位導航信號這類空間信息資源已成一種公共資源,能為全部用戶共享[1]。結(jié)合硬件的特點,對GPS接收模塊和STC12C5A60S2單片機之間串行通信實現(xiàn)的途徑進行了分析,GPS模塊發(fā)出數(shù)據(jù)經(jīng)由串口接收,且把所需數(shù)據(jù)從中過濾獲得,在經(jīng)過相應處理后顯示特定的數(shù)據(jù),最終實現(xiàn)可以在LCD顯示屏準確顯示出時間、日期和用戶所在位置的經(jīng)緯度、速度等多種數(shù)據(jù)信息的效果。本文還通過硬件和軟件調(diào)試以及實驗仿真分析,進一步驗證了此系統(tǒng)的可靠性和精確性。它是一臺體積小巧、攜帶方便、可以獨立使用的全天候?qū)崟r的定位導航設備,具有非常強可擴展功能的實際應用價值。在空中、海洋、陸地任一領域內(nèi),僅需某種可測量、變換、跟蹤和接收GPS信號的一部接收機,運動平臺的3維、7維狀態(tài)參數(shù)便會被24小時全球全天候不間斷測量。其影響之大,用途之廣,把其它類型的無線接收設備遠遠甩在身后。而且,入軌運行的GPS衛(wèi)星同樣能提供全天候、全天時、高精度測量技術(shù),并且可以進行全球氣象學、全球海洋學、載人航天學、天體力學、地球物理學、地球動力學、大地測量學等學科領域?qū)嵺`??v觀現(xiàn)狀,GPS技術(shù)有如下用途。
1.1.1 GPS技術(shù)的陸地應用
該技術(shù)于電力工程勘測中和土地管理、林區(qū)生態(tài)工程的應用;行政區(qū)域勘界、高精度時間比對和頻率控制、冷鏈物流運輸過程的應用;智能交通系統(tǒng)應用;地質(zhì)環(huán)境監(jiān)測中的應用;建筑物變形監(jiān)測中的應用;地表物質(zhì)遷移的時變重力場反演方法及其應用;工程建設施工放樣測量等陸地上的諸多領域內(nèi),應用極為廣泛。
1.1.2 GPS技術(shù)的海洋應用
GPS技術(shù)在海洋方面有著非常重要的作用,對人類研究海洋提供了便利條件,比如:管制港口交通;測量無驗潮水深;檢測海洋災難;測定海洋油氣田平臺復位與就位;建立海洋大地控制網(wǎng),遠洋船舶的最佳航線測定及實時調(diào)度和監(jiān)測;測量海底管道鋪設;無人監(jiān)測船遠程控制系統(tǒng);光電掃描式成像跟蹤系統(tǒng)GPS定位;高頻地波雷達海洋動力學參數(shù)反演與應用;布測海底大地測量控制網(wǎng);小型多參數(shù)海洋環(huán)境監(jiān)測浮標系統(tǒng);精細測量海底地形;港口工程施工定位技術(shù)應用;定點測定海損事故或海洋糾紛;海洋救援及海底沉船位置的精確探測;鋼板樁施打作業(yè)領域應用GPS定位技術(shù)等。
1.1.3 GPS技術(shù)的航空航天應用
GPS技術(shù)在航空航天方面應用有著非常重要地位,具體應用主要體現(xiàn)在:測量對地觀測衛(wèi)星3維、7維狀態(tài)參數(shù);自主導航民用航空器;星載GPS遮掩天體體積以及大氣參數(shù)測量;測量重力與航空攝影參數(shù);載入航天器在軌防護探測;航空護林;航天航空飛行器精密著陸;測量衛(wèi)星回收與衛(wèi)星入軌實時點位;飛行器空中加油控制;地面數(shù)據(jù)處理技術(shù)、方法與應用(航空遙感數(shù)字傳感器);飛行器探測災區(qū)范圍與標定測量;戰(zhàn)隊機軍事作戰(zhàn)控制;航空救援搜索及其定位測量;低軌道通訊衛(wèi)星群的實時軌道測量;GPS時鐘同步機制及其民航空管系統(tǒng);機載地球物理勘探[2]。
由此可見,GPS技術(shù)的應用十分廣泛,已經(jīng)深入到各個領域,對人類的進步發(fā)展探索起到巨大作用。但是前述最基本應運條件的實現(xiàn)必須要有可以進行GPS信號接收且同時可以進行調(diào)制輸出的設施,把UTC標準時間、當時所處位置經(jīng)緯度顯示出來是此類設備的最基本功能,如何準確接收、調(diào)制輸出GPS信號,是此項技術(shù)的關(guān)鍵,同時,當時所處部位的時間、緯度、經(jīng)度能否精確的顯示同樣事關(guān)此類技術(shù)的實用價值大小。當前,以此類GPS技術(shù)及其基本功能為前提而研發(fā)的GPS導航設備、GPS手持機等產(chǎn)品種類眾多。這項技術(shù)的優(yōu)勢表現(xiàn)在可擴展性好、功能強大等,不足之處表現(xiàn)在電路復雜、費用過高等。課題論文擬把以單片機為基礎的GPS定位系統(tǒng)設計成功。具備實用價值、廉價、基本性能完備等是本次課題的設計標準。
1.2 論文主要內(nèi)容
以單片機、GPS理論為前提,把相應的單片機選擇出來,進行GPS接收模塊接收數(shù)據(jù)的提取,且把所需特定的數(shù)據(jù)從中過濾獲得、適當處理,直至能夠?qū)⒂脩羲幉课凰俣?、?jīng)緯度數(shù)據(jù)以及日期、時間準確顯示出來。這就是本次課題論文的主要設計目標。
本次設計除對所選LCD顯示功能、單片機基本引腳功能、GPS接收模塊性能指標要求研發(fā)人員熟悉以外,NMEA封包同樣需要把握,而且NMEA輸出命令的使用技術(shù)也要掌握,以此和單片機的有關(guān)知識結(jié)合,實現(xiàn)GPS捕獲的衛(wèi)星信息提取,且選擇性的在液晶顯示器進行相關(guān)數(shù)據(jù)顯示。完成設計之后,通過Proteus軟件來對其性能展開仿真測試。
2 GPS定位系統(tǒng)方案設計
2.1 GPS全球定位系統(tǒng)簡介
基于對民用實時連續(xù)三維導航、軍事用途等現(xiàn)代社會發(fā)展標準的滿足所需,在“午儀衛(wèi)星導航定位”技術(shù)基礎上,美國于1973年組織其軍事機構(gòu)進一步共同研究和建立新一代衛(wèi)星導航系統(tǒng)[3],具有全球性、全能性、全天時性優(yōu)勢的導航定位、定時、測速系統(tǒng),即通常所說的“全球定位系統(tǒng)”(Global Positioning System),簡稱GPS定位系統(tǒng)。情報收集是GPS技術(shù)研發(fā)的初始意圖,無漏洞、實時、全天候的把有關(guān)導航服務提供給空中、海上以及陸地等各個領域是其當前基本目標。同時,應急通訊、核爆監(jiān)測、情報收集以及應急通信、實時監(jiān)測核武器動向等軍事目標同樣是其服務范疇。
以下就是GPS(全球定位系統(tǒng))的基本組成部分:
1.由均勻散布于3大洋的美軍基地及美國本土的監(jiān)控站(5個)、在主控站控制下把尋電文注入衛(wèi)星的注入站-地面天線(3個)、主要對地面綜合控制系統(tǒng)司職協(xié)調(diào)和管理的工作主控站(1個)構(gòu)成的地面監(jiān)控系統(tǒng)[4]。
2.由3顆備用衛(wèi)星、21顆工作衛(wèi)星構(gòu)建而成的空間衛(wèi)星系統(tǒng)。在六個軌道面中的各軌道面均勻分布著3至4顆工作衛(wèi)星。地球赤道平面和各軌道平面二者之間有55度傾角,其中各軌道平面中的每個衛(wèi)星升交角存在90度距差。各個軌道面升交點赤徑之間有60度相差。而軌道高度均值在20200公里左右。對比西邊毗鄰軌道衛(wèi)星來說,每個軌道衛(wèi)星會有30度超前,11小時58分是各個衛(wèi)星的循環(huán)運行周期[5]。該系統(tǒng)事實上有24顆以上衛(wèi)星,這讓損壞、老化衛(wèi)星能及時、便利的更換,以此來確保系統(tǒng)可以運行平穩(wěn)。任意地點或任一時刻,該系統(tǒng)均能通過至少四顆衛(wèi)星來服務使用者,有時甚而至于會有多達十一顆,就此把實時、連續(xù)定位與導航實現(xiàn)[6]。
3.由計算設備、數(shù)據(jù)處理軟件、衛(wèi)星天線、GPS衛(wèi)星接收機構(gòu)成的用戶接收系統(tǒng)。衛(wèi)星射電干涉測量、多普勒測量、載波相位測量、偽距測量等是GPS定位的基本辦法(GPS用戶接收系統(tǒng)如圖1所示)。
GPS衛(wèi)星定位系統(tǒng)三大部分之間的相互關(guān)系如圖2所示。全球GPS衛(wèi)星定位系統(tǒng)其主要特點如下:
(1)全天候;
(2)全球性覆蓋;
(3)三維定時定速高精度、自動化高效益;
(4)快速省時高效率,觀測時間短;
(5)全能性、操作簡便。
2.2 GPS信號接收方案選擇
要在液晶顯示屏顯示出GPS定位數(shù)據(jù)信息,關(guān)鍵技術(shù)問題就是要實現(xiàn)GPS信號的接收,目前有兩種選擇方案來實現(xiàn)GPS信號的接收:
方案一:GPS接收芯片先行確定完成,隨之以芯片有關(guān)設計參數(shù)為基礎,進行安裝天線、外圍電路等的設計,把1個獨立模塊做成。對GPS芯片原理的了解、設計該系統(tǒng)接收部分硬件電路技術(shù)的把握等是選擇此方案的基本出發(fā)點,不過其缺點也是顯而易見的,首先自己動手焊接設計它的外圍電路麻煩,實現(xiàn)難度大,易出現(xiàn)引腳脫焊虛焊問題,其次由于GPS接收芯片一般都是廠商直接供貨,單獨采購價格會很高。
方案二:選擇市場上口碑較好的GPS集成模塊,選擇此方案的優(yōu)點就是在這個信息現(xiàn)代化的時代的GPS接收模塊的制造技術(shù)已經(jīng)相非常成熟,并且性能穩(wěn)定,使用也十分方便,定位成功接收到衛(wèi)星信號后就可以直接通過模塊輸出GPS相關(guān)信息,并通過單片機解析和封包數(shù)據(jù)成功的可以顯示在LCD顯示屏上。并且在經(jīng)過大規(guī)模的商業(yè)化生產(chǎn)后,它價格已經(jīng)可以被我們所接受,一般幾十到一百多元不等,這樣的模塊在市面上也能夠很容易的購買到。
分析上面兩種方案的優(yōu)缺點,選擇合適的GPS接收模塊就能夠比較好的作為本次設計簡易單片機GPS定位系統(tǒng)的解決方案,因此我選擇第二種方案來完成本次GPS定位系統(tǒng)設計。
2.3 GPS接收模塊的研究
系統(tǒng)重點在于GPS接收模塊,其性能、功能都不相同,型號也有許多種,通常都是由外置和內(nèi)置天線、儲存器、CPU(處理器)、低噪聲下變頻器、并行信號通道等設備構(gòu)成其基本架構(gòu)。
GPS接收模塊通過它的接收天線捕捉到衛(wèi)星信號后,再經(jīng)過變頻、放大、濾波、載波相位、混頻、測量偽距等一系列處理,便可以實現(xiàn)在保證天線接收范圍內(nèi)對衛(wèi)星的信號進行跟蹤、鎖定和測量、解調(diào),并將這些電信號轉(zhuǎn)換為導航電文。衛(wèi)星有關(guān)位置信息獲取以及信號的傳播時間測算完成后,便能以有關(guān)理論公式為依據(jù)把天線的位置計算出來。此時用戶可以通過輸入和輸出、I/O串行接口,與GPS接收模塊之間進行數(shù)據(jù)信息傳送,從而實現(xiàn)預期功能-GPS定位顯示功能。GPS接收模塊內(nèi)部結(jié)構(gòu)如圖3所示。
2.4 系統(tǒng)總體方案的設計
經(jīng)由單片機對于GPS定位系統(tǒng)內(nèi)接收模塊的控制,來把簡單的定位功能實現(xiàn),這是課題設計的基本標準。因此,編程控制采用的是STC12C5A60S2單片機,采用SiRF StarII GPS芯片為核心的接收模塊來接收GPS衛(wèi)星信號,且所需定位數(shù)據(jù)方面的相關(guān)信息主要是經(jīng)由軟件編程keil c51來進行篩選、解析,最終再經(jīng)由單片機上的并行接口來把其向液晶顯示屏進行傳輸,就此把有關(guān)的定位信息顯示出來。該單片機GPS定位系統(tǒng)硬件部分主要由以下幾個部分組成:
(1)接收部分:以SiRF StarII GPS芯片接收模塊為核心的GPSOEM模塊;
(2)控制電路:由STC12C5A60S2單片機來編程控制;
(3)顯示部分:LCD12864液晶顯示模塊;
(4)電源電路部分:采用USB供電,大約5V左右可以保證系統(tǒng)正常供電。
外圍電路:由以下2部分構(gòu)成:其一,液晶顯示模塊(LCD12864)內(nèi)的顯示電路、電源電路;其二,GPS定位系統(tǒng)內(nèi)的接收模塊、其它電路。SiRF StarII GPS接收模塊主要由變頻器、信號通道、存儲器、CPU和I/O接口構(gòu)成。它通過天線接收獲取GPS衛(wèi)星信號,再經(jīng)過變頻、放大、濾波、載波相位、混頻、測量偽距等一系列處理,便可以實現(xiàn)對在保證天線接收范圍內(nèi)對衛(wèi)星的信號進行跟蹤、鎖定和測量、解調(diào)。
單片機控制部分:經(jīng)由NMEA-0183語句數(shù)據(jù)(來自GPS接收模塊)來選擇、處理所收到的GPS數(shù)據(jù),進行程序編寫,初始化單片機控制系統(tǒng),對GPS接收模塊進行控制,把采集相關(guān)數(shù)據(jù)信息的工作完成,處理有關(guān)信號,且將時間、經(jīng)緯度、相關(guān)位置等數(shù)據(jù)信息經(jīng)由單片機的輸出接口向LCD顯示模塊輸送,并進行顯示。
由此以上可知:SiRF StarII GPS接收模塊將獲取到的GPS衛(wèi)星電信號轉(zhuǎn)換為導航電文,進行解碼調(diào)制,且向標準NMEA-0183格式轉(zhuǎn)換完成,再向單片機傳送,由其展示處理,如果導航電文數(shù)據(jù)信息(來自GPS)被單片機收到,其將會就上進行識別性的篩選,且把篩選所獲數(shù)據(jù)向LCD顯示模塊傳送,并把預設的定位信息顯示出來。
3 硬件電路設計
3.1 硬件電路總體結(jié)構(gòu)
以總體設計規(guī)劃為依據(jù),顯示部分(LCD12864液晶顯示模塊)、控制部分(STC12C5A60S2單片機)、以SiRF StarII芯片基礎的GPS接收模塊和外置車載天線的GPS信號接收部分這三大部分構(gòu)成了硬件電路,其大體結(jié)構(gòu)框圖如圖4所示。
3.2 硬件電路功能設計介紹
3.2.1 STC12C5A60S2簡介
STC制造的機器周期(1T)/單時鐘單片機——STC12C5A 60S2系列單片機屬于8051增強型新型單片機,這種增強型新型單片機具有超強抗干擾、低功耗、高速等特征,傳統(tǒng)的8051指令代碼其能夠全面兼容,而且速度是其8-12倍。其內(nèi)部集成MAX810特有的復位電路(外部晶體12MHZ以上時,復位腳可接1000歐姆電阻接地)。且將八路高速10位A/D轉(zhuǎn)換(25萬次/秒,即250K/s)、PWM(2路)、MAX810專用復位電路集于一體,可過用于控制電機及其它強干擾場合。在Keil C51開發(fā)環(huán)境中,選擇Intel 8052編譯,頭文件包含
STC12C5A60S2系列單片機的內(nèi)部結(jié)構(gòu)框圖如圖5所示。外部晶體振蕩電路、片內(nèi)R/C振蕩器、PCA、SPI接口、高速A/D轉(zhuǎn)換、串口2、I/O接口、UART串口、定時/計數(shù)器、SRAM(數(shù)據(jù)存儲器)、Flash(程序存儲器)、CPU(中央處理器)等是STC12C5A60S2單片機中的基本模塊。采集、控制數(shù)據(jù)方面的全部單元模塊基本上全涵蓋于這個系列單片機內(nèi),因而也能將其當成片上系統(tǒng)。
STC12C5A60S2引腳如圖6所示。
3.2.2 STC12C5A60S2主要性能
· 高速:1個時鐘/機器周期,增型8051內(nèi)核,速度比普通8051快6~12倍。
· 寬電壓:5.5~4.0V,2.1~3.6V(STC12LE5A60S2系列)。
· 增添P4.6(極為可靠的復位,能對復位門檻電壓進行調(diào)整,如果頻率不足12MHz,這個功能并不需要)/第2復位功能腳。
· 增加外部掉電檢測電路/P4.6,可在掉電時,及時將數(shù)據(jù)存進EEPROM,低功耗設計:空閑模式(可由任一個中斷喚醒)。
· 支持掉電喚醒的引腳:P3.2/,P3.3/,T0/P3.4,T1/P3.5,RxD/P3.0,P1.3/CCP0(或P4.2/CCP0),P1.4/CCP1(或P4.3/CCP1),EX_LVD/P4.6。
· 工作頻率:0~35MHz,相當于普通8051:0~420MHz。
· 時鐘:可選擇的R/C振蕩器(內(nèi)部)、外部晶體,于ISP下載編程用戶程序過程中進行設計。
· 8/16/32/40/48/56/60/62K字節(jié)片內(nèi)Flash程序存儲器,擦寫次數(shù)10萬次以上。
· 1280字節(jié)片內(nèi)RAM數(shù)據(jù)存儲器。
· 獨立波特率發(fā)生器。
· SPI高速同步串行通信接口。
· 可編程時鐘輸出功能(在P1.0,WDT(時鐘硬件看門狗)被BRT輸出;在P3.5,T把時鐘輸出;在P3.4,T0把時鐘輸出)。
· 通用I/O口(36/40/44個),復位后為:準雙向口(普通8051傳統(tǒng)I/O口)可設置為只是高阻/輸入,各I/O口驅(qū)動能力開漏都能實現(xiàn)20毫安,強上拉/強推免,弱上拉/準雙向口這幾種模式。芯片整體控制在120毫安內(nèi)為宜。
(1)時鐘電路
外部晶體時鐘、內(nèi)部R/C振蕩時鐘是STC12C5A60S2系列單片機的2個時鐘源,外部晶體時鐘是當前產(chǎn)品的出廠標配。8MHz-12MHz是3V單片機的常溫頻率,11-17MHz是5V單片機芯片內(nèi)的R/C振蕩器常溫頻率,因為隨著溫度的變化,內(nèi)部溫度的變化,內(nèi)部R/C振蕩器的頻率會有一些溫飄,再加上制造誤差,故內(nèi)部R/C振蕩器只適用于對時鐘頻率要對不敏感的場合。
圖7所示即為內(nèi)部時鐘電路。定時元件(大多由電容、石英晶體構(gòu)成的并聯(lián)諧振回路充當)外接于TXD、RXD引腳,自激振蕩就此在內(nèi)部振蕩器中形成。宜于5pF-30pF區(qū)間內(nèi)挑選電容值,于1.2MHz-12MHz區(qū)間內(nèi)挑選晶體振蕩頻率,頻率將會因為電容值的大小而被其微調(diào)。
圖8所示即為外部時鐘電路。其中TXD引腳接外部振蕩器、RXD引腳接地。只要保持住脈沖的寬度就行,并無特殊的外部振蕩信號標準,方波信號通??刂圃?2MHz內(nèi)。振蕩頻率被片中的時鐘發(fā)生器2分頻,P1、P2兩相時鐘會就此形成,且服務單片機運行。
(2)復位功能
單片初始化操作就是此處所說的復位涵義。將PC初始化成0000H,讓單片機的程序執(zhí)行由0000H單元開始,這是復位的主要功能。正常的系統(tǒng)初始化操作之外,如果因為操作錯誤、程序運行出錯等讓系統(tǒng)死鎖,基于困境擺脫所需,同樣必須通過復位鍵來進行重新啟動[7]??撮T狗復位,MAX810專用復位電路或者掉電復位/上電復位(并可選擇200毫秒延時復位增加額外,即于上電復位之后再進行一次復位延時200毫秒增加操作),軟件復位,外部低壓檢測復位(增設第2復位功能腳RST2復位,實現(xiàn)外部可調(diào)復位門檻電壓復位),外部RST引腳復位等屬于STC12C5A60S2系列單片機的幾類復位形式。
(3)復位電路
當時鐘頻率高于12MHZ時,建議使用第二復位功能引腳(RST2/EX_LVD/P4.6口),這樣可利用增加的外部低壓檢測LVD功能作為外部低壓復位腳(如電路圖9和典型線路圖10所示)。
7805(穩(wěn)壓塊)后端有5V直流電壓,當其降至約4V(如圖10所示),R1、R2這2個電阻會把4V附近電壓向不足1.33V(低壓檢測門檻電壓)周圍分壓,此時,CPU將會被RST2這個第2復位功能腳置于復位狀態(tài)。當穩(wěn)壓塊7805后端的直流電壓高于4V時,圖中的電阻R1和R2將4V的電壓分壓到高于低壓檢測門檻電壓(1.33V附近),單片機就解除復位狀態(tài),恢復到正常工作狀態(tài)上,典型線路如圖11所示。
3.2.2 SiRFStarIIGPS信號接收模塊
該設計中GPS信號接收模塊是以SiRF StarII GPS芯片為核心的模塊,該芯片是由美國瑟孚科技有限公司所生產(chǎn)的第二代芯片。它具有12通道并行接收能力,其所接收的GPS信號屬于民用頻段的L1信號,大約為1575.42MHz,在沒有Selective Availability干擾的情況下,它的動態(tài)速度誤差是每秒0.1米,其平均定位誤差為10m,信號靈敏度能至-142dBm,熱啟動時間是38秒,冷啟動定位時間是42秒,即使是二次定位,時間方面同樣只需8秒,該模塊主要引腳如圖12所示。
引腳備注:TXD端口是2號管腳,一般連接外振蕩器;電源輸入端是3號管腳,外接電壓通常約是+5V;GND端口是1號管腳,用于接地。該GPS信號接收模塊的正常工作電流約為75mA。其正常工作電壓約為3V左右。
GSP2e把2個UART、GPS接收機外部設備、高精度實時時鐘、1MbEDODRAM、內(nèi)外部獨立總線、ARM7CPU(50MHz1個)、增強型GPS內(nèi)核(1個)集于一體;數(shù)字接口、集成LNA、IF(集成中頻濾波器)、基準振蕩器、片內(nèi)壓控振蕩器等則構(gòu)成了GRF2i。當前系統(tǒng)內(nèi)很方便集成進GSW2模塊化軟件,且可以進行功能強大的開發(fā)條件保障。
WGS-84為地圖坐標系,地理信息采集更新速率是1次/2s,NMEA-0183是GPS輸出數(shù)據(jù)的格式標準[8]。SiRF StarII主要特征如表1所示。
為了有更好的信號接收效果,本設計采用ROHS認證通過的車載天線,該天線接收信號好,穩(wěn)定性好,模塊和天線實物圖如圖13所示,GPS天線參數(shù)如下表2所示。
3.2.3 LCD12864液晶顯示模塊介紹
(1)液晶顯示模塊
本設計采用LCD12864液晶顯示模,具有多種功能,通過液晶顯示模塊中引腳4、5、6分別與單片機引腳P25、26、27相連,進行數(shù)據(jù)信息傳送,接收單片機控制器傳送的信息,顯示在顯示屏上面,展現(xiàn)出GPS定位信息。并且本設計中R2是可調(diào)節(jié)電阻,可以實現(xiàn)對顯示屏的亮度進行調(diào)節(jié),以便滿足用戶需要,12864液晶顯示模塊引腳電路圖和實物圖如圖14所示。
(2)LCD12864有20個引腳,說明如表3所示
液晶硬件接口:
1.邏輯工作電壓(VDD):4.5~5.5V;
2.電源地(GND):0V;
3.工作溫度(Ta):0~60℃(常溫)/-20~75℃(寬溫);
4.模塊有并行和串行兩種接法。
3.2.4 硬件外圍電路構(gòu)造
(1)電源電路
系統(tǒng)采用+5V電壓供電,可接USB或者電池夾,S1為自鎖開關(guān)。P1為DC電源口,電源部分電路圖和實物圖如圖15所示。
(2)復位電路
本設計采用10uF電容、10K電阻構(gòu)成,接單片機引腳9RST,構(gòu)成復位電路,當按下開關(guān)時,電容被短路,電容開始放電,R1端電壓變高,RST處于高電平,松開開關(guān)時,電容開始充電,R1端電壓為0,RST處于低電平狀態(tài),正常工作,實現(xiàn)復位,復位電路圖和實物圖如16所示。
(3)串口通訊
本設計配有串口數(shù)據(jù)通信口,可實現(xiàn)串口通信,實現(xiàn)I/O功能,支持修改程序,采用ISP下載工具燒錄,引腳3接單片RXD腳,為數(shù)據(jù)接收端,引腳2接TXD腳,為數(shù)據(jù)發(fā)送端(電路圖和實物圖如圖17所示)。
(3)時鐘電路
本設計采用12M晶振,兩個20uF電容,構(gòu)成時鐘電路,接單片機XTAL1、XTAL2腳,構(gòu)成時鐘電路,保證時序穩(wěn)定,單片機正常工作(時鐘電路圖和實物圖如圖18所示)。
(4)濾波電路
濾波電路由一個104電容連接單片機電源引腳VCC組成,作用是濾出外界輻射的高頻干擾和濾出單片機工作時自身產(chǎn)生的脈沖干擾,因為開和關(guān)瞬間會產(chǎn)生一個很高的尖峰,如果沒有一個電容,則這個信號會傳送到整個板子上,干擾其他器件工作(電路圖和實物圖如圖19所示)。
3.3 硬件連接圖
整個硬件設計由單片機STC12C5A60S2、GPS信號接收模塊、LCD12864液晶顯示模塊、電源和一些外圍電路組成。
4 基于單片機的GPS軟件設計
4.1 NMEA-0183數(shù)據(jù)格式
本文采用NMEA對GPS導航信息進行封包,NMEA-0183是海用電子設備制定的標準格式。0180、0182這兩個既有的標準格式是其制定的基礎,GPS接收機所輸出的相關(guān)內(nèi)容是NMEA-0183的增加內(nèi)容部分,目前的GPS接收機領域內(nèi),除了早期的一小部分GPS接收機之外,差不多已經(jīng)全部運用了這一格式。把RTCM的統(tǒng)一標準建立于各種GPS導航設備內(nèi)是這個協(xié)議的功能。全面運用此類格式能顯著提升GPS接收模塊互換性、通用性。
基本命令格式如下:
(1)“$”:幀命令起始位;
(2)地址域:aaccc,aa是識別符,ccc是語句名;
(3)ddd…ddd:數(shù)據(jù);
(4)“*”:校驗和前綴;
(5)hh:check sum(校驗和),也即*、$二者之間的全部字符ASCII碼校驗和(異或運算所有字節(jié)之后,就此把校驗和獲得,隨后就此進行十六進制格式ASCII字符轉(zhuǎn)換。)
(6)
4.1.1 輸入語句
這些語句是GPS接收機可以接受的語句。一般情況下初始化信息語句為PGRMI,其結(jié)構(gòu)為:$GPRMI,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh
<1>緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸);
<2>緯度半球N(北半球)或S(南半球);
<3>經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸);
<4>經(jīng)度半球E(東經(jīng))或W(西經(jīng));
<5>UTC日期,ddmmyy(日月年)格式;
<6>UTC時間,hhmmss(時分秒)格式;
<7>接收機命令,A=自動定位,R=機器重新啟動。
4.1.2 輸出語句
SiRF StarII的輸出語句有很多種,經(jīng)由GPS串口調(diào)試軟件,SiRF StarII芯片將會收到其所發(fā)送而來的有關(guān)命令語句,芯片也將會隨之以命令語句為基礎來進行參數(shù)設置。幾種常用的數(shù)據(jù)格式如下:
(1)GPS標準數(shù)據(jù)(GPGGA),其結(jié)構(gòu)為:$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>
<1>UTC時間,格式為hhmmss.sss;
<2>緯度,格式為ddmm.mmmm(前導位數(shù)不足則補0);
<3>緯度半球,N或S(北緯或南緯);
<4>經(jīng)度,格式為dddmm.mmmm(前導位數(shù)不足則補0);
<5>經(jīng)度半球,E或W(東經(jīng)或西經(jīng));
<6>定位質(zhì)量指示,0=定位無效,1=定位有效;
<7>接收到的衛(wèi)星數(shù)量,從00到12(前導位數(shù)不足則補0);
<8>水平精確度,0.5到99.9;
<9>天線離海平面的高度,-9999.9到9999.9米;
<10>高度單位,M表示單位米;
<11>大地橢球面相對海平面的高度,-999.9到9999.9米;
<12>高度單位,M表示單位米;
<13>GPS差分數(shù)據(jù)期限(RTCMSC-104),最后設立RTCM傳送的秒數(shù)量;
<14>差分參考基站標號,從0000到1023(前導位數(shù)不足則補0);
<15>校驗和。
(2)可視衛(wèi)星狀態(tài)輸出語句(GPGSV),其結(jié)構(gòu)為:$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8>
<1>總的GSV語句電文數(shù);
<2>當前GSV語句號;
<3>可視衛(wèi)星總數(shù),00至12;
<4>衛(wèi)星編號,01至32;
<5>衛(wèi)星仰角,00至90度;
<6>衛(wèi)星方位角,000至359度,實際值;
<7>信噪比(C/No),00至99dB;無表未接收到訊號;
<8>校驗和。
(3)推薦最小GPS/TRANSIT數(shù)據(jù)(GPRMC),其結(jié)構(gòu)為:
$GPRMC,<1>,<2>,<2>,<4>,<5>,<6>,<7>, <8>,<9>,<10>,<11>,<12>*hh
其中的語句識別符是RMC;交談識別符是GP;校驗和是hh(即除*、$本身這兩個字符之外,*、$二者之間的全部字符按位異或值)。
$GPRMC語句數(shù)據(jù)區(qū)的內(nèi)容為:
<1>世界時間(UTC),hhmmss(時分秒)格式;
<2>定位狀態(tài),A=有效定位,V=無效定位;
<3>定位點緯度,ddmm.mmmm(度分)格式;
<4>緯度,N(北半球)或S(南半球);
<5>定位點經(jīng)度,dddmm.mmmm(度分)格式;
<6>經(jīng)度半球,E(東經(jīng))或W(西經(jīng));
<7>地面速率,000.0~999.9節(jié);
<8>地面航向,000.0~359.9度;
<9>UTC日期,ddmmyy(日月年)格式;
<10>磁偏角,000.0~180度;
<11>磁偏角方向,E(東)或W(西);
<12>工作模式:A=自主,D=差分,E=評估,N=數(shù)據(jù)無效[9]。
4.2 基于單片機的GPS定位系統(tǒng)軟件開發(fā)環(huán)境-Ke il uVision4
相比匯編來說,美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng)Keil uVision4,具有明顯的可維護性、可讀性、架構(gòu)性以及功能等方面的優(yōu)勢,匯編中同樣可以在關(guān)鍵部位嵌入C語言。目前最新的版本是C51Version9.00Release,也就是所謂的μVision4。uVision4集成開發(fā)環(huán)境內(nèi)已經(jīng)全面集成了C51、調(diào)試器、項目管理器、實時操作系統(tǒng)、匯編器以及編譯器等均已處于該集成開發(fā)環(huán)境之中。uVision4IDE能把靈活、單一開發(fā)環(huán)境提供給它們[10]。
KeilC51 μVision4較之前的版本,新增?下面幾個功能:
· 多重的監(jiān)控和彈性的窗口管?系統(tǒng)。
· 系統(tǒng)查看器(System Viewer)-顯示設備周邊緩存器的訊息。
· 除錯恢?檢視(Debug Restore Views)-建?和儲存多重除錯窗口設計。
· 多項目工作區(qū)(Multi-Project Workspace)-與許多項目簡化工作。
· 源碼和解組譯?結(jié)(Sourceand Disassembly Linking)-解組譯窗口和源碼窗口完全同步使程序除錯和光標導航較容?。
· 內(nèi)存窗口固定(Memory Window Freeze)-儲存目前內(nèi)存窗口檢視允許容易在不同的點及時比較。
· 設備模擬-更新支持很多新設備(例如InfineonXC88x,SiLABSC8051Fxx,AtmelSAM7/9和從Luminary,NXP,andToshi ba來的CortexM3MCUs)。
· 支持硬件除錯轉(zhuǎn)接器(Support for Hardware debugad apters)-包括ADI。miDAS-Link,AtmelSAM-ICE,InfineonD AS,和ST-Link。
· 新資料和指令追蹤(New Data and instruction trace)-對ARM和Cortex MCUs。
· 基于XML的項目文件(XML based Project files)-建立,檢視和修改項目如同容易可讀的XML本文檔案一樣。
· 串列的窗口-擴充到提供一個基本的100-VT終端機,ASCII模式,混合模式,和十六進制模式檢視。
· 拖放檔案開啟(Drag & Drop File Opening)-檔案拖進μVision4項目空間自動會被開啟。
· 監(jiān)控點和邏輯分析儀(Watchpoints and Logic Analyzer)- 現(xiàn)在更容易設定。
4.3 基于單片機的GPS軟件設計思路
單片機主程序、初始化LCD12864液晶顯示模塊、GPS數(shù)據(jù)接收處理是這個設計軟件的基本設計模塊思路。這樣的設計理念好處是,模塊功能清楚明朗,容易調(diào)試程序,具有可移殖性,適應不同的單片機環(huán)境[11-12]。軟件的程序流程圖如圖20所示,相關(guān)的程序詳細代碼見附錄。
4.3.1 LCD12864顯示初始化
顯示模塊顯示初始化設計在設計中是重要部分,是正常顯示出GPS信息的準備工作,初始化流程圖如圖21所示。
初始化部分清零代碼如下:
voidLCD_Init(void)
{LCD_Write_Command(0x34);//一次送8位數(shù)據(jù)
LCD_Write_Command(0x30);//基本操作指令
LCD_Write_Command(0x0C);//整體顯示,游標off
LCD_Write_Command(0x01);//清屏
delay(10);}
voidLCD_Clear()
{LCD_Write_Command(0x01);//清屏delay(10);}
4.3.2 定時器T0設置
定時器中斷設置是單片機編程中關(guān)鍵部分,在不影響CPU正常工作情況下,保證其他程序正常高效率運行,流程圖如圖22所示。
定時器超時判斷程序代碼:
chartimer_expired(structtimer*t)
{charflag;
ENTER_TIMER_CRITICAL;
flag=(unsignedlong)(Timer0_Count-t->start)>= (unsignedlong)t->interval?1:0;
EXIT_TIMER_CRITICAL;
returnflag;}
4.3.3 GPS數(shù)據(jù)接收隊列模塊
對于1HZ輸出的GPS模塊,由于其數(shù)據(jù)包格式有GPRMC,GPCGA等,如果不用數(shù)據(jù)包緩沖,實時讀取解析,會丟失數(shù)據(jù)包導致顯示異常,因而數(shù)據(jù)接收隊列模塊很重要,保證及時數(shù)據(jù)及時傳遞[13-14]。設計框圖如如圖23,部分代碼如下。
初始化接收緩沖區(qū):
voidGPS_PacketInit()
{memset(GPS_Packet,0,sizeof(GPS_Packet));
Count=0;
WritePacket=0;
ReadPacket=0;}
判隊滿:
unsignedcharGPS_EmptyPacket()
{if((Count>0)&&(WritePacket==ReadPacket))
{return0;}
else
{return1;}
}
5 系統(tǒng)調(diào)試、仿真與實驗結(jié)果
系統(tǒng)軟件編程、實物制作以及硬件設計完成之后,必須要調(diào)試系統(tǒng)的軟件、硬件,這樣才能夠讓系統(tǒng)可以依據(jù)相應的設計目標進行平穩(wěn)運轉(zhuǎn)。
5.1 硬件調(diào)試
把工藝故障、設計錯誤這類不同的硬件故障排除屬于調(diào)試硬件的基本目的。
第一步:對硬件電路板中所設計的全部引腳、器件準確與否進行檢查。通過萬用表(數(shù)字)來進行逐一的對點檢測,對不同的導線相互之間有沒有存在開路、短路這些故障現(xiàn)象進行檢測。
第二步:測輸入5V電源(0V地)線是否與電路中的對應點的電源(地)線相連接是否正確;及檢查開關(guān)是否正常,是否連接正確。
對于通過導線連接而成的芯片管座相互之間的對應腳截止與否、導通與否等進行檢測。
5.2 軟件調(diào)試
通過開發(fā)工具來全面展開在線仿真調(diào)試,以此對程序中的錯誤加以發(fā)現(xiàn)與糾正,把硬件方面存在的故障同步獲得,這是調(diào)試軟件的主要目的。軟件調(diào)試時,必須要按模塊來逐一展開:其一,對于每個子程序可不可以依據(jù)預期目標運行進行單獨的調(diào)試;其二,對可不可以正常的控制接口電路進行調(diào)試;其三,對整個程序進行調(diào)試,特別是要對每一個模塊相互之間可不可以進行參數(shù)的準確傳遞來進行調(diào)試。
將程序代碼經(jīng)過Keil軟件編譯生成的(.hex)文件,讓然后用STC-ISP下載到單片機中??词欠穹显O計要求,正常顯示出正確的經(jīng)緯度、時間日期等相關(guān)參數(shù)。
5.3 實驗結(jié)果
調(diào)試硬件以及軟件部分讓其預期功能最終實現(xiàn)。圖24為時間信息,圖25是經(jīng)緯度信息。
5.4 實驗結(jié)果分析
由以上實驗結(jié)果圖分析可以知道,此單片機GPS定位系統(tǒng)設計,時間日期、經(jīng)緯度等數(shù)據(jù)十分精確,與實際基本很吻合。其中海拔高度,數(shù)據(jù)顯示83米,但地圖系統(tǒng)顯示42米,這是因為測量地點在21樓,加上實際地理位置可能處于當前地勢地方,所以有些偏差。綜合考慮,此設計基本上達到了預期效果,實現(xiàn)了簡易GPS定位功能
5.5 仿真測試
由于Proteus里面沒有是STC單片機,這里用AT89C51代替,不影響主要性能;由于我是筆記本沒有COM串口,這里我使用虛擬串口軟件設置Configure Virtual Serial PortDriver,至于衛(wèi)星GPS接收模塊采用VirtualGPS(虛擬GPS軟件)作為信號接收[15]。
6 總結(jié)
本次設計,主要講解單片機、GPS相關(guān)接收原理,GPS信號接收處理模塊由SiRF StarII實現(xiàn),通過SiRF StarII與STC12C5A60S2兼容系列單片機相連,配備了所需的外圍電路,同時LCD12864液晶顯示屏,可以顯示相關(guān)定位信息,并詳細介紹了該GPS設計的硬件和軟件設計[16]。
參考文獻:
[1] 劉基余.GPS衛(wèi)星導航定位原理與方法[M].北京:科學出版社,2003.
[2] 劉基余,李征航.全球定位系統(tǒng)原理及其應用[M].北京:測繪出版社,1993.
[3] 王權(quán).全球定位系統(tǒng)(GPS)定位原理及應用[J].中國計算機用戶,1996,07:5-8.
[4] 陳次穎.全球定位系統(tǒng)(GPS)簡介[J].漁業(yè)機械儀器, 1991,01:30-31.
[5] 劉美生.全球定位系統(tǒng)及其應用綜述(二)——GPS[J].中國測試技術(shù),2006,06:5-11.
[6] 姚艷.全球衛(wèi)星定位系統(tǒng)GPS的應用[J].交通世界(運輸·車輛),2011,07:108-109.
[7] 張立科.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2000.
[8] 劉曉,伍小東,姚軍光,等.基于單片機采集GPS數(shù)據(jù)系統(tǒng)的設計[J].青島科技大學學報,2006,27(02):172-175.
[9] 李勇軍,楊青,龐樹杰,等.基于OEM板的GPS接收機設計[J].農(nóng)機化研究,2006,05(12):109-111.
[10] 王丙祥,李建海.基于89C52的GPS板電路設計與實現(xiàn)[J].西安文理學院學報:自然科學版,2007,10(03):98-101.
[11] 許進,周寧.GPS接收機的單片機通訊接口[J].電子器件,1999,22(03):23-26.
[12] 索明何,饒運濤,邢海霞,等.基于單片機的液晶顯示系統(tǒng)設計[J].科技廣場,2008,07(02):22-24.
[13] 李洪濤.GPS應用程序設計[M].北京:科學出版社, 1999.
[14] 孟明明.基于51單片機的簡易GPS定位系統(tǒng)設計[J].工業(yè)設計,2011,06:135.
[15] 李云溪,韓濤,項劍峰.基于單片機的GPS定位系統(tǒng)設計[J].四川兵工學報,2012,11:111-113.
[16] 黃少鋒,張尊泉,鄧斌,黃斌.基于單片機采集與顯示GPS定位信息系統(tǒng)的設計[J].空軍雷達學院學報,2007,01:37-39.