GPS模块与ARM-Linux平台数据传送研究

GPS模块与ARM-Linux平台数据传送研究,第1张

  本文主要研究GPS模块与ARM-Linux平台之间采用异步串行传送方式进行数据传送的问题,利用多线程编程技术实现GPS信号采集与处理,并介绍了一种WGS坐标向地方坐标的转换方法。与GPS通信可选的协议有很多种,目前普遍采用的是NMEA-0183通信协议。

  1 NMEA-0183通信协议

  NMEA-0183协议[1]是为了在不同的GPS导航设备中建立统一的海事无线电技术委员会(BTCM)标准,由美国国家海洋电子协会NMEA(NaTIonal Marine Electronics AssociaTIon)制定的通信协议,其中规定了海用和陆用GPS接收设备输出的定位位置数据、时间、卫星状态、接收机状态等信息。除NMEA-0183协议之外,还有差分用的RTCMSC-104格式,各个厂商互不兼容的二进制格式等,但以NMEA-0183使用最广泛。为实现ARM-LINUX平台与GPS之间的通信,应清楚协议规定的GPS输出的数据格式和报文。NMEA-0183规定的格式如下:

  波特率:4 800 b/s

  数据位:8 bit

  奇偶校验:无

  开始位:1 bit

  停止位:1 bit

  报文格式:报文的语句串(十进制ASCII码)格式全部信息如图1。

  

GPS模块与ARM-Linux平台数据传送研究,第2张

 

  图1中具体内容:$为串头,表示串开始;GP为交谈识别符。XXX为语句名,NMEA规定的常用语句有以下6种:GGA,卫星定位信息;GLL,地理位置-经度和纬度;GSA,GNSS DOP偏差信息,说明卫星定位的信号的优劣情况;GSV,GNSS天空范围内的卫星;RMC,最基本的GNSS信息,指能够达到定位目的的基本信息等语句。ddd为数据字段,字母或数字,“,”为域分隔符;*表示串尾;hh表示$与*之间所有字符代码的校验和;为回车控制符;为换行控制符。

  在实际的GPS应用中,并不会用到NMEA的全部信息,而是根据具体的需要,从中选取有用的信息,忽略其余的信息内容。下面以GPRMC语句为例来介绍。该语句包含时间、日期、方位、速度和磁偏角等信息,基本上可以满足一般的导航需求。GPRMC语句的结构为:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,*hh。

  数据区说明如下:

  (1)UTC时间,hhmmss.sss(时分秒.毫秒)格式;

  (2)定位状态,A=有效定位,V=无效定位;

  (3)纬度ddmm.mmmm (度分)格式(前面的0也将被传输);

  (4)纬度半球N(北半球)或S(南半球);

  (5)经度dddmm.mmmm(度分)格式(前面的0也将被传输);

  (6)经度半球E(东经)或W(西经);

  (7)地面速率(000.0~999.9节,前面的0也将被传输);

  (8)地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输);

  (9)UTC日期,ddmmyy(日月年)格式;

  (10)磁偏角(000.0~180.0度,前面的0也将被传输);

  (11)磁偏角方向,E(东)或W(西)。

  2 目标平台

  本文中使用的是以SAMSUNG公司的ARM9系列中的16/32位RISC处理器S3C2410A芯片为核心的目标平台。S3C2410A包含一个16/32位的RISC(ARM920T)CPU内核、独立的16 KB的指令和16 KB数据缓存(cache)、用于虚拟内存管理的MMU单元、LCD控制器(STN&TFT)、非线性(NAND)Flash、系统管理器(包括片选逻辑控制和SDRAM控制器)及3个通道的异步串口(UART)。目标板资源包括S3C2410的微处理器,主频200 MHz;16 MB的Flash;64 MB的SDRAM;RS-232C UART接口;LCD液晶显示屏。

  在目标板上选配的GPS模块是HIMARK公司的GPS模块,此模块是符合民用标准的GPS接收器,信号接收性能好,功耗较小,整体工作比较稳定。整体硬件设计框图如图2所示。

  

GPS模块与ARM-Linux平台数据传送研究,第3张

 

  

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2478894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存