當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于ARM9與WindowsCE的車輛GPS定位信息采集系統(tǒng)

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

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


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



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

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


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


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


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


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

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


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

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