基于ARM9与WinCE的车辆GPS定位信息采集系统

发布者:温柔心绪最新更新时间:2012-04-07 来源: 电子设计工程关键字:ARM9  WinCE  GPS定位 手机看文章 扫描二维码
随时随地手机看文章

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协议标准。[page]

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所示。[page]


图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为截取字符数目。[page]

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)满足:[page]


因为绘制的是二维图形,故只能将半球坐标系压缩到观测者所在的平面内(称这个面为基础面),图上所表示出的卫星的位置实际为卫星在该平面的投影点,该坐标系的参数有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函数关闭串行口操作句柄。[page]

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定位数据,具有重要的实用价值和参考意义。

关键字:ARM9  WinCE  GPS定位 引用地址:基于ARM9与WinCE的车辆GPS定位信息采集系统

上一篇:基于S3C44B0芯片的uClinux内核引导过程分析
下一篇:基于ARM嵌入式的视频监控系统的设计

推荐阅读最新更新时间:2024-03-16 12:57

基于ARM9和μC/OSII高速实时多任务数据采集的智能化设计
引言 随着IT技术、电子技术、通信技术、以及自动控制技术的飞速发展,对工业现场数据的高速实时采集就成为电子产品和工业控制技术发展不可避免的一个环节。 本文针对高速实时多任务数据采集中的多任务实现算法以及实时性、实效性和高速性的要求,提出了基于ARM9和μC/OSII操作系统的智能化设计方案,实现了任务优先级动态调度、系统工作参数动态设定、系统内部软件智能化设计,针对低速外围设备进行了系统优化,并提高了系统可靠性改善了内部任务同步性。 1 整体电路设计 整个采集系统的硬件电路如图1所示。首先利用多路调制电路对12路信号进行调制,这部分包含相应的信号转换、抗干扰、以及初步的信号处理等,使得各路采集信号能够达到ARM9内核对信号采集
[单片机]
基于<font color='red'>ARM9</font>和μC/OSII高速实时多任务数据采集的智能化设计
ARM7、ARM9、ARM11、ARM-Cortex系列的关系
ARM公司自2004年推出ARMv7内核架构时,摒弃了以往 ARM+数字 这种处理器命名方法(ARM11之前的处理器统称经典处理器系列),重新启用Cortex来命名,并将Cortex系列细分为三大类: Cortex-A系列:面向性能密集型系统的应用处理器内核 Cortex-R系列:面向实时应用的高性能内核 Cortex-M系列:面向各类嵌入式应用的微控制器内核 Cortex-M系列主要是用来取代经典处理器ARM7系列(比如基于ARMv4架构的ARM7TDMI),Cortex-M比ARM7的架构高了3代,性能也有较大提升,所以新的设计推荐使用Cortex-M,关于从ARM7到Cortex-M的移植详见ARM官网指导 ARM7
[单片机]
ARM7、<font color='red'>ARM9</font>、ARM11、ARM-Cortex系列的关系
ARM和WinCE6.0下nRF24L01的驱动设计
引言 nRF24L01是一款工作在2.4~2.5 GHz世界通用ISM频段的单片无线收发器芯片。它在无线数据通讯、无线门禁、遥感勘测、工业传感器和玩具中都有应用。 随着测控技术的发展,nRF24L01与单片机组成的系统进行无线测控的实例已经有很多,如基于nRF24L01的无线温度监测系统、基于nRF24 L01的近距离无线数据传输系统等等。近年来,随着ARM和嵌入式WinCE系统的迅速发展,由于在WinCE系统下nRF24L01和ARM的通信缺乏驱动,致使两者之间不能直接通信,一般的解决方法是借助于第三方单片机的串行口来进行两者的通信。这种方式的不足之处在于,由于要借助于第三方单片机,使得成本增加且通信速度下降。nRF24L0
[单片机]
ARM和<font color='red'>WinCE</font>6.0下nRF24L01的驱动设计
车载GPS定位监控系统中信号的分析和处理设计
   引言   随着汽车在日常生产和生活中起的作用越来越突出,如何实现各类车辆的有效指挥、协调控制和管理已经成为交通运输和安全管理部门面临的一个重要问题。为了满足提高运输效率和安全保障的需要,对车辆定位监控系统的研究也日趋迫切。   车载GPS定位监控系统是GSM全球数字蜂窝移动通信技术和GIS地理信息技术、GPS全球卫星定位技术以及计算机网络技术相融合研制开发出来的软件技术。它是通过安装在车辆上的GPS接收机(即车载机)接收卫星信号,监控中心的通信控制器从GPS接收机输出的信号中提取所需要的位置、速度和时间信息,结合车辆身份等信息形成数据报,然后通过无线信道发往控制中心;控制中心的主站接收子站发送的数据,处理接收信息通过
