《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于ARM9與WindowsCE的車輛GPS定位信息采集系統
基于ARM9與WindowsCE的車輛GPS定位信息采集系統
李文新 王廣龍 陳建輝 喬中濤
摘要: 基于ARM9與WindowsCE的車輛GPS定位信息采集系統,以ARM9微處理器S3C2440為硬件平臺核心,WindowsCE嵌入式操作系統為軟件平臺,構建了微型化、便攜的車輛GPS定位信息采集系統。在EVC開發環境中采用MFC編程技術,編寫了數據采集軟件,通過RS232串口讀取GPS接收設備得到的GPS原始數據幀,解析出$GPRMC,$GP-GGA信息,輸出實時的時間、海拔、經緯度、速度可見衛星數信息。$GPGSV解析后獲取可見衛星信息,將衛星實際的方位角、仰角立體坐標轉換為站心切平面內的橫縱(Px、Py)坐標,繪制出定位用的二維衛星視圖。在某型軍車上的實驗表明,經度誤差:0.0138’,緯度誤差:0.0019’。速度誤差為0.030867m/s。時間日期跟標準北京時間完全一致,二維衛星視圖能清晰顯示衛星編號信息,為車輛提供有效的定位信息參考。
Abstract:
Key words :

GPS可提供連續、高精度、實時的時間基準、三維位置、三維速度、整周模糊度等數據,具有性能好、精度高的特點,因而廣泛應用于GPS載波相位測姿、精確制導、SINS/GPS組合導航、嵌入式車輛導航監控等軍事與民用領域。而嵌入式系統以其低功耗、小體積、高穩定性和便攜等優勢,在GPS的應用中占據重要的位置。本文研究基于ARM920T內核的嵌入式微處理器S3C2440和WindowsCE 5.0(簡稱WindowsCE)的某型軍車GPS定位信息的采集與處理。

1 系統硬/軟件平臺概述
    車輛GPS定位信息采集系統的硬件平臺結構如圖l所示。


    該平臺可以分為3大模塊:
    1)微系統核心模塊 由基于ARM920T的32位嵌入式微處理器S3C2440、SDRAM和Nand Flash構成和總線接口構成。2片32 MB的HY57V561620構成64 MB的SDRAM存儲器,用于運行系統主程序。存儲容量為64 M×8 bit的Nand FlashK9F1208UOM,因其具有掉點保護功能,用于存儲操作系統內核、Bootloader的啟動代碼和用戶程序。
    2)GPS原始數據接收模塊 由一臺遵循NMEA-0183協議標準的GPS接收機和PS天線組成。通過外接GPS接收機,將接收到的GPS原始信息,送入到嵌入式微處理器進行數據解析,最終得出戰車所在位置的位置、速度和海拔等信息。
    3)外設控制模塊 包括LCD+觸摸屏、USB主/從口、電源、JTAG調試接口、復位電路。選用東華的自帶4線模擬電阻式觸摸屏和硬件驅動的3.5#TFT型LCD,用于人機交互以及現實解析后的GPS信息。USB主口用于擴展U盤,用于數據存儲,從口用于下載WinCE內核文件以及與軟件開發主機進行數據交互,JTAG調試接口用于硬件調試以及燒載Bootloader。
    軟件平臺為微軟公司的嵌入式操作系統WindowsCE,它界面友好,支持嵌套中斷、更好的線程響應、更多的優先級別;支持串口和網絡通信;具有豐富的API函數,具有強大的開發工具;多硬件平臺支持,支持ARM、MIPS等處理器。經過Platform Builder定制移植的WindowsCE操作系統如圖2所示。



