基于电力线载波通信的嵌入式电力数据监测系统
2014-08-02李国洪
李国洪 罗 秦
(天津理工大学天津市复杂系统控制理论及应用重点实验室,天津 300384)
我国经济的高速发展带动了各行业的电力需求,在电能使用量大幅度增加的情况下,电力公司对电能数据的及时监测与分析受到了严重挑战。为了满足电力公司对农村和边远中小电站电力数据监测与分析的精确性、实时性和可靠性需求[1],笔者提出了基于电力线载波通信的嵌入式电力数据监测系统。
1 总体设计方案①
基于电力线载波通信的嵌入式电力数据监测系统由主机与从机组成(图1),从机搭载了采集模块和电力线载波通信模块,主机不仅搭载了电力线载波通信模块,还设有数据存储模块和上位机通信模块。采集过程为:电压和电流信号经过信号调理电路调理后,由模数转换器(ADC)转换为数字信号,再由STM32进行数据处理;开关量信号通过I/O端口输入,STM32芯片以中断方式读取;收集到的电力数据经过处理后,利用HL-PLC-V2.0电力线载波模块发送至主机进行储存,以便对历史数据进行查询;最后上位机通过RS232与主机通信,发送控制信号并读取数据。
图1 系统总体结构示意图
2 系统硬件
2.1 STM32片上资源
嵌入式电力数据监测系统选用32位增强型微控制器STM32F103VET6作为嵌入式系统的核心。基于Cortex-M3内核的STM32芯片工作频率最高可达72MHz,片上不仅拥有512KByte的Flash,而且拥有64KByte的SRAM,它丰富的片上资源不但简化了硬件系统的设计,还有效降低了系统功耗[2]。STM32F103VET6片上的ADC为12位逐次逼近型模数转换器,它的各通道拥有单次、连续、扫描和间断转换模式,转换结果以左对齐或者右对齐方式保存于数据寄存器中,并且支持DMA数据传输模式。
STM32F103VET6具有5个USART串行通信接口,发送与接收速率最高达4.5Mbit/s。芯片上的灵活静态存储器控制器(FSMC)利用同(异)步存储器与PC卡接口(16位)相连,能方便地外扩存储器。
2.2 数据采集模块
具体设计包括两个部分:模拟量信号采集部分与开关量信号采集部分。
该系统采集的模拟信号为高电压信号和大电流信号,因此采集时首先要将信号进行调理,得到模数转换器输入范围内的电压信号。其中各相电流信号需要通过电流互感器和电流变送器变换,各相电压信号则需要通过电压互感器和电压变送器来转换为合适的低电压信号(0.0~3.3 V),最后输入STM32 ADC输入端口。该系统选用的电压互感器与电流互感器来自西安铱星电子科技公司,其单相电压信号同步调理电路如图2所示,220V交流电压经调压器转换为100V交流电压,通过调节限流电阻改变电压互感器SPT204E的输入端电流,使SPT204E输出端电流为2mA,通过调节运算放大器OP_07cp的反馈电阻就可以得到需要的输出电压。单向电流信号调理电路采用的电流互感器 SCT254EK 的使用方法与 SPT204E相似[3]。
图2 电压信号同步调理电路
该系统的ADC采用同步注入模式,配置ADC通道1采样A相电压电流,通道2采样B相电压电流,从而实现A、B相电力数据的同步采样;再通过三相电的特征(UA+UB+UC=0和IA+IB+IC=0)就可计算出C相电力数据。通过设置定时器2的TRGO事件来触发A/D转换,采样时间设置为1.5个周期,使A/D转换时间达到1μs,将转换后的电力数据以右对齐格式保存,最后使用DMA方式将寄存器中的转换数据快速存放到指定区域[4]。
开关量信号的输入端口是STM32 I/O,并且I/O端口可配置到外部中断线。开关量输入电路如图3所示。为了提高电绝缘与抗干扰能力,笔者选择利用光耦合器TLP521完成开关量信号与STM32芯片之间的电气隔离。光耦合器前的一阶RC低通滤波器用于滤除输入信号中的高频噪声。
图3 开关量输入电路
2.3 数据传输模块
数据传输模块的作用是将从机收集到的电力数据通过电力线传输到主机中。该系统采用HL-PLC电力线载波通信模块,载波信号的调制方式为FSK,通信稳定、抗干扰能力强。载波中心频率110kHz,模块可以在过零发送模式和正常发送模式间自由切换。模块使用HLPLCS520F芯片,这是专为电力线载波通信设计的一种高集成度FSK调制解调芯片,不仅集成了FSK调制解调器,还拥有高速数字信号处理器(图4)。由于芯片中的FSK解调器具有较低的灵敏度和较强的抗干扰性能,因此可以保证电力线载波通信的可靠性。
图4 HLPLCS520芯片接口电路
该系统的主机可以将收集到的电力数据上传至监控中心的PC机,同时也方便计算机联网共享数据。由于RS-232串口通信性价比高,传输可靠性强,通信距离和数据传输速率合适,因此该系统通过RS-232串口将采集到的电力数据由主机上传到PC。
2.4 数据存储模块
通过在主机上扩展闪存芯片,该系统可以实现对采集历史数据的查询。系统闪存芯片选用的是NAND256-A芯片,利用STM32片上的静态存储器控制器(FSMC)将外部存储器划分为固定大小的4块,最后利用FSMC中的存储块2来连接闪存芯片[5]。
3 系统软件
该系统的软件设计以高效ARM开发环境Keil MDK为平台。应用程序包括主程序、中断处理程序、电力线载波通信程序和串行通信程序4部分。主程序用来配置GPIO口、嵌套中断和系统时钟,以及对系统定时器、ADC、电力线载波通信模块、数据储存模块和串行通信模块的初始化。
该系统采用由定时器触发的同步注入模式同步采样多路信号。当A/D转换后的数据量达到256Byte后[6],从机将通过电力线载波模块发送数据到主机,而主机收到从机的数据后进行一次存储,将数据存入Flash芯片中,实现了历史数据的查询功能。同时,主机STM32通过串口通信将收到的数据发送到上位机。主程序流程如图5所示。
图5 主程序流程
定时器T2每6ms触发一次中断,进入中断服务程序后(图6),就将进行一次ADC注入组的同步转换,A/D转换后程序将会读取转换的结果并对读取的数据进行计算。
图6 中断处理程序流程
电压和电流的计算公式分别为:
式中I——电流有效值;
ik——在第k点采样的电流值;
n——每周期采样点数;
U——电压有效值;
uk——在第k点采样的电压值。
三相电有功功率的计算公式为:
P=uAiA+uBiB+uCiC=PA+PB+PC
其中,A、B、C分别代表三相电。然后将计算得到的数据以右对齐格式保存,然后使用DMA方式进行数据传输,将寄存器中的数据快速储存到指定区域等候主程序调用。
4 结束语
笔者介绍了一种基于电力线载波通信的嵌入式电力数据监测系统,其控制芯片采用了STM32F103VET6芯片,利用HL-PLC电力线载波通信模块传输数据。该系统抗干扰能力强、通信距离远,同时电力数据的准确性和实时性都有明显提高。由于系统无需架设专门的通信电缆,非常适合国内边远地区复杂多变的电网环境。随着电力系统的不断发展,这种基于电力线载波通信的嵌入式电力数据监测系统将会具有更高的应用价值和更加广阔的市场前景。