目前远程监控主要有以下方式: 短距离长线监控、通过市话网、通过Internet 网络、通过自组网络(CDPD网)及通过数传电台监控。
短距离长线监控和通过自组网络自行建设通信网络, 信号质量得以保证, 但建网初期投资巨大, 运营期间维护耗费较高; 通过市话网和Internet 方式, 通信效果好, 信号量大, 运营费用相对低廉, 但接入网络受到限制, 且网络运行效果取决于网络运营商, 难以达到工业现场覆盖面; 数传电台出现较早、应用广泛, 信号传输实时性好、运行费用低, 但建网初期投资巨大、传输范围有限, 易受空间无线信号干扰。
通用分组无线业务GPRS(General Packet Radio Ser -vice) 是在现有GSM 系统上发展出来的一种新的承载业务, 目的是为GSM 用户提供分组形式的数据业务。
1 系统的总体结构
监控系统由现场数字量和模拟量采集及处理、GPRS 组网通信、监测中心上位机软件三部分构成。其中, 现场数据采集由系统监控终端完成, 终端同时具有分析、记录采集数据供上位机查询, 并在现场出现异常事件时主动上传报警信息的功能;GPRS 通信网络是监测中心与现场监控终端之间数据传输的桥梁, 使现场相关数据及时传送到监测中心计算机; 监测中心软件一方面通过GPRS 网络与现场监控终端进行双向通信, 另一方面为用户提供一个可视化界面。监控系统的结构如图1 所示。
图1 系统总体结构图
由于GPRS 网络的工作方式是以IP 地址寻址为基础的, 所以上位机作为网络的服务器端, 指定固定的IP和端口号, 而终端只需要简单接入Internet ,具备公网动态分配的IP 地址即可。终端接入Internet 具备IP 之后,主动向上位机发送数据进行连接。当连接通道建立以后, 上位机和终端即可以进行双工数据传输。
上位机根据用户要求, 通过GPRS 网络向终端发送数据帧。终端接收到数据帧后, 先分析内容, 再执行相应命令。
系统的具体控制目的是在水厂监控中心与水源地之间利用GPRS 网络实现远程监控, 在水源地处每口井都用继电器模块4060 控制潜水泵的启停, 电量模块采集电压及电流等信号, 控制器MCU 通过GPRS 模块与控制中心进行数据交换。控制系统分为三个单元: 控制中心(一水厂)、水源地及二水厂。
2 系统硬件设计
2.1 控制器选型
控制器MCU 选用PHILIPS公司最新推出的基于32位ARM7TDMI -S 、LQFP48封装的LPC2103 , 其带有32KB 嵌入的高速Flash存储器,128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。在完全掉电模式下, 达到6 μA 的低功耗水平, 与高级51 系列单片机相比,LPC2103 具有极高的性价比优势, 尤其是价格与单片机相差无几。
多个32 位和16 位定时器、一个改良的10 位ADC、所有定时器上输出匹配的PWM 特性、以及具有多达13个边沿或电平触发的外部中断管脚的32 条高速GPIO线,使这些微控制器特别适用于工业控制和医疗系统中。
2.2 EsayJTAG-H仿真器
EasyJTAG-H 仿真器是一款新型的仿真器, 目前, 可以支持LPC2103 微控制器和部分ARM9 芯片,支持ADS1.2集成开发环境, 支持单步、全速及断点等调试功能, 支持下载程序到片内Flash 和特定型号的片外Flash,采用ARM公司提供的标准20 引脚JTAG 仿真调试接口。这款仿真器需要H-JTAG 软件(调试代理)的支持。
H-JTAG 是一款简单易用的调试代理软件, 功能和流行的MULTI-ICE 类似。H-JTAG 包含两个工具软件:
H - JTAG SERVER 和H - FLASHER 。其中,H - JTAGSERVER 实现调试代理的功能,H-FLASHER 则实现了Flash 烧写的功能。
H-JTAG 支持ARM 公司的RDI 接口。通过RDI 接口,H -JTAG 能够支持大多数主流的ARM 调试软件。
JTAG 调试接口如图2 所示, 调试结构如图3 所示。
图2 JTAG 调试接口
图3 H-JTAG 调试结构
调试软件(AXD/RVDS/IAR/KEIL) 通过RDI 接口与H-JTAG SERVER 进行交互。H-JTAG SERVER 通过与并口连接的JTAG 调试板控制目标板。H-JTAG 提供了灵活的JTAG 接口设置, 通过设置H-JTAG 可以支持不同类型的JTAG 调试板, 如WIGGLER、SDT-JTAG。
2.3 GPRS 模块选型
电量模块及继电器模块将采集到的数据通过RS232传送到处理器, 然后由GPRS 模块通过GPRS 网络将数据传送到远端接在互联网上的网路端控制中心。选用MC55 外接SIM 卡, 即可通过串行协议与ARM 处理器通信, 将采集信息以资料包的形式, 先通过PPP 与运营商的Internet 服务器连接,然后把资料包发送到Internet 上。
MC55 包含了高性能GSM/GPRS 应用的所有解决方案: 基带处理器、供电电路、完整的无线电频段电路( 包括电源放大器和天线接口)、电源放大器是从供电电压BATT+ 直接引出来的。MC55 的软件存储在Flash 中, 静态RAM 为GPRS 连接提供了额外的存储空间。该单元应用程序的物理接口是通过板对板的连接器来实现的。
它是由50 个针脚构成, 用来控制该单元、传输数据和声音信号及供电。MC55 包含ASC0、ASC1 两个串行接口,为综合人机接口界面提供更大的适应性。
2.3.1 启动MC55
通过ignition line/IGT (Power on) 时, 需要/IGT (Ignition) 信号驱动到接地电压至少100 ms , 并且最少距离VDD 的最后一个下降沿10 ms , 可以通过使用一个开漏极/ 集极驱动电路避免电流流入该引脚。在电池供电应用程序中,/IGT 持续时间最少必须达到1 s , 这段时间中连接充电器并且可以从Charge-only 模式转换到Normal模式。
2.3.2 关闭MC55
(1)正常关闭程序———通过AT 命令关闭。
最安全的方式就是通过发送AT ^ SMSO 命令关闭。
程序可以使MC55 从网络注销, 使软件进入安全模式并且在断电之前保存数据。在这种模式下, 只有RTC( 实时时钟)保持运行。关闭该装置之前先发送:
^SMSO:MS OFF
OK
^SHUTDOWN
发送AT^SMSO 之后不要再发送其他的AT 命令。这种方式为软件关闭。
(2) 紧急情况关闭紧急情况关闭方法称为硬件关闭, 将板对板连接器的/EMERGOFF 信号接地=直接关掉电源, 软件控制的应用程序失效。
3 系统软件设计
3.1 控制器LPC2103 软件设计
控制器LPC2103 的软件功能主要分为三个方面: 对现场采集量及继电器I/O 量的处理、预警功能及与GPRS模块的通信。现场电量模块输出的电量信号较复杂, 主要表现在精度高、种类多, 且含有大量冗余信息,LPC2103 针对这些问题作出相应处理, 输出具有校验位、起始位、停止位的电压、电流、功率等信号。当采集量在允许范围之外时,LPC2103 做出预警响应, 优先上传到监控中心进行报警。LPC2103 与GPRS 模块通过串口发送AT 指令实现通信。设计流程如图4 所示。
图4 控制器软件流程图
3.2 GPRS 模块设计
在本系统中,GPRS 模块主要完成与LPC2103 控制器之间的数据交换和通过移动公司的GPRS 网络与远端计算机进行数据交换。模块的串口发送AT 命令实现对模块的控制, 该模块的主要功能有:(1) 内嵌TCP/IP 协议栈, 能通过移动公司的GPRS 网络进行数据交换;(2)SMS 短信息的发送与接收; (3)GPRS 数据包最高可达1.5 KB; (4)GPRS 模块与ARM 处理器器经AT 指令集通过串口进行数据通信。GPRS 模块与ARM 处理器完成数据收、发的程序流程图分别如图5、图6 所示。
图5 GPRS 接收数据流程图
图6 GPRS 发送数据流程图
3.3 上位机软件的编写
上位机采用Visual Basic 与组态王6.53 进行开发, 软件设计主要包括通信程序的设计、数据管理程序的设计以及系统界面的设计。VB 中提供了用于数据通信的MSCOMM 通信控件,如何利用该控件提供的属性、方法和事件是设计运行稳定、数据传输正确的通信程序的关键。
GPRS 模块通信过程的实现:
(1) 查看SIM 卡是否插入
①命令:AT+CPIN?
②响应:READY: 正常
ERROR:GPRS 模块未检测到SIM 卡
(2) 查询是否附着GPRS 网络
①命令:AT+CGATT?
②响应:AT+CGATT=1 : 附着网络;AT+CGATT=0 : 未附着网络
(3) 查询是网络信号强度
①命令:AT+CGREG?
②响应:0~31 ,0 表示当信号强度,>18 时就可以进行GPRS 通信
(4) 拨号
①命令:ATD*99***1#
②响应:CONNNECT: 拨号成功, 可以进行PPP 交互
NO CARRIER: 拨号失败
本监控系统使ARM 处理器与GPRS 模块相结合, 提高了系统的可靠性, 解决了GPRS 模块频繁通信出现的滞后性的问题, 降低了数据的误码率。使用VB 与组态王相结合设计的上位机程序, 在保证了界面美观性的同时, 解决了PC 机与GPRS 模块通信的问题, 降低了开发成本。本系统已用于实际现场, 效果良好。