一种物联网能耗监测计量终端的设计*
2015-12-15张喜生岑宏杰
张喜生,岑宏杰
(深圳职业技术学院 电子与通信工程学院, 广东 深圳 518055)
一种物联网能耗监测计量终端的设计*
张喜生,岑宏杰
(深圳职业技术学院 电子与通信工程学院, 广东 深圳 518055)
设计了一种应用于物联网能耗监测系统的无线计量终端方案,该计量终端的核心电路由微控制器STM8L152和电能计量单元ATT7053构成,无线收发器使用CC1101,使用软件Atom Threads作为操作系统,并移植TI的SimpliciTI无线网络协议,可以实时计量用电设备的用电量、液晶显示电压、电流、功率等电参数,定时保存数据并通过433MHz无线通信上报给数据网关和服务器.计量终端也支持现场红外通信抄表.
物联网;电能计量;STM8L152;ATT7053;Atom Threads
目前,建筑能耗约占我国社会总能耗的三分之一,与工业、交通并列成为能源消耗大户.国家节能目标是在“十二五”末,建筑节能要达到1.16亿吨标准煤.在建筑能耗中,大型公共建筑高耗能的问题突出,约4%城镇建筑面积消耗超过全国城镇年耗电量的20%.因此,促进公共建筑合理用电、节约能源,直接关系国家节能减排战略目标的实现.建筑节能运行需要建立在完善的能耗数据统计分析基础之上,缺乏建筑能耗基础数据的支持,就无法采取有效的节能措施.结合建筑能耗监测的实际需求[1-3],我们开发了一种无线计量终端,可应用于物联网能耗监测系统,对建筑能耗实现动态监测.
1 系统架构
物联网能耗监测系统由无线计量终端、数据网关、服务器构成.其中服务器负责系统数据的保存记录、浏览展示、统计分析和报表生成等,数据网关负责采集存储终端数据,并进行局域网和无线网络的协议转换和数据转发,计量终端实现电能计量和用电状态监测,定时上传数据到服务器数据库,对异常用电情况进行监测并实时上报服务器.能耗监测系统结构如图1所示.
图1 能耗监测系统结构
2 硬件电路设计
计量终端实现电能计量主要有2种方案,一种采用MCU加ADC实现,该种方法使用 ADC采样电压和负载电流,经过乘法运算后算出有功功率,对时间积分得到用电量.此方案对 ADC、MCU性能要求比较高,需要在软件上对采样数据进行滤波算法处理,否则精度难以保证.另一种技术方案是采用MCU加专用电能计量芯片,此类计量芯片在内部集成了高精度模数转换、谐波处理电路、乘法器等,可以将电能转化为脉冲或数字量,简化电路和软件的设计,并且计量精度符合国家标准.
图2 无线计量终端硬件框图
经过分析比较,本设计采用第二种方案,选择ATT7053作为计量终端的计量芯片.该芯片是带零线计量的单相多功能计量芯片,具有高精度、低功耗、带SPI数字接口等特点,工作电压3.0~3.6 V.芯片集成3路19位sigma-delta ADC,采样速率高达28 kHz,在3000:1的动态范围内功率测量精度小于0.1%,可同时计算2个通道的有功功率、无功功率,支持断相防窃电,默认工作电流为2.4 mA,输入通道支持独立的增益配置,可外接锰铜或电流互感器作为电流采样器件,满足能耗监测系统对电能监测的要求[4].
此外,计量终端还提供液晶显示、电量断电保存、实时时钟、红外通信、无线通信、负载供电控制等功能.液晶显示、实时时钟、电量断电保存功能使用外部电路和芯片实现,会使电路设计复杂,功耗加大,成本上升.综合考虑集成度、功耗等因素,本设计选用ST公司的STM8L152作为计量终端的微控制器,该MCU为8位超低功耗单片机,内部集成1~16 MHz振荡器、1k字节EEPROM、RTC、4×28段LCD驱动、SPI接口等外设,可在1.65~ 3.6V电压范围内工作,有5种低功耗模式,在低功耗运行时电流可以小于6μA.此外,STM8L152还具备完整的安全监控特性,包括代码保护、Flash读写保护、后备时钟、双看门狗、电源监控等,可以在恶劣的电磁干扰环境中提供充分的多级保护.充分利用STM8L152的特性,可满足设计低功耗要求,同时减少器件、降低成本[5].计量终端的硬件结构如图2所示.
ATT7053和STM8L152通过SPI接口连接,过零中断输出引脚/IRQ连接到MCU的PA3 I/O引脚.ATT7053使用5.5296MHz外部晶振,须并联10MΩ的偏置电阻,同时将XTALO引脚连接到STM8L152的OSC_IN引脚,时钟经分频后作为内部RTC时钟源使用,而MCU主时钟则选择内部16 MHz RC振荡器作为时钟源.这样在共用一个晶振的情况下,既保证了RTC时钟信号精度,又可使MCU运行在较高频率上.ATT7053的2路分别对电压、电流采样,不使用的输入通道引脚短接后接到AGND,以避免可能存在过高的共模信号.为避免大信号导致串扰和量程溢出,同时保证小信号精度,采用分压电路将电压通道的采样范围控制在100~ 300 mV,ADC内部开1倍增益,保证70%Un和60%Un输入时的测量精度符合国标要求.因为电流通道采用锰铜采样,输入信号较小,所以ADC内部开16倍增益.
无线通信采用CC1101作为RF收发器,该芯片支持数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示等功能,集成了一个高度可配置的调制解调器,支持不同的调制格式,数据传输率最高可达500 kbps,CC1101通过SPI接口与STM8L152连接,实现参数配置、工作模式选择、数据通讯等.MCU通过片选引脚切换,选择CC1101或ATT7053进行SPI通信[6].
无线计量终端支持红外通信,以实现现场抄表和参数调校.红外接收芯片使用IRM3638,当接收到载波为38kHz的红外信号时,芯片内部电路处理后DO引脚输出低电平,无38kHz信号时输出高电平.DO引脚连接到STM8L152的TIM1定时器输入引脚,用定时器硬件进行红外信号的捕获和解码,以减小MCU运算负载.STM8L152有4个定时器,支持定时器级联控制.发送红外信号时,用TIM3定时器产生红外调制信号,TIM2产生38kHz载波,TIM3以门控模式去控制TIM2,TIM2的输出通道驱动红外发射管产生红外通信信号.
STM8L152内部集成4×28段LCD驱动器,使用其中4个COM和17个SEG,驱动定制的4×17段码液晶,显示7位数字以及电量、功率、电压、电流和温度等单位符号.计量终端电路使用NTC热敏电阻测量安装位置的温度.热敏电阻与精密电阻串联,用ADC采集NTC的电压变化,计算得到NTC的当前阻值,再通过查找的阻温特性表得到当前温度并在液晶显示.MCU和计量单元电路如图3所示.
图3 无线计量终端MCU和计量单元电路图
3 软件设计
无线计量终端软件按功能分为电能计量、液晶显示、无线通信、红外通信等几个任务模块,各模块需及时响应电能计量、断电保存、液晶刷新,数据通信等服务请求.为了保证系统的实时性能,软件采用开源操作系统Atom threads作为软件平台,Atom threads是一款轻量级实时调度操作系统,支持优先级抢占式和时间片调度,提供基本的互斥、信号、定时、队列功能,占用的CPU资源少,目标代码尺寸小,特别适合应用于本计量终端设计上.计量终端的软件逻辑层次如图4所示.
3.1 RTOS配置
Atom threads 内核已支持STM8微控制器,在项目路径下新建portsstm8stm8l15x-periphs文件夹,将ST公司的STM8L152的外设固件库添加至该路径下.Atom threads默认使用TIM1定时器作作为节拍发生器,为系统提供计时基准.在定时中断中,内核检查软件定时器和定时任务,并执行相应的回调函数.在本设计中TIM1已用于红外信号的编解码,为此改用TIM4来提供系统节拍,首先修改Atom threads内核文件AtomPort.c中的archInitSystemTickTimer()函数,使能TIM4,将分频系数设为256,计数值为250,在内部16MHz RC振荡器下,系统节拍为4ms/tick.其次,使能TIM4的溢出中断,并在TIM4中断服务程序中先清除标志位,然后调用系统节拍处理函数atomTimerTick().由于在中断内可能会产生任务切换,所以在进入和退出中断时分别调用atomIntEnter()和atomIntExit().
Atom threads系统启动后,先要进行MCU硬件初始化配置,然后通过atomOSInit()初始化系统和启动空闲任务,再调用archInitSystemTickTimer()使能节拍定时器,最后通过atomThreadCreate()创建应用任务.要给每个应用任务分配一个任务控制块,以保存任务切换时的上下文数据.
3.2 电能计量任务
电能计量任务主要是负责电量实时计量和电量数据保存.任务启动后,首先验证计量终端的校表参数是否完整正确.如果参数校验错误,则液晶提示错误并进入校表状态.如果参数正确,则根据参数初始化ATT7053后,任务开始定时读取计量脉冲计数,进行电量计算和定时保存.任务流程如图5所示.
图4 无线计量终端软件逻辑层次
ATT7053校表参数主要包括脉冲常数、功率增益、相位校正、小信号功率校正、电流电压转换系数等,除电流电压转换系数外,其他参数均要写入ATT7053.在校表流程中得到这些参数后,计算CRC16校验码,和参数一起保存在STM8L152的Flash中,在每次计量任务初始化时重新计算校验码,校验一致则进行电能计量,否则重新进行校表.
MCU通过SPI读取ATT7053,地址0x0D寄存器为有功能量寄存器,数值表示电能脉冲个数,单位为1/EC kWh(EC为校表时得到的脉冲常数),因此程序将该数值除以脉冲常数即可得到电能值.在计量任务更新电量时,检查当前电量是否大于已保存电量值0.01kWh,如是则将当前电量和当前系统时间保存到EEPROM中.
EEPROM有擦写次数寿命限制,因此程序分配多个存储位置作为电量保存用,并根据用电量单调递增的特点设计损耗均衡算法,在保存电量时平均使用各个存储位置,延长EEPROM的使用寿命.
在断电保存电量的设计中,利用了STM8L152的片上可编程电压检测器.该检测器可以编程设定一个电压阈值,在供电电压低于该值时触发中断.本设计中MCU供电电压为3.3V,电压检测器阈值选择2.85V,而STM8L152可以在1..65~3.6V范围内工作.由于电源回路特性,在断电时电压会缓慢下降,当电压下降到2.85V时,电压检测器触发PVD中断,MCU在中断服务中将当前电量保存到EEPROM,实现断电电量保存.
3.3 红外通信任务
红外通信任务负责收发红外数据,有初始化、监听接收、解码执行、编码发送4个状态.计量终端的红外通信以主从方式工作,平常处于接收状态,收到命令并解析正确后才进入编码发送状态,任务状态如图6所示.
图5 计量任务流程图
图6 红外通信任务状态图
初始化配置TIM1的通道1、2为捕获输入模式,在监听接收状态对红外接收引脚的电平进行脉宽测量.STM8L152的TIM1定时器通道1、2提供了边沿触发捕获功能,通道1还具备双边沿触发定时器复位功能.利用这些特性,配置通道1工作在下降沿触发,通道2工作在上升沿触发,设置双边沿复位定时器.这样当接收到红外信号时,通道1捕获寄存器保存高电平脉宽数据,而通道2捕获寄存器保存低电平脉宽数据,同时清零定时器计数值,开始下一个电平脉宽测量.使能通道2的DMA功能,将其设为burst模式.当触发捕获时,DMA自动搬移捕获寄存器数据到缓冲区,这样在整个红外接收过程中,无需MCU干预,极大提高了系统的实时性.
经过模式匹配和解码得到红外数据后,校验红外指令的校验码,如果校验错误则将数据丢弃并返回到监听接收状态,否则执行指令并将响应数据进行编码和封装,放入发送缓冲区,通过TIM3、TIM2级联控制,由TIM2输出通道驱动红外发射管.
3.4 无线通信任务
计量终端的无线通信采用CC1101作为RF收发器,它与STM8L152通过SPI接口连接,输出引脚GD0和GD2连接到MCU的IO口,作为收发状态的信号引脚.CC1101的配置寄存器数量多且互相关联,可以使用TI提供的软件工具SmartRF辅助配置,将其生成的寄存器值导出为H文件添加到项目中.为了方便对配置进行管理,寄存器值以结构体组织,在SPI写入CC1101时设置头字节的burst位,以寄存器连续地址访问.在完成初始化后,对FIFO进行读写实现无线数据收发.
通信协议采用SimpliciTI,它是一个基于连接的无线网络通讯协议,支持点对点和星型连接两种网络拓扑结构.协议移植工作主要是重写底层射频接口函数,在MRFI函数中调用SPI接口函数实现CC1101特定设置和状态读取.无线通信任务启动后先初始化协议栈,向底层注册通信处理回调函数,然后发送加入网络的广播请求,AP节点响应之后获得地址和网络信标,应用层程序就可以调用API建立连接,连接建立后,应用程序可通过SMPL API实现网络通信[7].
3.5 液晶刷新任务
液晶刷新任务负责驱动液晶,定时更新显示电量、电压、电流、功率以及通信状态等数据,这些数据由其他任务通过信号或队列发送给液晶刷新任务.根据液晶参数,配置液晶驱动器偏压比为1/3,占空比为1/4.LCD和RTC共用同一个时钟源,在配置LCD时钟信号时需要兼顾RTC时钟.此外配置LCD使用内部电源,调整LCD_CR2的对比度控制位来改变对比度,以使液晶显示效果最好.
本文设计的无线计量终端,已实际应用于我们设计的物联网能耗监测系统.在系统中,计量终端对用电设备进行电能计量和保存,实时监测异常用电情况,将电量数据通过无线网络发送给网关,网关通过以太网传输到服务器.经实际测试,计量终端计量准确可靠、通信响应快,整体运行情况良好.计量终端采用高集成MCU和专用计量芯片,在保证性能的同时简化了电路,降低了成本.此外,计量终端使用无线连接整体布线成本低,安装灵活,在物联网能耗监测领域有较良好的应用前景.
[1] 林志明,黄兴,张珂.建筑能耗监测平台构建及实现技术研究[J].节能,2014(1):4-7.
[2] 杨孝鹏.国内外建筑能耗监测平台建设调查与研究[J].工程与建设,2011(01):83-84.
[3] 谷立静,郁聪.我国建筑能耗数据现状和能耗统计问题分析[J].中国能源,2011(02):38-41.
[4] 钜泉光电科技(上海)股份有限公司.ATT7051A/53A用户手册(V1.7)[Z].[2013-03-21].钜泉光电科技(上海)股份有限公司,http://www.hitrendtech.com.
[5] STMicroelectronics Inc. RM0031: STM8L05xx, STM8L15xx, STM8L162x, STM8AL31xx and STM8AL3Lxx microcontroller family Rev.10 [M/OL]. 2012-10-01.
[6] TI Inc. CC1101 Low-Power Sub-1 GHz RF Transceiver Rev.I[M/OL].[2013-11-05].http://www.ti.com/lit/ds/ symlink/cc1101.pdf.http://www.st.com/st-web-ui/static/a ctive/en/resource/technical/document/reference_manual/ CD00218714.pdf
[7] TI Inc. Introduction to SimpliciTI Rev.B [EB/OL].[2008-12-01].http://www.ti.com/lit/ml/swru130b /swru130b.pdf.
Design of Energy Meter for Energy Consumption Monitoring System Based on IOT
ZHANG Xisheng, CEN Hongjie
(School of Electronic and Communication Engineering, Shenzhen Polytechnic, Shenzhen, Guangdong 518055, China)
In this paper, we propose a scheme of wireless energy meter to realize the energy consumption system. Main circuit of meter is composed of a MCU STM8L152, a metering IC ATT7053 and a RF receiver CC1101. Meter is operated by Atom threads RTOS and a porting of SimpliciTI wireless protocol form TI. The meter can measure energy consumed by electrical equipment, display voltage, current, power and energy on LCD, and record energy data that can be transmitted to gateway and server through 433MHz wireless network regularly. Energy meter reading can also berealized with infrared communication.
Internet of things; energy meter; STM8L152; ATT7053; Atom Threads
TP391.44;TN929.5
A
1672-0318(2015)01-0007-05
10.13899/j.cnki.szptxb.2015·01, 002
2014-11-12
*项目来源:深圳职业技术学院校级重点科研资助项目(2210K3010002)
张喜生(1965-),男,山西代县人,副教授,主要研究方向为软件技术、网络技术、移动互联技术.