首页 > 嵌入式软件 > WinCE

近年来随着GPS的不断改进,硬、软件的不断完善,应用领域正在不断展开,目前已遍及国民经济各种部门,并开始逐步深入人们的日常生活。如何设计一个带有GPS功能的移动设备,实现对GPS卫星数据的接收和解码,已经是现在CPS应用的热点。

本文引用地址: http://www.21ic.com/embed/software/wince/201803/51082.html

1 开发平台

1.1 软件平台

为适应大多数Windows用户的使用习惯,我们设定移动设备运行环境为嵌入式操作系统Windows CE 5.0(简称WinCE 5.0),开发过程在Windows XP操作系统下进行。开发软件为Visual Studio 2005(简称VS2005),编程语言为C++。VS2005是Windows操作系统下的一套完整的开发工具,用于生成ASP Web应用程序、XML Web services、桌面应用程序和移动应用程序。通过使用这些工具和.NETFramework精简版(.NET Framework的子集),可以在个人数字助理(PDA)、移动电话和其他资源受约束的设备中,创建、生成、调试和部署在.NET Framework精简版上运行的应用程序。

1.2 硬件平台

1.2.1 嵌入式开发板

由于设定移动设备使用的运行环境为WINCE 5.0,过程中需要处理大量的数据,所以对开发板要求较高。目前WinCE 5.0支持的处理器主要有ARM、X86、PowerPC、MIPS等,其中ARM是近年来在嵌入式系统中很有影响力的微处理器架构,在同等处理器主频下,ARM内核的芯片面积最小,功耗最低,价格也最低廉,在性能、技术指标、软件支持工具、内置调试工具和开发资料等方面都有优势。考虑到本系统移动终端的体积、功耗、成本等因素,最后决定选用ARM内核的处理器,开发板为光嵌公司的GEC2440,主要参数如表l所示。

 

1.jpg

1.2.2 GPS接收模块

GPS接收模块负责接收GPS射频信号,将信号下变频和解调,输出标准的串口信号供处理器进行下一步处理。本设计中用到的GPS接收模块为Levave公司的GPS-R36-AT模块,性能参数如表2所示。该接收模块主要包含基带芯片和射频芯片,采用了SIRF III模块,整合片状陶瓷芯片,无需外加天线,接收C/A码卫星信号,输出的信号为NMEA0183协议数据,通过串口与主设备进行通信。

 

2 整体设计

设计主要依照GPS数据信号的流向来进行。GPS数据信号通过串口读入到开发板主程序,然后经过对数据信号进行解码获得当前位置的经纬度信息,再在经纬度数据库中查询获得当前位置的地名,整个过程由触摸屏进行显示,并通过触摸屏完成人机交互。

2.1 串口驱动

Microsoft eMbedded Tools封装了Windows API函数,便于Windows CE应用程序的开发。在Windows CE中,所有的设备都被看成是文件。串口通信可以像访问普通文件那样通过API通信函数来实现,系统的虚拟驱动程序负责执行特定的工作。在Windows CE下串行端口被视为用于打开、关闭、读写串行端口的常规可安装的流设备,是串行设备接口的常规I/O驱动程序调用和与通信相关的具体函数的结合。Windows CE的通信函数和其它大多数Windows的通信函数相似,值得注意的是,Windows CE不支持直接对串行端口的寄存器进行编程。

2.1.1 打开和关闭串口

CreateFile函数用于打开串行口。m_hDSComm=CreateFile(_T("COM2:")),GENER2IC_READ|GENER IC_WR ITE,0,NULL,OPEN_EXISTIN-G,0,NULL)。注意COM2后面要有一个冒号。第三个参数dwShareMode也必须为O,通信端口不能像文件一样被共享。最后一个参数dwFlagsAnd-Attributes必须为0,因为Windows CE只支持非重叠I/O。这个函数的返回值是已打开的串行端口的句柄或者是INVALLD_HANDLE_VALUE。关闭串口可以调用CloseHandle(m_hDSComm)。

2.1.2 串口参数设置

