基于ZigBee和CS5460A的智能电表系统开发
2015-03-20吕肖晗
李 晶,张 静,吕肖晗
(1.孝感供电公司客户服务 中心计量室, 湖北 孝感 432100; 2.湖北文理学院 物理与电子工程学院, 湖北 襄阳 441051; 3.襄阳海特测控技术有限公司, 湖北 襄阳 441003)
智能电网是一种供电部门能够和用电用户及时交流信息,并以此调节电网设备运行,实现精细供电、优化电网结构、优化电网运行,最终实现节能减排目的的新一代电网。
在智能电网中,智能电表处于非常重要的地位,是沟通用电户与供电部门的桥梁,是智能电网中的关键设备,“智能电网始于智能电表”。我国人口众多,用电户数量巨大,智能电表的市场需求非常大。因此,研究适合我国国情的智能电表,满足我国智能电网建设的需要非常重要。[1]
智能电表,与具有电能计量功能普通电能表的主要区别是信息交换能力,即通信、网络能力。[2]一般用于智能电表的通信技术有如下特点:①智能电表一般通过部署在小区、大厦等位置的网关等设备与供电部门实现互联,其通信的距离不会太远,数十米至数百米;②由于电网中电表的数量众多,故电表本身的功耗应尽量低,实现通信网络能力需要的功耗应尽可能低,以降低电表整机的电能消耗;③智能电表本身的成本应尽量低,故通信技术的成本也应尽量低;④智能电表的数据通信实时性要求不是很高,数据量也较小;⑤由于电表中的数据属于敏感数据,不能被有意、无意的篡改或窃取,故通信过程中的安全性要求非常高。
综观上述要求,ZigBee技术非常适合智能电表应用。本文介绍将ZigBee技术与智能电表结合的研究与开发工作。[3]
一、智能电表系统设计
智能电表首先作为电表其基本功能是实现电能的有效计量。实现电能计量的方法可以利用AD转换器对电路中的电压、电流实现实时采样,计算出电路中的瞬时功率,在此基础上累加得出一段时间内的电能消耗。但这种方式对于计算能力的需求较高、对MCU的资源需求较高,智能电表中MCU还需要处理网络、通信等事务,故这种方式不太适合在智能电表中应用。实现电能计量的另一种方法是使用专门的计量芯片,这些芯片内部带有多通道的AD转换器和电能计算引擎,无需外部MCU的干预即可自主计算电路中的电压、电流、瞬时功率及有功、无功电能等。
这里选用CS5460A作为电能计量芯片,TI公司的CC2530作为智能电表中的ZigBee通信部件,与CS5460A实现无缝连接,实现结构简单、功能强大的智能电表结构体系。
(一)智能电表的硬件设计
由于ZigBee通信和电能计量工作的实时性都很强,应用专用的电能计量芯片,将计量计算的需求降到最低。CC2530内部的MCU运算速度较快,除实现ZigBee通信协议外,还有时间完成其他的工作。
本文开发的智能电表系统硬件电路如图1所示。为简单起见,电路中略去了电源、高频部分和EMC保护等。
以CC2530为主芯片,完成ZigBee通信、电能累计、数据传输等工作;CS5460A实现电能计量功能,通过SPI接口与CC2530连接;图中R1是电流取样电阻,R2、R3是电压分压电阻,用于将被测电路的电流、电压变换为适合CS5460A的输入信号;CC2530在初始化时通过SPI接口访问CS5460A,设置工作方式和相关参数;CS5460A的电能输出脉冲连接到CC2530的外部中断输入,每来一个电能计量脉冲产生一次中断申请,CC2530在中断服务程序中实现电能累加。
为在掉电时完整保存电能计量数据,CC2530的I2C接口连接了一片I2C接口的铁电存储器芯片FM24C256。
设计中需要注意的主要问题有两点:一是电能表的校准。在制造时由于取样电阻的误差和芯片的个体差异,需要将电能表在标准信号条件下修调,使其满足计量所需的准确性。CS5460A通过SPI接口接收校准命令,对标准信号进行测量,将生成校准数据并记录在非易失存储器中,以后每次上电时通过SPI接口从该存储器中读取校准数据,写入芯片内部的寄存器中。在本设计中,EEPROM存储器AT93C46就是用来存放校准数据的,校准是:准备好标准信号后通过按键S进入校准状态,并完成全部校准工作。电表每次上电时CC2530控制CS5460A从AT93C46中读取校准数据,完成电表的初始配制,进入正常工作状态。
二是电能数据的存储。由于电能计量需要连续累计,故电表掉电时应将当前电能数据在非易失存储器中保存,再次上电工作时将保存的数据读出,并在此基础上累计。对此可以配备高能备用电池;也可以利用掉电监测电路,在掉电前将数据存入EEPROM中;也可以在工作时每次累计后直接将数据写入EEPROM中。本设计中与CC2530连接的铁电存储器芯片FM24C256即用来存储电能计量数据。
图1中,R1为负载电流取样电阻,R2、R3为负载电压分压电阻,用于将负载电流、电压转换为适合CS5460A要求的信号。
在实际应用中,由于外部元件的差异,需要对电表进行校准。在校准过程中施加标准的电压、电流信号,MCU分别发出相应的校准命令,CS5460A中获取校准数据,并在EEPROM中保存。由于CS5460A直流、交流、增益、偏置等多个参数的校准,因此电表配备有一支按键KEY和8只LED,其中按键用于触发和变换校准步骤,LED指示校准的进程。限于本文篇幅,对于与电表核心结构无关的部分,如复位、高频天线、电源、EMC等硬件设计没有涉及。
图1 智能电表硬件电路图
(二)智能电表的软件设计
智能电表的软件主要有ZigBee网络部分和电能计量部分。[4-5]
电能计量部分需要自己编写。在基于ZigBee的智能电表设计里,最少有3个事件需要处理,分别是电能的计量脉冲事件、校准按键事件和上层应用命令事件。
一个任务实际上主要由两个主要的函数组成:一个函数完成与任务相关的初始化工作,另一个函数负责任务事件的处理,有的情况下可能还需要一个回调函数(Callback Function)。任务在操作系统注册后即会被操作系统调度、执行。
其中电能计量的任务由外部电能脉冲信号触发,其工作过程如下:CS5460根据计量结果产生电能脉冲,触发CC2530中断,CC2530进入中断服务程序,回调函数识别电能脉冲后生成一个事件,通过操作系统发送给电能计量任务,并调度电能计量任务运行,电能计量的任务事件处理函数实现电能的累加、存储等。
电表校准任务的功能是完成电表的校准,并将相关的校准数据存储在FLASH中。校准任务由一个按键的动作触发,与电能计量任务相似,当该按键被按下时,校准任务被调度、执行,并根据按键的次数确定校准的步骤,并用一组LED指示校准的进程。应用命令解释任务的主要功能是分析、完成电网或用户通过ZigBee网络发送的各种命令。
下面以电能计量任务为例说明软件设计的要点。由于在本设计中电能的计量是对电能脉冲的计数实现的,而电能脉冲的表现形式与按键十分相似。以下以电能脉冲处理为例介绍其主要步骤。
1.配置电能脉冲相关的硬件
定义电能脉冲连接的IO口,电能脉冲连接在P0.7
设置为边沿中断在HalKeyInit(void)函数中设置电能脉冲的IO口:
2.定义回调函数,并在系统注册
OnBoard_KeyCallback),确定是否使用中断方式以及将回调函数链接起来。注意在程序中每个事件的代码必须是唯一的。
定义回调函数如下:
二、结束语
本文给出了基于ZigBee技术的智能电表的一种方案,但智能电表的研制、应用不是孤立的,应该是一个系统工程。前面说过,智能电表通过网关和电力公司实现信息的交换,网关在这里发挥几个方面的作用:一方面网关利用以太网或GPRS等与电力公司建立连接;另一方面通过ZigBee与智能电表通信;同时网关还是用户的一个终端,用户可以通过它观测自己的用电详情,了解电力公司的最新电价、时段等信息;最后网关还应是ZigBee的信任中心,负责密钥的管理。其结构可参考ZigBee的Smart Enegy Profiel。同时智能电表与电力公司之间的信息交换的内容、格式、方式等还需要协调。上述这些工作都是需要进一步研究和解决,才能使智能电表真正走向千家万户,使智能电网进入实用。
[1]赵彤,沈新宇.智能电表的发展现状及前景分析[J].电力系统装备,2004(4):26-27.
[2]谢燕,谢文.智能电能表在电网中的应用分析与探讨[J].江西电力职业技术学院学报,2011(4):33-35.
[3]吕治安.ZigBee网络原理与应用开发[M].北京:北京航空航天大学出版社,2008.
[4]高守玮,吴灿阳.ZigBee技术实践教程[M].北京:北京航空航天大学出版社,2009.
[5]ZigBeeAlliance.ZigBeeDocument 053474r3[S].2006.