历史上的今天

今天是:2024年09月17日(星期二)

2020年09月17日 | 基于ARM嵌入式开发平台设计的GPS移动设备

发布者:闪耀的星空 来源: elecfans关键字:ARM  嵌入式开发平台  GPS移动设备 手机看文章 扫描二维码
随时随地手机看文章

引言

GPS即全球定位系统,由美国从上世纪70年代开始研制,历时20年,耗资200亿美元,于1994年全面建成,具有在海、陆、空进行全方位实时三维导航与定位的能力。近年来随着GPS的不断改进,硬、软件的不断完善,应用领域正在不断展开,目前已遍及国民经济各种部门,并开始逐步深入人们的日常生活。如何设计一个带有GPS功能的移动设备,实现对GPS卫星数据的接收和解码,已经是现在CPS应用的热点。

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所示。

基于ARM嵌入式开发平台设计的GPS移动设备

1.2.2 GPS接收模块

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

基于ARM嵌入式开发平台设计的GPS移动设备

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语句。


图1 GPS数据处理模块设计方案示意图

基于ARM嵌入式开发平台设计的GPS移动设备

2.3 信号接收与处理

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


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


2.4 人机界面设计

系统采用三星TFT显示屏,分辨率为420×272。人机界面基本功能包括串口选择控件、波特率选择控件、经纬度显示框、地点显示框、“搜星”按钮、“地点查询”按钮、文本框等,具体交互界面设计如图2所示。串口和波特率两个控件为串口选择和波特率的选择,其中串口选择控件提供串口l和串口2进行选择;波特率控件提供有三种设置,分别为4800、9600、19200。“搜星”按钮为打开对应串口,开始从GPS接收模块接收数据。“地点查询”按钮用来显示当地的实际地点名,当搜到星后,按这个按钮,通过查询经纬度数据库,就可以查到对应地名。最下面的文本框显示原始的数据流。


3 操作系统移植

WinCE 5.0操作系统的移植主要是基于硬件平台进行BSP开发。BSP是基于WinCE 5.0平台系统的主要部分,它主要由一些源文件和二进制文件组成,又称主板支持软件包,它是一个主要由包含启动程序(bootloader)、OEM适配层程序(OAL)相关硬件设备的驱动程序的软件包,另外还可以把上层的应用也放到BSP中。在BSP内部,通过OAL链接到系统核心,而驱动程序和系统配置文件是与OAL层相互关联来完成驱动设备和配置系统的功能。在BSP外部,我们可以看到一个建立在硬件平台上的主板支持包。在开发过程中可以利用开发板运营商提供的BSP包进行操作系统的定制,定制完成后固化到Nandflash中。


4 测试

因为开发板的串口2直接与GPS接收模块的串口相连,所以串口设置选择串口2。波特率应与GPS接收模块匹配,设置为4800。GPS模块为上电即启动,并且不能关闭,所以点击“搜星”按钮即可接收数据。启动“搜星”按钮后1min左右,就能显示正确的经纬度。点击“地点查询”按钮,能正确显示地点信息。最下面的文本框可以显示原始的数据流。测试时实拍的照片如图2所示。

基于ARM嵌入式开发平台设计的GPS移动设备

5 总结

文章以VS2005为软件平台,利用基于ARM处理器的WinCE 5.0嵌入式开发平台和GPS接收模块,通过合理使用串口通信,实现了GPS数据信号的接收与解码,并利用触摸屏进行显示,已基本具备GPS移动设备的雏形。

关键字:ARM  嵌入式开发平台  GPS移动设备 引用地址:基于ARM嵌入式开发平台设计的GPS移动设备

上一篇:基于ARM与DSP的嵌入式运动控制器设计详解
下一篇:基于ARM9与linux的嵌入式门禁监控系统设计与分析

推荐阅读

