电赛与FPGA/MCU

FPGA是什么?能做什么?怎么用?
“数字”的比重越来越大
设计/调试一个综合性的im电竞体育 官方网站系统
数字逻辑/编程为核心
控制系统
处理器
指令集
接口
嵌入式系统编程
模拟链路
通信
WiFi
BT/BLE
电源管理
要提升的能力
在资源有限的环境中学会自己解决未知问题
资料搜寻、善用资源的能力
文档撰写、自我营销的能力
FPGA是什么?
FPGA(Field Programmable Gate Array),现场可编程门阵列
逻辑资源
逻辑与运算
逻辑判断
运算
编码变换
数字信号处理
信号合成 - NCO、DDS
滤波 - FIR、IIR
变换 - FFT、IFFT
基于查找表技术实现逻辑功能
乘法器
存储资源
FIFO
各种RAM
时钟及PLL
产生高倍频率 - 高频时钟、PLL
延时、产生不同的相位 - 90度、180度、270度、n个时钟周期
分频 - 偶数分频、奇数分频、DDS获得固定频率的时钟信号
计数/测频
定时
管脚
输入处理
逻辑电平判断
轻触按键/拨码开关
按键消抖
矩阵按键
旋转编码器
传感器信号
输出处理
通过GPIO驱动LED、阻性大负载、感性负载
通过GPIO产生PWM信号 - 周期、占空比
并行外设的寻址与数据读写 - SRAM、并行ADC/DAC
信息显示
LED:心跳、呼吸、流水、三色
数码管: 静态显示、动态驱动
LCD/OLED - SPI接口、并行接口,字符型、点阵型
输入输出处理
总线
串行
并行
电平
协议
其它增强功能
内置处理器:软核 & 硬核 & DSP
时钟及管理:PLL、DLL、驱动/分配
IO:多种高速收发、DDR存储器访问、可编程数控阻抗
嵌入MAC单元 - 高效浮点运算
各种内置存储器:双口RAM、FIFO
各种常用接口:I2C、SPI等
系统监控:内置ADCs
使用时要注意的
理解基本概念 - FPGA是什么?能做什么?怎么做?
总体的逻辑描述、组织的设计能力 - 与语言、平台无关
硬件设计的思想 - 同软件设计不同
FPGA与MCU的区别
并行工作、时延
数字万能积木
搭配适当的ADC/DAC能完成模拟世界的大量功能
通过逻辑编程/状态机能实现处理器要完成的很多任务
多资源的有效利用
善用IP Core:调用原厂提供的经过验证过的IP内核
通过DIY项目深刻理解,尤其是通过PCB的设计自己构建一个系统
FPGA在电赛中的应用
FPGA的比重越来越大,6/7大类都可以用到
信号源类:实用信号源的设计和制作、波形发生器、电压控制LC振荡器等;
放大器类:实用低频功率放大器、高效率音频功率放大器、宽带放大器等;
仪器仪表类:简易电阻、电容和电感测试仪、简易数字频率计、频率特性测试仪、数字式工频有效值多用表、简易数字存储示波器、低频数字式相位测量仪、简易逻辑分析仪;
数据采集与处理类:多路数据采集系统、数字化语音存储与回放系统、数据采集与传输系统;
控制类:水温控制系统、自动往返电动小汽车、简易智能电动车、液体点滴速度监控装置。
2007年 - 数字示波器
2009年 - 信号发生器
2011年 - 波形采集、存储与回放系统
2013年 - 频率特性测试仪
2015年 - 数字频率计/80MHz-100MHz的频谱仪
2017年 - 远程幅频特性测试仪(H)、自适应滤波器(E)、电机测速(O)
电赛中采用FPGA的优势
可靠性/稳定性高 - 数字域处理
灵活度高 - 信号处理、输入输出控制、接口协议变换随时配置
备战简单 - 集中于“练好Verilog编程、了解开源资源”
FPGA的使用
ADC + FPGA + DAC的结构,ADC/DAC的指标和灵活使用
数字信号处理 - 善用各种IP
外设?榈拇钆
构成
核心?
FT232下载器版本
直接通过Diamond下载
STM32F072版本
将JED文件Copy在U盘中编程
已经有此版本小脚丫FPGA?榈目梢灾苯邮褂
信息显示:128 * 64 OLED
控制输入: 旋转编码器/按键
信号采集:10bit/50Msps 高速ADC
信号生成:10bit/120Msps 高速DAC
实测能够工作到200Msps,需要搭配小脚丫FPGA核心?
频率测量:高速比较器
控制输出:PWM
传感器:三轴姿态感知
可以训练的技能
用OLED显示信息,并掌握SPI总线以及显示屏的驱动原理
控制信息的按键输入以及按键消抖的软件/FPGA逻辑处理
旋转编码器的输入以及译码 - MCU软件实现/FPGA逻辑实现
ADC高速数据采集以及缓存处理
ADC低速数据采集以及数据处理、MCU的响应
Sigma Delta ADC的实现(通过高速比较器)以及数字滤波器的使用
FFT - 傅立叶变换,用于频谱分析
数字滤波器 - 通过FPGA内部逻辑/乘法器实现,以及通过MCU的程序实现
频率计/计数器设计 - FPGA逻辑实现,以及MCU的定时器/代码实现方法
高速DAC以及DDS信号发生器的构成及参数控制
通过PWM构成DAC实现DDS - 任意波形产生
姿态传感器的数据采集、处理以及信息显示
UART的数据传输
学习和训练的技术要点
FPGA内部资源的有效利用
逻辑资源
Block RAM资源
时钟资源
软核资源
数据采集的一些概念
串行/并行?
串行 - I2C、SPI、串并转换
时钟采样 - 上升沿、下降沿?看数据手册
数据格式?偏移二进制/2的补码
缓存 - FIFO、双口RAM、环形RAM?
触发 - 电平触发、边沿触发
输入输出的接口 - I2C、SPI、按键、显示
输入处理
逻辑电平判断
按键/开关
按键消抖
传感器信号
输出处理
通过GPIO驱动LED、阻性大负载、感性负载
通过GPIO产生PWM信号 - 周期、占空比
并行外设的寻址与数据读写 - SRAM、并行ADC/DAC
信息显示
LED:心跳、呼吸、流水、三色
数码管: 静态显示、动态驱动
LCD/OLED - SPI接口、并行接口,字符型、点阵型
SPI总线
I2C总线
UART总线
逻辑功能
逻辑运算
数字信号处理
通信中的调制与解调: AM、FM、ASK、PSK等
软核/IP核的使用
控制器/处理器、ROM、RAM、FIFO、I2C
学用FPGA相关的资源
工具
开发板/评估板
调试工具
编译/仿真软件
IP Cores
原厂官方提供
开源组织提供
其它人验证
参考
设计指南
系统应用
视频/教程
技术支持
原厂FAE
第三方机构
论坛/社区
有用的资源网站
Github
课后的任务
观看短视频完成软件的下载、安装和点灯的尝试
体会管脚的连接关系
子曰
585次阅读
2021-05-03
FPGA 寒假在家一起练