1、 任务
使用FPGA为核心器件设计并制作一个直流电机伺服控制系统。
2、 要求
1. 基本要求:
(1)实现PWM逻辑和桥式驱动电路以驱动小型直流电机(5W以下),可开环控制其转速变化;
(2)实现测速电路和逻辑,可采用光电方式,能够测量并显示电机的实时转速;
(3)实现PID反馈控制算法连接测速逻辑和PWM驱动逻辑,实现对电机空载转速的直接精确控制,转速控制范围600rpm~2400rpm,控制误差小于5%,转速跟踪时间小于5s。
2. 发挥部分
(1)降低转速跟踪时间至2s以下;
(2)降低控制误差小于2%;
(3)允许轻载(小于电机堵转扭矩的20%)。
4、 说明
1. 此题侧重电赛控制和电力电子方向,建议参加电赛控制或电力方向的队伍或与参加电赛控制或电力方向的同学组队选做此题
2. PWM逻辑和测速逻辑建议使用Verilog编写,PID算法可用Verilog实现也可在Nios2内软件实现;
3. 桥式驱动电路可采用单芯片方案,参考ST公司L62XX系列。
音乐播放器
一、任务
使用FPGA为核心器件设计并制作一个音乐播放器,能够播放存储在SD卡中的音乐文件。
二、要求
1. 基本要求:
(1)设计音频DAC电路和音频放大电路,可采用单芯片方案;
(2)能够播放44.1KHz采样率16位的音频文件,音质良好。
(3)能够播放多个音频文件,并可切换曲目;
(4)实现快进、快退功能;
2. 发挥部分
(1)能够播放压缩格式的音频文件,如ADPCM格式甚至MP3格式;
(2)实现同步显示歌词的功能。
(3)五段式频谱显示。
软件无线电数据收发系统
1、 任务
使用FPGA为核心器件,实现一套软件无线电数据收发系统。
2、 要求
1. 基本要求
1) 数据发送端采用DDS为信号源,做FSK、ASK或PSK调制(任选一种),并使用DAC输出信号至天线,基带数据采用曼彻斯特编码;
2) 数据接收端采用ADC做直接载频采样或直接中频采样(IF Sampling),在FPGA内做解调(解调方式不限),基带解码并得到数据;
3) 载频自定,占用带宽尽量小,可使用理想信道(直接导线连接)传输载波,并使得数据传输率大于1Kbit/s;
4) 发送端通过8个拨动开关定义发送序列,在接收端以LED显示其状态;
2. 扩展要求
1) 采用无线信道,天线形式任意,传输距离大于0.5m;
2) 提高数据传输率至50Kbit/s。
4、 说明
1.此题侧重电赛高频方向,建议参加电赛高频方向的队伍或与参加电赛高频方向的同学组队选做此题
2. 测试时,将主要采用SignalTap观察编码、调制的情况。
3. 需要了解和学习的知识:
a) 关于数字信号采样的奈奎斯特定律
b) 关于通信的调制丛指、解调、基带编码、符号同步、帧同步等
c) 关于软件无线电的载频采样、中频采样、相干解调等裂槐
请参考相关书籍。
4.可采用一片DE0开发板同时做收发
5.此题方案可深可浅肆郑友,由于信道理想,请大家不要拘泥于通信原理或软件无线电相关书籍上讲述的经典、繁复的方案,应根据具体情况尽量简化解调、解码方法
简易数字存储示波器
一、任务
使用FPGA为核心器件设计并制作一台用于显示被测波形的简易数字存储示波器.
二、要求
1、基本要求
1)要求仪器具有触发存储显示功能,仪器在满足触发条件时,能对被测信号采集与存储,然后使用LCD显示,或者通过串口或JTAG口发送数据至PC端显示;
2)要求仪器的输入阻抗大于1MΩ;
3)显示纵向(电压)分为10格(div),每格10个采样点,纵向分辨率三档可调:±0.1V/div、±0.2V/div、±0.5V/div。
4)显示横向(时间)分为10格(div),每格10个采样点,横向分辨率六档可调:1μs/div、2.5μs/div、5μs/div、10μs/div、25μs/div、50μs/div;
5)最大输入信号带宽达到1MHz;
6)包含上升沿触发和下降沿触发两种触发方式,触发电平可调;
7)存储深度:每次触发存储一屏(100样点);
8)实现连续采样,每秒两次触发采样,即屏幕刷新率2屏/s,没有触发条件时,间隔0.5秒采一屏;
9)观测波形无明显失真。
2、发挥部分
1)增加单次采样和暂停功能;
2)提高屏幕刷新率至5屏/s;
3)扩展存储深度,在单次采样结束和暂停时,具有波形缩放和水平移动功能;
4)显示信号峰峰值、有效值、平均值和频率;
5)增加光标功能,两个光标,可移动并动态显示两个光标处的时间、电压和光标间的时间差;
6)提高采样率、提高横向分辨率并提高输入带宽。
四、说明
这个题目对器件要求比较高,偏重电赛测量方向,建议参加电赛测量方向的队伍或与参加电赛测量方向的同学组队选做此题,题目中需要采样率10Msps的AD转换器,请大家查找ADI或TI公司的相关芯片自行申请。
fpga目前还是比较火的东西,通讯、航天、工业等很多领域近几年都越来越多的应用fpga你学fpga肯定是比较好的
前面说了点废话,具体fpga的开发流程我列一下,纯属个人意见,参考一下吧
1、分析需求,根据需求出方案
2、方案定后,如果需要fpga,就要考虑io需求。例如需要的user io数,是否需要ppc,rocketio,另外需要评估一下需晌毕渣要的逻辑门数,以便选择一个适当规模的fpga
3、根据以上2点数弊开始设计硬件,同时开始逻辑设计(如果时间允许,或者把握不大的话,可以先做逻辑仿真)
4、逻辑设计中,一般自顶而下或自下而顶都可以,个人建议从top开始设计
先列一下需要的所有模块,并画出所有的模块的互相连接和关系,
整个top层的图画完后就可以开始设计vhd代码了,这样设计有个好处就是思路清晰,不容易出错,后期发现问题也比较宴悄容易找到合适的方法修改。
5、代码设计完毕后就是仿真了,modelsim还是比较通用的,一般每个模块都要做一个独立的仿真。
6、仿真完毕就可以下板调试了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)