新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种GPS移动设备的设计和实现

一种GPS移动设备的设计和实现

作者:时间:2011-07-14来源:网络收藏

  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 数据处理

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

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

  2.3 信号接收与处理

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

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



评论


相关推荐

技术专区

关闭