基于STM32 ARM+FPGA的电能质量分析仪方案(一)硬件设计

news2024/11/18 11:37:14
本章主要给出了本系统的设计目标和硬件设计方案,后面详细介绍了硬件电路的设计
过程,包括数据采集板、 FPGA+ARM 控制板。
3.1系统设计目标
本系统的主要目的是实现电能质量指标的高精度测量和数据分析,其具体技术指标如
下所示:
1.电能质量指标测量精度:
(1) 电压: ±0.3% 额定电压;
(2) 电流: ±0.5%
(3) 频率: ±0.01 Hz
(4) 三相不平衡度: ±0.2%
(5) 谐波分析: 1-17
2.能够实时显示电能质量指标和三相电压电流的波形,实现数据共享和良好的人机交
互。
3.能够对电网运行数据进行存储。
3.2系统总体方案
测量系统中控制电路的结构各式各样,有单独的 FPGA ARM DSP 芯片的控制电
路,还有基于 FPGA+ARM DSP+FPGA DSP+ARM+FPGA 等多架构控制电路,本设计选
FPGA+ARM 的双处理器模式作为控制电路, FPGA I/O 口数量多,接收和处理数据的速
度快,具有较强的最短窄脉冲捕获能力,抗干扰能力强,保证了数据采集过程的准确性和
连续性, FPGA 还具有硬件乘法器,数据处理方式是并行的,为后续 FFT 算法中涉及的大量
的乘积累加和的运算提供保障。 ARM 是一款常用处理器,具有高性能、低功耗等特点,集
成库函数较多,开发方便,而且外设众多,为后面系统功能的扩展提供足够的空间。系统
硬件框图如图 3.1 所示。

由上图可知,硬件电路主要包括数据采集部分、 FPGA+ARM 控制部分、上位机部分。
数据采集板的设计包括电源电路、前端的电压电流互感电路电路、电压跟随电路、基于
AD7606 的模数转换电路; FPGA+ARM 控制部分主要包括 FPGA ARM 的供电电源电路、
下载电路、串口电路、时钟电路等;上位机显示模块是用 C# 编写的上位机软件。系统的具
体工作过程为:首先将电网三相大电压、电流信号通过电压、电流互感器以及运放构成的
电压跟随电路,把信号调整至 A/D 的输入范围,再由 FPGA 控制模数转换器实现 6 通道信号
的高速同步采样,在 FPGA 内部完成三相锁相环和 FFT 计算模块的设计,并利用 SDRAM 对历
史数据进行存储, FPGA ARM 通过 FSMC 进行通信;在 ARM 处理器中移植嵌入式实时操
作系统 FreeRTOS ,完成 FPGA ARM 之间数据的读取和写入、 ARM 和上位机之间的串口通
信、以及经浮点运算后得出电能质量的各项参数等线程任务,最后通过在上位机软件中实
时显示和分析各项电能质量指标。
3.3 数据采集模块
3. 3 . 1采样过程
数据采集作为系统的前端电路,直接影响电参数的测量精度、实时显示速度。近年来
数字化采样在电气测量领域得到了广泛的应用,信号采集分为直流采样和交流采样两种:
1)直流采样是利用变压器或互感器将交流电压或电流信号的幅值降低,通过整流电
路转化成直流信号再进行采集。缺点主要有: R-C 滤波回路的时间常数很大,影响实时
性;在测量含有谐波或噪声的信号时具有较大的误差;变送器设备复杂且后期不便于维
护。
2)交流采样 [33] 的基本原理是利用电压、电流互感器将被测的交流电压和电流信号进
行隔离、滤波、移相、放大后,利用微处理器对其连续瞬时值进行采样得到离散的时域采
样序列,再通过一些算法对采样值序列进行数值处理以计算出被测量,交流采样省去了复
杂的整流电路,只需简单的滤波和幅值放大衰减的调理电路。由于交流采样对象是信号的
瞬时值,因此其实时性好且相位的失真较小,近年来电子技术飞速发展, DSP 和高速 A/D
转换芯片为交流采样提供了硬件支持,交流采样正在逐步替代直流采样,成为电气测量领
域的主流采样方式。
3. 3 . 2 AD7606模数转换电路
AD 转换器是整个采集板的核心,其转换速度、分辨率等性能指标的优劣直接影响
最终的测量结果 [34] 。市面上 AD 转换器的种类繁多,不同公司不同系列产品之间性能也
是千差万别。要想对数据进行高精度采集,高精度的模数转换器是必不可少的。
根据通道数量、采样率和同步采样等设计要求,本设计选用 Analog Devices (ADI)
司的 8 通道 16 AD7606 同步采样芯片,是电力线路测量系统中常用采样芯片之一,采样速
率高达 200kSPS ,支持 ±5 V ±10 V 双极性信号输入,采用 5 V 单模拟电源供电,内部集成了 2.5
V 基准电压源,提供了过采样和数字滤波功能,数字输出方式根据需要设置为并行输出或串
行 输 出 。 传 统 的 逐 次 逼 近 (SAR)ADC 在 输 入 前 端 都 要 加 一 级 运 算 放 大 器 (Operation
Amplifier) ,才能驱动内置采样电容实现采样,而 AD7606 集成了低噪声、高输入阻抗的信
号调理电路,其具有 1 M 模拟输入阻抗的输入缓冲器,因此, AD7606 不需要外部驱动电路
和滤波电路,大大简化了前端设计。 AD7606 的硬件连接图如图 3.2 所示。

 

