999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux通用GPS接口的設計與實現

2008-04-12 00:00:00李學斌
現代電子技術 2008年22期

摘 要:伴隨著GPS的廣泛應用,基于PC機的GPS由于其價格及功耗較高已不能滿足社會發(fā)展的需要,嵌入式定位技術迅速發(fā)展起來。結合ARM處理器及嵌入式Linux操作系統的優(yōu)勢,提出一種基于嵌入式Linux平臺的通用GPS接口設計方案。首先介紹GPS系統的定位原理與通信格式,在此基礎上較為詳細地闡述基于串行接口的嵌入式Linux與GPS設備的通信方案,最后給出基于中斷模式的GPS信號接收與提取方法。該方案具有較強的通用性,可廣泛應用于便攜式GPS系統中。

關鍵詞:ARM;嵌入式Linux;GPS;串行接口

中圖分類號:TP368.1;TP336文獻標識碼:B

文章編號:1004373X(2008)2203904

Design and Implementation of General GPS Interface Solution Based

on Embedded Linux Operation System

LI Xuebin

(Changzhi College,Changzhi,046011,China)

Abstract:With the widely deployment of GPS,the system based on desktop can not meet the application requirements due to its high prize and high energy consumption,and embedded GPS technology is more and more popular.In this paper,a new kind of GPS interface solution uniting the advantages of ARM processor and embedded Linux operation system is proposed,which is based on embedded Linux platform.The paper first introduces the position principle and communication protocol of GPS,and illuminates the new COM-based communication solution between embedded Linux operation system and GPS system.An interruption-based GPS signal receiving-resolving solution is also illustrated.The solution can be used in various packed GPS systems.

Keywords:ARM;embedded Linux;GPS;serial interface

1 引 言

全球定位系統(Global Position System,GPS)是美國從20世紀70年代由美國國防部批準開始研制的,具有在海、陸、空進行全方位實時三維導航與定位能力的新一代衛(wèi)星導航與定位系統。雖然最初GPS衛(wèi)星定位系統是為軍事用途而設計的,但其精密的全球定位、簡便的觀測、優(yōu)異的實時性、豐富的功能、良好的抗干擾性能、極強的保密性等特點,使其獲得廣泛的應用。在火險處理中,精確的地理定位具有重要的意義,GPS的以上特點使其特別適合于火災報警系統中的精確定位。

嵌入式系統是將先進的計算機技術、半導體技術和電子技術以及各個行業(yè)的具體應用相結合后的產物。它可以根據應用需求對軟硬件進行適當裁剪,以滿足應用系統對功能、可靠性、成本、體積等的需求。隨著計算機技術的發(fā)展,基于PC機的定位系統由于其價格及功耗較高已不能滿足社會發(fā)展的需要,脫離PC機的嵌入式定位技術迅速發(fā)展起來。

基于以上2點,本文提出以ARM器件為CPU,以嵌入式Linux為軟件內核的GPS定位系統,并對Linux下通用GPS接口的設計加以詳細闡述。ARM是當前全球領先的16/32位RISC微處理器內核,而Linux系統具有內核小、功能強大、運行穩(wěn)定、系統健壯、效率高及開源等諸多優(yōu)點。本設計解決了單獨的基于PC機的定位系統和基于WinCE的嵌入式定位系統成本高或攜帶不便的問題,系統性價比高,可彌補傳統定位系統的不足。

2 GPS定位原理與通信格式

2.1 GPS定位原理

按目前的方案,全球定位系統的空間部分用24顆高度約2.02×104 km的衛(wèi)星組成衛(wèi)星星座。21+3顆衛(wèi)星均為近圓形軌道,運行周期約為11 h 58 min,分布在6個軌道面上(每軌道面4顆),軌道傾角為55°。衛(wèi)星的分布使得在全球的任何地方、任何時間都可觀測到4顆以上的衛(wèi)星,并能保持良好定位解算精度的幾何圖形(DOP)。這就提供了在時間上連續(xù)的全球導航能力。

GPS的基本定位原理是:衛(wèi)星不間斷地發(fā)送自身的星歷參數和時間信息,用戶接收到這些信息后,經過計算求出接收機的三維位置、三維方向以及運動速度和時間信息,如圖1所示。

圖1 GPS定位原理

其中:

((x1-x)2+(y1-y)2+(z1-z)2)12+

c·(t-t01)=d1

((x2-x)2+(y2-y)2+(z2-z)2)12+

c·(t-t02)=d2

