仇亮亮, 田秀霞
(上海电力学院 a.自动化工程学院, b.计算机科学与技术学院, 上海 200090)
基于ARM智能计量终端的设计
仇亮亮a,b, 田秀霞b
(上海电力学院 a.自动化工程学院, b.计算机科学与技术学院, 上海 200090)
针对传统用电计量在效率、精度、交互性等方面的弊端,引用目前应用广泛的嵌入式技术,设计了基于ARM嵌入式的智能计量终端系统.在硬件设计上主要是基于嵌入式系统的S3C2440处理器和ATT7022电能检测芯片,软件设计上以Linux系统为基础,采用模块化设计程序,通过交叉编译完成对用电信息控制管理和信息交互.实验结果表明,该系统能精确计量和实时监测电能信号,符合设计要求.
嵌入式ARM; 电能计量; ATT7022计量芯片
目前,供电公司以及电力用户之间的联系交互越来越密切,但传统的电能计量终端多为机械式、电子式电能表,只能简单地记录用户的用电量,抄录方式不仅消耗大量的人力物力,而且数据处理能力有限,无法准确分析用电信息[1],电力的控制管理和资源优化的发展远远不足,用电浪费日趋严重.
智能计量终端既能够为供电公司及时监测电能数据,完成电力资源的优化配置,又可以为用户提供更全面的用电服务.根据实时电价和用电量,用户可以根据实际情况提高用电效率,减少成本[2].
西方发达国家通过几十年的发展,对计量终端的功能要求更加具体,建立了高效智能的电能计量系统,极大地提高了电力用户和电力部门的资源利用率,社会和环境效益也得到了显著改善.但相对来说,我国智能计量终端的研究与推广起步较晚,核心技术缺失,研发能力不足,导致产品整合能力远低于国际水平.随着国家智能电网建设的提出,对计量终端的研究和大规模普及提供了良好的契机[3].
作为智能电网关键环节的计量终端系统,尤其是在当前用户数量多、分布广泛、计费方式变化、计费准确度较高的情况下,计量终端必须更加智能、全面才能满足当前建设智能电网的要求[4].随着用电水平的不断提高,智能化的计量技术将会有极广的应用范围,涉及供电部门,工业生产、网络化小区、智能电器等各个行业,且与人们的生活息息相关[5].
根据系统功能需求分析,智能计量终端需要强大的数据采集能力、处理功能和人机交互能力.当前可选用的方案包括:基于采集卡+工控机的设计方案;基于虚拟机的设计方案;以单片机为核心的设计方案;基于DSP+MCU的设计方案;基于电能计量专用芯片+嵌入式ARM处理器的设计方案[6].
通过对比分析各个设计的优劣,最终决定选用了基于专业电能计量芯片ATT7022+嵌入式核心处理器S3C2440的总体方案.
从本质上来说,ARM处理器是一种性能优越、外围扩展模块简单、片内资源丰富、功能强大的单片机,相较于单片机的微控制器,ARM的最大优势就是引入了Linux操作系统,在操作系统基础上直接进行电能计量的开发,程序不需要从零编写,缩短了系统的研发时间.而且Linux系统可以设置权限机制,不会因为用户操作失误更改系统的内核,避免了系统崩溃造成的计量错误,提高了软件运行的稳定性和高效性.同时,Linux系统内置有TCP/IP协议栈,支持网络通讯,改变了传统费时费力的抄表方式,通过以太网实现了用电信息的实时互动.
与其他计量芯片相比,ATT7022芯片内部主要有16位∑-△A/D转换技术和24位DSP技术[7],可以在片内自动计算电压、电流、功率等参数,极大地优化了软件设计流程,减少了程序开发的时间.此外,该芯片可以通过SPI总线直接由通信端口读取,无需进行任何复杂运算,优化了系统硬件电路,大大提高了计量模块的运行效率.
按照功能需求设计架构,整体系统选择基于Linux系统的ARM处理器,在控制器外围扩展了功能模块,包括电流电压采样模块、电参数计量模块和LCD显示模块等.系统总体方案结构如图1所示.
图1 系统总体方案
硬件电路设计主要利用电压互感器和电流互感器的前端采集电路,将采样到的电流电压值处理为符合电能计量芯片ATT7022运算要求的电信号,内部运算数据获得有效电流值、电压值和功率值,通过SPI接口与处理器进行连接.
基于Linux操作系统的软件开发,首先需要定制和移植嵌入式系统,建立PC主机与ARM目标机的交叉编译环境,配置内核文件并加载,通过USB口、串口、网口等多种方式进行程序移植[8];其次需要设计智能计量终端的应用程序,重点设计采集模块、校正参数和LCD显示模块等,将应用程序与嵌入式Linux系统良好地结合起来.
根据计量终端的总体方案设计,硬件电路主要包括ARM核心控制模块和信号采集与计量模块.
微处理器是整个计量终端的核心,同时还需要存储器扩充存储容量,需要电源电路供电,需要复位电路确保系统能够稳定可靠地工作.考虑到时间和实验条件的限制,系统采用基于ARM9的Mini2440开发板,ARM系统结构如图2所示.
图2 ARM结构示意
ARM采用基于ARM920T内核的S3C2440处理器为核心,自带GPIO口、SPI总线、UART口、LCD控制器等接口,存储方式多样,内有电源、复位等芯片,供电稳定,以保证系统的正常运行,同时拓展LCD显示器、串口、USB接口、网络接口等诸多外设接口,便于开发者进行基于ARM的开发工作.
三相电能计量芯片ATT7022自带电源管理和时钟控制,并且内部的ADC模块包括3路电压输入信道,3路电流输入信道,分别与电流采样电路和电压采样电路连接,信号采集后,由内部DSP数据运算后得出电流电压等参数,最后通过SPI口读取.主要电路设计如图3所示.
在ATTT022及其外围电路中,V1P/V1N,V3P/V3N,V5P/V5N引脚主要检测用电器三相电流信号;V2P/V2N,V4P/V4N,V6P/V6N引脚主要检测用电器三相电压信号.通过SPI接口实现与ARM处理器之间的通信,其主要由复位信号线RESET,状态标志位SIG,片选信号线CS,时钟信号线SCLK,串行输入信号线DIN,串行输出信号线DOUT组成.
图3 信号采集与计量主要模块电路设计
在电流采样和电压采样电路中,电压通道和电流通道的正常工作电压分别为10~1 000 mV和2~1 000 mV,并根据选择的电压互感器和电流互感器的型号转换电信号,同时设置了RC低通滤波器以防芯片在数据运算时出现频率混叠失真的现象.
工作时,采样电路分别将6个电压信号(3个电压通道和3个电流通道) 送入计量芯片内,ATT7022对用电器使用时的电压和电流信号进行处理,参数校验正确后将得到的数据通过SPI总线与控制器通信;设置周期,实时更新参数输出寄存器数值,准确接线就能够完成读写操作,实时显示运算结果并输出,并将处理数据保存.
软件平台包括PC机和ARM的嵌入式系统.首先在PC虚拟机上选择Fedora14操作系统,并安装arm-linux-gcc-4.4.3交叉编译器,在ARM中移植Linux系统,通过串口线、USB下载线和网线进行数据传输与通信;然后选取Supervivi烧写开发板的Nor Flash和Nand Flash,运行引导加载Bootloader,既可以将软硬件系统初始化,加载启动操作系统,同时又提供了PC平台与ARM平台之间的文件信息的传输和交互.ARM资源有限,根据系统的功能需求,定制内核时需要打开文件“config_mini2440_p43”并修改配置,然后才能编译、烧写内核.软件开发环境搭建成功后进行运行测试.其主要流程如图4所示.
图4 嵌入式软件开发流程
在Linux系统开发环境中,首先在PC端设计编写应用程序,达到系统所需功能要求,然后通过USB接口烧写代码,经交叉编译器调试程序.其中主要进行了电能计量模块、人机交互模块的应用程序设计,用C语言编写相应的程序,以满足系统的功能需求.整个系统的程序模块示意如图5所示.
由于ATT7022内部集成有DSP模块,可以自动计算所需计量的电流、电压、电功率等参数值,无需参数计算的编程,所以电能计量模块的程序设计主要包括采集模块与MCU之间进行数据读写的SPI程序、硬件复位程序、清除校表寄存器参数程序、初始校表寄存器程序、读计量寄存器参数程序、写校表寄存器程序等.
图5 系统主程序流程
在ATT7022上电工作后,先进行初始化操作,设置校正寄存器的参数,然后将计量终端连接至三相电能表检定装置,与检定装置内部的标准表校正,计算得到实际测量的误差值,然后写入校正寄存器中,对测量值进行误差校正.电流、电压采样信号校正后被送至ATT7022内部,由DSP运算模块计算完成后,数据通过SPI总线程序,读写ATT7022芯片内部的参数,再将读取到的数据存储至Nand Flash中,经过预定延迟程序后循环读取参数.电能计量流程如图6所示.
图6 电能计量流程
LCD显示程序设计是将动态字符转换为机器可读的十六进制C代码,显示屏能够自动刷新数据,包括定义LCD相关数据变量、控制端口、功能模块、电源管理引脚使能和显示主函数.
经过硬件设计和软件开发,在实验室环境下安装调试程序.为了检测电能计量模块检测到的参数值是否准确,我们采用三相电能表检定装置对计量终端进行检定,与智能计量终端内部的程序校正程序进行比对.选择了1 500 W热水壶、笔记本电脑和热风枪3种用电器进行测试,实验数据如表1所示.
表1 不同用电器工作时的电参数值
在实验室条件下,测量有一定的误差,但由检定结果可知,用电器电流和电压值的误差在可接受范围内.
通过对智能计量终端的系统分析可知,误差出现的原因可能有以下3个方面:一是采样电路中电压和电流通道的电气性能不同,可能引起相位差;二是电压和电流互感器本身的电信号问题可能造成测量误差;三是计量芯片的性能造成的误差.
本文研究的嵌入式ARM计量终端是基于智能电网发展的条件下设计的,本方案充分利用了电能计量芯片和嵌入式系统的特点,实时监测电网中的电流、电压、电能等参数,更有利于处理用户用电数据、整理用电信息、配置电力资源,可以满足未来智能电网建设的需求.
[1] 杨韬.基于ARM9的高精度智能电表系统的设计[J].低压电器,2012(10):56-58.
[2] 吕小强,张涛,白燕羽,等.基于ARM和ATT7022B的智能电表系统[J].中国测试,2012(1):94-96.
[3] 马骁,梁全东.智能电表的现状及发展趋势[J].能源与节能,2014(2):62-63.
[4] 静恩波.基于嵌入式系统的智能电表设计与研究[J].低压电器,2011(3):26-30.
[5] 顾兴琛.嵌入式技术在智能电表系统中的应用[J].科技广场,2013(12):67-69.
[6] 徐新源.基于S3C2440A+ATT7022B的多路多功能电力监控仪研究[D].青岛:山东科技大学,2013.
[7] 薛振华.基于GPRS的电能量采集及负荷管理系统的设计[D].北京:华北电力大学,2012.
[8] 殷荣庆.嵌入式Linux系统的探索与设想[J].合肥师范学院学报,2009(6):41-44.
DesignofIntelligentMeteringTerminalBasedonARM
QIU Lianglianga,b, TIAN Xiuxiab
(a.SchoolofAutomationEngineering,b.SchoolofComputerScienceandTechnology,ShanghaiUniversityofElectricPower,Shanghai200090,China)
In order to overcome the disadvantages of the traditional power measurement in the aspects of efficiency,precision and interaction,and based on the embedded technology widely used at present,the intelligent terminal system based on ARM is designed.The hardware design of the system is mainly based on the embedded system of S3C2440 processor and ATT7022 power detection chip.The software design is based on Linux system,through modular design program and cross compiling to complete the power consumption information control management and information interaction.It is proved through experiment that the system can accurately measure and monitor the power signal in real time,and can accord with the design requirement.
embedded ARM; electric energy metering; ATT7022 measuring chip
10.3969/j.issn.1006-4729.2017.05.017
2017-03-09
田秀霞(1976-),女,博士,教授,河南安阳人.主要研究方向为数据库安全,隐私保护.E-mail:xxtian@shiep.edu.cn.
国家自然科学基金(61532021);上海市科学技术委员会委地方能力建设项目(15110500700).
TM933;TP18
A
1006-4729(2017)05-0495-05
(编辑 胡小萍)