?
嵌入式系統(tǒng)從20世紀(jì)孤立的單片機時代過渡到單片機與多科學(xué)融合時代,再到如今的嵌入式物聯(lián)網(wǎng)時代,使得嵌入式系統(tǒng)再次遇到了新的機遇。GPS(Global Position System,全球?qū)Ш较到y(tǒng))時空參數(shù)是物聯(lián)網(wǎng)時代國家公證的工程建設(shè),它為航空航海、科學(xué)勘探、地理測量、運輸行業(yè)、通信行業(yè)提供了精確的導(dǎo)航、指揮、監(jiān)控、授時等服務(wù)。本文充分結(jié)合STC單片機和Trimble公司的接收機設(shè)計出了導(dǎo)航授時系統(tǒng)。系統(tǒng)能實時給出運動載體的位置和速度等信息,并能同步接收衛(wèi)星時間。
系統(tǒng)主要具有導(dǎo)航和授時兩大功能。系統(tǒng)最大的優(yōu)點是在戶外可以通過液晶屏顯示導(dǎo)航信息和時間信息,在室內(nèi)通過上位機人機交互界面顯示衛(wèi)星時間和運動物體的經(jīng)度、緯度、海拔等導(dǎo)航信息。系統(tǒng)克服了常用導(dǎo)航儀的繁瑣設(shè)計、功能單一、成本利用高等缺點,在此基礎(chǔ)上設(shè)計出了一款簡易、性價比高、應(yīng)用普遍、易于擴展的導(dǎo)航系統(tǒng)。這為常用的導(dǎo)航和授時服務(wù)提供了很大的幫助。
1 系統(tǒng)硬件設(shè)計
1.1 設(shè)計思路
首先,GPS模塊定時發(fā)送GPS導(dǎo)航數(shù)據(jù)和衛(wèi)星時間到STC單片機,然后STC單片機對GPS導(dǎo)航數(shù)據(jù)進行處理并把數(shù)據(jù)發(fā)送給LCD液晶顯示屏或PC機,導(dǎo)航授時系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
?
系統(tǒng)的核心是GPS導(dǎo)航模塊,處理器是宏晶科技公司推出的STC12C5A單片機。GPS導(dǎo)航模塊采用Trimble公司的Sierra GPS芯片接收衛(wèi)星導(dǎo)航信息和授時服務(wù)。Sierra芯片采用了Trimble公司獨有的GPS算法來確保導(dǎo)航數(shù)據(jù)的準(zhǔn)確性和衛(wèi)星信號的快速鎖定。它還能夠有效地解決城市應(yīng)用中經(jīng)常出現(xiàn)的信號遮擋、多路徑和射頻干擾問題。STC12C5A是增強型8051內(nèi)核具有超低功耗和超強抗十?dāng)_的特性,為GPS導(dǎo)航系統(tǒng)在戶外勘測和野外監(jiān)測提供了很大的方便。本系統(tǒng)控制器件并不復(fù)雜,也不需要很大的存儲空間,STC12C5A可以控制整個系統(tǒng)節(jié)省成本。另外,STC12C5A有2個串口剛好滿足系統(tǒng)需求。LCD液晶顯示選擇的是LMB102DDC顯示屏。該顯示屏小巧、易控制、顯示清楚、成本低,是該系統(tǒng)的最佳選擇。
1.2 硬件原理
圖2為GPS導(dǎo)航電路。GPS導(dǎo)航模塊提供實時的三維位置和UTC時間信息,通過GPS的串行通信口B發(fā)送數(shù)據(jù)給STC單片機。GPS導(dǎo)航模塊和ST C單片機的輸入/輸出電平都是TTL電平,所以串口之間可直接通信。GPS發(fā)送數(shù)據(jù)的波特率有9 600bps、4 800bps、2 400bps可任意選擇。
?
圖3是STC12C5A與LMB102DDC的接口電路。LMB102DDC內(nèi)核模塊內(nèi)部有一個指令寄存器和一個數(shù)據(jù)寄存器,其指令分為皋本指令和擴展指令。指令主要用來初始化液晶顯示屏,實現(xiàn)基本控制。其中,包括清屏設(shè)置、顯示位置、光標(biāo)狀態(tài)、顯示狀態(tài)、功能沒置等。LMB102DDC既可以寫數(shù)據(jù)到RAM中,又可以從RAM中讀數(shù)據(jù),在此主要是寫數(shù)據(jù)到RAM。
?
當(dāng)導(dǎo)航系統(tǒng)在戶外工作時,STC單片機將接收到的導(dǎo)航數(shù)據(jù)和時間信息進行處理,然后將導(dǎo)航的經(jīng)度、緯度、海拔、衛(wèi)星時間通過P0口輸出,并顯示在LMB102DDC液晶屏上。當(dāng)導(dǎo)航系統(tǒng)在室內(nèi)工作時,STC單片機將接收到的導(dǎo)航信息通過串口完整地發(fā)送到PC機。PC機通過系統(tǒng)的上位機軟件查看相關(guān)的GPS導(dǎo)航數(shù)據(jù)和時間信息。由于PC機的輸入/輸出電平和STC單片機的輸入/輸出電平不一樣,兩者相互通信時要加一個MAX232電平轉(zhuǎn)換電路。室內(nèi)工作不選擇LCD顯示導(dǎo)航信息主要是考慮到節(jié)約成本和保持系統(tǒng)的完整性這兩方面。這也是該導(dǎo)航系統(tǒng)區(qū)別其他導(dǎo)航系統(tǒng)的特色。
導(dǎo)航授時系統(tǒng)的另外一個優(yōu)點是能夠通過上位機軟件校準(zhǔn)導(dǎo)航系統(tǒng)的相關(guān)信息。利用一組最新的時間數(shù)據(jù)(年、月、日、時、分、秒)和軟件系統(tǒng)的工作模式按一定的格式通過串行通信接口發(fā)送給STC單片機,STC單片機利用這組數(shù)據(jù)對錯誤的信息進行校準(zhǔn)并根據(jù)發(fā)送的設(shè)置更改工作模式,上位機發(fā)送設(shè)置如圖4所示。
?
2 系統(tǒng)軟件設(shè)計
2.1 設(shè)計流程
軟件沒計是系統(tǒng)的控制中心。系統(tǒng)使用C語言在Keil uVision4編譯器中編寫STC單片機程序。程序主要包括接收GPS數(shù)據(jù)、處理GPS數(shù)據(jù)、顯示控制等。主程序流程如圖5所示。
?
2.2 控制程序
STC12C5A通過串口接收一組完整的GPS數(shù)據(jù)后,通過控制程序?qū)PS信息作相應(yīng)的處理。處理完后通過串口發(fā)送給上位機,在整個過程中必須同時打開2個串口。STC12C5A的2個串口剛好滿足系統(tǒng)要求,而且可以對它們設(shè)置不同的波特率。STC12C5A系列的單片機擴展了1 KB的RAM空間,足夠本系統(tǒng)作為暫時的緩沖器。系統(tǒng)不用保存大量的數(shù)據(jù),雖然串口2一直在接收GPS導(dǎo)航數(shù)據(jù)和授時數(shù)據(jù),同樣串口1以更高的波特率在向上位機發(fā)送數(shù)據(jù),最后所有的數(shù)據(jù)都會通過上位機軟件以.txt格式保存在PC機上。控制程序在設(shè)置串口中斷優(yōu)先級時會把發(fā)送數(shù)據(jù)的串口中斷設(shè)置成最高優(yōu)先級,優(yōu)先滿足串口發(fā)送。接收GPS數(shù)據(jù)時每隔1 s接收一次導(dǎo)航信息,這樣不會影響導(dǎo)航的精度。發(fā)送數(shù)據(jù)的串口波特率設(shè)置成115 200 bps,接收GPS數(shù)據(jù)的串口波特率設(shè)置成9 600 bps,2個串口的初始化程序代碼如下:
?
數(shù)據(jù)處理部分主要是判斷GPS發(fā)送給STC單片機的數(shù)據(jù)是否有效,在數(shù)據(jù)有效時提取經(jīng)度、緯度、海拔、衛(wèi)星日期、時間信息保存在字符數(shù)組中。數(shù)據(jù)保存完后確定數(shù)據(jù)是發(fā)送給LCD顯示屏顯示,還是通過串口發(fā)送給上位機軟件顯示。顯示模式有LCD顯示和上位機軟件顯示,默認(rèn)方式是LCD顯示。如果需要上位機界面為顯示模式時,先通過上位機軟件中的“發(fā)送設(shè)置”對話框設(shè)置“顯示模式”為1,然后發(fā)送給STC單片機。
3 上位機軟件設(shè)計
整個上位機采用結(jié)構(gòu)化和模塊化設(shè)計方法。上位機軟件是基于對話框的MFC應(yīng)用程序設(shè)計的,主要有串口通信模塊、導(dǎo)航數(shù)據(jù)和時間顯示模塊、工作模式設(shè)置模塊、授時模塊。授時模塊的作用是讓PC機時間與衛(wèi)星同步,確保PC機時間的精確度。與系統(tǒng)相連的PC機可以作為一個授時主機向其他單元發(fā)送時間。
串口通信模塊的編寫是用Microsoft公司提供的串口通信MSComm控件。添加了MSComm控件后,首先要對控件初始化,然后打開串口準(zhǔn)備按位接收字符。串口通信模塊的主要程序代碼如下:
?
顯示模塊是當(dāng)串口接收到字符后,對接收的字符進行分離并對應(yīng)顯示在軟件界面上。上位機軟件顯示效果如圖6所示。
?
4 測試結(jié)果
系統(tǒng)經(jīng)過調(diào)試,最后將導(dǎo)航信息發(fā)送給上位機軟件,顯示結(jié)果如圖6所示。軟件界面的時間是從衛(wèi)星中獲取的UTC時間加8得到的北京時間,GPS數(shù)據(jù)的經(jīng)度、緯度、海拔是導(dǎo)航點的信息。衛(wèi)星數(shù)是當(dāng)前搜索到的衛(wèi)星數(shù),工作模式有GPS模式和北斗模式。軟件的存儲設(shè)置是存儲設(shè)備端發(fā)送的完整數(shù)據(jù);上位機發(fā)送設(shè)置界面如圖4所示。主要是設(shè)置顯示模式和校準(zhǔn)設(shè)備當(dāng)前的數(shù)據(jù)信息。通過測試,整個系統(tǒng)運行良好并到達了預(yù)期的效果。
結(jié)語
本文設(shè)計了一種基于STC單片機設(shè)計的低功耗、低成本、多功能的導(dǎo)航授時系統(tǒng)。主要闡述了整個系統(tǒng)的硬件設(shè)計原理、主要模塊電路以及軟件設(shè)計流程,并對系統(tǒng)配套的上位機軟件作了詳細(xì)的介紹。系統(tǒng)通過測試可以在戶外、室內(nèi)運行,為需要導(dǎo)航服務(wù)的行業(yè)和授時系統(tǒng)提供了很大的幫助。
評論
查看更多