当前位置:无忧公文网 >范文大全 > 征文 > 基于GPRS的远程数据采集传输系统

基于GPRS的远程数据采集传输系统

时间:2022-03-16 08:20:19 浏览次数:

摘 要:针对各种实时数据采集传输的需要,设计和实现基于通用分组无线业务(General Packet Radio Service, GPRS)网络的远程数据采集传输系统. 该系统使用RS-232接口读取外部数据,如果GPRS网络或GSM(Global System for Mobile Communication)网络可用,则以GPRS通信或短信方式将数据发送到数据中心,否则将数据存储在外部存储器中. 介绍该系统软件设计和实现中的关键技术,包括网络协议栈的实现和网络地址转换(Net Address Translation, NAT)设备的穿透. 该系统已经应用到某车载监控终端系统和远程抄表系统中,且运行稳定高效.

关键词:实时数据采集; 通用分组无线业务; μC/OS; 点到点协议; 网络地址转换

中图分类号:TN919.3 文献标志码:A

Remote acquired data transmission system based on GPRS

TAN Guotao, WANG Jianying

(Dept. of Computer Sci., Univ. of Sci. & Tech. of China, Hefei 230027, China)

Abstract: To satisfy the requirement of real-time remote data acquisition, the remote acquired data transmission system based on GPRS is designed and implemented which receives data through a RS-232 port. If the GPRS network or GSM network is available, the data are sent to data center, or otherwise they are stored in the storage. The key techniques in design and implementation of the software are introduced which include the implementation of the network protocol stack and Net Address Translation (NAT) device traversal. The system is applied in supervision system by vehicle terminal and remote metering system, and achieves good stability and high efficiency.

Key words: real-time data acquisition; general packet radio service; μC/OS; point to point protocol; net address translation

0 引 言

在环境监测、电力系统监测、野外考察及日常生活中,常需要对各种数据进行实时采集.很多时候这些数据采集工作以人工方式进行,存在工作量大、易于出错、难以管理和效率低下等缺点,在某些领域里甚至存在很大危险.采用嵌入式移动远程数据采集传输系统可以很好地解决上述问题.

1 数据传输方案选择

1.1 传统远程数据采集系统的数据传输方案及其弊端传统远程数据采集系统的数据传输方案主要有3种:(1) 采用微处理器驱动网卡,通过以太网连接Internet传输数据;(2) 通过微处理器驱动调制解调器,采用拨号上网的方式进行数据传输;(3) 借助于GSM(Global System for Mobile Communication)网络,以短信息通信方式进行数据传输.

这些方案都存在一定弊端,限制系统的应用场所,降低系统工作效率.前两种方案的弊端在于对有线网络的依赖,现实中很多数据采集地点都不具备或不方便使用有线网络.第3种方案的弊端在于GSM网络的短消息传输采用信道命令时隙传送数据,无专用数据通道,导致传输数据大小受限,数据传输速率低下,成本高、实时性和可靠性较差.

1.2 基于GPRS的数据传输方案

通用分组无线业务(General Packet Radio Service,GPRS)是中国移动推出的在现有GSM系统上发展起来的一种新型移动通信业务.它采用基于分组的方式,让数据包尽可能地到达目的地.通过应用高速分组数据技术,大大提高传输信道的利用率,具有数据传输速率高、永远在线、按流量计费等优点.理论上GPRS网络传输数据的上限为171 kb/s,我国正处于GPRS技术应用的蓬勃发展阶段,许多地区的GPRS网络已经可以提供40~70 kb/s的传输速率,随着现有网络的完善和技术的提升,GPRS数据传输速率和服务质量将稳步提升.

GPRS网络可以同Internet互联互通,位于GPRS网内的用户可以利用点到点协议(Point to Point Protocol,PPP)建立自身同GPRS网络服务提供商之间的连接,并获取自身的IP地址,进而利用TCP/IP协议与Internet内的主机进行数据传输.[1]

1.3 本系统的数据传输方案

本文设计的数据采集系统采用GPRS网络通信与GSM短信息通信相结合的方式进行数据传输,见图1.系统优先采用GPRS网络传送数据,当GPRS网络状态不佳时动态过渡到GSM短信息通信模式.这使得系统具有很好的适用性,保证数据传输的速率和实时性,可有效克服传统数据传输方式的弊端.

2 系统硬件和软件的设计与实现

2.1 系统体系结构

系统的软硬体系结构见图2.

2.2 系统硬件设计和实现