3.4 FPGA+ARM控制模块
3.4.1 FPGA的选型
FPGA(Field-programmable Gate Array) ,即现场可编程门阵列,是在可编程器件 PAL
GAL CPLD 等的基础上发展而来的,它是专用集成电路( ASIC )中的一种半定制电路
[36] ,具有静态可重复编写的功能,用户可以通过软件编程重新配置内部的逻辑模块和 I/O
口,达到改变硬件功能的目的,这样就克服了定制电路不灵活性的缺点,集成度得到了很
大的提升,其特有的并行处理方式极大提高了数据运算速度。近年来微处理器发展迅速,
集成度越来越高,仅用一块 FPGA 芯片及其供电电路、配置电路和时钟电路即可组成数字电
路,外围电路大大减少。由于 FPGA 处理器丰富的可编程资源、并行的数据方式、灵活性强
等优点,使其在实时信号处理、数据传输等领域得到了广泛的应用。目前市场上 FPGA
主要厂商有 Xilinx Altera 以及 Actel 等,选择芯片时要根据设计需要的逻辑资源、RAM、工
作频率、速度等级以及管脚数目等,逻辑单元数 (LEs) 、内部集成存储器、硬件乘法器也是
重要选型指标,逻辑单元的数量决定集成度的高低。本设计最终选用 Altera 公司的 Cyclone
Ⅳ系列 EP4CE10F17C8N ,其集成了 256 个可用引脚, 23 个乘法器, 10320 个可编程逻辑
单元,高达 105 个高性能扩展 I/O 口,高达 50M 的有源晶振,能够倍频出多种不同频率的时
钟,完全能够满足该系统的设计需求。
3.4.9 FSMC接口
FSMC(Flexible Static Memory Controller) 可变静态存储控制器,是 STM32 系列处理器
自带的通信总线, STM32 通过 FSMC 对外部存储器进行直接读写,能够支持多种类型静态存
储器的扩展 [44] ,本设计中将数据线 D 15:0 ]、地址线 A
25:16 ]以及其他控制引脚连接
FPGA I/O 端口,将 FPGA 看作 STM32F407 的外部 SRAM STM32 通过存储器读
写指令对 FPGA 进行操作,通过扩展出的控制/数据/地址三种总线来完成控制操作。 FSMC
的映射地址空间被划分为 4 个组 (Bank) ,用于连接外部存储器,每个 Bank 有独立的片选信号
和独立的时序配置, FSMC_NE1 为第一组第一区的片选信号,读写信号接口分别为
FSMC_WR FSMC_RD ,根据设计的数据要求,设计数据位宽 16 位,地址位宽 10
位,接线图如图 3.13 所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++指针对象和异常(12)

异常(exception) 为什么有异常 异常在C用于错误处理,C语言中一般使用返回值表示错误,C对错误处理进行了扩展,统一使用异常机制来处理程序中发生的错误。 C的异常处理包括两个部分 ----- 抛出异常和捕获异常,如果抛出的异常被捕…

​LeetCode解法汇总LCP 41. 黑白翻转棋

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 在 n*m 大小的棋盘中,有黑白两种棋子,黑棋记作字母 &quo…

想去除List重复元素?我有两种方法搞定,赶紧拿去用

关注“Java架构栈”微信公众号,回复暗号【Java面试题】即可获取大厂面试题 问题背景 最近就有很多小伙伴在后台私信波哥,问波哥这样一个问题:“波哥,我最近正在找工作,被面试官问到List该怎么去重?我感觉自…

命令执行测试-业务安全测试实操(12)

命令执行测试 测试原理和方法 在应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的承数。如PHP中的svstem、exec、shell exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。测试中如果没有对参数(如…

Lowe‘s EDI 项目数据库方案开源介绍

近期为了帮助广大用户更好地使用 EDI 系统,我们根据以往的项目实施经验,将成熟的 EDI 项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。 …

Flutter如何使用mvi? bloc结合自定义http库的实现

文章目录 前言一、先看看如何使用bloc吧1. 定义页面需要的数据2. 定义通用加载状态3. 定义事件4. 定义bloc5. 定义UI6. 使用 二、lib_http1. request定义2. response定义3. 适配器接口4. 构建adapter需要的数据5. 网络异常统一封装6. 核心请求类7. 提供网络访问配置8. dio适配器…

编译原理笔记13:自上而下语法分析(3)构造预测分析表、LL(1) 文法

目录 构造预测分析表不懂也能用的构造步骤FIRST、FOLLOW 和分析表的原理? LL(1) 文法 构造预测分析表 预测分析表的作用,是为推导的进行指明方向——我们用当前下推栈栈顶和读写头所指向的符号的组合(即当前的状态),去…

网络安全学习指南:新手入门建议

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言网络安全基础知识学…

IPv6:连接未来的新一代互联网协议

由于互联网发展迅猛,IPv4地址数量已经接近枯竭。IPv6应运而生,成为下一代互联网协议。IPv6较IPv4来说,地址容量上升了数倍,并有更好的安全性和效率。 IPv6(Internet Protocol version 6)是指新一代互联网协…

【Java】如何优雅的关闭线程池

文章目录 背景一、线程中断 interrupt二、线程池的关闭 shutdown 方法2.1、第一步:advanceRunState(SHUTDOWN) 把线程池置为 SHUTDOWN2.2、第二步:interruptIdleWorkers() 把空闲的工作线程置为中断2.3、 第三步:onShutdown() 一个空实现&…

PG系列2:Linux下yum安装PG 15

文章目录 一. 下载PG二. 开始安装2.1 安装数据库2.2 初始化数据库2.3 设置开机启动2.4 修改密码2.5 设置允许远程连接2.6 重启数据库服务2.7 修改数据库密码 三. 验证参考: 一. 下载PG 官网地址: https://www.postgresql.org/选择Download 选择CentOS 选择对应的版本 …

iOS 单元测试之常用框架 OCMock 详解

目录 前言: 一、单元测试 1.1 单元测试的必要性 1.2 单元测试的目的 1.3 单元测试依赖的两个主要框架 二、OCMock 的集成与使用 2.1 OCMock 的集成方式 2.2 OCMock 的使用方法 2.3 mock使用限制 三、最后 前言: 在iOS开发中,单元测…

OpenCV——实验结果输出《图像基本操作》

1.图像融合 图像融合主要使用的函数为 cv2.addWeighted() #图像融合 # img_cat img_dog #shapes (414,500,3) (429,499,3) img_dog cv2.resize(img_dog,(500,414))#resize函数,不考虑图像形变问题。 print(img_dog.shape) #两张图片的权重相同,gamm…

java编写金字塔

一、实心金字塔 首先,尝试写一个逐层加1个*的金字塔: 可以看出,每一层由空格和*组成,且空格*的总数为底部基石的数量,那么前后空格数就是(底部基石数 - 各层星星数)*1/2,然后拼接字…

C# 特性(Attribute)总结

目录 特性是什么? 如何使用特性? (1).Net 框架预定义特性 (2)自定义特性 为什么要使用特性? 特性的应用 特性实现枚举展示描述信息 特性是什么? 特性(Attribute&…

基于spss的多元统计分析 之 聚类分析+判别分析(2/8)

实验目的: 1.掌握聚类分析及判别分析的基本原理; 2.熟悉掌握SPSS软件进行聚类分析及判别分析的基本操作; 3.利用实验指导的实例数据,上机熟悉聚类分析及判别分析方法。 实验前预习:…

js中原型和原型链的理解(透彻)

js中原型、原型链、继承的理解(透彻) 1、前言1.1 什么是函数对象1.2 什么是实例对象1.3 什么是原型对象1.4 构造函数、原型对象、实例对象的关系 2、原型3、原型链4、原型的相关属性及方法5、总结 1、前言 1.1 什么是函数对象 函数对象就是我们平时称呼…

centos连接XShell

先设置网络自动连接,为Xshell 连接centos做准备 选择应用程序->系统工具->设置 选择网络,如果有线没有打开,选择打开,在点击设置 记住ipv4地址,选择自动连接,然后应用 最后鼠标右键点击桌面&#xf…

RabbitMQ入门案例之Topic模式

前言: 本文章将介绍RabbitMQ中的Topic(主题)模式,其中还会涉及 ‘#’ 和 ‘*’ 两个通配符在RabbitMQ中的区别。 官网文档地址:https://rabbitmq.com/getstarted.html 什么是Topic模式 RabbitMQ的Topic模式是一种基于…