基于STM32的电能质量检测技术研究近些年来,随着现代化工业设备和民用电器设备的普及,电力用户对供电质量的要求越来越高。特别是大量非线性电力负荷用到日常生活和工业生产中,使得公用电网中的电能质量问题愈显凸出,已经严重影响了电能供应质量。因此,根据国家电能质量检测标准,有必要对电网供电的各项参数进行测试,分析电网的电能质量。国内外已有不少方法对电能质量进行检测。但是传统的基于8、16位的单片机的电能检测设备存在处理速度慢,硬件结构不够完善等缺点。而当下比较流行的运用DSP处理器的电能检测设备,虽然其处理速度快、精度高,但是成本较高、功耗大,不利于大规模的推广[1]。本文提出一种基于STM32芯片以内嵌入式智能仪器模式设计的方案。STM32具有杰出的功耗控制及众多外设。设计时可充分利用其丰富的片上资源,大大节省了硬件的投资。利用STM2内置的A/D可对信号进行高速采集和处理,其自带的USB接口可对数据进行快速传输,以及通过电阻式彩色触摸屏TFT对相关数据进行实时显示等。系统具有设计结构简单、携带方便、低成本、低功耗、可靠性高等优点,适合实时现场操作,具有较高的应用价值。1电能质量检测设备总体设计方案本电能质量检测系统的主要设计思路是:根据国家制定的电能质量相关标准对系统进行设计、开发,系统框图如图1所示。通过高精度的模拟信号采集电路对公用电网的电压、电流进行采集;通过FFT算法对谐波进行检测分析,以及运用电能检测芯片对电压幅值、电流值、功率因素等一系列参数进行检测;最后将测试结果显示在液晶屏幕上,同时将数据存储在SD卡上,检测设备之间可以通过2.4G无线通信模块进行数据交换,还可运用USB通信接口传输实时的数据到上位机,以便上位机对数据进行存储和分析[2-5]。2硬件设计2.1STM32处理器介绍本系统采用的是由意法半导体公司推出的基于ARMCortex-M3内核的STM32F103RBT6增强型32位处理器。其工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强型I/O端口和联接到2条APB总线的外设。包含2个12位的A/D、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个IIC接口和SPI接口、3个USART接口、一个USB接口和一个CAN接口。STM32较市场上同种类的单片机具有价格低、功能强、使用简单、开发方便等优势。2.2电能数据采集模块设计对于前端电压电流的采集选用高精度的电压电流互感器。其体积小、精度高、全封闭、机械和耐环境性能好,电压隔离能力强,安全可靠且工作频率范围在20Hz~20kHz。运用互感器将大电压电流信号转换成小信号,再通过分压将其转换成STM32的A/D输入通道的合理电压输入范围(0~3.3V)。2.3电能数据处理模块电能数据处理主要分为2个模块,即谐波采集、分析模块和ATT7022B高精度三相电能专用计量芯片模块。是通过STM32处理器内置的A/D转换器对采集的信号运用FFT算法进行谐波处理和分析。该模数转换器是12位的逐次逼近型的,多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。A/D的结果可以左对齐或右对齐方式存储在16位数据寄存器中。其模拟看门狗特性允许应用程序检测输入电压是否超出用户的高/低阀值该设计是运用STM32内置A/D的同步规则模式将所测得的数据通过DMA传输,以节省CPU资源。ATT7022B是一款三相电能计量专用芯片,该芯片适用于三相三线和三相四线的应用。它集成了7路二阶sigma-deatlA/D,其中3路用于三相电压采样,3路用于电流采样,还有1路可用于零线电流或其他防窃电参数的采样、输出采样数据有效值,使用方便。它集成了参考电压电路以及所有包括基波、谐波和全波的各项电参数测量的数字信号处理电路,能够测量各相及合相包括基波、谐波和全波的有功功率、无功功率、视在功率、有功能量以及无功能量,同时还能测量频率、各相电流及电压有效值、功率因数、相角等参数[6-8]。ATT7022B内部集成了6路16位A/D转换器,采用双端差模信号输入[4]。电流通道有效值在2mV~1V的范围内线性误差小于0.1%;电压通道有效值在10mV~1V的范围内线性误差小于0.1%。所以电压取值在0.2~0.6V,电流通道取值在2mV~1V比较合适。最后通过芯片自带的SPI接口和STM32处理器进行通信,控制相关参数以及存储、发送数据。图2所示为电压电流信号输入典型连接电路。2.4电能数据储存及通信、显示模块为了实现电能检测参数的的存储,该系统采用了SD卡来存储数据。SD卡是一种基于半导体记忆的新一代记忆设备,被广泛应用于便携式装置上。其体积小、质量轻,但却拥有高记忆容量、快速数据传输、极大的移动灵活性以及很好的安全性。利用STM32自带的SPI接口,最大通信速率可达18kbps,每秒可传输2M字节以上的数据,对于系统的设计要求已足够了。在数据通信上,系统设计了两种通信方式。一种是现今较为流行的基于USB通信协议的USB通信方式,实现处理器与上位机的快速通信。另外一种是额外的无线通信方式,该通信方式也叫做2.4G频段无线通信,应用全球开放的ISM频段可免费使用。本系统采用的是NRF24L01无线模块,其最高工作速率为2Mbps,高效的GFSK调制,抗干扰能力强可以方便实现2个电能检测设备之间的数据交换、传输。系统采用2.8寸TFT彩色电阻式液晶屏,其屏幕分辨率高(320×240)、体积小、功耗低、寿命长,能够清晰的显示所需要的数据。3系统软件设计3.1软件设计平台及构成系统设计采用RealViewMDK3.80A为开发平台,用于编写调试STM32代码。系统软件设计包括主程序、数据采集存储、数据通信、按键设置及液晶显示等模块。系统软件总体设计流程图如图3所示。3.2电能数据采集及处理分析设计3.2.1谐波的测量、分析根据国家规定的谐波测量方法,为了区别暂态现象和谐波,每次测量结果可取3s内所测量的平均值。采用式(1)计算:电流的相关计算以此类推,通过这些参数对电能谐波进行分析,检测是否合格。3.2.2其他电能检测参数测量通过ATT7022B芯片内置的24位DSP数字信号处理,来获得有功功率、无功功率、视在功率、电压电流有效值、功率因素和频率等电能参数。4测试结果与分析根据我国规定的谐波测量方法,测试取0~19次谐波[9]。通过系统输出值与实际幅值的对比,若在Uk≥1%UN和Uk1%UN的情况下,即为允许范围内,符合国家对B级谐波测试仪器的相关精度的要求。其他电能测试结果也可按国家标准给定的精度范围进行逐项计量。经实验本系统的数据通信和彩色液晶显示也满足实用要求。通过测试结果表明,系统测试结果准确、精度较高,完全符合电能检测仪器的相关要求。5结束语本文介绍了基于STM32的便携式电能质量检测设备的设计过程及测试结果。运用的STM32处理器拥有丰富的片上资源,内置的A/D转换芯片、SPI通信接口、USB通信接口以及无线通信模块,极大的简化了系统的硬件设计。系统具有功耗低、携带方便、操作便捷、测量精度较高等优势,采用USB通信和无线通信两种通信模式,使得数据的传输多样化及较强选择性。彩屏液晶显示使得操作人员对结果一目了然。在电能检测市场上,鉴于本系统的诸多特点,将会有十分广阔的应用和发展前景。、基于STM32电力数据采集系统的设计引言我国经济的高速发展带动了各行业对电力的大量需求,因此,迫切需要对电力供应进行科学的管理,电力数据采集系统作为电力供需管理的基本环节,发挥着重要作用,电力系统的发展对电力数据采集系统的精确性、实时性以及可靠性都提出了更高的要求。传统的电力数据采集系统[1]受限于有限的存储空间和通信接口,存在精度不高、实时性差、采集信息量小等缺点,已无法满足实际的电力系统调度与管理需要,本文提出的基于STM32的新型电力数据采集器充分利用了STM32丰富的片上资源,大大节约了硬件投资,利用STM32具有快速采样的高性能ADC、先进的电源及时钟管理、双看门狗等功能,从而大大增强了系统的实时性与可靠性,精度显著提高,同时功耗大为降低1总体设计方案本系统由模拟量与开关量采集模块、通讯模块以及上位机人机交互模块组成,系统框图如图1所示。首先电压、电流等模拟信号经信号调理电路调理后,经模数转换器ADC转换为数字信号,再由STM32进行数据处理;开关量信号则通过I/O口输入,STM32通过中断或查询方式进行读取[2]。电力数据经采集处理后,由液晶屏进行显示,同时进行储存以便对历史数据进行查询。为了使数据显示更加直观以及远程监控,通过RS485与上位机通信[3]。2系统硬件设计2.1STM32片上资源本系统采用了ST公司基于Cortex-M3内核的32位增强型闪存微控制器STM32F103ZE作为控制核心,Cortex-M3内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求[4]。该芯片最高工作频率可达到72MHz,具有512K字节的闪存以及64K字节的SRAM,丰富的片上资源大大简化了系统硬件,同时大大降低了系统功耗。STM32F103ZE12位ADC为逐次逼近型模数转换器,各通道的转换可以单次、连续、扫描或间断模式执行,转换结果以左对齐或右对齐方式存储在16位数据寄存器中[5]。通道采样时间可编程,总转化时间可缩减到1μs,此外,多种转换模式供选择,支持DMA数据传输。本系统采用定时器触发的同步注入模式,能够对多路信号进行同步采样。STM32F103ZE具有5个USART串行通信接口,内置分数波特率发生器,发送与接收共用可编程波特率,最高达4.5Mbit/s,数据字的长度、停止位均可设置。此外,灵活的静态存储器控制器FSMC能够通过同步或异步存储器与16位PC卡接口相连,便于外扩存储器和液晶显示屏。2.2数据采集模块设计数据采集包括对于模拟量与开关量的采集两部分。1)模拟量数据采集由于电力数据采集信号为高电压信号和大电流信号,因此,首先要将其调理为满足STM32F103ZEADC输入范围的电压信号,以便进入ADC转换为数字量。各相电流信号经电流互感器和电流变送器,各相电压信号则通过电压互感器和电压变送器变换为低电压信号,输入到STM32的ADC模拟输入通道,其幅值范围为0~3.3V。本系统采用同步注入模式配置ADC1的注入组通道采样Ua,Ia,配置ADC2的注入通道采样Ub,Ib,从而实现Ua/Ub及Ia/Ib的同步采样。又由于Ua+Ub+Uc=0,Ia+Ib+Ic=0计算出Uc,Ic。定时器2的TRGO事件触发A/D转换,1.5周期的采样时间,可以达到1μs的转换时间,数据右对齐格式进行存储,使用DMA数据传输[6],不需CPU干预,即可将ADC1和ADC2存储在寄存器ADCJDRx(x=1,2)中的转换数据快速存放到指定区域。2)开关量数据采集STM32F103ZE的I/O口都可以配置为开关量输端口,并且通用的I/O可以配置到16个外部中断线上。开关量输入电路如图2所示。开关量信号由IN端口输入,电容C与电阻R构成一阶低通滤波器滤除高频噪声,减小信号的毛刺,采用光耦合器TLP521实现现场开关量与STM32间的电气隔离,提高电绝缘和抗干扰能力[7]。2.3数据存储与显示模块设计为了实现电力数据采集历史数据的查询,系统扩展了512MBit的NANDFLASH,选用了ST公司的NAND512-A芯片,每页有512+16个字节,每块有16K+512个字节,顺序存取时间为50ns,页编程时间为200μs。STM32的静态存储器控制器FSMC可以把外部存储器划分为固定大小为256M字节的4个存储块,其中存储块2和3可用于访问NANDFLASH设备,本电力数据采集系统利用FSMC的存储块2连接芯片NAND512-A。系统采用5.6英寸的彩色液晶显示器实现本地实时监控,并提供良好的人机交互功能。利用STM32F103ZE的FSMC模块控制液晶显示