陳 賽,李建朝
(河南科技大學機電工程學院,河南洛陽 471003)
基于單片機的多功能手持GPS定位儀的設計
陳 賽,李建朝
(河南科技大學機電工程學院,河南洛陽 471003)
介紹基于STC89C52單片機下的GPS信息的接收及輸出顯示,并利用SD卡對導航數據進行保存。采用GPS模塊接收衛星信號,通過串口連接,既可通過單片機處理,然后在TFT彩屏上顯示相關信息,也可與PC機通信,通過PC機應用軟件顯示GPS信息,也可通過PC版靈圖電子地圖實現實時導航。將SD卡保存的數據經GPS Babel軟件轉換,在googel earth地圖上實現軌跡重現。實際應用效果表明,該設計合理有效,具有很高的實用價值。關鍵詞:全球定位系統;手持式;單片機;串口通信;軌跡
一直以來,出行的問題困擾著大家,我現在在哪里?應該向哪個方向走?直到20世紀末,這些問題終于有了一個有效、便捷的解決方法,那就是GPS——全球定位系統的出現與發展[1]。全球定位系統(Global Positioning System)是美國從20世紀70年代開始研制,于1994年全面建成,以接收導航衛星信號為基礎的非自主式導航與定位系統。該系統能夠在全球海、陸、空范圍內,全天候、連續實時的免費提供高精度的三維位置、三維速度和時間信息,為人類的導航和定位提供了可靠的保障。隨著社會的進步和科學技術的發展,GPS定位技術已經越來越接近普通人的生活。用戶通過設備接收GPS衛星信號,經信號處理獲得用戶位置、速度等信息,最終實現利用GPS進行定位導航。但目前GPS定位接收機價格比較昂貴而且使用靈活性低,難以滿足許多普通用戶的應用需求。所以,體積小、重量輕、功耗低、攜帶方便、價格低廉是GPS定位儀的發展趨勢。
本設計是以GS-15C GPS模塊為例,利用STC89C52單片機開發板,TFT顯示屏,開發設計的一種體積小、低成本、多功能的手持式GPS定位儀。
手持式定位儀的組成結構如圖1所示,主要由STC89C52單片機微處理器、GPS模塊、TFT彩屏、SD卡模塊、PC機、串口轉換按鍵及電池組成。
定位儀主要有以下功能:
1)獲取并顯示定位信息,包括經緯度、速度、海拔及方向、時間等信息。
2)將獲取的導航信息保存在SD卡上,經GPS Babel軟件進行數據處理和轉換,可在google earth顯示路線軌跡。
3)通過串口轉換按鍵,可使GPS模塊、單片機、PC機,任何2個都能進行通信。所以此系統可以按需要修改單片機程序,查看GPS輸出數據等。