串口设置主要是用DCB构配置端口设置,包括波特率、停止位、数据位长度、校验位、流量控制和超时值等等。首先打开串行端口,用GetCommState函数获得当前打开的串口配置,然后根据需要修改DCB成员,最后用SetCommState函数设置新的串口配置。

2.1.3 设置缓冲区大小和超时

对串口来说,必须设置超时值,否则程序可能陷入到一个循环来等待来自串口的字符。这对采用WindowsCE的设备来说,将大大减少设备电池的使用时间,所以超时值是必须配置的。另外一种解决办法就是采用多线程。通常,配置超时值和配置串口类似。首先用GetCommTi-meouts函数获得当前串口的超时值,然后修改COM2MTIMEOUTS成员,最后用SetCommTimeouts函数设定超时值。

2.1.4 读写串口

利用ReadFile和WriteFile函数读写串口。需要注意的是Windows CE不支持重叠I/O,所以如果在主线程进行大量读写串口操作时,有可能使整个程序陷入缓慢的串口等待中去,因此一般都采用多线程来进行读写串口操作。

2.2 GPS数据处理

GPS数据处理模块的设计方案如图1所示。GPS接收模块通过串口2将定位数据(NMEA0183 Ver2.0)传给开发板,然后应用程序对数据进行处理。在VS2005中,直接利用串口通信方法将定位数据读入,接着进行定位数据的分类,并提取出所需要的信息,同时将这些有用的信息传给主应用程序,主应用程序再将GPS接收模块的控制信息整理成NEMA0183 VER2.0语句。

 

2.3 信号接收与处理

GPS接收到位置信号后,系统将对GPS的定位信息进行分解并提取出有用数据。GPS信号接收和处理的过程是:通过串口2将GPS输出的数据传递给开发板,开发板主程序获得目标当前的位置(经纬度坐标),将接收机获得的GPS数据进行分解,从中得到目标当前的位置和格林威治时间(该时间加上8小时即为我国标准时间),再将当前位置在经纬度数据库查询,获得当前的具体地点名。

经纬度随着开发板的移动是不断变化的,在控件显示时要设定一个TIMER来更新值,本程序设置的是1s,如果在实际应用中移动速度非常快的话可以把TIMER更新值设得更小。

换一批

延伸阅读

[行业资讯] 北斗系统关键器部件全面国产化

北斗系统关键器部件全面国产化

10月15日12时23分,我国在西昌卫星发射中心用长征三号乙运载火箭(及远征一号上面级),以“一箭双星”方式成功发射第三十九、四十颗北斗导航卫星。这两颗卫星属于中圆地球轨道卫星,是我国北斗三号系统第十五、十六颗组网卫星。卫星经过3个多小时的......

关键字:北斗三号 卫星导航 GPS

[真心话] 陈一舟发文忆人人网一路坎坷历程,回不到过去了...

陈一舟发文忆人人网一路坎坷历程,回不到过去了...

近日,一篇名为《13年后重新登陆人人网,你会看到你青春的截止日期》的文章刷屏,引起不少网友的回忆,有人突然发现,原来自己大学毕业后就再也没登录过人人网。2009年8月4日,校内网更名为人人网,成为大学生最活跃......

关键字:陈一舟 人人网

[新鲜事] 库克笑了,特朗普表示不会对中国组装的iPhone加征关税

库克笑了,特朗普表示不会对中国组装的iPhone加征关税

6月19日消息,据VentureBeat报道,随着美国计划对中国产品加征500亿美元关税,中美之间的贸易紧张局势继续升级,苹果担心中国将为其产品设置监管和出货障碍。苹果首席执行官蒂姆·库克(Tim Cook)正在与两国政......

关键字:特朗普 库克 iPhone

[趣科技] 谷歌惊天预言:人类将在2029年开始实现远距离性爱与永生

谷歌惊天预言:人类将在2029年开始实现远距离性爱与永生

作家、发明家、计算机科学家、谷歌首席未来学家雷·库兹韦尔(Ray Kurzweil)在接受《花花公子》杂志专访时表示,在不远的将来,技术将让我们变得更聪明、更健康,人类将在2029年开始实现永生,远距离的性爱将发生。......

关键字:谷歌 人类 永生
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14