基于LINUX的GPS的應用
- 期刊名字:傳感器世界
- 文件大?。?83kb
- 論文作者:陳雪小
- 作者單位:廈門大學物理與機電工程學院電子學實驗室
- 更新時間:2020-06-12
- 下載次數:次
Technollogy Application被測與回用葚!N的GP齣應周摘要:基于凵-box公司的LEA-5S模塊,介紹了GPS在inux俄人式操作系統上的應用以及具體買現,并洋細分析了模塊的硬件實現以及軟件方面NEA數據的接收和解析的方法,最后在實際平臺進行了調試與論證。結果表明,該模塊具有硬件簡單、定位精度高,穩(wěn)定性好的優(yōu)點,相應的軟件有較好的可移植性,實際應用中效果良好關鍵詞:Lnux;GPs;NEMA;接收;解析中圖分類號:TP3文獻標識碼:A文章編號:1006-883×(2012)020018-04收稿日期:2011-12-12陳雪小引言隨著信息化、智能化、網絡化的發(fā)展,嵌入式系統技術已經全面滲透到日常生活中的每個角落。嵌入式 linux操作系統由于它可以移植到多個不同的結構的CPU和硬件平臺上,具有很好的穩(wěn)定性,各種性能的升級能力,并且其是開放的,提供標準的API,能夠方便地與眾多第三方的軟硬件溝通,使其得到了廣泛的應用叫。GPS即全球定位系統,這個系統可以保證在任意時刻,地球上任意一點都可以同時觀測到4顆衛(wèi)星,以保證用戶GPS模塊可以采集到各觀察點的經緯度和高度,以便實現導航、定位、授時等功能。GPS模塊分為軟GPS和硬GPS。軟GPS一般需要主控芯片控制其運行狀態(tài),直接輸出衛(wèi)星數據,利用應用處理器端進行解析計算再轉換為標準NMEA(國際海洋電子協會),因此驅動相對復雜。而硬GPS是功能獨立的模塊,上電就可以運行,直接輸出NMEA數據(。本文采用的是ubox公司生產的LEA-5S模塊介紹其硬件實現以及相應的軟件實現。二、GPS模塊硬件GPS RFIN走線按500阻抗匹配實現LEA-5s模塊B定位精度為25m,定位性能優(yōu)異準C:160803U60IT確,在防漫反射及數BHD OLT抗干擾能力方面十分強勁,并且其外圍電路十分簡單TMIEPLLSE中國煤化工其電路圖如圖1所圖1LEA5S外圍電路圖CNMHG示H傳感器世界201202Technology Application如圖1所示,模塊采用33V供電,需要注意的是: options. c cc[VTIME]可以通過UART、USB以及SPI與應用和 options. c cc [Vmin對read函數影響處理器連接和通訊,本文采用UART接較大。VTME指定了等待的時間,VMIN口。圖中VANT引腳可以對有源天線的初始化指定了讀取字節(jié)的最小數量正常、開路及短路進行檢測,并可以自2、NMEA數據的接收動在NMEA數據里輸出。接收NMEA數據本文在非阻塞的方式下采用o多路轉接 select對串口文件描述符的狀態(tài)三、GPS模塊軟件實現解析NMEA數據進行監(jiān)視。 select函數原型為:int由于LEA58通過UART直接與處elect( int nfds, fd set * readfds, fd set理器進行通訊,因此對處理器而言,驅顯示NMEA數據.writefds, fd set*exceptfds, struct timeval動主要為 linux標準的串口驅動,應用時"timeout);當串口句柄沒有變化時,程序只要打開相應串口即可。其程序的總體將阻塞,阻塞的時間取決于 select的第三框圖如圖2所示。圖2模塊總體程序流程圖個形參 struct timeval'" timeout 3.本文將1、模塊初始化timeout值設為NULL,程序將一直停留模塊初始化主要是對GPS相關GPo直到串口句柄發(fā)生變化,即只有串口接的設置和串口的設置。首先設置引腳NMEA數據收到數據時才不會阻塞。解析GPS ON為高電平,處理器發(fā)出一個脈當串口文件描述符發(fā)生變化后,調沖對引腳 GPS RST進行復位,最后打開利用“,·解析出各數據域井用read函數讀取一個字符到緩存 buffer;電源對其供電。然后打開串口,設置波存于二維數據 Comma[(n]中由于本文串口設置為: options.c_cc特率,數據位,奇偶校驗位以及停止位[VTIME]=150; options. c cclVMIN]0等信息。 termios函數族提供了一個常規(guī)“GGA所以read調用讀到數據則立即返回,否的終端接口,用于控制非同步通信端口。則將為每個字符最多等待ⅤTIME時間。結構體為:為使程序有較好的規(guī)范性和可移植hh: mmstruct termio性,本文在程序設計中采用狀態(tài)機的設經度 Comma12]了符型轉化為計方法。由于所接收到的NMEA數據unsigned short c_iag,/·輸入模式標整型“度分”格式首字符和次字符均為“$”和“G”,本文unsigned short c_onag;P·輸出模式標緯度comm4]字子符型轉化為將依此為狀態(tài)改變的觸發(fā)條件。程序首志整型“度分格式先定義一個緩存數組 recvbuf并初始化一unsigned short c cflag;/·控制模式標個起始狀態(tài),當緩存buer收到首字符卩星使用數景 Comma[門字符型轉化為整型$”時,觸發(fā)了狀態(tài)改變?yōu)榈诙€狀態(tài),unsigned short c Iflag: / local modeags·若不是,則歸為無效數據,狀態(tài)機恢復unsigned char c_ line; / line discipline將 Comma(n全部顯示為起始狀態(tài),并清空 recvbuf緩存;當串口接收到下個字符并判斷是否為“G”字unsigned char c cc[NCC]; / control符,若是,則觸發(fā)第三種狀態(tài),若不是,characters則為無效數據,狀態(tài)機恢復為起始狀態(tài)。串口具體設置是首先定義了一個●●●其具體程序如下類型的結構體通過#define STATE REC NULL O#define STATE REC FIRSt 1tcgetattr(fd,& options)來獲得設置,再對#define STATE REC SECOND 2options進行設置,最后通過 tcsetattr(fd,TCSANOW,&apin.來實現設置和同圖3NMEA數據解析流程圖H中國煤化工CNMHG9 2012.02 SengoNworldTechnology Application被測與畫用char recvbuf[150 ];據格式上分析,所有的報文以“$”為起始標志,“,”為switch(rec state)域分隔符,“·”為識別符,其后兩位為校驗值,字符回if(revbuf ="S)4車和換行為結束符?;谝陨戏治?本文采用逗號來分rec state= STATE REC SECOND;隔各個數據域,把各個數據域的需要的UTC,經度,緯recvbufncount++]=buffer;度等信息提取出來并分別存到數組中。具體的程序框圖如圖3所示ase STATE REC SECON整個過程對一幀GPS報文進行解析,有著較高的解if( rebut=G”){析效率。我們利用C語言實現了該解析算法,因此代碼rec state STATE REC FULL:也具有很強的可移植性。recvbuf[ncount++]-buffer;3 elset表 I NMEA數據分析表ncount = 0144A APprintf("It received a unvalib character and the recvbuf序號數據域說明is %sn"recvbuf)1 SGPGGA語句ID,GPS定位信息memset(recvbuf, 0, sizeof(recvbuf));UTC時間, hhmmss sss,時分秒格式rec stateSTATE REC FIRST;34250.5緯度 damm, mmmm,度分格式(前導位數不足則補0)s緯度N(北緯)或S(南緯case STATE REC FULL:514718.5084經度 dddmm mmmm,度分格式(前導位數不足則補0)recvbuf[ncount++]=buffer經度E(東經)或W(西經)GPS狀態(tài),0=未定位,1=非差分定位parse nmea datai( recvbuf;/對接收數據進行解析2=差分定位,3=無效PPS,6=正在估m(xù)emset(recvbuf, 0, sizeof(recvbuf));rec state STATE REC FIRST;正在使用的衛(wèi)星數量(00-12)(前導位數不足則補0)breakHDOP水平精度因子00.5999)default:10海拔高度(99999999999printf("The data are not valid! n")19.7地球橢球面相對大地水準面的高度break12M差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將3、NMEA數據解析為空)NMEA-0183是一套定義了接收機輸出的標準信息130000差分站ID號0000-1023(前導位數不標準的NMEA數據包括$ GPGGA、 SGPGSA、$ GPGSV、足則補0,如果不是差分定位將為空)校驗值SGPRMC、sGPⅤTG、 SGPGLL等。其中,GPGA定位信息, GPGSA—當前衛(wèi)星信息, GPGSV.可見衛(wèi)星信息, GPRMC—推薦定位信息數據格式, GPVTG地面四、小結速度信息, GPGLL一地理定位信息。本文基于 linux嵌入式操作系統設計了一種GPS接收例: SGPGGA,092204999,機,硬件方面介紹了U-blox的工作原理,軟件方面較詳細地介紹了如何接收和解析NMEA數據的過程,并基于4250.5589S,147185084,E,104,244,197,M,,0000*1F
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術進展 2020-06-12
-
生物質能的應用工程 2020-06-12
-
我國甲醇工業(yè)現狀 2020-06-12
-
JB/T 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術規(guī)程 2020-06-12
-
石油化工設備腐蝕與防護參考書十本免費下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應用情況簡介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進展 2020-06-12
-
精甲醇及MTO級甲醇精餾工藝技術進展 2020-06-12