圖1 系統的組成
4)在PC機上安裝靈圖導航地圖軟件,通過GPS模塊與PC機通信,可實現在地圖上定位并導航。
5)系統采用4節充電電池或USB線纜供電,方便筆記本用戶,以便到室外進行調試,用筆記本插上USB線就可以實現供電。
6)整個系統采用貼片元件,體積小、重量輕,便于用戶手持攜帶。
2.1 CPU系統
考慮到手持式定位儀體積的限制和性能的要求,CPU采用宏晶科技推出的STC89C52RC單片機[2],封裝為LQFP-44貼片式。該型單片機體積小、功耗低、抗干擾能力強,指令代碼完全兼容傳統8051單片機。在設計中,CPU外接11.0592 MHz晶振。
2.2 GPS接收模塊
GPS接收模塊的型號為GS-15C。模塊是由韓國生產,貼片封裝,采用MTK芯片組,在功耗、價格上都有很大優勢,最重要的是該模塊天線內置,無需外接天線,體積小,外觀尺寸為30 mm(長)×27 mm(寬)×7 mm(高),滿足手持式定位儀的要求。該模塊其他主要特點如下:
1)12通道并行,可同時跟蹤12顆衛星。
2)定位精度高:位置精度為10 m圓周圍差,速度精度為0.1 m/s,時間誤差為1μs。
3)定位時間:熱啟動1 s,暖啟動38 s,冷啟動42 s。
4)工作電壓:4.5~5.5 V。
5)輸出格式:TTL。
2.3 TFT彩屏模塊
考慮到手持式定位儀[3]的體積不能太大,顯示屏采用1.6 in TFT彩屏,型號為三星S6D0117,分辨率為128×128,26萬色。該模塊工作電壓為5 V或3.3 V,支持8,9,16位接口,帶背光驅動,51單片機可直接驅動。
2.4 串行通信接口電路
本系統設計了RS232外部串行通信接口[4],可以通過PC機對單片機芯片進行在線燒寫。由于本GPS模塊輸出格式為TTL電平,故GPS模塊與單片機可直接進行串口通信,而不需進行電平轉換。同時,為了方便調試和使用,系統上設計有通信模式切換按鍵,可以設置成3種串口通信模式,分別為PC機——GPS模塊,PC機——單片機,單片機——GPS模塊,即三者之間兩兩通信。當按下PC機——單片機按鍵時,可以通過串口ISP在線下載程序;當按下單片機——GPS模塊按鍵時,可以用單片機解析GPS模塊數據,并通過TFT彩屏顯示;當按下PC機——GPS模塊按鍵時,可以通過PC機應用軟件來監視GPS模塊數據輸出或者在PC機上實現顯示當前地圖位置。
2.5 電池
采用5 V直流充電電池(由4節充電電池組成)。由于在電路板上設計了充電濾波和保護電路,使得電池的充電簡單易行。充電時,只需將一個5 V的整流器接到定位儀上(不必要先將電池從定位儀中取出),大約4 h后,就可完成對電池的充電。同時,在系統中設計了USB供電端口,通過USB端口,與電腦USB端口相連可對系統進行供電。這對于系統在室外調試和與電腦進行通信提供了很大方便。
3.1 工作原理
GPS模塊的工作原理[5]是:通過天線獲取衛星信號,經過變頻、放大、濾波等一系列處理,實現對天線視界內衛星信號的跟蹤、鎖定和測量,最終產生計算位置的數據信息(包括:經度、緯度、高度、速度、時間、日期、航向、衛星狀況等),并經RS232標準I/O輸出串行數據或者輸出TTL數據。
3.2 GPS模塊輸出數據格式
GPS模塊雖然型號很多,但是絕大多數都采用NMEA-0183通信格式[6]。其格式定義為:
波特率:4 800 bit/s;(默認,可以按需要改變)
數據位:8位;
停止位:1位;
奇偶校驗:無;
NMEA-O183語句解析。
NMEA通訊協議所規定的通訊語句都是以ASCII碼為基礎的,NMEA-0183協議語句的數據格式如下:“$”為語句起始標志;“,”為域分隔符;“*”為校驗和識別符,其后面的兩位數為校驗和,代表了“$”和“*”之間所有字符的按位異或值(不包括這兩個字符);“/”為終止符,所有的語句必須以它結束,也就是ASCII字符的“回車”(十六進制的0D)和“換行”(十六進制的0A)。
典型的NMEA0183語句如下面的GPRMC語句:
$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
字段0:$GPRMC,語句ID,表明該語句為Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦最小定位信息
字段1:UTC時間,hhmmss.sss格式
字段2:狀態,A=定位,V=未定位
字段3:緯度ddmm.mmmm,度分格式(前導位數不足則補0)
字段4:緯度N(北緯)或S(南緯)
字段5:經度dddmm.mmmm,度分格式(前導位數不足則補0)
字段6:經度E(東經)或W(西經)
字段7:速度,節,Knots
字段8:方位角,度
字段9:UTC日期,DDMMYY格式
字段10:磁偏角,(000-180)度(前導位數不足則補0)
字段11:磁偏角方向,E=東,W=西
字段16:校驗值
GPS模塊上電經過自檢后,進入衛星測量狀態并不斷地輸出相關信息。
本定位儀除了手持使用外,還能通過串口與PC機進行通信。定位儀中的GPS模塊負責接收來自衛星的信號,PC機上可以安裝各種相對應的應用軟件[7],只要在PC機上設置好串口端口和波特率,就能使GPS模塊和PC機進行通信。
比如,在系統調試時,需要用PC機上的串口調試助手來觀察GPS模塊輸出的數據,方法是:用串口線將定位儀和PC機的串口(Com1)相連,按下PC機——GPS模塊按鍵,打開串口調試助手,將波特率設置成與GPS模塊的波特率一樣,串口選擇com1,可以看見串口調試助手顯示框上不斷地實時顯示GPS模塊接收到的衛星數據。
另外,可以在PC機上安裝天行者中國電子地圖導航軟件,將PC機與GPS模塊串口相連,當GPS信號接收正常后,可以在地圖上顯示當前所在位置,當把你要去的地方設為目的地時,系統會自動計算距離而且是實際公路距離。開始導航后,當你到路口的時候系統會自動語音提示左轉還是右轉。如果你去了一個地圖上沒有的地方,系統也會為你提供軌跡存儲功能,記錄所走過的路,這樣就可以輕松找到回去的路。很多地圖還能標出每一個點的坐標,這樣在地圖上沒有標出地名的地方,也可以根據經緯度在普通地圖上找到你的位置。這就大大滿足了野外人員的需求,還有就是喜歡駕車長途旅游的朋友們可以方便地找到自己位置,不至于迷路。
5.1 SD卡模塊介紹
SD卡主要功能是存儲GPS模塊接收到的導航數據。SD卡的驅動方式有2種模式,SD模式與SPI模式。設計中,單片機對SD卡進行驅動時,采用SPI模式,一方面是因為SPI模式接口與操作方法比較簡單,易于實現;另一方面是因為操作的數據量并不是很大,速度并不需要很快。SD模式用于數據量比較大、速度要求比較快的應用場合。SD卡工作在SPI模式時,只需要4根信號線,即CS片選、DIN數據輸入、CLK時鐘、DOUT數據輸出。另外,SD卡的工作電壓是3.3 V,而本設計中,電源采用5 V供電,故需要進行電壓轉換,設計中,采用AME1117-3.3穩壓模塊,通過穩壓模塊的轉換,可以將5 V電壓轉換為3.3 V,給SD卡供電。
5.2 軌跡重現功能實現過程
上面已經介紹,SD卡主要功能是存儲GPS模塊接收到的導航數據。但是要實現導航軌跡的重現還需要用到兩款軟件,分別是GPS Babel軟件和googel earth軟件。GPS Babel軟件的主要功能是將SD卡上存儲的導航數據進行格式轉換,googel earth軟件的主要功能是實現導航軌跡的重現。
設計中,主要是利用googel earth軟件來實現行進軌跡的重現,但是googel earth軟件只能支持KML格式的文件,而SD卡上存儲的數據格式為NMEA 0183 sentences,所以要利用GPS Babel軟件來進行數據格式轉換。數據轉換方法如圖2所示,打開GPS Babel軟件,設置好Input和Output,點擊“let’s go”,則會將SD卡文件中的NMEA 0183 sentences語句轉換為googel earth軟件支持KML格式的文件,然后打開googel earth軟件,在googel earth軟件界面上,通過“文件→打開”,打開轉換好的KML格式的文件,則會在googel earth地圖上顯示軌跡。