((x3-x)2+(y3-y)2+(z3-z)2)12+

c·(t-t03)=d3

((x4-x)2+(y4-y)2+(z4-z)2)12+

c·(t-t04)=d4(1)

由于含有接收機衛(wèi)星鐘的誤差及大氣傳播誤差,GPS接收機對碼的量測就可得到衛(wèi)星到接收機的距離,故稱為偽距。對CA碼(Coarse-Acquisition Code,粗捕獲碼)測得的偽距稱為CA碼偽距,精度約為24 m,對P碼(Precise Code,精密碼)測得的偽距稱為P碼偽距,精度約為2 m。

2.2 GPS通信格式

目前,幾乎所有的GPS廠商都遵循美國國家海洋電子協會(National Marine Electronics Association)制定的NMEA-0183V20通信標準格式。GPS接收機的輸出語句按照串行通信協議,數據格式為8個數據位、1個起始位、1個停止位,無奇偶校驗位。本文中采用的數據傳輸的波特率為9 600 b/s。其輸出語句采用的是NMEA0183即ASCII格式碼,包括GGA,GSA,RMC,GSV,RMC,RMT,VTG等。這些定位語句不僅給出了位置、速度、時間等信息,而且指出了當地的衛(wèi)星接收情況。根據項目的實際需求,本設計只提取GGA數據。GGA數據的數據格式為:所有的信息由$開始,以換行結束,緊跟著$后的5個字符解釋了信息的基本類型,多重的信息之間用逗號隔開。其中代表回車控制符,代表換行控制符。具體說明如下:

$GPGGA,hhmmss,XXXX.XXXX,N/S,

12 3

XXXXX.XXXX,E/W,X,XX,XXX,0/-XXXX,

4 56 7 89

M, 0/-XXX, M,XXX,XXXX *hh

101112 131415

(1)世界時(UTC):hh:時;mm:分;ss:秒。例如,北京時間(東八時區(qū))=UTC+8 h;

(2)緯度:“度度分分.分分分分”方式表示,小數點后也以分為單位;

(3)N:北緯;S:南緯;

(4)經度:以“度度度分分.分分分分”方式表示。小數點后也以分為單位;

(5)E:東經;W:西經;

(6)GPS質量指示。0:未定位;1:GPS定位;2:差分GPS定位;

(7)使用到的衛(wèi)星數,可為0~12個。

(8)HDOP值:水平方向的定位精度劣化程度系數。三維定位時也會輸出HDOP值。但在未定位時輸出“099”。如果輸出語句的經緯度輸出設置精度達不到1/10 000時,小數點后省略;

(9)天線高度,0:正數,高于海平面;-:負數,低于海平面;

(10)天線高度,單位為m;

(11)地理高度,0:正數,高于海平面;-:負數,低于海平面;

(12)地理高度,單位為m;

(13)DGPS修正經過的時間。差分數據時間單位為s;

(14)差分基準站發(fā)播的ID編號;

(15)校驗和。

GPS命令格式為:

$PFST,,…,

命令行以$PFST開頭,后面跟著參數,其中參數之間由逗號分隔開。GPS可以發(fā)送的數據如表1所示。

本設計中用到如下2個命令:

$PFST,START,0為發(fā)送命令使GPS模塊開始定位。

$PFST,NMEA,2000,9600為定義要發(fā)送的數據,并設置通過串口傳輸的波特率。

其中參數選擇2 000,即選擇了向串口發(fā)送GGA數據。

表1 GPS 基本命令

MessagebitMessagebit

GLL0x1000GGA0x2000

VTG0x4000RMC0x8000

GSA0x0002FOM0x0020

GSV0x0001PPS0x0010

Reserved0x0040

3 嵌入式Linux 通用GPS接口的實現

3.1 Linux 串行接口通信的設置與操作

3.1.1 串口初始化

本系統中,GPS模塊通過串口與Philip LPC2210嵌入式系統通信,處理器通過串口來獲得定位信息數據。Linux通過虛擬設備文件統一管理硬件設備,并將硬件設備的技術細節(jié)隱藏起來。內核提供訪問設備文件的系統函數,應用程序通過調用這些函數完成對硬件的操作。對串口訪問控制的函數如表2所示,這些函數一起構成了通用的終端控制接口,提供了對終端的有效的控制操作。

表2 串口訪問函數功能

函數描述

tcgetattr/tcsetattr獲取/設置終端屬性(termios結構)

cfgetispeed/cfsetispeed獲取/設置輸入速率

cfgetospeed/cfsetospeed獲取設置輸出速率

