微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于IP2022芯片可支持GPRS的GPS终端设计

基于IP2022芯片可支持GPRS的GPS终端设计

时间:09-16 来源:互联网 点击:

了数据传输的一些服务。

2.2.3 桥接模块

由于串口是一个慢速连接,主机与串口的通信有时甚至是单字节操作,如果对于每一个这样小的通信都单独通过一个TCP包发送的话,譬如说一个字节的数据,这将产生一些41字节的分组:20字节的IP头,20字节的TCP头以及1字节的数据。如果在高速网络上(例如局域网),这一些小分组通常不会引起麻烦,但是如果在GPRS这样的网络上(平均往返时间高达数百ms),则会增加拥塞出现的可能性,并将会使网络的效率极其低。在通常的TCP/IP实现中,一般采用Nagle算法来解决这个问题。但是在Ubicom的协议栈中没有这个功能,因此,必须自己实现这个算法。考虑到对下层硬件结构的无依赖性,笔者将其放在桥接模块中实现,而不是放在网络驱动模块中实现。在算法实现中,当有串口数据到来时,对于小分组,并不立即就将其发出,而是等待一段时间(200s左右),如果在这段时间中再没有小数据到来,那么将其发出,否则将数据进行累计后发出。当然有些系统要求立即发出,那么也可以通过配置取消这种功能。经这样实现后,效率有了很大的提高,具体的效果可以参考后面的实验数据。

2.2.4 辅助模块

在上面一些模块的介绍中可以看到,其中有一些关键性的数据必须支持用户自己配置,例如串口通信速度、停止位、网络驱动模块中GPRS所要连接的APN、账户、密码、工作模式(是作为服务器运行还是客户端运行)、静态IP还是动态IP等。这一部分数据由配置模块存储在外部存储器里,每次系统启动的时候再由配置模块载入。在辅助模块中还包括一个重要的子模块:远程管理模块,它实现对GPS终端的远程管理,包括远程跟踪和远程更新程序。系统的运行情况通过统计模块进行统计,然后可以通过远程管理模块进行上报。

2.2.5 系统监控模块

对于放在远程的一个无人看管的系统来说,最重要的一点就是容错能力,必须能够在任何错误的情况下自动恢复到正常运行状态,这一部分就是通过系统监控模块实现的。在GPS终端中,经常出现的异常包括有TCP连接中断和网络连接中断,这两种错误是有区别的,解决的方法也不一样。TCP连接中断指的是TCP连接进入异常状态,不能在该连接上进行数据的收发工作。这种错误产生的原因是GPRS网络有时会进入伪死状态,而导致虽然还在网络上,但是数据的收发工作无法进行。通过在每个连接上设置一个收发超时计时器可以发现这种错误。当有数据传输时即复位计数器,如果计数器超时,则表明TCP连接中断,此时应该根据工作模式而采取不同的处理。如果是工作在客户端模式,需要再次与服务器连接,如果工作在服务器模式,则只需要简单的断开连接即可。

对于网络连接中断的情况探测起来比较困难,一般是通过监测长时间没有数据通信来判断。如果一旦发生此类错误,则需要重新进行网络的连接工作。

由于软件难免会有一些未曾发觉的错误,在发生此类错误的时候则由硬件看门电路复位系统,并且在下次软件启动时将此类错误发生过的信息远程传送到服务器。

3 服务器端软件的设计

GPS服务器程序可以采用两种方式与远程的GPS终端建立连接,一种是采用TCP方式,另外一种是采用串口通信方式。在采用串口通信方式时,需要编制一个虚拟串口驱动程序,将一个TCP连接模拟成为一个串口,这样服务器就可以像操纵M12一样对远程的GPS终端进行操作了。

GPS服务器和远程GPS终端之间的通信协议采用了原始的M12通信命令,核心模块在GPS服务器和M12之间进行了数据透明转发的作用。M12支持有两种通信数据格式: 一是Motorola二进制数据指令格式,在采用Motorola二进制格式时,通信速率可以保证在9600bps;另一种是NMEA-0183格式,其通信速率只有4800bps,同时在初始化GPS时还需要加入由Motorola二进制转化为NMEA-0183的指令。因此建议使用Motorola二进制数据格式。

在此设计当中,关键的环节在于两个方面,一是连接的建立,二是M12的初始化。GPS终端返回的定位信息数据格式如下:

@@Eamdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsd imsdimsdimsdimsdimsdimsdimsdsC。

时间信息:m月,d日,yy年, h小时,m分,s秒。

位置信息:aaaa纬度,oooo经度,hhhh椭球高度。

在所有信息终止的前的一个字节为校验和,是所有信息字节的“异或”。

收到数据后,只要对数据进行解码,就可以获得定位信息以及时间。

4 服务器端的考虑

在GPRS联网中,必须注意的一个概念是APN。在登陆GPRS时,采用的APN不同,GPS终端和服务器之间所能采用的方式也有所不同。

如果采用公网APN(cmnet),那么服务器端只要有一固定公网IP即可,此时Radius服务

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top