GPS數據采集分析要點_第1頁
GPS數據采集分析要點_第2頁
GPS數據采集分析要點_第3頁
GPS數據采集分析要點_第4頁
GPS數據采集分析要點_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于GPsa據采集系統的設計時間:2012-08-02 09:58:50 來源:現代電子技術 作者:史曉影 關鍵字:GPS數據采集系統摘要:為了設計高精度、全天候、全天時的數據采集系統,采用了GPS技術實現通信,信息采用NMEA-0183格式,單片機接收GPS輸出 的時間和定位信息后,將信息調整為我國的標準,并將調整后的經度、 緯度、海拔高度和時間等信息通過液晶終端顯示。最終實現了GPS數據采集及轉換等工作,為事故定位、搜查救援等工作提供了技術依據。關鍵詞:GPS數據采集;定位;數據處理;單片機隨著科技的發展,移動技術的不斷成熟,定位導航開辟了一個重要的 新興市場。GPS(Global Pos

2、itioning System)以其高精度、全天候、全天時 的特點,在定位、導航、測距等領域被廣泛應用,具有測量精度高、速 度快、用戶數量不限、抗干擾能力強等優點。不僅用于軍事領域,還廣 泛用于工農業生產、交通運輸、野外探險等領域。本系統實現的數據采 集精確度較高;采集到的位置可以控制在2m范圍之內,接收數據并處 理的時間小于2 s,存精確度和實時性上要優于其他數據采集系統。1 GPS數據采集系統的設計硬件系統中主要由主控制器、液晶顯示模塊和CPS射頻前端,數據傳輸單元組成,如圖1所示。正四T i曷嬤卜巨與以 圖1系統樞圖例GPS信號通過天線接收值射頻前端模塊,在射頻芯片中實現 A/D 轉換,

3、將模擬中頻信號轉化為數字信號通過串口傳入單片機, 單片機接 收的數據信息經過時差,坐標處理等操作,在通過 LCD顯示出來。2 GPS數據采集系統的設計及實現3 . 1 GPS語句的輸出格式GPS-OEM板采用NMEA-0183通信格式,可以輸出多種句型,均以“$” 開頭。其語句格式如表1所示。Al語句格式Tab- 1 NMEA-0183 stutemrnt formal符號asc n定義HEX說期$起始位24H謫而起始及Aaccc墟址域的兩位為識別符.后三付為分楣符域分隔存2Cf!域分割符【Jddllrld數據塊發送數根內容粉is和符號行面的曲位教小帕斡和h校教斯(CR7(i.n終也符ODH.

4、OAH國里.獨行輸出的語句按串口通信協議:1位開始位,8位數據位,1位停止位, 無奇偶校驗。輸出數據采用的是ASCn碼字符,內容包含了緯度、經度、 速度、日期、航向及衛星狀況等信息。語句達十余種,其中定位語句 $GPRMC其結構為:$GPRMC, <1>. <2>, <3>. <4>, <5>. <6>, <7>, <8>, <9>, <10>, <11>*hh<CR><LF>其中:“GF-交談識別符;“RMC-語句識另I符;“量校驗和識別

5、符;“hK為校驗和,其代表了 “野口”*之間所有字符白按位異或值(不包 括這兩個字符)。$GPRMC語句數據區的內容為:1)定位點的協調世界時間(UTC), hhmmsslM分秒)格式;2)定位狀態,A=有效定位,V=無效定位;3)定位點21度,ddmm. mmmmm(度分)格式;4)緯度半球,N(北半球)或S(南半球);5)定位點經度,dddmm. mmmmm(度分)格式;6)經度半球,E(東經)或W(西經);7)地面速度,000. 0節999. 9節;8)地面航向,000. 0度359. 9度;9)UTC日期,ddmmyy(日月年)格式;10)磁偏角,000. 0度180度;11)磁偏角方

