引言
传统的电力数据采集系统受限于有限的存储空间和通信接口,存在精度不高、实时性差、采集信息量小等缺点,已无法满足实际的电力系统调度与管理需要,本文提出的基于STM32的新型电力数据采集器充分利用了STM32丰富的片上资源,大大节约了硬件投资,利用STM32具有快速采样的高性能ADC、先进的电源及时钟管理、双看门狗等功能,从而大大增强了系统的实时性与可靠性,精度显著提高,同时功耗大为降低。
1、总体设计方案
本系统由模拟量与开关量采集模块、通讯模块以及上位机人机交互模块组成,系统框图如图1所示。首先电压、电流等模拟信号经信号调理电路调理后,经模数转换器ADC转换为数字信号,再由STM32进行数据处理;开关量信号则通过I/O口输入,STM32通过中断或查询方式进行读取。电力数据经采集处理后,由液晶屏进行显示,同时进行储存以便对历史数据进行查询。为了使数据显示更加直观以及远程监控,通过RS485与上位机通信。
图1 系统原理
2、系统硬件设计
2.1、STM32片上资源
STM32F103ZE12位ADC为逐次逼近型模数转换器,各通道的转换可以单次、连续、扫描或间断模式执行,转换结果以左对齐或右对齐方式存储在16位数据寄存器中。通道采样时间可编程,总转化时间可缩减到1μs,此外,多种转换模式供选择,支持DMA数据传输。本系统采用定时器触发的同步注入模式,能够对多路信号进行同步采样。
STM32F103ZE具有5个USART串行通信接口,内置分数波特率发生器,发送与接收共用可编程波特率,最高达4.5Mbit/s,数据字的长度、停止位均可设置。
此外,灵活的静态存储器控制器FSMC能够通过同步或异步存储器与16位PC卡接口相连,便于外扩存储器和液晶显示屏。
2.2、数据采集模块设计
数据采集包括对于模拟量与开关量的采集两部分。
小编推荐:基于STM32F103的USB数据采集模块的设计
1)模拟量数据采集
由于电力数据采集信号为高电压信号和大电流信号,因此,首先要将其调理为满足STM32F103ZEADC输入范围的电压信号,以便进入ADC转换为数字量。各相电流信号经电流互感器和电流变送器,各相电压信号则通过电压互感器和电压变送器变换为低电压信号,输入到STM32的ADC模拟输入通道,其幅值范围为0~3.3V
2)开关量数据采集
STM32F103ZE的I/O口都可以配置为开关量输入端口,并且通用的I/O可以配置到16个外部中断线上。开关量输入电路如图2所示。开关量信号由IN端口输入,电容C与电阻R构成一阶低通滤波器滤除高频噪声,减小信号的毛刺,采用光耦合器TLP521实现现场开关量与STM32间的电气隔离,提高电绝缘和抗干扰能力。
图2 开关量输入电路
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模块控制液晶显示器,即将液晶作为外部存储设备来使用,配置好读写及控制信号的时序,指定指针即可实现对液晶的读写访问。利用这种方式,不仅简化了对液晶的操作,只需指定读写数据指针方可完成操作,而且提高了访问速度,同时,有效避免了用端口模拟时序访问液晶产生的“拉幕”现象。
2.4、RS485通信模块设计
系统采用MODBUS协议采用RS485通信方式,进行电力采集数据的远距离、高速传输。本系统选用了最高传输速率可达500Kbps的隔离型RS485通信芯片ADM2483,设计电路如图3所示。该芯片采用限摆率驱动器,较低摆率降低了不恰当的终端匹配和接头产生的误码。ADM2483接收输入具有真正的失效保护功能,驱动器还具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。
图3 RS485通信电路
3、系统软件设计
本系统设计中,采用英蓓特公司和ARM公司最近联合推出的高效ARM开发环境RealviewMDK[10]为开发平台。应用程序包括主程序、数据采集及处理程序、串行通信程序3个主要部分。主程序主要负责对于系统时钟、GPIO口、嵌套中断的配置以及定时器、ADC和串行通讯模块的初始化。
电压有效值计算式如下:
式中:U为电压有效值,n为每周期采样点数,uk为第k点采样电压值。
电流有效值计算式为:
式中:I为电流有效值,n为每周期采样点数,ik为电流采样值。
当A/D转换的数据数据量达到512个字节后,进行一次存储,将数据存入NANDFLASH中,以便实现历史数据查询。同时,通过RS485通信STM32将存储的数据发送到上外机,通信流程图如图4所示。
图4 通信流程
4、实验结果与分析
A、B、C三相分别接到市电220V,利用25W、40W、50W的灯泡作为三相负载,由本电力数据采集系统测得数据如表1所示。
表1实验结果
实验数据表明,本系统设计合理,运行可靠,数据测量准确、精度高且实时性较好,与传统电力数据采集器相比具有显著优点。
5、结论
本文介绍的电力数据采集系统采用ST公司的ARM芯片STM32F103ZE,芯片包含丰富的功能模块,系统无需外扩芯片即可实现A/D转换、数据通信等功能,大大简化了硬件设计,节约了投资。灵活的静态存储器控制器FSMC便于系统扩展存储器以及连接液晶显示屏。本系统具有功耗低、可靠性高等优点,采用MODBUS协议通过RS485与上位机实时通信,传输数据的实时性与可靠性显著提高。随着电力系统的发展,这种基于STM32的电力数据采集系统将有更高的应用价值和广阔的市场前景。
相关文章