微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DIY创意设计:手舞足蹈跳舞机的软硬件实现,方案设计

DIY创意设计:手舞足蹈跳舞机的软硬件实现,方案设计

时间:05-26 来源:互联网 点击:

层之间会出现α运算。所有的α运算均由PPU处理。

MP3 Decoder/频谱分析功能部件

游戏中的声音以mp3的格式储存在CF卡中,cpu从Flash中读取mp3文件,送给MP3 Decoder处理,将它转化成PCM格式的数据,再将PCM流转换成模拟信号,最终通过扬声器播放出来。

游戏中的声音包括两种,一种是游戏背景音乐,存储格式是MP3格式,由MP3 Decoder处理,从游戏开始就连续播放,一直到游戏结束为止;另一种是游戏提示音,提示音持续时间较短,通常只有几秒钟,存储格式为WAV格式,不需要解码,不同提示音文件分别对应着玩家完成游戏动作的情况或得分情况,CPU通过判断玩家完成动作情况或得分情况控制播放对应的提示音文件。

要想营造绚丽、欢快的游戏氛围,变幻多端的灯光效果是必不可少的,为了模拟这种效果,我们设计了频谱分析模块。该模块从MP3 Decoder接收PCM流文件,通过对PCM文件进行频谱分析,得知游戏节奏的快慢,并控制LED指示灯根据游戏的节奏按照不同的频率进行显示。

压力传感器/光传感器

压力传感器和光传感器分别接收玩家脚部与手部的动作作为原始输入,每个传感器对应一个寄存器,该寄存器用于记录输入状态。游戏中读取输入的操作全部在中断周期中完成,游戏中断时,如果传感器有输入,那么对应的寄存器值被置为1,之后CPU读各寄存器的状态值,依次判断玩家的输入是否符合游戏要求,并确定游戏下一步的显示图像、播放声音等操作。在中断的最后阶段还要对各状态寄存器进行复位。

DDR SDRAM Controller

UART

用于调试。

软件功能框图及描述

除了完成硬件的设计之外,我们还要在soc之上完成设计游戏软件等工作。下图为跳舞机游戏流程图。

B0:游戏尚未开始时,该模块完成标题画面的绘制、控制标题音乐的演奏;

B1:游戏尚未开始时,读中断周期的Start键值,如果Start键被按下,则进入C模块;

B2:游戏尚未开始时,读中断周期的压力传感器值,并通过判断压力传感器的值,选择游戏的音乐种类;

D0:游戏进行过程中,读中断周期的Start键值,如果Start键被按下,则暂停游戏,当Start键再次被按下时,恢复游戏;

D1:游戏进行过程中,完成背景层、卡通层的绘制,并控制背景音乐的播放;

D2:游戏进行过程中,在中断周期读各压力传感器的值,判断游戏动作的完成情况,根据完成情况的不同,计算玩家的得分,控制播放相应的游戏提示音、绘制对应的前景层图像;

E0,E1,E2,E3分别辅助D层模块完成各自的功能,其具体功能如图所示。

需要的开发平台

实现本方案所需要的基本功能、功能、接口:

MicroBlaze软核

DDR SDRAM

Compact Flash Controller

RS-232串行接口

XSGA Output

AC97 Audio CODEC

CPU Trace and Debug Port

USB 2 Programming Interface

所需要的目标FPGA开发平台,简述为什么需要此平台:

在游戏运行过程中,图像处理和声音处理比较耗费计算资源,由于我们分别设计了PPU和MP3 Decoder对这两部分功能进行处理,大大减轻了CPU的负担,因此MicroBlaze就可以满足该系统的需求。

为了实现设计方案中描述的各项功能,我们需要CF Controller、RS-232串口等接口。

综上分析各种需求,我们选择使用Xilinx Virtex-II pro开发板。在设计过程中,需要使用Virtex-II pro开发板,一旦设计完成,如果需要投入生产, Spartan芯片系列就能满足要求。

方案实施过程中需要开发的模块

MP3 Decoder

频谱分析功能模块

PPU

传感器转换器

各软件功能模块

上述模块功能说明在功能框图说明中已经阐述

系统最终要达到的性能指标

最终的跳舞机系统能够准确地判断玩家的动作,并可以正确并流畅地显示图像、播放音乐。

需要的其它资源

设计输入输出功能子板

子板功能描述、接口说明、时间、方式

测试设备

列出在方案实施过程中所需要的测试设备(万用表、示波器、频谱仪、逻辑分析仪等)

仿真、开发工具

EDK用于SoC软件的开发

Synplify用于硬件综合

ModelSim用于系统仿真

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top