6、向,E(東)或W(西)。2. 2 GPS數據接收利用單片機的串行接口接收 GPS傳送過來的數據,其硬件原理如圖2 所示,GPS的接口及單片機串口均采用 TTL電平傳輸數據,所以GPS 接口引腳4和3可直接與單片機的TXD和RXD引腳相連,無需電平轉 換,硬件電路圖如圖2所示。GPS模塊輸出的是數據流,每秒鐘更新一次數據。必須要用單片機對其輸出的數據流中的數據進行提取,以方便用戶直接讀取。首先打開串口中斷服務子程序,開始接收數據,判斷其是否有“蟒號,然后根據逗號的個數進行判斷數據的類型,然后分別存儲時間、經度、緯度、日期等信號,若接收到 'n”則接收結束。用C語言編程,其程序如下:voi

7、d chkzhd( )interrupt 4"串 口接收中斷(char eh . num ;p37=! P37;if(TI=l )T=0;ir(fu-i >ch=SBUF;if(ch="S3(gps_flag=;l ;num=O;)即、n呼二=l)gpA_revfnurn+=ch;if (ch=O H num>79)(gps_revnum|=V),;gps_dat()建psjl咋IRI=O;hip電務同在PC機上接收的GPRMC語句信息如下:$GPRMC, 103320, A, 4350. 95221 , N , 12524. 06042, E, 000. 0,

8、 000. 0, 130507, 009. 1, W*50這是一條GPS定位數據信息語句,涵義是 UTC時間為10時33分 20秒,位置在北緯 43度50. 9522分,東經125度24. 0604分,移動 速度為0,移動范圍為0,日期為2007年5月13日,地磁變化為9.10, 地磁變化方向為西,校驗和為 50H。根據接收的信息用單片機進行相應 的處理,就可以得到所需的信息了,信息處理過程見3節。3對接收信息的處理數據的處理主要包括兩個方面:1)時間的處理直接從衛星接收到的時間信息是 UTC時間(格林尼治時間),需要處 理成北京時間。要變成北京時間需要加上 8個小時,如果超過24小時,則減去

9、24 小時后,才是北京時間。時間轉換處理程序如下:if(gps_receive|4jfM )ffor(i=0n<6;i+)Inmefi =gps_re veiveg>s_shijiiin ( 1 ) + i; Itrlsc lime +=8 ;) 2)定位的處理GPS接受的經度、緯度等信息采用的是美國的84坐標系統,需要轉換成我國的54坐標系統。為便于描述設如下幾個參量:大地坐標-(B , L , H)平面坐標-(x, y, z)橢球偏心率-C橢球參數m, n-大地坐標轉換到指教坐標需要使用的參數,則有:8 * * mS Y面門5廣x=(p+/).ros(),riKS(L);y=(

10、p+ft )eos(/O,sin( A); l-t,;+石;4結束語本系統討論了用單片機對GPS數據的讀取及處理的方法,分析了 GPS模塊的信息格式并編制了通信軟件,不僅成功地實現了GPS定位信息的接收與提取,而且具有硬件電路簡單、成本低廉、編程方便、性能穩定的特點,具有一定的使用價值。GPS模塊的數據格式對GPS®塊的數據處理本質上還是串口通信程序設計,只是GPS真塊的輸出遵循固定的格式,通過字符串檢索查找即可從模塊發送的數據中找出需要的數據,常用的 GPSg塊大多采用 NMEA-0183協議。NMEA-0183是美國國家海洋電子協會(National Marine Electro

11、nics Association)所指定的標準規格,這一標準制訂所有航海電子 儀器間的通訊標準,其中包含傳輸資料的格式以及傳輸資料的通訊協議。以下是一組正常的GPS數據$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,0000*35$GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0Q261009,*38$GPVTG,0.0,T,M,0.00,N,0.0,K*50下面分別對每組數據的含義進行分析。GPS固定數據輸出語句($GPGGA)這是一幀GPS定位的主要數據,也是使用最廣的

12、 數據。為了便于理解,下面舉例說明 $GPGGA句各部分的含義。例:$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,0000*35其標準格式為:$GPGGA(1) , (2) , (3) , (4) , (5) , (6) , (7) , (8) , (9) , M (10) , M (11) , (12) * hh(CR)(LF)各部分所對應的含義為:(1)定位UTC時間:08時20分06秒(2) 緯度(格式 ddmm.mmmm:dd 度,mm.mmmm );(3) N/S(北緯或南緯):北緯38度52.9276分;(4)

13、 經度(格式 dddmm.mmmmp ddd 度,mm.mmmm );E/W(東經或西經):東經115度27.4283分;(6)質量因子(0二沒有定位,1二實時GPS 2二差分GPS): 1=實時GPS(7)可使用的衛星數(08):可使用的衛星數=08;(8)水平精度因子(1.099.9);水平精度因子=1.0;(9)天線高程(海平面,9999.999999.9,單位:m);天線高程=20.6m);(10)大地橢球面相對海平面的高度 (999.99999.9 ,單位:m):無;(11)差分GPS數據年齡,實時GPS時無:無;(12)差分基準站號(00001023),實時GPS時無:無;*總和校

