

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