2 定位信息數據格式
    GPS的輸出數據遵循NMEA-0183協議標準,即美海軍的電子設備標準。根據NMEA-0183協議,獲取GPS定位信息,必須將串行口的波特率設置為4800b/s,數據位設置為8 bit,停止位設置為1 bit,校驗為設置為無。該協議定義了GPS接收機輸出的標準信息,最常用、兼容性最廣的語句格式包括:$GPRMC、$GPGGA、$GPGSV、$GPGSA、$GPGLL等。應用到的GPS數據格式包括$GPRMC、$GPGGA、$GPGSV三種。其中,用$GPRMC語句獲取時間、經緯度、速度、年月日信息,用$GPGSV語句獲取海拔高度信息,用$GPGSV語句獲取可見衛星數信息及衛星的方位角和仰角信息,用以獲取衛星的視圖。各語句的數據段的含義,參考NMEA-0183協議標準。

3 GPS定位信息采集和處理的軟件實現
    本系統的軟件開發在可視化開發工具Embedded VisualC++(簡稱EVC)中,采用MFC編程技術實現。
3.1 GPS數據處理狀態轉換
    GPS與ARM之間用RS232串口方式進行通信,串口對象負責接收數據,并把接收到的數據放置到串口緩沖區。GPS對象按照協議結構負責處理串口對象接收到的數據。圖3為GPS數據處理之間的狀態轉換示意圖。GPS數據處理狀態共包括4個狀態:開始狀態、數據幀頭狀態、GPS數
據正文狀態和校驗狀態。


    開始狀態是一個數據幀的起始狀態,它處理和判斷數據幀的起始字符$。若起始符號不是其中的$,則一直停留在開始狀態,直到$到來位置,數據幀頭狀態用于判斷數據幀的格式是否與我們目前需要的目標數據幀相匹配。如果相匹配,那么將退轉到下一個狀態:GPS數據正文狀態,開始進行數據處理。如果不匹配,則轉移到開始狀態。
    數據處理中用到了緩沖區的概念,它一邊累積計算接收的數據的異或和,一邊把相應的數據域送入緩沖區。這樣既降低了數據提取校驗的復雜度,也提高了數據處理的延續性和正確性。當GPS數據正文狀態完成,進入“*”字符的時候,將進入數據校驗狀態,它用于判斷數據接收和處理的有效與否。若校驗成功,則接收有效,收到CR,LF字符后又重新跳轉到開始狀態。若校驗失敗,則放棄處理的數據,直接跳轉至開始狀態。
3.2 完整GPS數據幀的截取
    了解了GPS數據處理的四個狀態之間的相互轉換,下面論述一個完整的GPS數據幀的提取和處理,它是獲取車輛GPS定位數據的關鍵。一個完整的GPS數據幀的提取流程如圖4所示。


    圖4中,m_strRecDisp為一個CString變量,用于表示接收數據的字符串,該程序流程中,用到兩個最重要的函數即:字符(串)查找函數和字符串截取函數。
    1)字符(串)查找函數 該函數CString∷Find()用于從一個已有的字符串當中查找與目標字符(串)相匹配的首次出現的一個單字符或一個子字符串。一個重要的函數原型為:int Find(TCHAR ch,int nStart)const:其中,ch為要查找的目標字符,nStart為開始查找位置。
    2)字符串截取函數 該函數CString∷Mid()用于截取一個字符,也可從一個具體位置開始截取一個子字符串,返回值即為字符或字符串常量。函數原型為:Mid(int nFirst,intnCount)const;其中nFirst為字符串開始截取的位置,nCount為截取字符數目。
3.3 GPS數據幀的處理
    截取出一個完整的數據幀后,將數據幀賦值給CString變量data,data再將其字符內容淵源不斷的送給緩沖pBuffer,解壓縮數據幀后,進入到如圖5所示的GPS數據幀處理流程。在處理GPS時間數據時,因為北京位于東八區,UTC時間與北京時間相差8 h,得到UTC時間后,如果要得到標準的北京時間,應在此時間的基礎上,加上8 h。