圖2 GPS Babel運行界面
系統軟件實現的主要功能是在GPS模塊輸出的大量信息中,提取出時間、經度、緯度、速度和方向信息,經過處理,在TFT彩屏上顯示出來,并每秒刷新一次[8]。主程序流程圖如圖3所示。

圖3 主程序流程
本設計中軟件開發環境為Keil C5l,用C語言對STC89C52單片機進行GPS導航數據的處理和解算,由TFT彩屏顯示。采用這種設計方法優點有:用C語言開發本系統軟件中的數據處理部分,可以使單片機具有較強大的數據處理能力。
根據本文所討論的設計方法,已成功研制出手持式GPS樣機一臺,該樣機重量輕、體積小(90 mm ×65 mm×40 mm)、成本低,便于用戶攜帶和使用,值得推廣。
[1]B.Hofmann-Wellonhof,H.Lichtenegger,J.Collins.Global positioning system:theory and practice[M].New York:Springer-Verlag,2001:89-125.
[2]張毅剛,彭喜源,曲春波,等.MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業大學出版社,1997:42-66.
[3]陳嘉清.手持定位裝置的設計與實現[D].大連.大連海事大學,2009.
[4]林艷玲.采用MAX232實現MCS-51單片機與PC機通信[J].天津理工學院學報,1999,15(2):57-61.
[5]胡輝.高動態數字化GPS接收機的研制[R].上海:上海航天局博士后工作站出站報告,2002.
[6]Renato Filjar,Tomislav Koa,Markezic.GPS Ionospheric Error Correction Models.The 48th Internation Symposium ELMAR-2006,Croatia.2006.215-217.
[7]許紹銓,張華海,楊志強,等.測量原理及應用[M].武漢:武漢大學出版社,2002:84-98.
[8]JAMES BAO-YEN TSUI.GPS軟件接收機基礎[M].北京:電子工業出版社,2008.
Design of multi-function portable orientation GPS instrument based on MCU
CHEN Sai,LI Jian-chao
(School of Mechatronics Engineering,Henan University of Science and Technology,Luoyang 471003,China)
Receiver and output display of GPS information based on the STC89C52 MCU are introduced indetail.Using GPS module as satellite reception,through a serial port conversion,can not only by MCU processing,displaying relevant information in TFT,but also can communicate with the PC,through PC application software,displaying GPS output data.The actual application result indicates that the design is rational and effective with high practical value.
GPS;portable;MCU;serial communication;track
P228.4
A
1006-7949(2012)04-0057-04
2011-05-15
陳 賽(1984-),男,碩士研究生.
[責任編輯:劉文霞]