基于S3C2410的GPS通訊的實現
1 gps的基本介紹
gps(global positioning system,全球定位系統)是美國從20世紀70年代開始研制,歷時20年,耗資200億美元,具有在海、陸、空進行全方位實時三維導航與定位能力的新一代衛星導航與定位系統[1]。其地面監控系統的原理框圖如圖1所示。

1.1 gps定位原理
gps定位的基本原理是根據高速運動的衛星瞬間位置作為已知的起算數據,采用空間距離后方交會的方法,確定待測點的位置。如圖2所示,假設t時刻在地面待測點上安置gps接收機,可以測定gps信號到達接收機的時間t,再加上接收機所接收到的衛星星歷等其他數據可以確定以下4個方程式:
上述4個方程式中待測點坐標x,y,z和vt0為未知參數,其中di=cti(i=1,2,3,4)。di(i=1,2,3,4)分別為衛星1,衛星2,衛星3,衛星4到接收機之間的距離。ti(i=1,2,3,4)分別為衛星1,衛星2,衛星3,衛星4的信號到達接收機所經歷的時間。c為gps信號的傳播速度(即光速)。
4個方程式中各個參數意義如下:
x,y,z為待測點坐標的空間直角坐標。
xi,yi,zi(i=1,2,3,4)分別為衛星1、衛星2、衛星3、衛星4在t時刻的空間直角坐標,可由衛星導航電文求得。vti(i=1,2,3,4)分別為衛星1,衛星2,衛星3,衛星4的衛星鐘的鐘差,由衛星星歷提供。vt0為接收機的鐘差。
由以上4個方程即可解算出待測點的坐標x,y,z和接收機的鐘差vt0。
目前gps系統提供的定位精度低于10m,而為得到更高的定位精度,通常采用差分gps技術:將一臺gps接收機安置在基準站上進行觀測。根據基準站已知精密坐標,計算出基準站到衛星的距離改正數,并由基準站實時將這一數據發送出去。用戶接收機在進行gps觀測的同時,也接收到基準站發出的改正數,并對其定位結果進行改正,從而提高定位精度。
1.2 gps主要用途
gps性能優異,應用范圍極廣。可以說,凡是需要導航和定位的部門,都可以采用gps。gps的建成和應用,是導航技術的一場革命,影響深遠。其主要用途有:
(1)導航定位應用
gps是空中、海洋和陸地導航定位最先進、最理想的技術。他可以為飛機、艦船、車輛、坦克、炮兵、陸軍部隊和空降兵提供全天候連續導航定位。他是航天飛機和載人飛船最理想的制導、導航系統。為其起飛、在軌運行和再入過程連續服務。
(2)精密定位應用
應用gps載波相位測量技術,可以精確地測定兩點間的相對位置,為大地測量、海洋測量、航空攝影測量和地球動力學測量提供了高精度、現代化的測量手段。gps已廣泛應用于建立準確的大地基準、大地控制網和地殼運動監測網等。
(3)精密授時、大氣研究
gps用戶接收機通過對gps衛星的觀測,可獲得準確gps時。gps時與utc時是同步的,因此gps亦是當今精度最高的全球授時系統。一般接收機測時精度為100 ns;專用定時接收機可獲得更高的精度,用于遠距離時間同步可達ns級。由于utc時有跳秒,故gps時與utc時有已知的整數秒差。利用gps測定的電離層延遲和多普勒頻移延遲,可用來研究電離層的電子積分濃度、折射系數、電子濃度隨高度的分布,以及上述電離層參量在時間和空間上的相關性等。
(4)為武器精確制導
應用gps/ins組合制導系統時,gps不斷修正導彈飛行中慣性導航誤差,提高制導精度,增強武器的"精確打擊"能力。在海灣戰爭中,gps為提高武器的命中精度,發揮了巨大作用,故被稱為"效益倍增器"。
(5)航天與武器試驗中的應用
gps在各類航天器定軌和導彈、常規武器試驗中有著廣泛的應用。gps可為各類衛星測定精密軌道。用差分gps完成飛船的交會和對接。在武器試驗中,應用gps可精確測定彈道。他具有不受天氣條件、發射場區、射向、射程和發射窗口的限制;可實現連續、全程跟蹤測量,可跟蹤低飛和多個目標,且精度高、費用低。
gps還可用于飛行器姿態測量。姿態測量采用gps載波相檢測量技術。在衛星或其他航天器的適當位置上安裝多副天線,用gps測定各天線的精確位置,從而確定航天器的姿態。
2 目標平臺介紹
在本文中使用的目標平臺s3c2410是samsung公司使用arm920t處理器內核開發的一款嵌入式處理器。s3c2410是samsung公司專門為pda,internet設備和手持設備等專門開發的微處理器。該芯片還包含有16 kb一體化的cache/mmu,這一特性使開發人員能夠將linux和vx-work移植到基于該處理器的目標系統中。
該目標板的系統資源如下:
(1)cpu:s3c2410微處理器,工作頻率為200 mhz;
(2)flash:16 mb;
(3)sdram:64 mb sdram;
(4)uart:rs 232串行接口;
(5)其他:14針arm jtag接口等;
(6)液晶顯示屏。
在目標平臺s3c2410上所選配的gps模塊是gps15l/h。接口特性如下:rs 232輸出,可輸入rs 232或者具有rs 232極性的ttl電平。可選的波特率為:300,600,1 200,2 400,4 800,9 600,19 200。gps15與pc串口的連接見示意圖(圖3)所示。
串口輸出協議:輸出nema0183格式的ascii碼語句,輸出:gpalm,gpgga,gpgll,gpgsa,gpgsv,gprmc,gpvtg(nmea標準語句);pgrmb,pgrme,pgrmf,pgrmm,pgrmt,pgrmv(garmin定義的語句)。還可將串口設置為輸出包括gps載波相位數據的二進制數據。輸入:初始位置、時間、秒脈沖狀態、差分模式、nmea輸出間隔等設置信息。在缺省的狀態下,gps模塊輸出數據的波特率為4800,輸出信息包括:gprmc,gpgga,gpgsa,gpgsv,pgrme等,每秒鐘定時輸出,如3所示。

