GPS模塊與ARM-Linux平臺(tái)數(shù)據(jù)傳送研究._第1頁(yè)
GPS模塊與ARM-Linux平臺(tái)數(shù)據(jù)傳送研究._第2頁(yè)
GPS模塊與ARM-Linux平臺(tái)數(shù)據(jù)傳送研究._第3頁(yè)
GPS模塊與ARM-Linux平臺(tái)數(shù)據(jù)傳送研究._第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、GPS模塊與ARM-Linux平臺(tái)數(shù)據(jù)傳送研究本文主要研究GPS莫塊與ARM-Linux平臺(tái)之間采用異步串行傳送方式進(jìn)行數(shù)據(jù) 傳送的問(wèn)題,利用多線程編程技術(shù)實(shí)現(xiàn) GPS信號(hào)采集與處理,并介紹了一種 WG坐標(biāo)向地方坐標(biāo)的轉(zhuǎn)換方法。與 GPS通信可選的協(xié)議有很多種,目前普遍 采用的是NMEA-01831信協(xié)議。1 NMEA-0183通 信協(xié)議NMEA-018協(xié)、議1是為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一的海事無(wú)線電 技術(shù)委員會(huì)(BTCM標(biāo)準(zhǔn),由美國(guó)國(guó)家海洋電子協(xié)會(huì) NMEA(National Marine Electro nics Associatio n)制定的通信協(xié)議,其中規(guī)定了海用和陸用GP

2、S接收應(yīng)清楚協(xié)議規(guī)定的GPS俞出的數(shù)據(jù)格式和報(bào)文。NMEA-0183規(guī)定的格式如設(shè)備俞出的定位位置數(shù)據(jù)、時(shí)間、衛(wèi)星狀態(tài)、接收機(jī)狀態(tài)等信息。除 NMEA- 0183協(xié)議之外,還有差分用的 RTCMSC-10格式,各個(gè)廠商互不兼容的二進(jìn)制 格式等,但以NMEA-0183使用最廣泛。為實(shí)現(xiàn) ARM-LINUXP臺(tái)與GPS之間的通 信, 下:波特率: 4 800 b/s數(shù)據(jù)位: 8 bit奇偶校驗(yàn):無(wú)開(kāi)始位: 1 bit停止位: 1 bit圖1中具體內(nèi)容:$為串頭,表示串開(kāi)始;GP為交談識(shí)別符。XXX為語(yǔ)句 NMEA規(guī)定的常用語(yǔ)句有以下6種:GGA衛(wèi)星定位信息;GLL,地理位置-經(jīng);GSV,報(bào)文格式:

3、報(bào)文的語(yǔ)句串 (十進(jìn)制 ASCII 碼)格式全部信息如圖 1。名,度和緯度;GSA GNSS DO偏差信息,說(shuō)明衛(wèi)星定位的信號(hào)的優(yōu)劣情況GNS天空范圍內(nèi)的衛(wèi)星;RMC最基本的GNSS&息,指能夠達(dá)到定位目的的基 本信息等語(yǔ)句。ddd為數(shù)據(jù)字段,字母或數(shù)字,“,”為域分隔符;*表示串 尾;hh表示$與*之間所有字符代碼的校驗(yàn)和;為回車控制符;為換行控制符。在實(shí)際的GPS應(yīng)用中,并不會(huì)用到NMEA勺全部信息,而是根據(jù)具體的需 要,從中選取有用的信息,忽略其余的信息內(nèi)容。下面以 GP RM語(yǔ)句為例來(lái)介 紹。該語(yǔ)句包含時(shí)間、日期、方位、速度和磁偏角等信息,基本上可以滿足一 般的導(dǎo)航需求。GPR

4、M語(yǔ)句的結(jié)構(gòu)為:$GPRMCv1, 2,3,4,5, 6, 7, 8, 9, 10, 11, *hh。數(shù)據(jù)區(qū)說(shuō)明如下:(1)UTC時(shí)間,hhmmss.sss(時(shí)分秒.毫秒)格式;(2)定位狀態(tài),A=有效定位,效定位; 緯度ddmm.mmmn®分)格式(前面的0也將被傳輸);(4)緯度半球N(北半球)或S(南半球); 經(jīng)度dddmm.mmmUrn分)格式(前面的0也將被傳輸);經(jīng)度半球E(東經(jīng))或W西經(jīng));地面速率(000.0999.9節(jié),前面的0也將被傳輸);(8) 地面航向 (000.0 359.9 度,以真北為參考基準(zhǔn),前面的 0也將被傳 輸);(9)UTC日期,ddmmyy日月

