基于GPRS的小型集散控制系统设计
2013-10-17王皓陈王志明
王皓陈,王志明
WANG Hao-chen,WANG Zhi-ming
(南京理工大学 机械工程学院,南京 210094)
0 引言
集散控制系统(Distributed control system)是以微处理器为基础的对生产过程进行集中监视、操作、管理和分散控制的集中分散控制系统,简称DCS系统。它的主要特征是集中管理和分散控制,并且不再局限于石油、钢铁、化工等大型企业,随之而产生的是众多的中小型集散控制系统[1,2]。
小型集散系统由一个上位机和众多的终端组成,上位机通过通信网络向终端发送命令,控制终端的工作状态以及获取终端采集的数据[3]。随着无线通信技术的发展,集散系统中上位机与终端的通信不在局限于有线方式,取而代之的是具有更广泛使用范围和空间距离的无线方式,本文采用通用分组无线服务技术(General Packet Radio Service)实现无线通信技术与集散系统的结合。
1 系统结构
集散系统的基本结构包括分散过程控制装置、通信系统和操作管理装置[4],该无线通信技术与集散系统结合的结构如图1所示。整个系统由数据处理中心、GPRS无线网络和远程控制终端三大部分组成。其中数据处理中心由PC机及上位机软件组成,远程控制终端由ARM微处理器、GPRS模块GTM900-C和RFID读写模块组成,主要实现现场数据的采集、存储和发送等功能。
图1 系统结构图
终端GPRS模块处理后的分组数据发送到GSM基站,分组数据经SGSN封装后,SGSN通过GPRS骨干网与网关支持节点GGSN进行通信,GGSN对分组数据进行相应的处理,再发送到上位机所处的目的网络,即可完成数据的无线传输,再由上位机对数据进行存储和处理。同时,上位机也能够将控制指令和数据发送到GPRS模块,并由ARM微处理器进行处理,即为上述从终端到上位机的逆过程。本文将主要阐述远程控制终端中与无线通信相关的实现方案。
2 硬件设计
嵌入式系统是当今最为热门的研究领域之一,它以应用为中心,以计算机技术为基础,软硬件可裁剪,一般包含嵌入式微处理器、外围硬件设备、嵌入式操作系统和应用程序四个部分[5]。远程控制终端主要实现数据的采集、存储和发送等功能,并且允许上位机对其工作状态和参数进行设置,其结构如图2所示,以ARM微处理器为核心,将RFID读写模块采集到的数据通过UART端口传送到GPRS模块,进而可以与上位机通信。
2.1 硬件平台
图2 远程控制终端结构图
微处理器选用三星公司ARM9内核的S3C2440处理器,根据设计要求,本系统扩展的外围设备主要有存储设备、串口通信设备和LCD显示设备。其中NAND FLASH用于存储程序代码和用户数据,SDRAM存储器用于运行Linux操作系统和应用程序,当执行程序时,SDRAM调用NAND FLASH中的程序代码并运行,LCD显示设备用于显示终端工作状态,即GPRS模块和RFID读写模块的运行状态。
2.2 GPRS硬件设计
远程控制终端中的GPRS模块选用华为公司的一款两频段GSM/GPRS无线模块GTM900-C,它支持标准AT命令及增强AT命令,提供丰富的语音和数据业务等功能,具有40引脚的ZIF连接器,其中包括UART接口、标准SIM卡接口和电源接口等,可以方便的应用于高速数据传输。GTM900-C外围电路的重点在于电源电路和SIM卡电路,是保证其正常工作的基础,与ARM通信的UART接口较为简单,对应接口相连即可。
GTM900-C的电源端口为1-5的VBAT I/O口,输入电压在3.8V,若电源电压过低,天线端口需要匹配,应尽量缩短外部电源到模块连线的长度,否则易造成射频指标的恶化以及模块工作不稳定。系统中采用LM2576系列稳压芯片产生需要的3.8V电压,其电路原理图如图3所示。
图3 电源电路
3 软件设计
软件设计采用Linux操作系统来统一管理系统资源,为用户提供访问硬件的接口并可调度多个应用程序,文中的GPRS应用程序属于其中之一[6,7]。此处软件设计的重点在于GPRS与上位机的连接,因此系统的软件设计包括两部分,一部分是远程控制终端的软件设计,一部分是上位机的软件设计。上位机软件主要是完成数据的接收和存储,也可以实现指令的下传。
3.1 应用程序设计
Linux下GPRS模块程序流程图如图4所示。ARM微处理器与GPRS模块是通过UART串口连接的,因此程序所要实现的和GPRS服务有关的PPP协议注册、TCP/IP连接以及数据发送接收等功能,都要通过串口来实现。开机上电之后,程序在主函数中运行,主要完成处理器和GPRS模块的初始化工作,S3C2440的初始化主要包括串口选择、串口工作方式设置、波特率设置以及初始化变量和标志位;GPRS模块的初始化包括启动模块、网络连接、设置参数以及各种协议的实现。
图4 GPRS程序流程图
在进行数据发送和接收之前,配置GPRS模块中较为重要的一项配置工作为定义PDP上下文参数,通过"at+cgdcont=1,"ip","cmnet""指令实现,其中cid参数用于指定PDP上下文标志,IP用于指定分组数据协议的类型,cmnet为接入点名称,用于选择GGSN或外部分组数据网络的逻辑名称。之后进入TCPIP功能,打开一条TCP链接,即可进行数据的收发操作。数据发送可通过"AT%IPSEND="TCP CONNECTTION SUCCESS!""指令完成,数据接收与发送稍有不同,数据接收为非请求结果码,且默认情况下缓存是没有打开的,其指令为%IPDATA,ARM微处理器可以识别该非请求结果码,读出接收到的数据。数据传输结束后,需要通过AT%IPCLOSE命令关闭链接,释放信号量。应用程序测试结果如图5所示。
图5 应用程序测试结果
3.2 上位机界面开发
通过ARM微处理器控制GPRS模块拨号连接上位机时,需要上位机的socket端口处于监听状态,否则无法拨通,不能实现无线通信。该系统上位机界面通过C++builder编程实现,其中TCP服务器端界面如图6所示,GPRS模块即为TCP客户端。
图6 TCP服务器端界面
TCP Server可以自动获取本机IP地址,方便客户端连接,启动TCP Server之后,点击Listen按钮,上位机就可处于监听状态,等待GPRS模块的连接。GPRS模块连接到上位机之后,由ARM微处理器控制的LCD显示设备用以告知终端状态,如图7所示。
图7 终端工作状态
4 结论
本文阐述了基于ARM和嵌入式Linux操作系统,并与无线通信技术相结合的集散系统的设计。通过开发、调试和测试,该系统可以运用于实际,且运行可靠、稳定,功耗低,数据处理量大,在集散控制系统以及其他相关领域有着广泛的应用前景。
[1] 周旭,李小敏.俞承芳.基于ARM的集散系统上位机设计[J].仪器仪表学报,2006(27):704-706.
[2] 李忠良.浅谈集散控制系统及其应用[J].应用与实用技术,2007(3):50-51.
[3] Manivannan M,Kumaresan N.Design of On-line Interactive Data Acquisition and Control System for Embedded Real Time Applications[J]. IEEE,2011(11),551-556.
[4] 陈利军,郭艳玲.集散控制系统的最新技术特点与展望[J].工业仪表与自动化装置,2006(5):13-16.
[5] 齐春生,韩华春,闫谨,霍春宝,许海平.基于ARM-Linux 平台的电动汽车智能充电技术[J].计算机应用,2012(32):189-191.
[6] 韦东山.嵌入式Linux应用开发完全手册[M].人民邮电出版社,2008.
[7] 倪德骥,耿相铭.基于嵌入式Linux 系统的GPRS 连接及性能评测[J].信息技术,2012(2):85-86.