基于ATT7022E和STM32的电力数据采集系统
2021-06-22于广高照玲吴桐周国顺
于广,高照玲,吴桐,周国顺
(大连东软信息学院智能与电子工程学院,辽宁 大连 116023)
在电力设备中或在电力系统的运行中,需要对电力数据,如三相电压、三相电流、功率等进行测量和远距离传输,同时电气设备和电力系统的不断发展也对电力数据的测量精度和传输的实时性提出了更高的需求[1]。在电力系统和电气设备中除了能对电气参数进行精确测量外,还需要能实现电力系统的电力测量数据的通信传输,而这些都依赖于对电力系统电气参数的实时和准确采集[2]。
1 设计方案
目前国内外电力采集系统和电测仪表有利用交流电整流后的直流平均值和交流电有效值的对应关系,采用51单片机通过采样数据进行简单的计算得到电力数据,优点是价格低廉、实现简单,缺点是测量精度差。有进行电力参数检测算法研究,利用高性能的数字处理器(DSP),通过算法对采样数据进行计算处理得到电力数据,该方案优点是测量精度高,缺点是实现复杂。而采用专用电能计量芯片和微处理器相结合的实现方案,集合了51单片机和DSP两者的优点,简单而且高精度地实现电力数据实时采集和传输。
文中电力数据采集系统主要由主控芯片STM32和两片电能计量芯片ATT7022E、电压电流数据采集模块、串口通讯模块及电源模块等部分组成,如图1所示。采用的多功能专用电能计量芯片ATT7022E,能够高精度地测量三相三线或者三相四线制模式下的三相交流电和单相交流电的电压电流有效值、有功功率、无功功率、视在功率和功率因数等[3]。
图1 系统结构框图Fig.1 System structure diagram
ARMV7架构的ARM Cortex-M3内核的STM32主控芯片,具有丰富的片上资源和强劲的性能,可有效地进行电力数据的处理,存储和通讯传输[4]。电压电流数据采集模块,将采集到的电压电流数据传送给ATT7022E芯片,经计算得到被测电压、电流、有功功率、无功功率及功率因数等电力数据。STM32完成数据的处理、存储,并通过串口通讯模块将数据发送给上位机或者其它控制器[5]。
2 系统硬件设计
2.1 电源模块设计
2.1.1 5 V输出电源模块设计
采用固定输出版本的德州仪器(TI)生产的3 A电流输出降压开关型电压调节器,完成12 V转5 V的电源模块设计,原理图如图2所示。
图2 输出5 V电源模块原理图Fig.2 Schematic diagram of output 5 V power module
LM2596是降压型开关电压调节器,其工作在150 kHz固定频率,内含1.23 V基准稳压器,且具有完备的电路保护功能。应用该芯片仅需很少的元器件,便可搭建成直流电压转换电路。开关型电压调节器LM2596,因开关管工作在开关状态,而非工作在线性区,故工作效率高,损耗小,温升少,因此不用额外增加散热装置,同时具有良好的负载调节特性。
2.1.2 3.3 V输出电源模块设计
3.3 V电源模块的主控电源稳压器,选用最大输出电流为1 A的LM117低压差线性稳压调节器。因其价格便宜,尺寸小,故常用3.3 V固定电压输出版本的LM1117-3.3作为5 V转3.3 V的单片机的电源芯片。输出3.3 V电源模块电路原理图,如图3所示。
图3 输出3.3 V电源模块原理图Fig.3 Schematic diagram of output 3.3 V power module
2.2 电压电流采样输入设计
2.2.1 电压采样电路设计
采用电阻分压网络实现的电压采样电路,具有体积小、成本低廉的绝对优势,但不能实现电气隔离。因此电阻分压网络较适合三相四线制及三相三线制接地点不好选取的场合。而采用电压互感器实现的电压采样电路,具备强弱电的电气隔离功能,但体积大、成本高。
文中采样电路设计方案采用电阻分压与电流互感器相结合的方式来实现电压采样,该实现方式兼顾了电阻分压采样的简单和互感器电路隔离功能二者的优点。被测强电电压通过电阻分压与电流互感器相连,经过互感器隔离转换成同相同频的交流电流信号,经由采样电阻转换成差分电压信号,进行阻容低通滤波后输出给ATT022E芯片[6],电压采样电路如图4所示。
图4 电压采样电路Fig.4 Voltage sample circuit
由于电压采样输入端为强电信号,采用电阻进行强弱电的转换,电压回路采样信号输入采用由7个1206封装的27 kΩ的贴片电阻组成的总阻值为189 kΩ的电阻进行分压和电压电流转换。
采用2 mA/2 mA电流型电压互感器(差分方式)进行电压采样,电流互感器二次侧信号经由电阻转换为电压信号2 mA×60 Ω=120 mV,该信号经过滤波后接入ATT7022E的正负模拟输入引脚(电压通道),该值在芯片要求的电压采样通道0.2~500 mV的采样范围内,线性度较好[7]。三相电压电流采样使用该种采样方案,可使弱电与强电间进行有效的电气隔离,使电路板具有良好的安全性和抗干扰性能。硬件设计中,输入接口可以按电压大小进行选择接入,如果测量的是AC 380 V线电压,采样电路输入端接P10的1和3引脚;如果测量的是AC 220 V的相电压,采样电路输入端接P10的1和2引脚,这样电流电压互感器及电能计量芯片进行电气数据的处理时,线电压和相电压便可以进行统一处理。
2.2.2 电流采样电路设计
电流采样电路采用差分输入方式,电流采样直接采用电流互感器进行电流采样,经过精密电阻转换成500 mV以内的差分交流电压信号,再经过滤波接入ATT7022E正负模拟输入引脚[8]。设计中选用10 A/10 mA,0.2%精度的电流互感器,采样电阻选用5.1 Ω的精密电阻,采样电路如图5所示。当额定电流10 A输入时,采样电阻得到的电信号为102 mV,当为额定电流的1%时,采样信号为1.02 mV,若为最大极限电流50 A时,采样信号为510 mV。根据ATT7022E的规格书,电流采样信号线性误差在小于0.1%范围内,从而保证了电力数据采集系统的精度要求。
图5 电流采样电路Fig.5 Current sample circuit
2.3 ATT7022E芯片计量电路设计
电力数据采集系统采用钜泉光科技(上海)股份有限公司推出的多功能高精度三相电能专用计量芯片ATT7022E,做为电力数据计量芯片。该计量芯片为44个引脚LQFP封装型式,芯片内部集成7路19位的ADC,可以实现三相电的电压电流有效值、有功功率、无功功率、视在功率、功率因数和电能质量的监控和测量,外围电路如图6所示。
图6 ATT7022E芯片外围电路Fig.6 Peripheral circuit of ATT7022E
2.4 MCU与计量芯片及上位机串口通讯模块设计
电力数据采集系统采用的是意法半导体公司的片上资源十分丰富的32位的STM32F103RBT6作为核心处理器[9]。ATT7022E内部集成一个全双工、高速、同步的通信总线,并且只占芯片4个引脚,控制线和数据线各2条:CS/SCLK/DIN/DOUT[10]。ATT7022E与外部MCU的SPI通讯接口典型接线,如图7所示。
图7 MCU与SPI通信模块电路Fig.7 MCU and SPI communication module circuit
为了克服SPI传输信号线被干扰,在信号线上串联一个10 Ω电阻,并在信号线输入端并上一个10 pF的贴片电容,来组成一个低通滤波器,用来克服SPI接口上信号的高频噪声干扰[11]。
主控器与上位机通讯采用MAX3232芯片实现电平转换,通过RS-232接口进行串口通信实现电力数据传输,电路如图8所示。
图8 MCU与上位机通信模块电平转换电路Fig.8 Voltage conversion circuit of MCU and upper machine communicatioin module
3 软件部分设计
文中系统软件部分包含以下几个部分:单片机和ATT7022E的SPI通讯、ATT7022E电气数据测量并校准、MCU对ATT7022E电气数据的读取和进行数据处理,并能根据设定好的通讯协议,将需要的电力数据发送给其它控制器。
3.1 单片机和ATT7022E的SPI通讯
ATT7022E芯片含有SPI串行通信接口,可实现与MCU间的高速数据传输,传输速率可达10 Mb/s。SPI通讯格式是相同的,8位地址、24位数据,MSB在前,LSB在后。通讯开始时SCLK为低电平,每完成一个寄存器的读或写操作,CS均需动作一次。在时钟信号的下降沿,MCU从DIN线写入数据给芯片ATT7022E。在时钟信号上升沿时,单片机从其读取数据。
3.2 读取ATT7022E电气数据并校准
校表是对各相电压增益、电流增益、功率增益、相位等进行的校正补偿。ATT7022E软件校表时,电压、电流校正,启动电流设置,断相阈值电压设置,没有顺序上的要求[12]。而进行功率校正,需先进行电压电流校正,且要对合相能量累加模式及高频输出参数进行设定后,才能进行功率校正。下面详细介绍下220 V/20 A规格输入的校表实现过程[13]。
3.2.1 电压电流采样及ADC增益的设定
电力数据采集系统在220 V电压/20 A电流输入下,A相电压采样采用差分输入,其得到的采样信号为2 mA×30 Ω×2=0.12 V信号输入;A相电流采样,采用差分输入为2 mA×5.1 Ω×2=0.0204 V信号输入。采样通道的ADC放大倍数,可以通过ADC增益选择寄存器来控制设定。参比电压Un取样信号乘以放大倍数后等于0.22 V时,额定电流Ib取样信号乘以放大倍数后等于0.05 V时,可获得良好的线性特性,故ADC增益设定为2。
3.2.2 电压电流校正过程
电压电流读取寄存器值除以213,即为电压电流测量值,在读取寄存器值前,需要对电压电流测试数据进行校正。电压电流校正相对于功率增益和相位校正是独立的,电压电流校正,测试计算出一个变换系数将采样电压变换为标准电压值。以A相电压电流校正为例来说明该计量芯片的校正过程:MCU通过SPI口读出ATT7022E测量电压有效值寄存器0x0D的电压值,即电压通道采样电压为Vu,经由有效值计算:Urms_a=Vu×210/223=Vu/213转换为测量电压的有效值。标准表上读出实际输入电压有效值为Ur_a,电压增益为Ugain_a;电压校正过程为
将计算的增益值写入对应电压增益寄存器,比如计算值为0x51B4,将0x51B4写入寄存器0x97,即完成了A相电压校正,电压B,C相校正方法与A相相同。将220 V和380 V两个常用的额定电压测量通过不同接入端子接入,但共用一套采样电路,使两个等级的额定电压用相同的采样信号传入电能计量芯片,从而使软件只经过一次校准便可适用于220 V和380 V两个额定电压等级的校准。额定电流输入时,读电流寄存器值Vi,有效值计算:Urms_a=Vi/213/N,其中电流系数N的确定依据为:当额定电流对应采样信号为25 mV时,则N=30/Ib;当额定电流对应采样信号为50 mV时,则N=60/Ib。电流校正值与电压校正值的计算过程基本相同,只是对于电流校正,软件设计中通过分段校正的方式,在不同的测量量程内,依据采样信号的大小进行校正参数的选择,从而实现不同电流的测量精度,尤其小电流的测量精度。
3.2.3 功率增益校正和相位校正
ATT7022E功率测量校正,仅需对有功功率校正,无功功率和视在功率取同一校正系数填入功率增益寄存器中即可。ATT7022E在三相电连接成三相三线制模式,可以根据三相三线制电能计量的两元件测量方法来计算,其中的B相采集通道可不参与合相的功率计量,B相通道可单独进行其它电气数据测量,只需A相和C相参与电能测量即可。功率增益校正步骤如下。
设置高频脉冲系数:
式中:G为ATT7022E增益,其值为1.163;Vi为电流通道采样电压,V;Un为参比电压,V;Ib为参比电流,A;EC为电表脉冲常数,IMP/(kW·h)。
计算功率系数:
式中:HFConst为寄存器写入的高频脉冲系数。
功率增益校正是在功率因数为1的条件下和额定电流条件下进行校正,校正公式为
式中:Pgain为功率增益校正值;err为电能误差。
相位校正是在功率因数为0.5L的条件下进行,校正公式为
式中:PhSregpq为相位校正值。
将计算得到的功率增益进行补码还原处理,如果Pgain≥ 0,则
如果Pgain< 0,则
将计算的值写入功率增益寄存器,即完成功率增益补偿校正。MCU从电能计量芯片ATT7022E能够读取有功功率、无功功率、视在功率和基波有功功率。既可以得到各分相的值,也可以得到三相总的功率值,功率为有符号的量,寄存器以补码形式存放。读取功率寄存器值,将其还原为原码,乘以功率系数,分相功率乘以功率系数K,三相的总功率乘以2倍的功率系数,即乘以2K,所得到的即为实际功率。校表结束,需对校表中所得的校正数据进行存储和备份,将校表数据写入计量芯片,计量芯片才能得到准确的测量结果,用于MCU对测量数据的读取和传输。
4 串口通讯
电力数据通过串口进行通讯传输,系统采用串口通信,实现了传输效率快、准确性高、造价低的优点。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验位设定,波特率设定为115 200,数据传输报文格式如下。
4.1 上位机报文格式定义
上位机对MCU传输的有功、无功、视在功率、电压电流有效值进行实时查询操作。报文格式定义如表1所示。传输校验码,采用异或算法进行校验,校验范围为从通讯序列号起始字节,到校验码的前一字节间的数据,将其按位进行异或操作,将其结果高低位各用一个字节ASCII表示,高4位在前,低4位在后。如查询的有功功率的报文格式为:0x01 0x30 0x31 0x41 0x54 0x01 0x04 0x04。其中0x01代表报头;0x30 0x31为通讯序列号;0x41 0x54为命令类型,表示查询的为有功功率;0x01 0x04是校验码,尾部0x04是结束码。
表1 上位机报文格式Tab.1 Host message format
4.2 下位机报文格式定义
下位机对测试的电力数据进行上传操作。下位机报文格式定义如表2所示。
表2 下位机的报文格式Tab.2 Slave message format
例如:上位机查询有功功率,下位机回复:0x01 0x30 0x31 0x41 0x54 0x00 0x00 0x00 0x00 0x01 0x04 x04,上位机从中得到4 bytes有功功率数据进行处理显示。
5 实验结果
输入和输出三相电压电流测试结果验证,为实现输入输出电压可调,将三相调压器(三相自耦变压器)接入380 V三相交流电。用标准表监测,调整得到需测量验证的输出三相交流电电压。投入电子负载,为了更好地验证在测试范围内的电流测量结果,实验中将检测电流值的互感器输入端缠绕5圈,即将实际电流放大了5倍进行电流测量传输[14]。测试方案测试验证得到输入端A相电压电流测试结果,如表3所示。
将三相电压接入三角形连接的阻容负载,来验证功率测量结果。标准表及高精度功率分析仪测量电压标准值和电流功率值,线电压为380 V(相电压为220 V),线电流为0.593 A,有功功率360 W,无功功率150 var,视在功率390 V·A,功率因数0.920。测试方案测试验证中,电流检测互感器输入端也是缠绕5圈,即放大5倍,以此来满足电流量程测试验证。输入端ABC三相和输出端ABC三相总功率测试结果如表4所示。
表4 总功率试验结果(带角形连接负载)Tab.4 Experiment results of total power(the load with delta connection)
从实验结果来看,测量结果接近基准值,误差很小,电压电流测量精度满足0.5级,功率测量精度满足1级,满足电力设备系统中的电力数据采集精度和国家电网对智能电表技术标准[15]。
6 结论
文中提出了一款基于STM32和ATT7022E的电力数据采集系统,能够实时准确地采集三相电网多种电力数据。其采集数据容量大、软件流程设计简单、传输效率高,克服了传统电力数据采集系统的实时性差、存储容量小、软件算法复杂等缺点。详细阐述了各模块的硬件电路设计及其设计原理和器件参数选择的理论依据,同时,也详细阐述了软件设计及其功能实现,包括测量数据的读取和校准。该款高实时性、高稳定性、高精度的电力数据采集的解决方案,适用于电力设备中的电气数据采集系统,同时对三相智能电表和国家电网的电能计量方案也具有一定的参考价值。