封勇韜, 花興艷
(1.海軍91550部隊93分隊 遼寧 大連 210000;2. 海軍91550部隊94分隊 遼寧 大連 116023)
從飛行目標的外彈道測量的角度看,天基測量是飛行目標外彈道測量未來的發(fā)展方向,因此,了解掌握GPS定位測量的相關(guān)知識是未來發(fā)展的需要。為了解GPS測量原理,熟悉GPS接收衛(wèi)星信號的定位過程,掌握GPS接收機輸出信號的數(shù)據(jù)格式,探討GPS接收定位的測量誤差,設(shè)計并實現(xiàn)了微型GPS接收機。
通過GPS接收機的設(shè)計與實現(xiàn),鍛煉以單片機為核心的嵌入式系統(tǒng)研發(fā)技術(shù),增強了嵌入式系統(tǒng)開發(fā)人員的軟硬件能力,加強嵌入式編程的實踐,為飛行目標的測控系統(tǒng)中嵌入式系統(tǒng)技術(shù)的掌握奠定了基礎(chǔ)[1-3]。設(shè)計完成的微型GPS微型接收機,可以用于移動光測設(shè)備的站點定位,驗證光測設(shè)備的站點坐標,也可方便的用于車船出行的定位。
采用軟件ProtelDXP 2004設(shè)計繪制硬件電路原理圖,生成網(wǎng)絡(luò)表,使用軟件ProtelDXP 2004繪制雙面印制板。硬件系統(tǒng)以單片機AT89C52為核心,Max813L作為單片機的硬件看門狗,使用微雪公司的12864-ST LCD液晶屏顯示信息。采用Jupiter GPS OEM板作為GPS的核心器件,使用OEM板配套的天線接收信號,使用成都視普公司的SP2339芯片進行串口擴展(1):母串口連接單片機,兩路子串口連接OEM板,一路子串口連接計算機。USB接口采用CH375B實現(xiàn),方便使用U盤存儲GPS的定位數(shù)據(jù)。硬件框圖如圖1所示。
圖1 微型GPS接收機硬件框圖Fig. 1 Block diagram of the micro-GPS receiver hardware
仿真器選擇南京萬利的MedWin Me52,寫片器使用Super-PRO680,編程語言選擇Keil C。主程序框圖如圖2所示。串口中斷接收數(shù)據(jù)并存儲,同時轉(zhuǎn)發(fā)數(shù)據(jù)給計算機。如果沒有計算機接收,可以選擇使用U盤存儲收到的數(shù)據(jù)。主程序讀取數(shù)據(jù)并分析顯示。在中斷中進行串口數(shù)據(jù)的收發(fā)。
2.1.1 硬件電路
分析:GPS OEM板上有兩個串口:主串口傳送定位數(shù)據(jù),輔助串口接收RTCM SC-104差分數(shù)據(jù)。單片機通過串口轉(zhuǎn)發(fā)GPS OEM板的定位數(shù)據(jù)[4],因此共需要3個串口,而單片機AT89C52只有一個串口。
SP2339是采用低功耗CMOS 工藝設(shè)計的通用異步串行口擴展芯片,可將主機原有的1個串行口擴展成3 個全新的全雙工串行口[5]。
SP2339適用于1個起始位、8個數(shù)據(jù)位、1個停止位的多串口系統(tǒng),即其幀格式是不可編程的。主機通過改變ADRI1、ADRI0地址線狀態(tài)的方式選擇3個子串口中的任意一個,3個子串口的地址分別為00、01、10。
主機收發(fā)數(shù)據(jù)時序為:主機TX3接收到一個字節(jié)后應(yīng)立即讀取SP2339的輸出地址ADRO0、ADRO1的狀態(tài),判斷接收到的數(shù)據(jù)來自哪個子串口;主機發(fā)送數(shù)據(jù)時,首先通過ADRI0、ADRI1選擇某一個子串口,再向TX3寫將發(fā)送的數(shù)據(jù)[6]。
圖2 主程序框圖Fig. 2 Bblock diagram of the main program
2.1.2 SP2339的編程
a)波特率的計算:
串口0、串口1、串口2的波特率為:
K=1 200*2m*Fosc_in/n (bps)
其中:Fosc_in晶振頻率,m為波特率倍頻系數(shù),n為波特率分頻系數(shù)
串口3的波特率:
K3=K*4= (bps)
其中K為串口0、串口1、串口2的波特率的最大值。
b)SP2339數(shù)據(jù)的讀寫:
ADRI0、ADRI1 為串口3發(fā)送數(shù)據(jù)時的串口地址線,“00”、“01”、“10”分別對應(yīng):串口0、串口1、串口2的地址;“11”為串口3的地址。當單片機要向某一個子串口連接的下位機發(fā)送數(shù)據(jù)時,首先要將ADRI0、ADRI1置成響應(yīng)的地址狀態(tài),再將數(shù)據(jù)發(fā)送到串口3即可。
ADRO0、ADRO1 為串口3接收數(shù)據(jù)時的串口地址線,“00”、“01”、“10”分別對應(yīng):串口0、串口1、串口2的地址。當單片機的串口接收到串口3送來的數(shù)據(jù)時,立刻讀取地址線ADRO0、ADRO1的狀態(tài),根據(jù)地址線ADRO0、ADRO1的狀態(tài)即可判斷出接收到的數(shù)據(jù)是由哪個串口上傳的。
2.2.1 Jupiter OEM板的連接
“Jupiter”GPS OEM板采用20腳DIP封裝,常用管腳的說明如表1所列。
表1 “Jupiter” GPS OEM板主要管腳說明Tab.1 Main pins of the “Jupiter”GPS OEM board
2.2.2 波特率的調(diào)節(jié)
Jupite GPS OEM板具有兩種數(shù)據(jù)格式,一種是二進制方式,另一種是NMEA(也為ASCII碼)方式,可通過設(shè)置GPIO2和GPIO3來選擇不同的數(shù)據(jù)格式。選擇不同的數(shù)據(jù)格式所對應(yīng)的形式不同,消息長度和內(nèi)容也不同。串口選擇及波特率配置表如表2所示。
采用以ST7920為核心芯片的128*64的液晶屏,自帶字庫,可選的字符顯示模式和圖形顯示模式,具有可選擇的串口模式或并口模式。
表2 串口配置表Tab.2 Configuration of the serial port
液晶屏采用定時刷屏加按鍵控制的方法,更換顯示信息:在沒有按鍵輸入時:采用定時刷新的方式;在有按鍵按下時,分析鍵值,如果是上鍵,則刷新,顯示前一屏數(shù)據(jù),如果是下鍵,則顯示下一屏數(shù)據(jù),如果是保持鍵,則保持本屏幕的顯示信息。
液晶屏編程函數(shù)如表3所示。
表3 液晶屏編程函數(shù)Tab.3 Programming functions of the LCD panel
GPS傳輸過來的數(shù)據(jù):
$GPRMC,083259,A,3853.5041,N,12132.9267,E,0.000,0.0,131009,6.8,W*61
$PRWIZCH,11,7,23,7,17,0,28,7,00,0,32,7,04,0,27,0,09,0,02,0,00,0,20,7*4E
$GPGGA,083300,3853.5041,N,12132.9267,E,1,05,0.90,65.6,M,4.4,M,,*77
$GPSV,3,1,10,17,69,339,00,28,53,188,46,20,51,073,40,04,36,25 5,00*70
分析數(shù)據(jù):其中最長的語句需要73個字符的RAM,為此,在DATA區(qū)開辟了73個字節(jié)的RAM作為緩沖區(qū),接收到GPS發(fā)送過來的數(shù)據(jù)即存儲、同時轉(zhuǎn)發(fā)給計算機。當接收到$時,指針開始后移,當接收到回車符號時,停止移動指針,下次接到$繼續(xù)開始覆蓋式存儲。在接收數(shù)據(jù)的同時分析數(shù)據(jù),找到需要的顯示的數(shù)據(jù):經(jīng)度、緯度、高程、數(shù)據(jù)是否有效、可見的衛(wèi)星、使用解算衛(wèi)星、日期、時間等數(shù)據(jù),記錄先來,繼而顯示。
實踐驗證,設(shè)計的GPS接收機搜索衛(wèi)星速度快,實時接收到衛(wèi)星數(shù)據(jù),單片機通過串口轉(zhuǎn)發(fā)給上位機。同時,單片機解算收到的數(shù)據(jù),通過單片機控制,選擇顯示:可見衛(wèi)星的數(shù)量,使用定位解算衛(wèi)星的數(shù)量,解算出經(jīng)度、緯度、高程、地球橢球面相對大地水平面的高度、日期、時間等,實現(xiàn)了設(shè)計要求的技術(shù)指標,達到了預(yù)定的效果。
通過基于單片機的嵌入式開發(fā),熟悉并掌握了電路原理圖設(shè)計、繪制PCB雙面板、嵌入式編程及后期的安裝調(diào)試。通過項目的開發(fā)的鍛煉,能夠讀懂元器件DataSheet中的各項參數(shù)的含義,結(jié)合項目的要求分析各個參數(shù)的作用。
通過微型GPS接收機的設(shè)計開發(fā),掌握了GPS的原理,熟悉了GPS接收數(shù)據(jù)的格式及各種數(shù)據(jù)的含義,為事后處理提供借鑒。
[1] 王琦,胡修林.基于OEM板的GPS定位接收機的研究與實現(xiàn)[J].電子工程師,2004,11(11):4-6.WANG Qi,HU Xiu-lin.Design and Implentation of a GPS receiver based on GPS-OEM bord[J].Electtonic Engineer,2004,11(11):4-6.
[2] 張羽,胡玉貴,殷奎喜,等.基于FPGA的多串口擴展實現(xiàn)[J].電子器件,2009,2(1):233-236.ZHANG Yu,HU Yu-gui,YIN Kui-xi,et al.Realization of multiserials extension based on FPGA[J].Chinese Journal Of Electron Devices, 20092(1):233-236.
[3] 秦紅磊,孫小續(xù).基于GP4020的GPS接收機的軟硬件設(shè)計.電子技術(shù)應(yīng)用[J],2008,03(1):9-13.QIN Hong-lei,SUN Xiao-xu.Design of soft and hard of a GPS Receiver Based on GP4020[J]. Application of Electronic Technique,2008, 3(1):9-13.
[4] 陳石磊,劉貴喜,向國華. FPGA與GPS-OEM板的串行通訊系統(tǒng)設(shè)計.電子元器件應(yīng)用[J].2008(5):42-44.CHEN Shi-lei,LIU Gui-xi,XIANG Guo-hua.System design of serials communication based on FPGA and GPS-OEM’s Board[J]Electronic Component&Device Application,2008(5):42-44.
[5] 張聞捷,唐琎.基于嵌入式處理器EP9312的多串口擴展.計算機測量與控制[J],2007,15(8):1063-1066.ZHANG Wen-jie,TANG Jin.Multi-serials extension based on EP9312[J].Computer Measurement & Control,2007,15(8):1063-1066.
[6] 陳冬梅,梁紅玉,陸冬妹.PC機與單片機間串行通信的實現(xiàn).現(xiàn)代電子技術(shù)[J],2010.9(17):196-198.CHEN Dong-mei,LIANG Hong-yu,LU Dong-mei.Realization of serial communication between PC and SCM[J].Modern Rlectronics Technique,2010, 9,(17):196-198.