5、年)格式;(10)磁偏角(000.0 180.0 度,前面的 0也將被傳輸 );(11)磁偏角方向,E(東)或W西)。2 目標(biāo)平臺(tái)本文中使用的是以SAMSUN公司的ARM9系列中的16/32位RISC處理器 S3C2410A芯片為核心的目標(biāo)平臺(tái)。S3C2410A包含一個(gè)16/32位的 RISC(ARM920T)CP內(nèi)核、獨(dú)立的16 KB的指令和16 KB數(shù)據(jù)緩存(cache)、用 于虛擬內(nèi)存管理的MM單元、LCD空制器(STN&TFT)非線性(NAND)Flash、系 統(tǒng)管理器(包括片選邏輯控制和SDRAI控制器)及3個(gè)通道的異步串口 (UART)o 目標(biāo)板資源包括 S3C2410的微

6、處理器,主頻 200 MHz;16 MB的Flash;64 MB的 SDRAM;RS-232C UART口 ;LCD液晶顯示屏。在目標(biāo)板上選配的GPS模塊是HIMARK公司的GPS模塊,此模塊是符合民用 標(biāo)準(zhǔn)的GPS接收器,信號(hào)接收性能好,功耗較小,整體工作比較穩(wěn)定。整體硬 件設(shè)計(jì)框圖如圖2所示。3 交叉編譯環(huán)境的建立基于嵌入式 Linux 操作系統(tǒng)的應(yīng)用開(kāi)發(fā)模式通常都是宿主機(jī) +目標(biāo)機(jī)2 。 目標(biāo)機(jī)用于運(yùn)行操作系統(tǒng)和系統(tǒng)應(yīng)用軟件,而目標(biāo)板所用到的操作系統(tǒng)的內(nèi)核 編譯、應(yīng)用程序的開(kāi)發(fā)和調(diào)試則需要通過(guò)宿主機(jī)(資源豐富處理能力強(qiáng)的PC)來(lái) 完成,稱之為交叉編譯。雙方之間一般通過(guò)串口、并口或以太網(wǎng)接

7、口建立連接 關(guān)系。保存退出。(1)配置minicom:在宿主機(jī) Redhat Linux 9.0 的X windows界面下新建 終端,在終端命令提示符后輸入 minicom-s ,回車,然后按照提示設(shè)置波特率 115200, 8 位數(shù)據(jù), 1 位停止位,無(wú)流控,setup->system service->tftp 增加 兩項(xiàng),然后在 Firewall(2)TFTP 服務(wù)的配置:在終端中運(yùn)行TFTP服務(wù),并去掉 ip chai ns 和 ip tables configuration ,選中 no firewall ,保存退出,執(zhí)行 service xinetd restart

8、啟動(dòng)TFTP服務(wù)。(3) NFS服務(wù)器的配置:在終端中運(yùn)行 set up->system service->NFS ,增加 NFS服務(wù),然后編輯文件exports,添加與目標(biāo)機(jī)共享的目錄,并設(shè)置目標(biāo)機(jī)對(duì) 目錄的訪問(wèn)權(quán)限,重新啟動(dòng) NFS服務(wù)。(4) Linux 內(nèi)核移植:通過(guò)并口,宿主機(jī)向目標(biāo)開(kāi)發(fā)板的 Flash 燒寫(xiě)引導(dǎo)程 序PPcboot,燒寫(xiě)完畢后通過(guò)TFTP服務(wù)把經(jīng)過(guò)裁剪的Linux內(nèi)核鏡像文件以及 根文件系統(tǒng)下載到目標(biāo)板的RAM中,然后由PPcboot完成內(nèi)核及根文件系統(tǒng)從 內(nèi)存到 Flash 的燒寫(xiě)。最后需要在宿主機(jī)安裝主編譯器 Arm-linux-gcc ,用來(lái) 交叉

