摘 要:综合考虑目前抄表系统在实际应用中的一些弊端, 介绍了一种基于STM32并嵌入μC/OS-II实时操作系统的电能手抄系统的设计与实现方案。该系统采用JF24C无线通信模块,并对多功能电能表通信规约DL/T 645-2007协议进行解析和转换。最后,通过测试表明该手抄系统能够快速准确地完成对电能表数据的采集和传输等功能。
关键词:抄表系统;实时操作;通信规约
通信技术、微处理器技术、数据处理技术的共同发展推动了智能电网的建设,实时用电采集系统的设计是实现电网智能化的重要组成部分。用电采集系统主要由主站、数据采集层和采集点设备层三部分组成。主站是整个系统管理控制中心,负责整个系统的信息采集和电能管理;数据采集层的主体是电能采集终端,负责对电能信息的采集、数据传输和执行主站发送的命令;采集点是电能信息的采集源和监控对象,包括电能表和相关测量设备。
目前,对低压非居民用户和居民用户的用电信息采集设备主要是集中抄表终端(包括集中器和采集器),并以远程无线通信(GPRS/CMDA)与主站完成数据交互。但在新旧电力设备转换的阶段,针对集中用户和分散用户、大用电户和小用电户在实际抄表中遇到一些问题,本文介绍了一种便携式手抄系统的设计和实现方案,可使电力管理部门更加方便地采集用电信息[1]。
1 手抄系统总体结构设计
该系统主要由手持终端和采集器两部分组成。手持终端作为控制端不仅能完成对电能数据的抄收、存储和显示,而且能与上位机进行数据传输并及时上传至主站系统。采集器在整个抄表系统中起过渡作用,它根据手持终端发来的命令控制所管辖的电能表,负责收集和提供整个系统的原始用电信息,并把用电信息发送给手持终端,因此集中器要能够同时与手持终端和电能表进行通信[2]。
系统总体结构如图1所示。在正常情况下,手持终端通过采集器对电能表进行电能数据的抄收和参数设置,并根据电能表地址对各个电能表的电能数据进行统计、分析发送给上位机。但当采集器无法完成通信时,手持终端也可以通过红外方式直接对电能表进行电能数据抄收与参数设置。
2 系统硬件设计
无线抄表系统由采集器和手持终端两部分组成,综合考虑本系统设计的需求选择了意法半导体(ST)公司STM32系列的STM32F103RBT6作为本系统的主处理器。它基于Cortex-M3内核,拥有的资源包括128 KB Flash、20 KB SRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC(16通道)、RTC、DMA、4个16位定时器、51个可用的I/O脚等,因其有较高性能和丰富的资源,较好地满足抄表系统的开发需求,所以选择它作为主芯片[3]。
2.1采集器硬件设计
采集器主要由微处理器、电源模块、存储模块、485通信模块、时钟模块和无线收发模块组成,其功能结构如图2所示。采集器与电能表通过RS485通信,根据用户实际情况,采集器可以用于采集单个或多个电能表的电能信息。当采集器收到手持终端抄表命令时,对其连接的电能表进行电能数据采集并将这些数据进行存储,然后通过无线将这些数据发送给手持终端。
2.2手持终端硬件设计
手持器终端是整个系统的控制端,它管理全系统的数据传输、数据处理和数据应用,并与上位机进行数据交换,其功能结构如图3所示。
电源模块由3 V的电池供电,并通过升压型DC-DC芯片TPS60100和TPS60110产生系统所需要的3.3 V和5 V电压;时钟是系统记录事件和数据通信的时间依据,本设计采用低功耗、低成本、高精度的DS3231芯片,并通过400 kHz 的IIC总线接口与处理器相连;手持终端需要存储和处理各类数据,因此选用了ATMEL公司的AT45DB642芯片来存储,它具有8 MB的存储空间,数据传输时钟频率达66 MHz,通过SPI串行口连接处理器;液晶选用北京集萃公司的SO160160—01ASWE,采用并口6800工作方式,并通过处理器GPIO控制液晶的显示。DL/T645-2007通信协议规定红外通信的载波频率为38 kHz±1 kHz,故而采用适合此频段的红外发射管TSAL6200 和红外接收管TSOP1838,发送脉冲调制采用三极管耦合,载波由PWM产生,并通过STM32的串口1完成通信。
2.3 无线收发硬件电路设计
无线模块作为采集器和手持终端的重要部分,本系统采用2.4 G通信的JF24C无线模块。它整合了高频键控(GFSK)收发电路的功能,以小体积实现高速数据传输,其传输速率可达到1 Mb/s,具有快速跳频、向前纠错、循环冗余校验等功能,可以在拥挤的ISM频段中达到稳定可靠的数据传输。JF24C采用SPI数字接口与STM32处理器连接,其结构如图4所示。
JF24C提供了两种方法来处理TX/RX数据包长度,一种是在JF24C微处理器内自动检测数据包长度,另一种是微处理器保持接收/发送状态直到单片机终止发送和接收。JF24C微处理器可处理的数据包长度最高为255 B,本系统无线通信一帧数据长度小于255 B,所以选用JF24C微处理器内自动检测数据包长度。其中,TX的时序图如图5所示,RX的时序图如图6所示。
在抄表通信中涉及到自动获取电能表地址,目前根据DL/T645—2007通信协议,按以下搜索算法获取电能表地址。用全AA的地址域抄电能数据量,如果接收到完整的回应帧,则表明下面只接一只电能表,然后从地址域中得到该表的地址,跳出搜表循环;如果收到错误数据,则表明所接的电能表不止一只。然后将地址域低字节使用XX(00~99),其余高5 B使用AA地址抄读表计电量。如果收到完整的回应帧,则收到了一只表,此时将地址域低字节加1继续抄表命令,直到出现错误的数据为止,记录循环次数为N,此时表明所接的RS485表计地址在低位有相同的值XX+N。
通信部分作为多功能无线抄表系统的核心,不仅完成数据的通信,而且为系统的合理有序运行提供可靠的保障。系统通过串口中断接收数据。当接收到主站有效数据帧后,首先要检验从站地址正确与否,若非本站则可将该数据帧丢弃,若是本站则继续检验控制码、校验码等其他信息,确保接收到的数据帧的正确性,然后再进行数据帧的解析。非广播命令则需要组织回应数据帧,如果组织数据过程中出现错误,则需做出异常应答,在完成回应之后,返回等待主站下一次的通信命令。
4 系统软件设计
4.1采集器软件设计
采集器作为手抄系统的中间环节,不仅需要与电能表进行本地通信,还需要与手持终端进行无线通信。所以在整个系统中,采集器主要实现了手持终端与电能表之间的通信,并且对DL/T645通信规约进行解析和转换。
采集器程序流程如图7所示。系统上电时初始化STM32外设,初始化JF24C无线射频模块,然后通过串口1中断接收数据。当接收到手持终端的抄表命令时,向电能表发送命令并接收电能表返回的抄表数据,如果数据错误则重新给电能表发送抄表命令,如果正确则对电能数据通过串口2发送给手持终端,接着等待下一次抄表命令[5]。
JF24C无线射频模块初始化流程图如图8所示。
4.2 手持终端软件设计
为了能较好地完成系统的多任务处理,在STM32微处理器上嵌入μC/OS-II实时操作系统。在μC/OS-II实时操作系统下的程序设计可以将应用程序分成相对独立的多个任务,每个任务都有自己的优先级,μC/OS-II内核按照优先级对这些任务进行调度和管理。 根据手持终端实现的功能,对系统任务进行分割, 并为各个任务分配优先级。系统大致可分为如下几个任务:RTC任务、按键检测任务、LCD显示任务、无线通信任务和红外通信任务。如图9所示,系统的总体程序设计以μC/OSⅡ实时操作系统为基础,首先初始化STM32F103RBT6外设功能,然后创建各个功能模块的应用程序任务并合理分配优先级,并按照优先级对每一个任务进行处理[6]。
5 手抄系统测试
系统测试中采用一块电能表通过RS485接口与采集器相连接,并由手持终端发送抄表命令。因本系统设计所测试的电能表是挂在计量箱内部,所以本测试是通过JF24C无线模块进行抄表,测试采用的电能表地址为000000563825。在正常天气下,不同距离对电能表进行多次的抄收,并记录下成功抄收次数和失败次数,其测试结果如表2所示。
本系统通过无线通信和红外通信的相互配合完成了对电能表电能数据的抄收,并将电能数据抄收与数据管理相结合,不仅保证了用电采集系统的可靠性,而且更加方便电力管理部门对用电信息的统计。通过实际的测试和长时间运行,本系统具有良好的稳定性和通用性,能够快速准确地完成电能表电能数据的抄收。
参考文献
[1] 徐金亮, 程必宏. 用电信息采集系统技术与应用[M].北京:中国电力出版社,2102.
[2] 周长红,刘敬彪.智能抄表系统的设计与实现[J].现代电子技术,2004(172):35-37.
[3] 王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践[M]. 北京:北京航空航天大学出版社,2008.
[4] DL/T 645- 2007,多功能表通信规约标准[S].2007.
[5] 王振朝,郭伟东,王伊瑾.基于电力载波通信技术的抄表通信模块设计[J].电测与仪表,2009(19):72-76.
[6] 任哲,潘树林,房红征. 嵌入式操作系统基础μC/OSII和Linux[M]. 北京: 北京航天航空大学出版社,2006.