基于ARM和GPRS网络的水情信息系统设计
2008-07-24
作者:李 可,刘 跃,周新志
摘 要:提出了一种基于ARM和GPRS网络的水情信息系统的设计方案。介绍了终端数据采集设备" title="数据采集设备">数据采集设备的硬件选型、通信协议" title="通信协议">通信协议设计、主控中心软件设计。系统利用现有GPRS网络发挥了网络覆盖率高、传输特性好等优势,因而特别适用于工作环境恶劣、地理位置偏僻、无人值守的场所。
关键词:ARM GPRS 通信协议 水情信息系统
长期以来,相对落后的水情信息采集、传输、管理手段,大大降低了水情信息的时效性,因此强化水情信息采集和传输工作,提高水情测报质量成为当务之急。同时由于水情信息涉及内容较多,大部分监测数据需要实时发送到管理中心的服务器进行处理,而数据采集点一般分散于环境恶劣的野外,因此对信息采集、传输、管理等方法提出了较高的要求。
本文设计开发的基于三星公司S3C2410 ARM9芯片和桑荣公司Saro3130P GPRS DTU的水情信息系统,通过GPRS网络以短消息" title="短消息">短消息形式完成远程数据传输,具有不需拨号、价格相对较低、传输可靠等特点,特别适用于工作环境恶劣、地理位置偏僻、无人值守的场所。
1 系统结构及其工作原理
系统总体结构如图1所示,主要包括主控中心、远程终端、连接主控中心和远程终端的GPRS网络三部分。
(1)主控中心:通过串口与一个GPRS Modem设备相连接,可读取Modem设备接收到的短消息,从而获得远端传来的测量数据,完成水情数据的处理、保存等功能,也可通过Modem设备发送控制指令到远程终端。报警时,可将短消息转发至远端工作人员的手机。
(2)远程终端:主要是基于S3C2410 ARM9芯片的数据采集设备,并且增加了支持短消息、数据通信等业务的GPRS 通信模块" title="通信模块">通信模块。终端数据采集设备获取水情数据后可通过GPRS Modem发送给主控中心的Modem,同时也可接收主控中心命令进行相应的操作。
(3)GPRS网络(即数据传输部分):终端数据采集设备与主控中心实现通信,可通过各自的GPRS Modem经过GPRS 无线网络传递。
系统工作方式主要有:
(1)监控方式(招测方式):由主控中心下发指令,终端响应。
(2)监视方式(自报方式):终端定时、定条件(如变幅)向主控中心上报。
(3)监控/监视方式(招测/自报方式):综合招测和自报的方式。
(4)休眠方式:终端处于不工作状态。
2 系统设计
2.1 终端数据采集设备的设计
终端数据采集设备的设计通常有模块化方式和集成方式两种。虽然传统模块化方式的扩展性、通用性极强,但板卡数目过多使功耗加大、成本增加,同时后期维护工作量也大。集成方式功耗、电路板成本相对模块化方式低,便于后期维护,且嵌入式系统本身功能专一,高度集成,但此方式缺乏通用性,需要根据不同的应用设计不同的系统,每一次扩展需要全新开发。
为了兼顾两者的优点,终端数据采集设备采用“模块+集成”的方式,即:采用“核心板" title="核心板">核心板+子板”的平台化设计思想。“核心板” 是基于S3C2410 ARM9芯片的必备器件,以总线方式与“子板”连接;“子板”的设计尽量以相对对立的功能进行划分,以实现模块化,具备较强的扩展性,包括输入板、输出板、电源模块、通信模块四个部分。其硬件结构如图2所示。
核心板使用插座安装在接口板上,有三个电源引脚(3.3V/2.0V/1.8V)和144个CPU引脚,看门狗采用2410内部Watchdog;NAND Flash(参考K9F1208UOM)存储器容量为64MB,可存储1年以上的历史数据;NOR Flash(参考SST39VF160)存储器容量为2MB,可存放启动程序;接口包含JTAG、I/O、ADDRESS、RS-232、RS-485、USB等。
输入板外接各种型号的传感器,以获得各个采集点水情数据;输出板外接各种执行单元的继电器开关,以进行相应的控制操作;电源模块设计通过数码管、LED灯给出必要的信号提示和电路工作状态提示,同时注意了低功耗的设计,使电路的损耗尽量小,系统工作方式尽量设计为休眠方式;通信模块采用厦门桑荣公司的Saro3130P GPRS DTU,该模块内嵌高性能工业级Siemens MC35I通信模块,采用低功耗高性能的嵌入式处理器,可高速处理协议和大量数据。带有标准的RS-232/RS-422接口,串行数据速率为110~57 600b/s。在使用前需要安装SIM卡,并开通相应的GPRS服务业务。
2.2 通信协议设计
由于主控中心与远端设备之间进行的数据通信采取短消息方式,因此,短消息中的每个数据信息代表的具体意义以及短消息中数据的排列规则都需要通信的双方达成一致。要实现主控中心与远程终端间的数据交互,必须建立高效的用户协议。
2.2.1 基本规则
帧格式需要考虑通信可靠实用、编程简单、易于扩展三个基本规则。
编程简单:与二进制码帧数据表示方式采用ASCII码相比,本方法更便于数据显示,可减少数据转化,程序实现简便。
通信的可靠性:协议加入了校验、握手,但因大多终端应用于工作环境恶劣、地理位置偏僻、无市电的场所,因此,实际应用中要求低功耗,所以应减少如“握手”等环节(因为如果需要握手,则表示接收方必须向发送方发送应答指令而增加功耗)。但在特殊情况下(如:主控中心发送指令改变终端工作状态)可以使用逻辑握手,其他无需握手情况下,用软件处理加以弥补。
本系统的数据帧可分为发送帧和接收帧两种。在制定该协议过程中,考虑到以后应用的扩展性,即信息交换的准则可应用于中心站与终端、中心站与分中心站、分中心站与终端、终端与终端之间进行通信,所以采用统一的帧结构,且帧长可变。
2.2.2 帧结构
基本帧结构主要包括六个字段,分别是:帧的起始符,用‘$’标识帧的开始;帧的结束符,用‘#’标识帧的结束;模式域,用于区分不同组网模式下是否校验、是否握手;地址域,当组网为总线/节点模式时用以标识主站地址、从站地址;功能域,用于存放通信的指令以及相关数据;校验域,采用CRC校验,该字段可选,当不需要逻辑握手时,该域可不使用。帧格式如表1所示。
因部分站点原来采用总线组网方式,为了与原来方式兼容,模式域同时考虑了无线通信“点对点方式”和有线通信“总线方式”及两种方式共用,且根据不同的组网模式,选择是否校验和握手。如果需要握手,则表示接收方必须向发送方发送应答指令。模式域编码如表2所示。
功能域用于存放通信的指令以及相关数据,包括指令域、消息总数、当前序号、当前日期时间和数据体等字段,其结构如表3所示。
在功能域中,指令域用来标识具体的功能,具体结构如表4所示;消息总数是对于数据体过长需要分包发送而言,此时消息总数标识数据包的总数(最大15个包);当前序号标识当前数据包在整个功能数据包中的序号;当前日期时间用于标识数据包发送的日期和时间;数据体是根据具体指令,装载相关的数据。
2.3 主控中心软件设计
该软件采用Microsoft Visual Studio.NET2005平台设计开发,集数据采集、分析、管理于一体,包括数据采集、资料整编、数据分析、管理四大功能,如图3所示。
(1)数据采集:主要完成主控中心采集终端数据,包括通信设置、采数、报警处理、转发设置。
①通信设置:进行通信设备初始化与检测。
②采数:出现异常进行相应报警处理与转发设置。
(2)资料整编:对水文资料进行整编,自动完成水文报表汇总、处理、打印等功能。
(3)数据分析:提供对水情数据的分析,实现数据手动/自动插值、流量重新计算、水量累计计算、异常数据过滤等。
(4)管理:包括站点管理、数据库管理、用户管理。站点管理包括站点状态显示及站点增加、删除、修改;数据库管理支持多种类型数据库,如ORACLE、SQLSERVER等;用户管理包括用户资料查询、密码设置、权限设置等。
本文设计了一种基于ARM平台和GPRS无线网络的水情信息系统,此系统建立在GPRS网络上,具有不需拨号、传输可靠等特点,特别适用于需频繁传送小流量数据和不宜铺设线路的应用场合,为现有数据采集系统提供了一种便捷的无线数据传输方式。不过在网络繁忙时短消息接收可能存在延迟,将影响系统正常工作,且在不同条件下通信要求也不同,用户在设计时,应充分考虑具体工作情况,从而保证建立稳定可靠的通信。
该系统的创新有两点,一是终端数据采集设备采用”模块+集成”的方式,即采用“核心板+子板”的平台化设计思想;二是通信协议设计依从通信可靠实用、编程简单、易于扩展三个基本规则,并将发送帧与接收帧采用统一帧结构,兼容了总线组网方式,实际运用证明该设计可靠有效。整套系统目前已成功应用在都江堰灌区各站点。
参考文献
[1] 周立功.ARM嵌入式系统软件开发实例[M].北京:北京航空航天大学出版社,2006.
[2] 王承君.自定义串口数据通信协议的分析与设计[J].计算机工程, 2004,30(24).
[3] 张宏林. Visual C++ Visual Basic串并口开发技术工程应用实例导航[M].北京:人民邮电出版社,2006.
[4] 厦门桑荣科技有限公司. 无线数据传输终端Saro3130P GPRS DTU使用手册[Z].2005.