9、編譯應(yīng)用程序。4 GPS信號(hào)的采集和處理為實(shí)現(xiàn)ARM-Linux平臺(tái)下GPS信號(hào)的采集與處理,涉及到 Linux下串口編 程技術(shù),首先給出 Linux 串口通信的原理,然后利用多線程編程技術(shù)來(lái)完成 GPS數(shù)據(jù)采集與NME數(shù)據(jù)格式的解析,因解析后得到的 GPS定位坐標(biāo)屬于 WGS8坐標(biāo),需轉(zhuǎn)換到相應(yīng)的54、80坐標(biāo)或地方坐標(biāo)供用戶標(biāo)圖定位所用,因 此介紹了一種坐標(biāo)轉(zhuǎn)換方法。4.1 GPS 數(shù)據(jù)采集與處理大多數(shù)GPS接收機(jī)與各種處理器平臺(tái)進(jìn)行數(shù)據(jù)交換時(shí),都采用異步串行傳 送方式,提供一個(gè)符合RS-232C電氣標(biāo)準(zhǔn)的數(shù)據(jù)接口。在Linux操作系統(tǒng)中,所有設(shè)備以設(shè)備文件的形式存儲(chǔ)在目錄/dev/下,串

10、口設(shè)備文件為 /dev/ttyS* ,在 Linux 中,若要設(shè)置串口的參數(shù),如改變串口的 波特率、字符大小等,可通過(guò) POSIX標(biāo)準(zhǔn)終端接口 3,該接口被稱為 termios ,在系統(tǒng)頭文件中定義。它包括一個(gè)數(shù)據(jù)結(jié)構(gòu)和一系列操縱這些數(shù)據(jù)結(jié)構(gòu)的函數(shù)組成。有關(guān)串口的所有參數(shù)配置都保存在接口 termios 的結(jié)構(gòu) struct termios 中,該結(jié)構(gòu)定義如下:struct termiostcflag_t c_iflag; /*輸人模式標(biāo)志*/tcflag_t c_oflag; /*輸出模式標(biāo)志*/tcflag_t c_cflag; /*控制模式標(biāo)志*/tcflag_t c_lflag; /*

11、本地模式標(biāo)志*/cc_t c_ccNCCS;/*特殊控制字符 */其中的 c_iflag 成員是用來(lái)控制輸入處理選項(xiàng)的,它影響到終端驅(qū)動(dòng)程序 將輸入發(fā)送給程序前是否對(duì)其進(jìn)行處理,及怎樣對(duì)其進(jìn)行處理。 c_oflag 成員 是用來(lái)控制輸出數(shù)據(jù)的處理,并決定在發(fā)送輸出數(shù)據(jù)到顯示屏和其他輸出設(shè)備 之前,終端驅(qū)動(dòng)程序是否以及如何來(lái)處理它們。 c_cflag 用于存放各種決定終 端設(shè)備硬件特性的控制標(biāo)志,如串口的波特率、奇偶校驗(yàn)、停止位、數(shù)據(jù)位 等。存放在 c_lflag 中的本地模式標(biāo)志用來(lái)操縱串口如何處理輸入字符,比如 是否將輸入字符顯示到顯示屏上,一般可通過(guò)此成員來(lái)設(shè)置串口為正規(guī)模式或 是非正規(guī)模

12、式。 c_cc 數(shù)組成員用來(lái)定義支持的特殊控制字符以及一些 timeout 參數(shù)。除了上面的這個(gè)包含串口參數(shù)配置的數(shù)據(jù)結(jié)構(gòu)之外, termios 中還包含許 多控制串口特性的函數(shù)。其中重要的幾個(gè)函數(shù)如: tegetattr( )、cfsetispeed( )、 cfsetospeed( )、 tcflush( )。 tegetattr()tesetattr( ) 用來(lái)初始化一個(gè) termios 數(shù)據(jù)結(jié)構(gòu),之后可使用其他的函數(shù)來(lái)操縱由 tegetattr( ) 返回的數(shù)據(jù)結(jié)構(gòu)。完成這些操作后,使用 tesetattr( ) 來(lái)更新串 口的設(shè)置。 cfsetispeed( ) 用來(lái)設(shè)置串口的輸入速度。 cfsetospeed( ) 用來(lái)設(shè) 置串口的輸出速度。 tcflush( ) 用來(lái)清除所有隊(duì)列在串口的輸入與輸出。在 Linux 下采用多線程編程技術(shù)可大大節(jié)省系統(tǒng)的開(kāi)銷,方便各線程之間 通信,提高應(yīng)用程序的響應(yīng),改善程序結(jié)構(gòu),從而可以提高嵌入式系統(tǒng)的性 能。本文就是利用Linux下多線程編程來(lái)實(shí)現(xiàn)GPS數(shù)據(jù)的采集和處理,在 GPS 模塊的初始化GPS_lnitial函數(shù)中創(chuàng)建接收線程GPS_Thread_Port_Svc,在接 收線程中調(diào)用GPS信息語(yǔ)句的解析函數(shù)GPS_Parse_Data(buf_GPS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論