tcdrain等待所有輸出被傳送

tcflow暫停傳送或接受

tcflush丟棄隊列中尚未傳送或接受的數據

tcsendbreak發(fā)送BREAK字符

tcgetpgrp/tcsetpgrp獲取設置前臺的進程組ID

在對串口操作之前,首先要對參數進行初始化、設置它的屬性以保證通信雙方的通信參數保持一致,這些屬性定義在結構體struct termios中,如下所示:

struct termios{

tcflag_t c_ iflag;

tcflag_t c_oflag;

tcflag_ t c_cflag;

tcflag_ t c_ lflag;

cc_ta_cc[NCCS];

}

其中,c_iflag成員用于控制輸入處理選項,它將影響到終端驅動程序在把輸入發(fā)送給程序前是否對其進行處理,及怎樣對其進行處理;成員c_oflag控制輸出處理過程;c_cflag包含對端口的設置,如波特率、字符位數、停止位等;存儲在成員c_iflag的本地模式標志符決定是否顯示字符,是否發(fā)送信號到應用程序等;數組c_cc包含控制字符的定義和超時參數,在對struct.termios結構體的各個成員賦值,調用tcsetattr()函數選擇新的設置完畢后,嵌入式Linux即可采用與普通文件的輸入/輸出相同的方式訪問串口。

3.1.2 Linux下的串口I/O操作

Linux對于串口資源采用“ttyS+編號”來命名,所有設備以設備文件的形式存儲在文件夾/dev中,其中每一個設備由一個主設備號和一個次設備號惟一確定。在Linux中串口設備被虛擬成文件,因此要訪問1個串口,只需打開相應的設備文件,然后向這個文件讀寫數據就可以完成數據的接收和發(fā)送。首先調用open函數打開串口設備,使用完畢后用close函數關閉端口。使用的文件操作函數如下:

int open(coast char*pathname,int flags);

int close(int fd);

參數pathname指向欲打開的文件路徑字符串;參數flags為設置打開方式;open系統調用返回一個整形文件標識符;以后所有的端口操作都針對這個標識符進行。close的參數fd為希望關閉的文件的標識符[7-10]。

在完成串口配置,使用open函數打開串口后,調用read和write函數接收和發(fā)送數據。這兩個函數返回實際讀寫的字節(jié)數,如果有錯誤發(fā)生,則返回-1。第一個參數為要讀/寫的文件標識符,第二個參數為讀/寫緩存,第三個參數表示希望讀/寫的字節(jié)數。函數定義如下:

ssize_t read(int fd,void*buf,size_t count);

ssize_t write (int fd,const void*bufsize_t count);

3.2 基于中斷模式的GPS信號提取

中斷處理子函數主要用于處理串口接收到的數據,由于GPS發(fā)送的數據類型都是以$符號開頭,所以首先應檢測$符號,進而進行下一步的處理。

在此之前需要建立一個結構體,用來保存GPS數據,結構體中包括數組Data[80],用來保存GPS數據,數組長度設為80;還有一個狀態(tài)標志位State,用于表示當前的接收狀態(tài),State = 1表示已經接收到$,State = 2表示已經接收完1組GPS數據,可以對數據進行處理。State = 0表示還沒有接收到GPS信息。定義Data[GPSDataQWPTR] 表示第GPSDataQWPTR位數據。串口在接收GPS數據的時候需要判斷GPS數據的起始位和結束位,這一過程都在中斷處理子函數中實現,具體的流程圖如圖2所示。

串口的中斷處理子函數起著非常關鍵的作用,一方面,它要處理來自于串口的緩沖區(qū)的GPS數據,將串口中的數據寫入一個緩沖隊列中;另一方面,它還要負責與GPS_Handle()函數通信,通知GPS_Handle()任務開始對緩沖隊列中的數據進行處理,將緩沖隊列中的數據寫入RAM中。根據$GPRMC數據格式,通過設置逗號計數器即可解算出經、緯度等信息。

圖2 中斷處理子程序

4 結 語

GPS系統目前已廣泛應用到社會的各個領域。Linux作為開源軟件,開發(fā)周期相對較短、內核精簡、功能強大、運行穩(wěn)定、系統健壯、效率高。其易于定制裁剪,內核和用戶界面完全獨立。它非常靈活,各部分的可定制性都很強。正因為具有這些特性,為Linux在硬件資源有限的嵌入式領域提供了廣闊的舞臺。本文設計的基于嵌入式Linux平臺的GPS接口具有較強的通用性,可廣泛應用于便攜式GPS系統中。