从图2可以看出,在硬件设计和实现上系统主要由4大部分组成,分别是总控模块、采集数据接收模块、数据通信模块和数据存储模块.

总控模块:系统采用LPC 2106单片机作为微处理器并配备相应的外围电路实现对系统的整体控制.LPC 2106是Philips公司生产的1款基于ARM7TDMI—S的嵌入式微处理器,它嵌入128 KB高速Flash存储器和64 KB静态RAM,采用3级流水线技术,取指、译码和执行同时进行,能够并行处理指令,提高CPU运行速度.LPC 2106支持标准32位ARM指令集和16位Thumb指令集,使用户可以在运行速度和存储空间之间作出更合适的选择.[2]

采集数据接收模块:系统利用LPC 2106通过串行口0,以串口通信方式从外部数据采集器读取采集到的数据,并将数据交给总控模块进一步处理.系统可以根据外部数据采集器所使用的串行通信的速率调整串行口0的设置,以实现数据的正常接收.

数据通信模块:系统采用 Q 2403A GPRS模块传输数据.Q 2403A是由WAVECOM 公司生产的1款支持EGSM 900/GSM 1800双频段的GPRS模块,它可以通过SMS,CSD或是GPRS进行数据收发以及处理语音通讯.Q 2403A的控制比较简单,它与LPC 2106之间通过标准串行口1进行通信,可以由LPC 2106直接通过异步通用串行口1发送AT指令进行控制.

数据存储模块:为了使系统拥有更好的适应性,使得当网络通信繁忙、网络不可用或者后台数据中心需要延时接收采集到的数据时,系统可以对已采集到的数据进行暂时存储,系统采用AT45DB161芯片对数据进行存储.AT45DB161是ATMEL公司生产的快速Flash存储器,它与LPC 2106 之间通过串行外围设备(Serial Peripheral Interface,SPI)接口相连接,系统可以利用LPC 2106自带的SPI控制寄存器对其进行操作.

2.3 系统软件设计与实现

系统的软件部分采用汇编语言和C语言联合实现,主要包括驱动程序的编写、嵌入式实时操作系统的移植、系统主控程序的设计和实现、网络通信协议栈的实现以及上层应用程序的设计和实现.系统采用的集成开发环境为ADS,嵌入式实时操作系统选用μC/OS-Ⅱ2.52, μC/OS-Ⅱ是源码公开易于移植的嵌入式实时操作系统内核,可以对其进行裁减和扩充以满足系统的需要.[2]为了实现系统各个任务能够协调运行,设计并实现系统主控程序.为了同位于Internet中的数据中心进行数据通信,同时设计并实现小型的网络协议栈,下面主要介绍系统主控程序和网络协议栈的设计与实现,以及系统对NAT设备的穿透.

2.3.1 系统主控程序

在操作系统和驱动程序的基础上,设计并实现系统主控程序单元,它支撑着整个系统的软件架构,具有以下几个主要作用.

(1)当用户指定系统进行硬件自检时,执行硬件自检功能.这有助于在系统出故障时帮助用户快速定位出故障的模块.

(2)在系统初启时初始化硬件环境,从操作系统处获取对系统的控制权;进而启动系统看门狗例程,并定期执行喂狗操作以防程序陷入不可控制状态.

(3)监控GPRS网络状况并根据网络状况启动或停止网络协议栈,实现系统在GPRS网络通信模式与短信息通信模式之间的平滑切换.如果GPRS网络和GSM网络均不可用则启用数据的存储备份功能,将读取到的采样数据保存到外部存储器,等到网络可用时启动发送任务将暂存的数据发送到数据中心.

(4)实现系统的消息循环.系统中有许多任务并发执行,任务之间采用消息传递机制进行通信.各个任务消息队列的分配、管理和回收由核心控制单元完成.

(5)等待外部设备的连接和卸载以启动和停止相应的数据读取任务.

(6)当系统结束运行时,终止到数据中心的网络连接,拆除PPP链路.

2.3.2 网络通信协议栈

为了与Internet 中的后台数据中心通信,数据采集终端系统必须拥有网络协议栈处理网络数据.μC/OS-Ⅱ只是嵌入式实时操作系统的内核,其内部并没有实现网络协议栈,因此系统需要自行实现网络协议栈.考虑到系统与数据中心间的通信具有突发性,通信内容主要是由数据中心向数据采集终端发送的控制指令和数据采集终端向控制中心发送的采集后数据,系统采用UDP作为传输层协议.