3 交叉編譯環境的建立及程序的實現
基于linux操作系統的應用開發環境一般是由目標系統硬件(開發板)和宿主pc機所構成[2]。目標硬件開發板用于運行操作系統和系統應用軟件,而目標板所用到的操作系統的內核編譯、應用程序的開發和調試則需要通過宿主pc機來完成(所以稱為交叉編譯)。雙方之間一般通過串口,并口或以太網接口建立連接關系。
3.1 燒寫linux內核等
通過串口,宿主pc機向目標開發板燒寫vivi,經過裁減的linux內核以及根文件系統等,然后安裝主編譯器armv41-unknown-linux-gcc。
3.2 nfs服務器的配置
在本文中宿主pc機上裝的是readhat 9.2,他默認的是打開了防火墻,目標開發平臺無法用nfs mount。因此應先關閉防火墻,然后點擊主菜單運行系統設置→服務器設置→nfs服務器(英文為:setup→system service→nfs),點擊增加,在目錄(directory)中填入需要共享的路徑,主機(hosts);中填入允許進行連接的主機ip地址[3],并選擇允許客戶對共享目錄的操作為只讀(read-only)或讀寫(read/write)。
3.3 配置minicom
在linux操作系統xwindow界面下建立終端(在桌面上點擊右鍵→新建終端),在終端的命令行提示符后輸入minicom,回車,出現wincom的啟動畫面,然后按照提示設置即可。
3.4 編程和調試
在此交叉編譯環境下,根據前面提到的gps定位原理,經過編程和調試,在目標平臺的液晶顯示屏上可顯示本地的地理位置信息。
注意,gps的天線要放在能良好接受室外信號的地方,比如說窗臺等。否則可能接收不到信號。
4 結語
本文介紹了gps定位的工作原理及其在s3c2410上的實現方法,在車載gps系統及其他導航系統中有很多的應用前景。
評論