前言
目前,GPS定位信息传输管理系统已广泛应用在生产生活的各个领域,警车、救护车、运钞车、长途运输车上都可以看到它的踪影。这些定位信息传输系统大多是基于手机短消息业务的。但这种形式存在着很多不足,首先它通信费用较高,通常每条短消息承载的坐标信息也不会太多;再者通过手机短消息发送延时不确定,这会导致定位跟踪目标的丢失;另外一般短信息服务器端必须向电信公司申请专门的业务服务,才能利用自己的服务器进行短消息的接受和处理。电信的此项业务价格不菲,一般单位负担不起。
利用GPRS业务可以较为圆满的解决上述问题。首先GPRS系统费用较低。GPRS建立链路以后,相当于专线直接接入因特网,利用TCP/IP协议,数据可靠而且稳定。而且信息管理中心的服务器只需要是普通的接入因特网的主机,大大节省了服务器端的开销。
本文讨论的就是就是利用GPRS业务传送GPS定位信息的实例模型。当然,GPS定位信息只是整个信息传输管理系统的一个应用,通过更换不同的数据源模块可实现不同的信息传输,从而构建不同的信息传输管理系统,如远程抄表系统、水文数据采集系统等等。
图1 移动终端硬件组成框图
系统构成
整个信息传输管理系统由移动终端、GSM网络、因特网、信息管理中心服务器四部分组成。
移动终端将GPS数据组成GPRS数据分组,通过GPRS网络和因特网,上传到信息管理中心服务器。服务器应当具备至少一个IP地址,并且拥有电子地图。
信息管理中心也可以通过因特网和GPRS网络向移动终端发出各种指令。
移动终端硬件组成
移动终端的硬件部分主要有GPRS手机模块、GPS模块、MCU及电源四部分,连接关系如下图1所示。其中的GPRS模块为西门子的MC35,这是一个完整功能的手机模块,通过串口可以实现对此模块的控制和数据传输,包括短信、WAP、GPRS、CSD等。另外加上模拟部分电路,可实现GSM话音通信功能。对MC35的控制用的是AT命令方式。
GPS模块是EverMore公司的EB-023CV-A/IV-A,它通过外接天线接收GPS信号,计算出所处位置的地理信息,通过串口将此信息传送给MCU。
MCU采用ATMEL公司的ATMEGA128八位控制处理器,选择此MCU是基于诸多考虑的。首先是功能强大,几乎在单片中包容了所有常用的功能。其次,价格相对便宜。再者开发容易,开发装置便宜,而且支持C语言源程序调试。
在此移动终端中,我们采用了如下的一些必需的功能。
首先是它的两个硬件串口,这两个串口的波特率产生是独立的,而且不占用芯片的定时器,使用起来相当灵活。这两个串口分别对GPS模块和GPRS模块通信,对GPS模块用4800bps或9600bps单收,对GPRS模块用19200bps收发。GPS模块把位置信息以固定的格式从串口发出,CPU接收GPS模块送来的数据,解析出其中有用的数据进行封装,然后以规定的格式通过第二个串***给GPRS模块,将数据送上因特网。
其次,4K字节的EEPROM可用于存放一些可设置的参数如移动终端的识别号或IP地址、信息管理中心服务器的IP地址等。
再次,4K字节的SRAM相对其它的8位机来讲是相当大了,可以满足做组帧、数据缓冲的要求。
64K字的FLASH可以满足较大程序量的要求。
64K字 的FLASH和4KRAM的组合可以完成对信息数据的加解密工作,可提供某些特定场合使用。
我们引出了某些I/O口,通过光电耦合器隔离后引至其它监测点,可以扩展相应的功能。
另外,我们留出了总线扩展口,可扩展64K字节的SRAM,一方面可以用于嵌入带PPP协议栈的实时操作系统,另一方面可以用于使用ATMEGA128的在线自我编程功能来远程刷新程序。
由于用于移动设备,需要低功耗器件,所以我们实际采用的是ATMEGA128L,即该芯片的低压、低功耗版本,工作电压为2.7V~5V。 由于GPRS模块和GPS模块均使用3.3V供电,所以可以减少电源种类,简化电源设计。设计时考虑该移动终端主要作为车载应用,所以实际电路中设计了 从点烟器取电的电源电路。考虑到GPRS模块的瞬时工作电流(发射时)较大,可达2A,工作电压较低,点烟器输出电压可能为12V或24V,压差过大。如果采用线性降压器件效率太低,而且发热剧烈,工作不安全,所以采用了开关电源变换芯片LM2596。该芯片电路简单,效率较高。移动终端利用Atmega128芯片控制实现,不用另行扩展串口、ROM以及RAM。当然,此硬件结构并不仅仅局限在定位功能上,对于很多数据采集应用也可以满足要求,只需改变程序代码。正是由于ATMEGA128的功能强大,使得硬件的组成和结构都变得非常简单。
图2 PPP帧格式
软件控制流程
由于采用了ATMEGA128作控制器,使得硬件的工作相对简单和通用,所以该系统实现的主要工作集中在软件的实现上。
下面就主要的软件控制流程做一介绍。
首先是数据源,GPS模块不断发送固定格式的串口数据,CPU利用一串口与之相连。一般单片机对串口数据的接受处理方式有两种:轮寻和中断。这里因为数据量很大,而且除了接收数据外其他的工作量并不很大,可以采用轮寻的方式。我们最终的目的是要把位置信息发送到因特网上,在此之前,最前言目前,GPS定位信息传输管理系统已广泛应用在生产生活的各个领域,警车、救护车、运钞车、长途运输车上都可以看到它的踪影。这些定位信息传输系统大多是基于手机短消息业务的。但这种形式存在着很多不足,首先它通信费用较高,通常每条短消息承载的坐标信息也不会太多;再者通过手机短消息发送延时不确定,这会导致定位跟踪目标的丢失;另外一般短信息服务器端必须向电信公司申请专门的业务服务,才能利用自己的服务器进行短消息的接受和处理。电信的此项业务价格不菲,一般单位负担不起。
利用GPRS业务可以较为圆满的解决上述问题。首先GPRS系统费用较低。GPRS建立链路以后,相当于专线直接接入因特网,利用TCP/IP协议,数据可靠而且稳定。而且信息管理中心的服务器只需要是普通的接入因特网的主机,大大节省了服务器端的开销。
本文讨论的就是就是利用GPRS业务传送GPS定位信息的实例模型。当然,GPS定位信息只是整个信息传输管理系统的一个应用,通过更换不同的数据源模块可实现不同的信息传输,从而构建不同的信息传输管理系统,如远程抄表系统、水文数据采集系统等等。
图3 软件控制流程图
系统构成
整个信息传输管理系统由移动终端、GSM网络、因特网、信息管理中心服务器四部分组成。
移动终端将GPS数据组成GPRS数据分组,通过GPRS网络和因特网,上传到信息管理中心服务器。服务器应当具备至少一个IP地址,并且拥有电子地图。
信息管理中心也可以通过因特网和GPRS网络向移动终端发出各种指令。
移动终端硬件组成
移动终端的硬件部分主要有GPRS手机模块、GPS模块、MCU及电源四部分,连接关系如下图1所示。其中的GPRS模块为西门子的MC35,这是一个完整功能的手机模块,通过串口可以实现对此模块的控制和数据传输,包括短信、WAP、GPRS、CSD等。另外加上模拟部分电路,可实现GSM话音通信功能。对MC35的控制用的是AT命令方式。
GPS模块是EverMore公司的EB-023CV-A/IV-A,它通过外接天线接收GPS信号,计算出所处位置的地理信息,通过串口将此信息传送给MCU。
MCU采用ATMEL公司的ATMEGA128八位控制处理器,选择此MCU是基于诸多考虑的。首先是功能强大,几乎在单片中包容了所有常用 的功能。其次,价格相对便宜。再者开发容易,开发装置便宜,而且支持C语言源程序调试。
在此移动终端中,我们采用了如下的一些必需的功能。
首先是它的两个硬件串口,这两个串口的波特率产生是独立的,而且不占用芯片的定时器,使用起来相当灵活。这两个串口分别对GPS模块和GPRS模块通信,对GPS模块用4800bps或9600bps单收,对GPRS模块用19200bps收发。GPS模块把位置信息以固定的格式从串口发出,CPU接收GPS模块送来的数据,解析出其中有用的数据进行封装,然后以规定的格式通过第二个串***给GPRS模块,将数据送上因特网。
其次,4K字节的EEPROM可用于存放一些可设置的参数如移动终端的识别号或IP地址、信息管理中心服务器的IP地址等。
再次,4K字节的SRAM相对其它的8位机来讲是相当大了,可以满足做组帧、数据缓冲的要求。
64K字的FLASH可以满足较大程序量的要求。
64K字 的FLASH和4KRAM的组合可以完成对信息数据的加解密工作,可提供某些特定场合使用。
我们引出了某些I/O口,通过光电耦合器隔离后引至其它监测点,可以扩展相应的功能。
另外,我们留出了总线扩展口,可扩展64K字节的SRAM,一方面可以用于嵌入带PPP协议栈的实时操作系统,另一方面可以用于使用ATMEGA128的在线自我编程功能来远程刷新程序。
由于用于移动设备,需要低功耗器件,所以我们实际采用的是ATMEGA128L,即该芯片的低压、低功耗版本,工作电压为2.7V~5V。
由于GPRS模块和GPS模块均使用3.3V供电,所以可以减少电源种类,简化电源设计。设计时考虑该移动终端主要作为车载应用,所以实际电路中设计了从点烟器取电的电源电路。考虑到GPRS模块的瞬时工作电流(发射时)较大,可达2A,工作电压较低,点烟器输出电压可能为12V或24V,压差过大。如果采用线性降压器件效率太低,而且发热剧烈,工作不安全,所以采用了开关电源变换芯片LM2596。该芯片电路简单,效率较高。移动终端利用Atmega128芯片控制实现,不用另行扩展串口、ROM以及RAM。当然,此硬件结构并不仅仅局限在定位功能上,对于很多数据采集应用也可以满足要求,只需改变程序代码。正是由于ATMEGA128的功能强大,使得硬件的组成和结构都变得非常简单。
软件控制流程
由于采用了ATMEGA128作控制器,使得硬件的工作相对简单和通用,所以该系统实现的主要工作集中在软件的实现上。
下面就主要的软件控制流程做一介绍。
首先是数据源,GPS模块不断发送固定格式的串口数据,CPU利用一串口与之相连。一般单片机对串口数据的接受处理方式有两种:轮寻和中断。这里因为数据量很大,而且除了接收数据外其他的工作量并不很大,可以采用轮寻的方式。我们最终的目的是要把位置信息发送到因特网上,在此之前,最为关键的就是将系统无线接入因特网,这个功能由GPRS提供,但我们必须对它进行初始化,和链路控制。利用GPRS上网,和普通用户通过PC机拨号上网原理相同,都是通过呼叫固定号码的PPP服务器,进行握手认证,以及协议的配置。正常情况下,完成握手以后,PPP链路建立。PPP 帧结构如图3所示。此表未包括为同步而设置的字符和为透明性而设置的字符。传送时由左向右传送下图的内容。
每个帧由一个标记序列开始和结束。所有系统不断检测此标记,它用于对帧进行同步。在两帧之间只需要一个这样的标记,两上相继的标记构成一个空帧,它被无响应抛弃,而不产生FC S错误。地址域是一个字节,也就是“所有站”地址。单独站地址未被指定。“所有站”地址必须能够识别并被接受。不可识别的地址应该被无回应抛弃。控制域是一个字节,“未编号信息”(UI)命令和选举/结果位被设置为零。不可识别的地址应该被无回应抛弃。帧检查序列(FCS)域通常包括两个字节(16位)。先传送它的最低位,它指示的是最高系数项。也使用四个字节的FCS,此域是由地址、控制、协议、信息和填充域中的所有位运算得到的,不包括开始和停止位或用于数据透明性而插入的位,也不包括标记序列和FCS域本身。在同步控制字符映射中标记的字节在接收时存在,但在计算FCS时会被抛弃。与PPP服务器建立链路以后,就可以进行数据的传输了。
链路层之上就是IP层,IP层之上可选的协议主要有面向连接的TCP协议和非面向连接的UDP协议。当业务的数据要求高可靠性时,应该选用TCP协议,但TCP协议实现起来复杂,而且系统负荷较大。UDP协议没有可靠性的保证,但它对网络的负荷较小,比较适合实时数据的传输。本系统对数据的可靠性要求不是特别高,比较适合选择UDP协议。
Atmega128处理器中含有128k字节的可编程flash memory,4k字节的EEPROM,4k字节的SRAM。对于此系统,如果不嵌入RTOS内核,这些资源就足够了。但如果没有RTOS,在写控制程序时就没有协议栈的支持,也就是说,必须自己实现PPP协议、IP协议和UDP协议。如果要嵌入其他的操作系统,就必须扩展SRAM。本文中采用直接实现协议的方式进行描述。图3就是系统的软件控制流程。
如果需要更强大的网络功能支持,可以嵌入RTOS内核,现在有不少系统支持Atmega128,有的甚至是为它量身订做的,像NUT/OS,内嵌了对各种网络协议的支持,当然也包括PPP协议。它甚至专门对Atmega128的各种扩展做了支持,例如SPI接口。此外,NUT/OS包括了一套函数专门用来让Atmega128访问扩展的以太网芯片,大大的缩短了开发周期和开发成本。
结语
随着时代节奏的不断加快,实时信息传送的应用领域越来越广泛,需求量与日俱增。GPRS业务的推出,更加推动了这一方向的迅猛发展,更加预示了它的广阔前景。