[嵌入式]
AT91 SAM9261在GPS接收机中的应用
    随着科学的发展,GPS已经不是一个陌生的名词了,GPS在海湾战争中大显身手并给人以深刻的印象。GPS是由美国国防部(U.S.Department of Dcfense,DOD)开发的一套基于卫星的无线导航系统。GPS包括3个基本部分:太空部分、控制部分和用户部分。GPS的工作概念是基于卫星的距离修正。用户通过测量到太空各可视卫星的距离来计算它们的当前位置,卫星的左右相当于精确的已知参考点。空间卫星连续发射包含导航电文的双频无线电信号,用户通过用户设备(即GPS接收机)接收的卫星信号,测定用户至卫星距离或多普勒频移等观测量;根据导航电文,计算所观测时刻的卫星位置和速度,从而0计算出用户的位置和速度。本文以用户部分为重点,说明控
[单片机]
AT91 SAM9261在GPS接收机中的应用
MapPtrToProcess 用法 WINCE驱动分析3
以使用下面的应用程序代码测试这个driver,使用evc编译。 #include windows.h #include Windev.h #include stdio.h #include "objbase.h" #include "initguid.h" #include "foo.h" //char data1 ; int  WinMain(void) {     HANDLE hnd;     COPY_STRUCT cs ;     int i;     //static char data1 ;   auto char data1 ;     auto char
[嵌入式]
基于ARM9WinCEGPS定位信息采集系统
GPS可提供连续、高精度、实时的时间基准、三维位置、三维速度、整周模糊度等数据,具有性能好、精度高的特点,因而广泛应用于GPS载波相位测姿、精确制导、SINS/GPS组合导航、嵌入式车辆导航监控等军事与民用领域。而嵌入式系统以其低功耗、小体积、高稳定性和便携等优势,在GPS的应用中占据重要的位置。本文研究基于ARM920T内核的嵌入式微处理器S3C2440和WindowsCE 5.0(简称WindowsCE)的某型军车GPS定位信息的采集与处理。   1 系统硬/软件平台概述   车辆GPS定位信息采集系统的硬件平台结构如图l所示。   该平台可以分为3大模块:   1)微系统核心模块 由基于ARM920T的32位
[单片机]
基于<font color='red'>ARM9</font>与<font color='red'>WinCE</font>的<font color='red'>GPS定位</font>信息采集系统
基于WinCE的I2C驱动程序设计
引言     随着以计算机技术、通信技术和软件技术为核心的信息技术的迅速发展,嵌入式系统在各行业得到了广泛的应用,极大地推动了行业的渗透性应用。     嵌入式系统是“以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”,由嵌入式硬件和嵌入式软件两部分组成。嵌入式软件包括嵌入式操作系统和嵌入式应用软件。Microsoft的桌面操作系统已经为人们熟悉和使用,嵌入式的操作系统Windows CE.net也日益风行。Windows CE.net是Microsoft推出的功能强大的紧凑、高效、可伸缩的32位嵌入式操作系统,主要面对各种各样的嵌入式系统和产品。该系统
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved