一、背景说明

近年来,“工业互联网”技术在能源电力行业得到了长足发展。随着能源互联网信息一体化、电力市场售电改革、新能源微电网与储能、智能配电终端、能源四表集抄网络、电力智能巡检等概念与政策的陆续推出,能源电力行业在基于“工业互联网”的核心指导方向下,对嵌入式解决方案在上述背景下的创新应用与升级换代的需求日益旺盛。

作为国内知名的嵌入式产品平台提供商,Tronlong凭借在嵌入式方案领域多年的深耕经验,以及对能源电力行业的创新理解,全新推出系列化的行业解决方案,涵盖TI OMAP-L138、AM335x、AM5708、AM5728、TMS320F2837x,Xilinx ZYNQ等平台,覆盖了电能采集、振动故障诊断、通信管理控制、电力电子、配电终端测控、电力智能巡检等专业技术领域。

二、方案介绍

1 方案名称

基于ZYNQ的分布式能源及微电网通信与控制单元

2 方案特点

(1) 采用Xilinx Zynq-7000 SoC高性能低功耗处理器,集成PS端单核/双核ARM Cortex-A9 + PL端Artix-7架构可编程逻辑资源;

(2) 通过配置CPU/RAM/FLASH组合,实现成本可优化/高性价比的多任务处理能力、数据本地存储、现场组网与高速通信能力;

(3) 外部可扩展LCD显示与触摸屏控制,分辨率支持2048*2048,支持1080P高清视频播放与HDMI视频输出,满足多种屏幕与人机交互的功能需求;

(4) 支持操作系统运行(Linux/RT-Linux),支持多种通信协议转换(IEC61850、DL/T645、DL/T667-1999(IEC60870-5-103))、线路潮流与控制逻辑运算、应用软件远程升级等功能算法;

(5) 可通过PL端Artix-7架构可编程逻辑资源按需扩展外部通信接口,只要资源满足,理论上无数量限制。典型应用:CAN(4路)、千兆以太网(2路)、百兆以太网(4路)、UART(12路)、SPI(5路)。

3 技术参数

基于ZYNQ的能源电力解决方案分享_嵌入式

图 1

4 方案框图

基于ZYNQ的能源电力解决方案分享_嵌入式_02

图 2

5 应用领域

可广泛用于分布式能源与负荷调控、微电网中央控制、电力通信网关、数据集中器等要求,同时接入/接出多路不同通信总线、或多种通信协议集中处理转换的应用场合。

基于ZYNQ的能源电力解决方案分享_嵌入式_03

图 3

6 AD7606经典开发案例

AD7606是最最最为经典的电力数据采集IC,在大部分电力场合应用广泛。创龙科技ZYNQ评估板TLZ7x-EasyEVM-S提供基于AD7606的AD采集与处理开发案例。下面讲解的开发案例说明基于ad7606_fft例程。

6.1 功能说明

PL端采集AD7606的8通道AD信号,采样率为200KSPS,并通过DMA IP核将数据缓存到PS端DDR中(每通道各采样4096个点),再通过FFT IP核将数据进行FFT运算,然后将FFT运算结果保存到PS端DDR中,最后通过ILA显示第一个通道的原始波形和FFT运算结果波形。

备注:由于本案例消耗逻辑资源较多,因此本案例不支持xc7z010,仅支持xc7z020。

6.2 案例框图

基于ZYNQ的能源电力解决方案分享_大数据_04

图4

备注:x1表示1个通道的数据,x8表示8个通道。

6.3 硬件平台简介

TLZ7x-EasyEVM-S评估板(Xilinx Zynq-7010/7020)

本文方案基于Xilinx Zynq-7010/7020的邮票孔工业核心板/评估板实现能源电力解决方案。创龙科技SOM-TLZ7x-S核心板采用了邮票孔连接方式,进一步提升核心板与底板连接的稳定性。

基于ZYNQ的能源电力解决方案分享_嵌入式_05

图 5 产品详情图

点击产品视频查看详细介绍↓↓↓

6.3.2 AD7606模块

案例使用创龙科技的TL7606P AD模块。

点击图片/图注即可了解产品更多资料↓

基于ZYNQ的能源电力解决方案分享_python_06

图 6

感兴趣的用户可以到创龙科技官方商城咨询及下单。

官方商城:https://tronlong.tmall.com

查看产品详情:

SOM-TLZ7x-S核心板:

https://tronlong.com/Product/show/193.html

TLZ7x-EasyEVM评估板:

https://tronlong.com/Product/show/194.html

关于AD7606芯片的详细介绍可以点击下方链接了解:

https://www.analog.com/cn/products/ad7606.html

基于ZYNQ的能源电力解决方案分享_java_07

图 7

模块功能说明:

该模块控制AD7606对8通道AD信号按200K采样率进行采集,并将数据通过AXI4-Stream接口进行发送。

6.4 案例测试

将TLP2P-PinBoard转接板接到评估板CON8接口,再将AD模块TL7606P与转接板连接。

基于ZYNQ的能源电力解决方案分享_python_08

图 8

进入评估板文件系统,执行如下命令配置PS-PL电平转换寄存器。

Target#  devmem 0xf8000900 w 0xf

基于ZYNQ的能源电力解决方案分享_java_09

图 9

使用下载器加载PL端程序以及和PL端程序同目录下的.ltx文件。

基于ZYNQ的能源电力解决方案分享_嵌入式_10

图 10

在ila_1的Trigger Setup窗口点击按钮,双击axi_dma_0_m_axis_mm2s_tvalid将其添加为触发信号。

基于ZYNQ的能源电力解决方案分享_python_11

图 11

将Value的值改成R,设置为上升沿触发。

基于ZYNQ的能源电力解决方案分享_python_12

图 12

右击Channel_1_data[15:0],点击“Waveform Style -> Analog”将通道1的原始信号设置为模拟波形。

基于ZYNQ的能源电力解决方案分享_java_13

图 13

右击Channel_1_data[15:0],点击“Radix -> Signed Decimal”设置数据为有符号类型。

基于ZYNQ的能源电力解决方案分享_python_14

图 14

参考上面的步骤,在ila_2将axi_dma_1_m_axis_mm2s_tvalid添加为触发信号,设置为上升沿触发,将FFT IP核输出数据的实部和虚部信号分别设置为模拟波形,并设数据为有符号类型。

基于ZYNQ的能源电力解决方案分享_大数据_15

图 15

基于ZYNQ的能源电力解决方案分享_嵌入式_16

图 16

使用信号发生源向TL7606P模块的8个通道分别输入信号,本案例测试的输入信号是频率为2KHz、峰峰值为3.3Vpp的正弦波。

将案例“sw\linux_system\image\”目录下所有脚本文件拷贝至评估板文件系统。执行如下命令使能axi_dma_0的S2MM通道,将数据采集到PS端DDR中。

Target#  ./axi_dma_0_ad7606_to_ddr.sh

执行如下命令使能axi_dma_1的S2MM通道(FFT转换后数据保存到PS端DDR),等待FFT IP核工作。

Target#  ./axi_dma_1_fft_to_ddr.sh

执行如下命令使能axi_dma_0的MM2S通道,把原始数据从DDR送到FFT IP核。

Target#  ./axi_dma_0_ddr_to_fft.sh

执行如下命令使能axi_dma_1的MM2S通道,把FFT转换后的数据从DDR送到ILA显示。

Target#  ./axi_dma_1_ddr_to_ila.sh

基于ZYNQ的能源电力解决方案分享_人工智能_17

图 17

axi_dma_0_ad7606_to_ddr.sh

配置axi_dma_0的S2MM通道,将数据传输到DDR。

基于ZYNQ的能源电力解决方案分享_python_18

图 18

配置好DMA后,配置axi gpio输出1,设置adc_enable为1,使能ADC转换。需确保DMA已配置好,再使能ADC转换并进行数据传输。

基于ZYNQ的能源电力解决方案分享_人工智能_19

图 19

axi_dma_0_ddr_to_fft.sh

配置axi_dma_0的MM2S通道,将DDR中的数据通过AXI4-Stream发送给FFT IP核。 

基于ZYNQ的能源电力解决方案分享_python_20

图 20

ila_1原始波形

输入信号是频率为2KHz、峰峰值为3.3Vpp(电压幅值为1.65V)的正弦波。一共4096个采样点,每个采样点4个时钟周期,即4096=16384/4。

基于ZYNQ的能源电力解决方案分享_嵌入式_21

图 21

基于ZYNQ的能源电力解决方案分享_大数据_22

图 22

波峰值为+10729,波谷值为-10794,峰峰值=(10729 + 10794)/(2^16)x10V≈3.2841V,采样范围为±5V。

基于ZYNQ的能源电力解决方案分享_嵌入式_23

图 23 波峰值

基于ZYNQ的能源电力解决方案分享_嵌入式_24

图 24 波谷值

Ila_2 FFT波形

Channel_1_fft_IM_Dout为虚部,Channel_1_fft_RE_Dout为实部。

基于ZYNQ的能源电力解决方案分享_python_25

图 25

频率计算

FFT变换点数N=4096,AD采样率Fs为200KSPS。某点n所表示的频率Fn=(n-1)*(Fs/N)(n>=1)。当n=1时,Fn为0,由于第一点表示的是直流分量,因此频率为0,幅值也为0,该正弦波无直流分量。

从下图可知,在第164个周期(即第42个采样点)处出现信号,则信号频率Fn=(42-1)*(Fs/N)=41*200KHz/4096=2001.95Hz,与原始信号频率2KHz基本一致。

基于ZYNQ的能源电力解决方案分享_嵌入式_26

图 26

幅值(波峰值)计算

某个点的幅值An=(根号(实部^2 + 虚部^2))*压缩倍数/(N/2),则信号幅值An=(根号(4448^2 + 3008^2))x4096/4096x2≈10739.23,信号电压幅值=10739.23/(2^16/2)x5V≈1.64V,与原始信号电压幅值1.65V基本一致。

查看原始数据

每个采样点32bit(包括实部和虚部),每个通道的数据的地址依次递增,从地址0x19000000开始。

Target#  devmem 0x19000000    //查看V1通道原始数据

Target#  devmem 0x19000004    //查看V2通道原始数据

Target#  devmem 0x19000008    //查看V3通道原始数据

Target#  devmem 0x1900000c    //查看V4通道原始数据

Target#  devmem 0x19000010    //查看V5通道原始数据

Target#  devmem 0x19000014    //查看V6通道原始数据

Target#  devmem 0x19000018    //查看V7通道原始数据

Target#  devmem 0x1900001c    //查看V8通道原始数据

基于ZYNQ的能源电力解决方案分享_嵌入式_27

图 27 查看V1通道原始数据

查看FFT数据

每个采样点32bit(包括实部和虚部),每个通道的数据的地址依次递增,从地址0x19100000开始。

Target#  devmem 0x19100000    //查看V1通道FFT数据

Target#  devmem 0x19100004    //查看V2通道FFT数据

Target#  devmem 0x19100008    //查看V3通道FFT数据

Target#  devmem 0x1910000c    //查看V4通道FFT数据

Target#  devmem 0x19100010    //查看V5通道FFT数据

Target#  devmem 0x19100014    //查看V6通道FFT数据

Target#  devmem 0x19100018    //查看V7通道FFT数据

Target#  devmem 0x1910001c    //查看V8通道FFT数据

基于ZYNQ的能源电力解决方案分享_python_28

图 28 查看V1通道FFT数据

三、更多方案

基于ZYNQ的能源电力解决方案分享_python_29

 

 

  

 

基于ZYNQ的能源电力解决方案分享_python_30