系统实现的网络协议栈包括:数据链路层协议PPP,网络层协议IP及其辅助协议控制消息协议(Internet Control Message Protocol,ICMP),传输层协议用户数据报协议(User Datagram Protocol,UDP),以及用于系统与数据中心进行通信的应用层协议.由于在本系统中PPP协议的实现是系统网络协议栈得以正常运行的基础,故下面主要介绍PPP协议在系统中的实现.

PPP是为在同等单元之间传输数据包这样的简单链路而设计的链路层协议,在系统中的作用是从服务提供商获取系统的IP地址,将上层传下来的数据进行数据链路层的封装,将下层传来的数据进行解包并向网络层传递.PPP提供一整套方案解决链路建立、维护、拆除、上层协议协商以及认证等问题.

PPP的数据格式[3]见图3.

PPP 数据帧的帧边界字段以0x7E标志,用来判断PPP数据帧的开始和结束;地址字段的值为0xFF表示广播地址;控制字段的值为0x03;协议字段代表数据字段中所携带的数据隶属于哪个协议;数据字段包含格式为协议字段所指定的数据,PPP协议包括链路控制协议(Link Control Protocol,LCP)、网络控制协议(Network Control Protocol,NCP)和认证协议;其中认证协议包括口令验证协议(Password Authentication Protocol,PAP)和挑战握手验证协议(Challenge-Handshake Authentication Protocol,CHAP);校验和字段为整个帧的循环冗余校验(CRC)校验码, 用来检测传输中可能出现的数据错误.[3]

系统通过建立和维护相应优先状态机实现PPP协商,建立链路、认证、网络层数据通信和终止连接等操作.具体流程如下:

(1)首先利用AT指令对Q 2403A GPRS模块进行GPRS连接设置,探测GPRS网络状态,接入中国移动通信公司的GPRS网络;

(2)与GPRS网络服务提供端进行LCP协商,协商内容包括特殊字符转义方法、协议和地址字段压缩、在认证阶段所使用的认证协议和数据的最大传输单元等;

(3)在成功与服务端进行LCP协商之后,系统按照在LCP协商中约定的认证协议进行自身认证,认证成功后系统进入网络传输状态;

(4)利用NCP协议向服务端请求自身的IP地址,以用来同Internet中的主机进行通讯;

(5)在获取到IP地址之后,启动保活连接,该连接周期地向GPRS服务端发送echo报文,以保证系统对通信信道的占有.

至此,PPP连接已成功建立,在此基础上系统实现ICMP协议、IP协议、UDP协议和应用层协议,以实现同数据中心的交互.由于UDP协议和IP协议都是不可靠的网络协议,有可能丢失数据包而影响系统性能,所以系统的高层应用程序采取等待应答和超时重发机制以确保数据在网络上的可靠传输.

2.3.3 对NAT设备的穿透

系统在PPP链路建立阶段通过NCP协议从服务提供商端取得的IP地址为私有地址.系统如果与Internet中的主机进行通信需要经过服务端进行网络地址转换(Net Address Translate,NAT).NAT是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术,它屏蔽内部网络,所有内部网计算机对于公共网络而言不可见,这使得位于Internet中的数据中心无法主动发起对数据采集系统的网络连接.

为了实现Internet中的数据中心可以向数据采集系统发送控制指令,系统将对NAT进行穿透.具体做法是在系统网络协议栈启动后,利用UDP协议向数据中心发送“用户上线”报文,此后根据需要系统将定期向数据中心发送“保活”报文.这样数据中心就可以利用收到的数据报文取得系统被转换后的IP地址和通信端口向数据采集系统发送控制指令.

3 结 论

实验证明,本系统运行稳定、高效,能够较好地满足现实生活中很多远程数据采集应用的需求.目前本系统已被成功应用到作者自行研发的车载监控终端系统和智能远程三表(水、电、煤)抄表系统中.在实际应用中本系统能够在45 s内完成PPP链路的建立以及NAT的穿透,在网络传输过程中能够实现在GPRS网络通信和短信息通信之间的平滑过渡,数据传输丢包率小于3%.

参考文献:

[1] 文志成. 通用分组无线业务——GPRS [M]. 北京: 电子工业出版社. 2004.

[2] 周立功. ARM微控制器基础与实战[M]. 北京: 北京航空航天大学出版社. 2004.

[3] SIMPSONW. RFC 1661 - the Point-to-Point Protocol (PPP) [DB/OL]. [1994-07]. http://www.faqs.org/rfcs/rfc1661.html

(编辑 廖粤新)

推荐访问: 数据采集 传输 系统 GPRS