根据相关数据统计,广东2018年上半年工业机器人产量达13621台(套),同比增长54.9%,占全国产量22.67%。而近期,广东几大事件更加有大力推动机器人的佐证。9月8日,佛山市顺德区政府宣布与碧桂园集团合力打造机器人全产业链高地,计划5年内投入至少800亿元、引进1万名机器人专家及研究人员。而就在两日前,东莞松山湖国际机器人产业项目也正式开建,...
9月17日,海尚集团召开“矢量摆线减速机和智能机器人共享控制系统新闻发布会”。海尚矢量摆线减速机堪称全球高精密摆线减速机中的经典之作,减速机史上开创性采用双摆线差动变速方式输出,工作噪音低至60分贝,寿命延长至8万小时;以滚珠传动代替传统齿轮传动,简化复杂的制造工艺,减少其零部件的数量;让减速机的制造变的更简单、工艺链更短、成本更低、...
苹果在今天发布了新款iPad Air,对于这款产品,魅族前高级副总裁、现Angry Miao创始人李楠分享了他的看法。李楠称新款iPad Air仍然有机会成为一个革命性的产品,不是因为升级了A14处理器和支持WIFI6网络,同时砍掉了高刷新屏幕和没啥卵用的摄像头,而是这款产品有一个可以拯救它的人,这个人就是拼多多百亿补贴项目组。李楠说了这么多,言外之意就是新...
大家好,致远电子站在完全为用户着想的角度,在ZDS2022示波器中为您提供了信号波形、FFT分析与标配的众多协议分析结果的CSV数据文件导出功能。前不久,致远电子示波器用户微信群中的一位刘工跟我们交流说,他在工作中需要经常用到参数测量功能,并且要做测试报告。因为ZDS2022示波器中每一个测试项结果中都有当前值,最大值,最小值,平均值,均方根值,测...

史海拾趣

问答坊 | AI 解惑

[下载]国产EDA软件 青越锋 下载地址分享

青越锋,是一款国产的功能强大的PCB设计软件,整个软件由四部分组成:原理图编辑器(Schdoc),原理图库(Schlib),PCB编辑器(Pcbdoc),PCB元件封装库(PCblib)。 1、原理图编辑器采用windows风格的操作界面,具有多维输入的设计环境,支持 ...…

查看全部问答∨

关于单片机上网是否有应用价值

很早的时候就有用单片机实现WEB的功能,单片机上网,这个东西有些什么样的应用,市场前景怎么样,大家有什么看法? 目前嵌入式的应用很广泛,且功能越来越来强大,成本也在降低,在ARM上实现上网web等网络功能,感觉还是有搞头的。 至于单片机 ...…

查看全部问答∨

evc创建的工程在WINCE5.O系统跑不起来?

我用EVC创建的工程,编译成X86(evc自带的SDK和WINCE5 SDK都试过) Realse 可执行文件放到 装有 wince5系统的开发板上运行,提示不是有效的WINCE程序~这是为什么呢?…

查看全部问答∨

PLC和触摸屏在继电器测试的应用(1)

PLC和触摸屏在继电器测试的应用(1) 转载:http://www.semiapps.com.cn/content.php?content_id=90919234337251124&node_id=174  1引言   铁路安全继电器是铁路信号控制系统中的重要执行元件之一,必须在出厂时和使用过程 ...…

查看全部问答∨

LPC1114 I2C从发送

自己调LPC1114 已经调出 主发送,主接受,从接收。现在从发生遇到一个难以解决的问题,拿出来和大家接着讨论一下。 先上代码,如下: case 0xA8:     /* An own SLA_R has been received. */ case 0xB0: &nbs ...…

查看全部问答∨

中断设置问题

今天在程序中添加了IO口下降沿中断,本来以为很easy的事情,发现缺出现了问题,设置为下降沿时,下降沿和上升沿都会触发中断,改为上升沿触发中断,也是两个边沿信号都会触发中断,大家有没有遇见过这种问题,讨论一下啦,…

查看全部问答∨

msp430f5529

有如下一行语句,是F4XX系列的例程:FLL_CTL0=XCAP18PF;调试的时候显示未定义 请问这句话在F5529中应该如何对应的去写…

查看全部问答∨

北斗系统功放解决方案

北斗导航功放解决方案INNOTION YPM1536 北斗导航系统专用 功放芯片解决方案 本方案是英诺迅科技专为北斗卫星导航系统开发的输出功率大于 5W 的芯片解决 方案, 其采用了英诺迅科技具有自主知识产权的高线性宽带功率放大器芯片 YP2233W, 该芯片基于 ...…

查看全部问答∨

写给大家看的设计书

      严格地说,这不是一本计算机图书,它适用于各行各业与文字打交道的人,你会从中充分领略到设计之美。复杂的设计原理在这里被浓缩为4个词:亲密性、对齐、重复和对比。尽管作者已经强调,本书并不能取代设计专业4年的正规 ...…

查看全部问答∨

请大家帮助解释一个电路

电容C1 是怎么起到滤波作用的?先谢谢大家了 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved