新闻中心新闻中心
基于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移动设备的雏形。