3.4 二維衛星視圖的獲取
    衛星視圖的獲取首先要用到站心切平面坐標系。坐標系如圖6所示,站心切平面以P點的法線為Z軸且向上為正,X軸垂直于Z軸并指向北極.Y軸垂直于Z軸并向東為正。


    顯然,若衛星P與觀測點之間的距離為r,E為任意可見衛星P的仰角,B為衛星的方位角,則P的三維坐標為(X,Y,Z)滿足:
   
    因為繪制的是二維圖形,故只能將半球坐標系壓縮到觀測者所在的平面內(稱這個面為基礎面),圖上所表示出的衛星的位置實際為衛星在該平面的投影點,該坐標系的參數有2個,一個是表達衛星的投影點和觀測者的方位關系的方位角;另一個是表達衛星真實所在位置以基礎面為準與觀測者所構成的仰角關系的仰角。有了這2個參數就能在該坐標系中唯一確定一個具有物理意義的點。本系統設計中,設計簡單的坐標系,它有2個同心圓和4條直線組成。繪制出衛星視圖之前進行的簡單的坐標變換算法思想為:將衛星實際的方位角、仰角立體坐標轉換為平面內的橫縱(PX、PY)坐標,具體表示如式(2)所示。其中,(POX,POY)分別為兩同心圓原點(看作是觀測點)在LCD上的像素坐標,而T為對話框窗體客戶區長度的1/4。
   
3.5 串口接收的實現
    完成GPS定位信息的采集,需要實現的串口主要的API函數包括:
    1)打開串口函數。原型為Open(LPT OpenPort(LPCTSTRPort,int BaudRate,int DataBits,int StopBits,int Parity)。其中,Port代表串口名,如COMl等,BaudRate為波特率,DataBits為數據位;StopBits為停止位,Parity為奇偶校驗。
    2)關閉串口函數。該函數在程序操作串口發生錯誤時使用,用于關閉該串口。實現的主要方法是:先判斷串口操作句柄hComm的值是否為INVALID_HANDLE_VALUE,如果是,則調用SetCommMask(),將上述代碼段中的EV_RXCHAR改為0,然后清除緩沖區,再利用CloseHandle函數關閉串行口操作句柄。
    3)添加打開串口單擊事件代碼,通過創建一個串口接收線程和顯示線程來實現。
    4)串口接收線程CommRecvTread()與回調函數OnCommRecv()。串口接收線程為一個無限循環,它不斷查詢串口接收線程退出事件m_Exit-ThreadEvent。如果退出事件有效,則該循環結束退出。如果調用讀串口函數查詢得知接收到數據,則調用串口接收成功回調函數0nCommRecv()。

4 實驗數據及分析
    設置好串口參數后,打開串口COMl,既可獲取實驗數據。圖7為在某型軍車上一次實測的數據。實測數據界面拍攝的時間為2009年11月10日晚上9點45分,地點為某訓練場。數據在靜止的狀態下測得。該定位顯示的數據包括“原始數據”和解析后“經緯度、時間、海拔”等信息。通過分析圖7(a)界面的數據發現,$GPGSV語句有兩條,而在“星數”對應的Edit框中顯示的定位所用衛星數為8,由于每一條GPGSV最多能顯示4顆衛星的信息,故$GPGSV語句為兩條。這說明星數與$GPGSV語句數是吻合的。而獲取有效的GPS定位信息,至少需要4顆定位衛星。這也說明此次數據是有效的定位數據。


    該界面顯示的經緯度信息分別為N:38°3.6788’,E:114°29.1765’;其中,N代表北緯,E代表東經。而用GoolgeEarth軟件查閱數據可知,石家莊軍械學院南門的精確經度/緯度信息為:北緯38°3.1650’,東經114°29.0046’,軍械學院西門的精確經度/緯度信息為:北緯38°3.394O’,東經114°28.5432’。通過與二者的經緯度信息比對發現,界面實時顯示的精度和緯度信息非常精確。通過實
時比對標準的北京時間,說明時間和日期信息顯示也完全正確。
    速度信息在靜止情況下測得,故理想的速度為0 k/s。而實際測得數據分別為0.060 00 k/s,前文已論述,1 k/s換算成標準的速度信息約0.514 444 m/s,故測得的速度誤差分別約為O.030 867 m/s。可以看出,測量的速度誤差相對而言是很小的。
    界面顯示的海拔信息為:68.800 00 m。而通過石家莊市規劃局提供的資料可知:石家莊市區二環路內地勢西北高,海拔高度為81.5 m,東南低,海拔高度為64.3 m。測得的海拔高度還是存在微小的誤差。這可能跟接收的GPS信號的漂移有關。從圖7(b)部分的衛星視圖可以看出,衛星與觀測點的方位關系能清晰的表示,而且衛星的編號也能實時顯示,從上到下依次分別為:23、17、3、4、19、20、32、11。

5 結論
    GPS定位為單點定位,用一臺接收機觀測衛星,獨立定出觀測點在WGS-84(地心坐標)中的絕對位置。系統以ARM9為嵌入式微處理器,以WindowsCE為嵌入式操作系統,通過串行口實現GPS接收機與ARM之間的通信,構建了某型軍車的GPS定位信息采集系統。實驗表明:該系統能實時顯示精度較高、持久有效的GPS定位數據,具有重要的實用價值和參考意義。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久久久波多野高潮日日 | 新狼窝色av性久久久久久| 亚洲国产精品久久| 欧美亚洲日本国产| 亚洲一区亚洲二区| 亚洲一区二区三区高清| 中文无字幕一区二区三区| 亚洲欧洲一区二区三区在线观看| 国内精品免费在线观看| 国产亚洲人成a一在线v站| 国产精品欧美日韩一区| 国产精品成人午夜| 欧美丝袜第一区| 国产精品www| 国产精品毛片va一区二区三区| 欧美性色综合| 国产精品天天看| 国产区在线观看成人精品| 国产区在线观看成人精品| 国产欧美日韩专区发布| 国产亚洲欧美日韩精品| 国产一区二区三区在线观看精品 | 亚洲毛片播放| 一本色道久久加勒比88综合| 一区二区三区精品| 亚洲系列中文字幕| 亚洲欧美在线磁力| 欧美在线视频导航| 亚洲电影视频在线| 亚洲精品免费看| 一区二区三区四区国产精品| 亚洲一级在线| 欧美一区在线视频| 久久―日本道色综合久久| 免费观看一区| 欧美日韩美女一区二区| 国产精品久久久久毛片大屁完整版| 国产精品视频99| 国产一区二区三区自拍| 在线观看成人小视频| 亚洲精品免费在线观看| 一区二区三区 在线观看视频| 亚洲你懂的在线视频| 久久精品网址| 一区二区电影免费观看| 性做久久久久久| 久久影院午夜论| 欧美日韩精品一区二区三区| 国产精品日日摸夜夜添夜夜av | 99天天综合性| 欧美一区二区三区四区夜夜大片 | 亚洲欧美精品suv| 久久久久国内| 欧美激情视频在线免费观看 欧美视频免费一 | 理论片一区二区在线| 欧美日韩国产不卡在线看| 国产精品亚洲一区| 亚洲第一天堂av| 中文精品99久久国产香蕉| 性久久久久久久久| 日韩小视频在线观看专区| 香蕉久久国产| 欧美成人午夜剧场免费观看| 国产精品毛片高清在线完整版| 影音先锋中文字幕一区二区| 一卡二卡3卡四卡高清精品视频| 欧美在线地址| 亚洲一区免费网站| 久久亚洲一区二区| 国产精品对白刺激久久久| 一区在线播放视频| 亚洲一区欧美二区| 亚洲免费电影在线观看| 欧美在线关看| 欧美日韩在线一区| 亚洲第一黄色网| 亚洲欧美在线一区| 夜夜嗨av一区二区三区网页| 久久久久久久久一区二区| 欧美日韩在线观看一区二区三区 | 亚洲一区二区三区四区中文| 亚洲三级影院| 久久精品亚洲一区| 国产精品久久久久久五月尺| 亚洲国产成人在线| 欧美一区国产一区| 亚洲欧美国产高清va在线播| 欧美成人在线影院| 国内综合精品午夜久久资源| 一区二区毛片| 亚洲精品一区在线| 毛片av中文字幕一区二区| 国产精品入口夜色视频大尺度 | 久久久99精品免费观看不卡| 国产精品久久久久国产a级| 亚洲激情一区| 亚洲国产1区| 久久久久国产精品一区三寸| 国产女人aaa级久久久级| 一级日韩一区在线观看| 一本色道久久综合亚洲二区三区| 久久综合久久久久88| 国产日韩欧美不卡| 亚洲自拍偷拍福利| 亚洲在线视频网站| 欧美三级电影网| 亚洲免费观看| 99精品免费视频| 欧美精品国产精品| 亚洲国产精品电影在线观看| 亚洲国产婷婷| 鲁大师成人一区二区三区| 国精品一区二区三区| 欧美在线电影| 久久青草福利网站| 国产综合第一页| 久久gogo国模裸体人体| 久久色在线观看| 精品999在线观看| 亚洲国产免费看| 免费成人小视频| 亚洲国产一区二区三区青草影视| 亚洲欧洲在线播放| 欧美激情精品久久久久久大尺度 | 性欧美超级视频| 久久成人精品视频| 国产日韩av高清| 欧美一区二区日韩| 久久尤物电影视频在线观看| 一区二区三区自拍| 亚洲精品一二区| 欧美三级小说| 亚洲一区二区三区中文字幕在线| 午夜日韩福利| 国产日韩欧美一区| 久久精品一区蜜桃臀影院 | 久久成人免费日本黄色| 久久久亚洲一区| 亚洲高清不卡在线| 一区二区成人精品| 欧美午夜在线| 欧美一级淫片播放口| 久久久www成人免费无遮挡大片| 精品动漫3d一区二区三区免费| 亚洲欧洲在线观看| 欧美日韩精品一区二区天天拍小说 | 欧美日韩国产大片| 一区二区三区产品免费精品久久75 | 亚洲宅男天堂在线观看无病毒| 国产精品女人网站| 国产精品久久久久久久久免费樱桃 | 亚洲欧美日韩爽爽影院| 国产噜噜噜噜噜久久久久久久久| 欧美在线地址| 欧美伦理视频网站| 亚洲专区一区| 美女视频网站黄色亚洲| 日韩一区二区免费高清| 欧美一区二区三区视频免费| 精品盗摄一区二区三区| 夜夜嗨av色综合久久久综合网| 国产精品嫩草99a| 亚洲国产女人aaa毛片在线| 欧美日韩国产综合视频在线观看中文| 一区二区三区欧美成人| 久久久久久久性| 亚洲精品乱码久久久久久久久| 欧美一二三区在线观看| 亚洲国产精品成人综合| 午夜精品久久久久久| 在线观看中文字幕不卡| 亚洲综合久久久久| 激情综合久久| 亚洲免费影视| 亚洲国产精品国自产拍av秋霞| 亚洲尤物精选| 亚洲电影有码| 欧美一区二区三区久久精品茉莉花| 在线观看中文字幕不卡| 亚洲欧美日韩系列| 91久久久久久久久久久久久| 亚洲欧美另类在线观看| 亚洲国产成人精品女人久久久 | 小嫩嫩精品导航| 亚洲国产欧美国产综合一区| 亚洲免费在线精品一区| 在线观看欧美日韩| 欧美亚洲综合久久| 亚洲欧洲精品一区二区三区不卡 | 欧美一区免费| 亚洲肉体裸体xxxx137| 久久国产精品久久久| av成人毛片| 欧美承认网站| 久久国产精品99精品国产| 国产精品美女一区二区在线观看| 亚洲精品国产精品国自产观看浪潮 | 久久精品国产一区二区三区免费看| 欧美三级电影大全| 亚洲精品久久久久久下一站 |