14、驗域;hh總和校驗數:35(CR)(LF)回車,換行。GPRM C建議使用最小 GPS數據格式)$GPRMC,082006,000,A,3852.9276,N,11527.4283,E,0,00,0.0,261009,*38$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>(1)標準定位時間(UTC time)格式:時時分分秒秒.秒秒秒(hhmmss.sss)。(2)定位

15、狀態,A =數據可用,V =數據不可用。(3)緯度,格式:度度分分.分分分分(ddmm.mmmm(4)緯度區分,北半球(N)或南半球(S) o(5)經度,格式:度度分分.分分分分。(6)經度區分,東(E)半球或西(W半球。(7)相對位移速度, 0.0 至1851.8 knots(8)相對位移方向,000.0至359.9度。實際值。(9)日期,格式:日日月月年年(ddmmyy。(10)磁極變量,000.0 至 180.0。(11)度數。(12) Checksum.(檢查位)$GPVTG®面速度信息例:$GPVTG,0.0,T,M,0.00,N,0.0,K*50字段 0: $GPVTG

16、語句 ID,表明該語句為 Track MadeGoodand Ground Speed (VTG 地面速度信息字段1:運動角度,000 - 359,(前導位數不足則補0)字段2: T二真北參照系字段3:運動角度,000 - 359,(前導位數不足則補0)字段4: M=!北參照系字段5:水平運動速度(0.00)(前導位數不足則補0)字段6: N斗,Knots字段7:水平運動速度(0.00)(前導位數不足則補0)字段8: K/里/時,km/h字段9:校驗值表1 GPS模塊主要參數GPSg塊主要參數GPS芯片組SiRF Star III工作頻率L1, 1575.42 MHz粗捕獲他(C/A)率1.0

17、23 MHz chip rate同時跟 蹤通道 數20靈敏度-159 dBm定位精 度5m (2維均方根, 允許廣域差分系 統)最小速度0.1 m/s時間精 度1 m S (與GPS寸間同步)默認坐標系1984年世界大地坐標系(WGS-84重獲時 間0.1S (平均值)熱啟動1S (平均值)溫啟動38S (平均值)冷啟動42S (平均值)最局工 作海拔18km (60000feet )最大移動速率515m/S(1000knots )最大加 速度4g最大急沖度_320m/S電源電 壓5 V士 0.5V整機電流約60mA不超過 100mA整板外 形61mme 49mm<17mmGPS芯片外形

18、27.9mmx 20mm<2.9mm波特率9600bps數據輸出格式SiRF二進制格式或NMEA 0183 GGA,GSA, GSV, RMC,VTG,GLL數據輸 出電平同時具備TTL電平和RS232電平數據輸出接口20pin插針(TTL電平)和DB9母座(RS232 電平)天線類 型外置有源GPM線 (3.3V/5V電壓可 選,默認為3.3V)后備電池CR1220a電池,3V, 不可充電工作溫 度-40oC 至+85oCGPS模塊的應用程序設計GPS真塊的應用程序設計主要分為兩部分,第一部分為串口的設置于數據讀取,第 二部分為數據的分析和需要數據的提取。與其他的關于設備編程的方法一樣

19、,在Linux下,操作、控制串口也是通過操作起設備文件進行的。在Linux下,串口的設備文件是/dev/ttyS0 或/dev/ttyS1 等。因 此要讀寫串口,我們首先要打開串口,然后根據GPS®塊的配置參數對串口的波特率、校驗、流控制等進行設置,這些參數設置均通過對termios結構中c_cflag的配置實現,串口配置部分函數如下:&int gps:set_opt( int fd, int nSpeed, int nBits, char nEvent, int nStop).struct termios newtio,oldtio;if ( tcgetattr( fd,&

20、amp;oldtio) !=0)(perror( "SetupSerial 1"); return - 1;bzero( &newtio, sizeof ( newtio );newtio.c_cflag |= CLOCAL | CREAD;newtio.c_cflag &=CSIZE;switch ( nBits )(case 7:newtio.c_cflag |= CS7;break;case 8:newtio.c_cflag |= CS8; break;switch ( nEvent )(case 'O' :/ 奇校驗newtio.c_

21、cflag |= PARENB;newtio.c_cflag |= PARODD;newtio.c_iflag |= (INPCK | ISTRIP);break;case 'E' :/ 偶校驗newtio.c_iflag |= (INPCK | ISTRIP);newtio.c_cflag |= PARENB;newtio.c_cflag &=PARODD;break;case 'N' :/ 無校驗newtio.c_cflag &=PARENB;break;switch ( nSpeed )(case 2400:cfsetispeed(&

22、;newtio, B2400);cfsetospeed(&newtio, B2400);break;case 4800:cfsetispeed(&newtio, B4800);cfsetospeed(&newtio, B4800);break;case 9600:cfsetispeed(&newtio, B9600);cfsetospeed(&newtio, B9600);break;case 115200:cfsetispeed(&newtio, B115200);cfsetospeed(&newtio, B115200);break;

23、default :cfsetispeed(&newtio, B9600);cfsetospeed(&newtio, B9600);break;if ( nStop = 1 )newtio.c_cflag &= CSTOPB;.else if ( nStop =2 )newtio.c_cflag |= CSTOPB;.newtio.c_ccVTIME =0;newtio.c_ccVMIN =0;tcflush(fd,TCIFLUSH);if (tcsetattr(fd,TCSANOW,&newtio)!= 0)qDebug()<< "com

24、set error" <<endl;return - 1;qDebug()<< "set done!" <<endl;return 0;h在gpsm據的處理上首先將窗口數據存入一個字符串,接著通過對字符串數據的判 斷來提取數據內容,判斷分為兩步,首先判斷是什么類型的數據,在本程序的設計 中需要讀取$GPRMC$GPGGA組數據,因此首先判斷字符串 GPS_BUF5是C還是A, 由于數據是通過符號”進行隔開,因此通過查找”來確定數據位置。在實 現上將得到逗號位置函數單獨封裝調用,程序如下:闔/得到指定序號的逗號位置int gps:

25、GetComma(int num, char *str)int i,j= 0;int len=strlen(str);for (i= 0;i<len;i+)(if (stri=',')(j+;)if (j=num) return i+ 1;)return 0;)圃接下來根據數據格式,通過逗號位置,提取數據信息,程序如下:囤void gps二gps_parse()(int tmp;char c;c = GPS_BUF 5; if (c='C')(/"GPRMC"GPS->D.hour =(GPS_BUF 7- GPS->D.m

26、inute =(GPS_BUF 9-GPS->D.second =(GPS_BUF 11- tmp = GetComma( 9,GPS_BUF); GPS->D.day =(GPS_BUFtmp+ GPS->D.month =(GPS_BUFtmp+'0' )* 10+(GPS_BUF8- '0');'0' )* 10+(GPS_BUF0- '0');'0' )* 10+(GPS_BUF2- '0');0- '0' )* 10+(GPS_BUFtmp1- '0'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論