gps定位信息采集和处理的软件实现_第1页
gps定位信息采集和处理的软件实现_第2页
gps定位信息采集和处理的软件实现_第3页
gps定位信息采集和处理的软件实现_第4页
gps定位信息采集和处理的软件实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GPS 定位信息采集和处理的软件实现 文章来源:本站原创 作者:佚名 - 该文章讲述了 GPS 定位信息采集和处理的软件实现. GPS 可提供连续、高精度、实时的时间基准、三维位置、三维速度、整周模糊度等数 据,具有性能好、精度高的特点,因而广泛应用于 GPS 载波相位测姿、精确制导、 SINS GPS 组合导航、嵌入式车辆导航监控等军事与民用领域。而嵌入式系统以其低功耗、 小体积、高稳定性和便携等优势,在 GPS 的应用中占据重要的位置。本文研究基于 arm920T 内核的嵌入式微处理器 S3C2440 和 WindowsCE 50(简称 WindowsCE)的某型军 车 GPS 定位信息的采集与处理。 1 系统硬软件平台概述 车辆 GPS 定位信息采集系统的硬件平台结构如图 l 所示。 该平台可以分为 3 大模块: 1)微系统核心模块 由基于 arm920T 的 32 位嵌入式微处理器 S3C2440、SDRAM 和 Nand Flash 构成和总线接口构成。2 片 32 MB 的 HY57V561620 构成 64 MB 的 SDRAM 存 储器,用于运行系统主程序。存储容量为 64 M8 bit 的 Nand FlashK9F1208UOM,因其具 有掉点保护功能,用于存储操作系统内核、Bootloader 的启动代码和用户程序。 2)GPS 原始数据接收模块 由一台遵循 NMEA-0183 协议标准的 GPS 接收机和 PS 天线 组成。通过外接 GPS 接收机,将接收到的 GPS 原始信息,送入到嵌入式微处理器进行数 据解析,最终得出战车所在位置的位置、速度和海拔等信息。 3)外设控制模块 包括 LCD+触摸屏、USB 主从口、电源、JTAG 调试接口、复位电 路。选用东华的自带 4 线模拟电阻式触摸屏和硬件驱动的 35#TFT 型 LCD,用于人机交 互以及现实解析后的 GPS 信息。USB 主口用于扩展 U 盘,用于数据存储,从口用于下载 WinCE 内核文件以及与软件开发主机进行数据交互,JTAG 调试接口用于硬件调试以及烧 载 Bootloader。 软件平台为微软公司的嵌入式操作系统 WindowsCE,它界面友好,支持嵌套中断、更 好的线程响应、更多的优先级别;支持串口和网络通信;具有丰富的 API 函数,具有强大 的开发工具;多硬件平台支持,支持 arm、MIPS 等处理器。经过 Platform Builder 定制移 植的 WindowsCE 操作系统如图 2 所示。 2 定位信息数据格式 GPS 的输出数据遵循 NMEA-0183 协议标准,即美海军的电子设备标准。根据 NMEA- 0183 协议,获取 GPS 定位信息,必须将串行口的波特率设置为 4800bs,数据位设置为 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 编程技术实现。 31 GPS 数据处理状态转换 GPS 与 arm 之间用 RS232 串口方式进行通信,串口对象负责接收数据,并把接收到的 数据放置到串口缓冲区。GPS 对象按照协议结构负责处理串口对象接收到的数据。图 3 为 GPS 数据处理之间的状态转换示意图。GPS 数据处理状态共包括 4 个状态:开始状态、数 据帧头状态、GPS 数据正文状态和校验状态。 开始状态是一个数据帧的起始状态,它处理和判断数据帧的起始字符$。若起始符号不 是其中的$,则一直停留在开始状态,直到$到来位置,数据帧头状态用于判断数据帧的格 式是否与我们目前需要的目标数据帧相匹配。如果相匹配,那么将退转到下一个状态: GPS 数据正文状态,开始进行数据处理。如果不匹配,则转移到开始状态。 数据处理中用到了缓冲区的概念,它一边累积计算接收的数据的异或和,一边把相应 的数据域送入缓冲区。这样既降低了数据提取校验的复杂度,也提高了数据处理的延续性 和正确性。当 GPS 数据正文状态完成,进入“*”字符的时候,将进入数据校验状态,它 用于判断数据接收和处理的有效与否。若校验成功,则接收有效,收到 CR,LF 字符后又 重新跳转到开始状态。若校验失败,则放弃处理的数据,直接跳转至开始状态。 本文来自: 高校自动化网 (W) 详细出处参考(转载请保留本链接) : /html/arm/11640.html 32 完整 GPS 数据帧的截取 了解了 GPS 数据处理的四个状态之间的相互转换,下面论述一个完整的 GPS 数据帧 的提取和处理,它是获取车辆 GPS 定位数据的关键。一个完整的 GPS 数据帧的提取流程 如图 4 所示。 图 4 中,m_strRecDisp 为一个 CString 变量,用于表示接收数据的字符串,该程序流 程中,用到两个最重要的函数即:字符(串) 查找函数和字符串截取函数。 1)字符( 串) 查找函数 该函数 CStringFind()用于从一个已有的字符串当中查找与目标 字符(串) 相匹配的首次出现的一个单字符或一个子字符串。一个重要的函数原型为:int Find(TCHAR ch,int nStart)const:其中,ch 为要查找的目标字符,nStart 为开始查找位置。 2)字符串截取函数 该函数 CStringMid() 用于截取一个字符,也可从一个具体位置开 始截取一个子字符串,返回值即为字符或字符串常量。函数原型为:Mid(int nFirst,intnCount)const ;其中 nFirst 为字符串开始截取的位置,nCount 为截取字符数目。 33 GPS 数据帧的处理 截取出一个完整的数据帧后,将数据帧赋值给 CString 变量 data,data 再将其字符内容 渊源不断的送给缓冲 pBuffer,解压缩数据帧后,进入到如图 5 所示的 GPS 数据帧处理流 程。在处理 GPS 时间数据时,因为北京位于东八区,UTC 时间与北京时间相差 8 h,得到 UTC 时间后,如果要得到标准的北京时间,应在此时间的基础上,加上 8 h。 34 二维卫星视图的获取 卫星视图的获取首先要用到站心切平面坐标系。坐标系如图 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 为对话框窗 体客户区长度的 14 35 串口接收 GPS 数据帧 完成 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:3836788 ,E:114291765 ;其中,N 代表北纬,E 代表东经。而用 GoolgeEarth 软件查阅数据可知,石家庄军械学院南门的精确 经度纬度信息为:北纬 3831650 ,东经 114290046 ,军械学院西门的精确经度 纬度信息为:北纬 383394O ,东经 114285432 。通过与二者的经纬度信息比 对发现,界面实时显示的精度和纬度信息非常精确。通过实时比对标准的北京时间,说明 时间和日期信息显示也完全正确。 速度信息在静止情况下测得,故理想的速度为 0 ks。而实际测得数据分别为 0060 00 ks,前文已论述, 1 k s 换算成标准的速度信息约 0514 444 ms,故测得的速度误 差分别约为 O030 867 ms。可以看出,测量的速度误差相对而言是很小的。 界面显示的海拔信息为:68800 00 m。而通过石家庄市规划局提供的资料可知:石 家庄市区二环路内地势西北高,海拔高度为 815 m,东南低,海拔高度为 643 m。测 得的海拔高度还是存在微小的误差。这可能跟接收的 GPS 信号的漂移有关。从图 7(b)部分 的卫星视图可以看出,卫星与观测点的方位关系能清晰的表示,而且卫星的编号也能实时 显示,从上到下依次分别为:23、17、3、4、19、20、32、11。 5 结论 GPS 定位为单点定位,用一台接收机观测卫星,独立定出观

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论