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

本章主要给出了本系统的设计目标和硬件设计方案,后面详细介绍了硬件电路的设计
过程,包括数据采集板、 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 所示。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务中常见问题

Spring Cloud 组件 Spring Cloud五大组件有哪些? Eureka:注册中心 Ribbon:负载均衡 Feign:远程调用 Hystrix:服务熔断 Zuul/Gateway:服务网关 随着SpringCloud Alibaba在国内兴起,我们项目中…

C语言/C++ 之 打飞机游戏

【项目简介】 1、设计思想:本项目主要是为了实现打飞机游戏,主要包括5个函数模块,和1个主函数框架。分别是chu_shi_hua();、you_cao_zuo;、wu_cao_zuo();、show();、main();等。项目完成过程中主要运用了C/C中的输入输…

网络爬虫是什么

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。 认识爬虫 我们所熟悉的一系列…

3 python进阶篇

文章目录 面向对象类属性和类方法类属性类方法静态方法 单例模式__new__ 方法类实现单例模式 异常 、模块和包异常自定义异常 模块和包模块的搜索顺序包的init文件发布模块(了解) 文件seek文件/目录的常用管理操作eval函数 补充性知识位运算小技巧 参考我…

Python入门教程:掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识

文章目录 for循环while循环字符串操作访问字符串中的字符切片总结字符串拼接 文件读写try...except 异常处理函数模块和包类和面向对象编程完结 for循环 在 Python 中,for 循环用于遍历序列(list、tuple、range 对象等)或其他可迭代对象。for…

Java中反射机制,枚举,Lambda的使用

目录 一、反射机制 1、含义 2、作用 3、※反射相关的几个类 3.1、Class类(Class对象是反射的基石) 3.2、Class类中相关的方法 3.2.1 (※重要)常用获得类相关的方法 3.2.2 (※重要)常用获得类中属性、变量Field相关的方法 3.2.3 获得类中注解相…

N-Gram语言模型工具kenlm的详细安装教程

【本配置过程基于Linux系统】 下载源代码: wget -O - https://kheafield.com/code/kenlm.tar.gz |tar xz 编译: makdir kenlm/build cd kenlm/build cmake .. && make -j4 发现报错: 系统中没有cmake,按照错误提示&am…

ChatGPT 指南:角色扮演让回答问题更专业

让 ChatGPT 进行角色扮演 Act as ...,比如,律师、内科医生、心理医生、运动教练、哲学家、翻译、平面设计师、IT 工程师等等,从而才能让 ChatGPT 从这个角色角度来分析我们的问题,不然,它的回答可能会过于广泛。 下面以…

实在智能RPA亮相2023全球人工智能技术博览会,“能对话的数字员工”引领智能自动化新篇章

随着ChatGPT火爆全网,人工智能再次成为学术界和科技领域“新宠”,一场“智能革命”的序幕悄然掀开。 6月13日,“智能驱动 砥砺前行”为主题的2023全球人工智能技术博览会在杭州未来科技城学术交流中心圆满落下帷幕。此次博览会以展示智能科技…

51单片机 - 期末复习重要图

AT89S51片内硬件结构 1.内部硬件结构图 2.内部部件简单介绍 3. 26个特殊功能寄存器分类 按照定时器、串口、通用I/O口和CPU 中断相关寄存器:3IE - 中断使能寄存器IP - 中断优先级寄存器 定时器相关寄存器6TCON - 定时器/计数器控制寄存器TMOD - 定时器/计数器模…

【Leetcode60天带刷】day07哈希表——454.四数相加II , 383. 赎金信 ,15. 三数之和 , 18. 四数之和

题目&#xff1a;454.四数相加II 454. 四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 …

神经网络:参数更新

在计算机视觉中&#xff0c;参数更新是指通过使用梯度信息来调整神经网络模型中的参数&#xff0c;从而逐步优化模型的性能。参数更新的作用、原理和意义如下&#xff1a; 1. 作用&#xff1a; 改进模型性能&#xff1a;参数更新可以使模型更好地适应训练数据&#xff0c;提高…

I/O多路复用+高性能网络模式

前言&#xff1a; 本篇文章将介绍客户端-服务端之间从最简单的Socket模型到I/O多路复用的模式演变过程&#xff0c;并介绍Reactor和Proactor两种高性能网络模式 文章内容摘自&#xff1a;小林Coding I/O多路复用高性能网络模式 . 传统Socket模型传统Socket模型的性能瓶颈多进程…

SpringCloud Alibaba入门5之使用OpenFegin调用服务

我们继续在上一章的基础上进行开发 SpringCloud Alibaba入门4之nacos注册中心管理_qinxun2008081的博客-CSDN博客 Feign是一种声明式、模板化的HTTP客户端。使用Feign&#xff0c;可以做到声明式调用。Feign是在RestTemplate和Ribbon的基础上进一步封装&#xff0c;使用RestT…

链路追踪SkyWalking整合项目以及数据持久化

1. 微服务整合SkyWalking 1.1 通过jar包方式整合 首先我们将一个简单的springboot服务打成jar包。 将其上传到Linux服务器中。 准备一个启动脚本&#xff0c;脚本内容如下&#xff1a; #!/bin/sh # SkyWalking Agent配置 export SW_AGENT_NAMEskywalking‐test #Agent名字,一…

【MQTT 5.0】协议 ——发布订阅模式、Qos、keepalive、连接认证、消息结构

一、前言1.1 MQTT 协议概述1.2 MQTT规范 二、MQTT 协议基本概念2.1 发布/订阅模式2.11 MQTT 发布/订阅模式2.12 MQTT 发布/订阅中的消息路由2.13 MQTT 与 HTTP 对比2.14 MQTT 与消息队列 2.2 服务质量&#xff1a;QoS2.21 QoS 0 最多分发一次2.22 QoS1 至少分发一次2.23 QoS 2 …

Windows远程桌面(mstsc)不能复制粘贴的解决办法

最近突然发现Windows远程桌面(mstsc)不能在远程端和本地端之间自由的复制和粘贴了&#xff0c;这还是非常影响使用体验的&#xff1b;因此记录一下解决方法&#xff0c;以便后续再遇到此类问题时查看如何解决&#xff1b; 文章目录 一、背景二、解决办法2.1 方法1 重启rdpclip.…

Java并发编程学习16-线程池的使用(中)

线程池的使用&#xff08;中&#xff09; 引言1. 配置 ThreadPoolExecutor1.1 线程的创建与销毁1.2 管理队列任务1.3 饱和策略1.4 线程工厂1.5 定制 ThreadPoolExecutor 2. 扩展 ThreadPoolExecutor总结 引言 上篇分析了在使用任务执行框架时需要注意的各种情况&#xff0c;并…

OpenCV 笔记_1

笔记_1 文章目录 笔记_1Mat类数据类型读取Mat类支持的运算图像读取&#xff0c;显示&#xff0c;保存imread 图像读取namedWindow 创建要显示的窗口imshow 窗口显示imwrite 图像保存 视频加载与摄像头的使用VideoCapture 加载视频或摄像头get 获取属性VideoWriter 保存视频 图像…

【五子棋实战】第6章 调用接口进行联调

【五子棋实战】第6章 调用接口进行联调 Ajax调用接口 调用五子棋接口 点击优化 尾声 更多待开发的功能 Ajax调用接口 引入Jquery&#xff0c;使用JQ封装的ajax&#xff0c;demo如下&#xff1a; <script src"jquery-3.5.0.min.js"></script> <…