參考文獻

[1]何林遠,畢篤彥.嵌入式 Linux實時性的分析與研究\\.計算機應用與軟件,2008,25(2):225-227.

[2]孫守昌,韓紅芳,孟煜.嵌入式Linux實時技術改進與實現\\.微計算機信息,2007,23(12):67-69.

[3]任旭龍,周緯杰.基于嵌入式Linux操作系統內核實時性的改進方法研究\\.計算機工程與科學,2006,28(1):125-127.

[4]周立功.ARM嵌入式系統基本教程[M].北京:北京航空航天大學出版社,2005.

[5]許海燕,付炎.嵌入式系統技術與應用[M].北京:機械工業(yè)出版社,2002.

[6]符意德.嵌入式系統設計原理及應用[M].北京:清華大學出版社,2004.

[7]胃靜莊.嵌入式系統設計開發(fā)實例詳解基于ARM的應用[M].北京:北京航空航天大學出版社,2005.

[8]王田苗.嵌入式系統設計與實例開發(fā)[M].北京:清華大學出版社,2002.

[9]劉錚蓉,張智超,許振山,等.嵌入式Linux應用技術詳解[M].北京:機械工業(yè)出版社,2004.

[10]Craig Hollabaugh.嵌入式Linux硬件、軟件與接口[M].陳雷,譯.北京:電子工業(yè)出版社,2003.

[11]馬忠梅,李善平,康慨.ARMLinux嵌入式系統教程[M].北京:北京航空航大大學出版社,2004.

[12]Karim Yaghmour.Building Embedded Linux Systems[M].New York:O′Reilly Press,2003.

作者簡介 李學斌 男,1956年出生,山西長治學院計算機系副教授。主要研究方向為計算機應用。

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 在线观看欧美精品二区| 免费一极毛片| 亚洲一级毛片免费观看| 无码国产偷倩在线播放老年人 | 国产成人三级| 欧美日韩激情在线| www.youjizz.com久久| swag国产精品| 永久免费无码日韩视频| 免费午夜无码18禁无码影院| 92精品国产自产在线观看| 亚洲国产AV无码综合原创| 麻豆a级片| 久久人妻xunleige无码| 国产欧美日韩在线一区| 青青青视频蜜桃一区二区| 日韩精品成人在线| 日韩精品久久无码中文字幕色欲| 日本欧美午夜| 国产99免费视频| 日韩av手机在线| 国产精品美女网站| 999国内精品久久免费视频| 久久久久国色AV免费观看性色| 亚洲乱码精品久久久久..| 狠狠色丁香婷婷综合| 91小视频在线| 54pao国产成人免费视频| 日韩麻豆小视频| 日韩天堂视频| AV不卡在线永久免费观看| 国产成人欧美| 久久精品中文字幕少妇| 欧美成人h精品网站| 久久精品一卡日本电影| 欧美日韩国产成人高清视频| аv天堂最新中文在线| 毛片一级在线| 污网站免费在线观看| 国产精品久久国产精麻豆99网站| 亚洲欧洲一区二区三区| 日本福利视频网站| 国产高清在线精品一区二区三区 | 国产亚洲高清视频| 久久国产高潮流白浆免费观看| 18禁色诱爆乳网站| 97se亚洲综合在线天天| 国产玖玖视频| 蜜桃视频一区二区| 亚洲综合久久一本伊一区| 亚洲国内精品自在自线官| 亚洲熟女偷拍| 国产精品无码翘臀在线看纯欲| 99精品国产自在现线观看| 中文字幕永久视频| 亚洲男人的天堂在线观看| 免费看黄片一区二区三区| 亚洲第一国产综合| 97国产在线观看| 亚洲视频在线网| 2021国产精品自产拍在线| 无码AV高清毛片中国一级毛片 | 色偷偷综合网| 热久久这里是精品6免费观看| 欧美乱妇高清无乱码免费| 在线色国产| 国产呦视频免费视频在线观看| 无码日韩精品91超碰| 国产区精品高清在线观看| 五月婷婷丁香色| 国产精品污污在线观看网站| 无码精品福利一区二区三区| 国产另类乱子伦精品免费女| 国产美女一级毛片| 网友自拍视频精品区| 女人毛片a级大学毛片免费| 亚洲自偷自拍另类小说| 欧美日韩午夜| 一级毛片基地| 国产美女自慰在线观看| 欧美成人影院亚洲综合图| 国产尤物jk自慰制服喷水|