封勇韜, 花興艷
(1.海軍91550部隊93分隊 遼寧 大連 210000;2. 海軍91550部隊94分隊 遼寧 大連 116023)
從飛行目標的外彈道測量的角度看,天基測量是飛行目標外彈道測量未來的發展方向,因此,了解掌握GPS定位測量的相關知識是未來發展的需要。為了解GPS測量原理,熟悉GPS接收衛星信號的定位過程,掌握GPS接收機輸出信號的數據格式,探討GPS接收定位的測量誤差,設計并實現了微型GPS接收機。
通過GPS接收機的設計與實現,鍛煉以單片機為核心的嵌入式系統研發技術,增強了嵌入式系統開發人員的軟硬件能力,加強嵌入式編程的實踐,為飛行目標的測控系統中嵌入式系統技術的掌握奠定了基礎[1-3]。設計完成的微型GPS微型接收機,可以用于移動光測設備的站點定位,驗證光測設備的站點坐標,也可方便的用于車船出行的定位。
采用軟件ProtelDXP 2004設計繪制硬件電路原理圖,生成網絡表,使用軟件ProtelDXP 2004繪制雙面印制板。硬件系統以單片機AT89C52為核心,Max813L作為單片機的硬件看門狗,使用微雪公司的12864-ST LCD液晶屏顯示信息。采用Jupiter GPS OEM板作為GPS的核心器件,使用OEM板配套的天線接收信號,使用成都視普公司的SP2339芯片進行串口擴展(1):母串口連接單片機,兩路子串口連接OEM板,一路子串口連接計算機。USB接口采用CH375B實現,方便使用U盤存儲GPS的定位數據。硬件框圖如圖1所示。

圖1 微型GPS接收機硬件框圖Fig. 1 Block diagram of the micro-GPS receiver hardware
仿真器選擇南京萬利的MedWin Me52,寫片器使用Super-PRO680,編程語言選擇Keil C。主程序框圖如圖2所示。串口中斷接收數據并存儲,同時轉發數據給計算機。如果沒有計算機接收,可以選擇使用U盤存儲收到的數據。主程序讀取數據并分析顯示。在中斷中進行串口數據的收發。
2.1.1 硬件電路
分析:GPS OEM板上有兩個串口:主串口傳送定位數據,輔助串口接收RTCM SC-104差分數據。單片機通過串口轉發GPS OEM板的定位數據[4],因此共需要3個串口,而單片機AT89C52只有一個串口。
SP2339是采用低功耗CMOS 工藝設計的通用異步串行口擴展芯片,可將主機原有的1個串行口擴展成3 個全新的全雙工串行口[5]。
SP2339適用于1個起始位、8個數據位、1個停止位的多串口系統,即其幀格式是不可編程的。主機通過改變ADRI1、ADRI0地址線狀態的方式選擇3個子串口中的任意一個,3個子串口的地址分別為00、01、10。
主機收發數據時序為:主機TX3接收到一個字節后應立即讀取SP2339的輸出地址ADRO0、ADRO1的狀態,判斷接收到的數據來自哪個子串口;主機發送數據時,首先通過ADRI0、ADRI1選擇某一個子串口,再向TX3寫將發送的數據[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為波特率倍頻系數,n為波特率分頻系數
串口3的波特率:
K3=K*4= (bps)
其中K為串口0、串口1、串口2的波特率的最大值。
b)SP2339數據的讀寫:
ADRI0、ADRI1 為串口3發送數據時的串口地址線,“00”、“01”、“10”分別對應:串口0、串口1、串口2的地址;“11”為串口3的地址。當單片機要向某一個子串口連接的下位機發送數據時,首先要將ADRI0、ADRI1置成響應的地址狀態,再將數據發送到串口3即可。
ADRO0、ADRO1 為串口3接收數據時的串口地址線,“00”、“01”、“10”分別對應:串口0、串口1、串口2的地址。當單片機的串口接收到串口3送來的數據時,立刻讀取地址線ADRO0、ADRO1的狀態,根據地址線ADRO0、ADRO1的狀態即可判斷出接收到的數據是由哪個串口上傳的。
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 波特率的調節
Jupite GPS OEM板具有兩種數據格式,一種是二進制方式,另一種是NMEA(也為ASCII碼)方式,可通過設置GPIO2和GPIO3來選擇不同的數據格式。選擇不同的數據格式所對應的形式不同,消息長度和內容也不同。串口選擇及波特率配置表如表2所示。
采用以ST7920為核心芯片的128*64的液晶屏,自帶字庫,可選的字符顯示模式和圖形顯示模式,具有可選擇的串口模式或并口模式。

表2 串口配置表Tab.2 Configuration of the serial port
液晶屏采用定時刷屏加按鍵控制的方法,更換顯示信息:在沒有按鍵輸入時:采用定時刷新的方式;在有按鍵按下時,分析鍵值,如果是上鍵,則刷新,顯示前一屏數據,如果是下鍵,則顯示下一屏數據,如果是保持鍵,則保持本屏幕的顯示信息。
液晶屏編程函數如表3所示。

表3 液晶屏編程函數Tab.3 Programming functions of the LCD panel
GPS傳輸過來的數據:
$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
分析數據:其中最長的語句需要73個字符的RAM,為此,在DATA區開辟了73個字節的RAM作為緩沖區,接收到GPS發送過來的數據即存儲、同時轉發給計算機。當接收到$時,指針開始后移,當接收到回車符號時,停止移動指針,下次接到$繼續開始覆蓋式存儲。在接收數據的同時分析數據,找到需要的顯示的數據:經度、緯度、高程、數據是否有效、可見的衛星、使用解算衛星、日期、時間等數據,記錄先來,繼而顯示。
實踐驗證,設計的GPS接收機搜索衛星速度快,實時接收到衛星數據,單片機通過串口轉發給上位機。同時,單片機解算收到的數據,通過單片機控制,選擇顯示:可見衛星的數量,使用定位解算衛星的數量,解算出經度、緯度、高程、地球橢球面相對大地水平面的高度、日期、時間等,實現了設計要求的技術指標,達到了預定的效果。
通過基于單片機的嵌入式開發,熟悉并掌握了電路原理圖設計、繪制PCB雙面板、嵌入式編程及后期的安裝調試。通過項目的開發的鍛煉,能夠讀懂元器件DataSheet中的各項參數的含義,結合項目的要求分析各個參數的作用。
通過微型GPS接收機的設計開發,掌握了GPS的原理,熟悉了GPS接收數據的格式及各種數據的含義,為事后處理提供借鑒。
[1] 王琦,胡修林.基于OEM板的GPS定位接收機的研究與實現[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的多串口擴展實現[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] 秦紅磊,孫小續.基于GP4020的GPS接收機的軟硬件設計.電子技術應用[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板的串行通訊系統設計.電子元器件應用[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機與單片機間串行通信的實現.現代電子技術[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.