上海电力学院(上海 200090) 许 飞 耿新民 贾振堂
近年来,随着国家电网改造工程的不断推进,传统的人工抄表不仅费时费力而且不利于用电波峰波谷的统计,越来越不能满足实现信息化、自动化的先进电力企业管理的需要。一种基于嵌入式系统的无线通信模块的设计与实现,可广泛应用于电能量远程抄表系统中,它可以将电表中采集来的数据通过无线网络的方式发送到数据中心,并接收和执行数据中心发出的指令。
GPRS网络是在现有的GSM网络中增加GGSN和SGSN来实现的,使得用户能够在端到端方式下发送和接收数据。用户利用GSM基站通信,GPRS分组从基站发送到GPRS服务支持节点SGSN,SGSN再与网关支持节点GGSN进行通信。GGSN对分组数据进行相应的处理后再发送到目的网络,如PDN或Internet[1]。来自Internet标识有移动台地址的IP数据报包由GGSN接收后,再转发给SGSN,继而传送到远方的数据中心。
GPRS无线通信模块要实现利用GPRS网络实现与数据中心的上位机进行全双工数据通信,必须要附着GPRS网络,登陆上Internet与连接其上的PC机建立数据链路并进行数据传输。欲完成这一过程必须实现GPRS的附着和分组数据协议PDP上下文的激活。通过GPRS的附着登记用户信息,激活过程主要是激活IP协议,保证数据能以IP数据报的形式进行传送。
基于GPRS的嵌入式无线通信模块主要由微控制器、GPRS无线收发器、存储器、电源、串行接口等组成,其硬件组成框图见图1。
图1 GPRS无线通信模块硬件组成框图
经调研及性价比的比较我们选用的GPRS无线收发器是西门子的MC55,这款无线收发模块是支持900/1800/1900MHZ三个频段的三频模块,是带有GSM/GPRS全套语音和数据功能的先进无线模块。其内嵌TCP/IP协议栈,支持TCP,UDP,HTTP,FTP,SMTP,POP3等协议,省去了系统的TCP/IP协议处理时间。采用3.3V~4.8V电压供电,以AT命令方式实现数据传输,每次传输都会有结果状态返回,不需要用户切换状态。MC55提供两个全双工串口,可以实现两个TCP通道的同时传输,GPRS与短信或语音状态自动切换。
GPRS无线通信模块的微控制器选用Atmel公司的AT89C51RC,它含有32KB的 Flash程序存储器,512字节的片内RAM,32线的可编程 I/O 口(P0、P1、P2和 P3),3个可编程定时器,硬件看门狗定时器WDT。两个可编程的UART串行通信口,工作电源为4.0~5.5V,最高工作频率为33MHZ[2]。微控制器 AT89C51RC与GPRS无线收发器MC55的硬件连接原理图见图2。
图2 微控制器与GPRS无线收发器硬件连接原理图
MC55与AT89C51RC间的数据通信主要通过端口TXD0与TXD、RXD0与RXD之间的数据传输来完成。其中GPRS无线收发芯片MC55上的TXD0口用于接收从单片机AT89C51RC传来的数据,而单片机上的TXD端口用于向GPRS无线收发芯片传送数据。GPRS无线收发芯片上的RXD0口用于向单片机发送数据,单片机的RXD口则用于接收从GPRS无线收发芯片传输来的数据。GPRS无线收发芯片MC55上的引脚IGT主要用于点火复位,其作用是做GPRS无线收发芯片的一个复位转换[3]。在GPRS无线收发芯片MC55的基带处理器上有一个综合SIM接口,它直接接线到主机接口(端到端连接器),用于连接到外部的SIM卡座。这里接的 SIM卡有6个引脚 CCVCC、CCCLK、CCIO、CCRST、CCIN以及CCGND分别对应接在MC55的第1到第6个引脚上。GPRS无线收发芯片的连接器和SIM卡座的引脚之间的距离不要超过20 cm,为了达到最佳的效果,在SIM支架下敷设一层铜隔离网,该层敷铜与SIM卡的CCGND引脚相连。
为实现掉电数据保护功能,引入非易失存储器,在电能量远抄系统中可以存储户名、户号、电表编号、实时电量、历史电量及相关设置参数。通过对比各种非易失存储器的读写速度及编程的方便性,选定存储器FM3130作为系统的存储设备,同时它还能提供实时时钟功能。FM3130中的FRAM大小为64KB,提供了有效的无限制写入次数,写操作无任何延时,可以像RAM一样被随机快速读写,且掉电后数据不丢失,数据可保存十年[4]。
AT89C51RC单片机具有两个全双工UART串行口,一个与GPRS无线收发器MC55通信,另一个用来与外部需要进行数据传输的终端设备相连。为了增强与外部终端设备连接的通用性,还提供了RS-485或RS-232两种串行通信接口方式。因为AT89C51RC串行口电平是TTL电平,所以需要将TTL电平信号转换为RS-485或RS-232总线电平信号。另外,RS-232串行接口可与PC机直接相连,这样就可在PC机上通过串行口发布AT指令对MC55模块进行单独调试。
GPRS无线通信模块中的单片机AT89C51RC工作电源为4.0V~5.5V,GPRS无线收发器MC55的工作电源为3.3~4.8V。电源模块将工频交流电经过处理后,为单片机AT89C51RC和GPRS无线收发器MC55提供合适的电源。同时为了提高工作的可靠性,也可同时装设锂电池,以实现电源不间断供电。
软件设计主要完成GPRS无线收发芯片MC55与单片机AT89C51RC之间的通信,两者间需要定义统一的通信协议,规定数据传输的格式。通过AT指令实现GPRS及数据传输。单片机AT89C51RC利用AT指令完成与GPRS无线收发芯片MC55间数据传输的步骤如下:
AT^SICS=0,CONTYPE,GPRS0/*选择连接的类型为GPRS0*/
AT^SICS=0,DNS1,“*.*.*.*”/*设置DNS服务器地址*/
AT^SICS=0,PASSWD,T-D1 /*设置访问GPRS网络的密码*/
AT^SICS=0,APN,“INTERNET.T-D1.DE” /*设置访问节点APN*/
AT^SISS=1,SRVTYPE,SOCKET /*设置接口服务类型*/
AT^SISS=1,CONID,0 /*设置连接规范0*/
AT^SISS=1,ADDRESS,“SOCKTCP://*.*.*.*:****”/*客户端规范包含远方主站的IP地址和TCP端口号*/
AT^SISO=1 /*打开TCP连接*/
OK /*反馈信息:打开成功*/
AT^SISW=1,20 /*写入数据,通道1发送20字节数据*/
SISW:1,20 /*反馈信息:可发送20字节数据*/
******************** /*输入要发送的20字节数据*/
AT^SISR=1,100 /*读入数据,发送要接收的数据长度为100字节*/
SISR:1,90 /*反馈信息:可发送的数据长度为90字节*/
AT^SISC=1 /*关闭连接*/
OK /*反馈信息:关闭成功*/
为了方便调试、维护和移植,GPRS无线通信模块软件设计遵循模块化设计思想,采用C语言编程。GPRS无线通信模块软件设计主要分为系统初始化、建立连接、数据传输、断开连接四部分,系统程序流程图如图3所示:
图3 系统程序流程图
程序首先对系统软硬件进行初始化,单片机初始化部分将AT89C51RC串口设置为工作方式1,即8位数据位和1位停止位,定时器选用定时器1的工作方式2即8位自动重装定时器,波特率设为9600 bps(晶振频率为11.0592 MHz)。然后初始化软件缓冲区和各种标志信息。GPRS无线通信模块与主站间通信是先用AT指令初始化无线收发器MC55芯片并建立TCP连接,TCP连接建立后,MC55进入数据传输模式,可以直接传送数据。一方面,MC55接受主站服务器发来的命令或数据并通过串行口发给单片机AT89C51RC,单片机AT89C51RC根据主站的命令进行相应的处理;另一方面,单片机AT89C51RC通过RS-232或RS-485串行口接受外部终端发来的数据或请求并通过另一个串行口发给MC55,MC55就会把数据转发给相应的IP地址的PC机。MC55芯片在接入网络后,在设定的周期内无数据通信时,由单片机控制MC55芯片向主站发送心跳信息,以保持GPRS网络的连接,主站收到心跳信息后,回应应答信号,数据传输结束后断开连接。
基于GPRS的无线通信由于具有永远在线、自由切换、传输速率高、计费灵活便宜等优点而有着极为广泛的应用。本文在介绍GPRS网络应用技术的基础上,设计的基于单片机和无线收发芯片的GPRS无线通信模块可以将标准串行口数据通过GPRS网络连入互联网,在远端电能表和主站之间建立了一条透明的传输通道,可广泛应用于电能量远程抄表系统,实现远方终端设备和主站间信息的实时交互。
[1] 刘宁,冯伟,陆林生.基于GPRS的无线数据传输终端的设计[J].现代电子技术,2008(1):25~27
[2] 王幸之,钟爱琴,王雷,王闪.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004
[3] 白延敏.51单片机典型系统开发实例精讲[M].北京:电子工业出版社,2009
[4] 张齐,杜群贵.单片机应用系统设计技术-基于C语言[M].北京:电子工业出版社,2004.