基于FPGA的嵌入式音频处理系统设计
(SPI Controller)和SRAM 控制器(SRAMController)等OpenBus 器件,并连线如图1 所示.同时,对OpenBus器件进行参数配置.将SPI控制器的数据发送大小(Data Transfer Size)参数配置为32.将I2S音频流控制器的数据缓存(I2S Hardware Buffer)参数配置为4k samples,将I2S设置为中断号INT_I1.
?
?
通常情况下,任何使用OpenBus系统的FPGA 设计都要设计放置接口电路的顶层原理图.图1的Open-Bus系统文件为32位处理器TSK3000A 和I/O 接口逻辑获得了音频流数据,包含了FPGA设计中的主处理器系统.约束文件将原理图顶层的端口连接到目标FPGA器件的实际物理管脚.约束文件中不但包含端口到管脚的映射,还包含如时钟分配.目标器件等其他相关的设计规范.
顶层原理图通过约束文件,将下载到FPGA中的嵌入式系统设计与FPGA器件的物理管脚连接起来.顶层原理图设计中,音频流控制器I2S 与音频编解码器(AUDIO_CODEC)相连,SPI 控制器与音频编解码器控制器CS4270(AUDIO_CODEC_CTRL)相连,如图2所示.
?
?
2.2 软件平台文件设计
在SPB 基础上搭建访问NB 3000 开发板的音频接口,并对音频流数据进行处理的软件平台文件(SwPlat-form),如图3所示.
?
?
NB 3000开发板上的音频编解码器为CS4270,因此图3 中选择CS4270 Audio Codec Driver模块,不需要再自行编写音频编解码器的驱动代码.设计采用SPI作为配置和控制,I2S用来传输数字音频数据流.因此软件平台文件的底层设计选择了I2S Master Controller和SPI Master Controller 模块.中间层设计选择了I2SDriver.SPI Driver和CS4270 Audio Codec模块.软件平台文件使硬件外围设备的访问变得容易,底层模块为特定的外围设备提供了配置数据和驱动代码.设计软件平台文件时,选择什么样的模块,取决于设计中需要访问哪些外围设备.
2.3 嵌入式代码设计
FPGA嵌入式系统设计中,嵌入式工程是“嵌在”微处理器中的.嵌入式代码就是在软件平台构建器上搭建的软件平台的基础上完成的软件编程.嵌入式工程中的软件代码,主要完成音频数据流的获取.音频数据流的处理和将处理好的音频数据流送到NB 3000开发板的喇叭上.主要程序代码如下:
?
?
?
?
3 设计总结
将嵌入式设计文件下载到智能开发平台NanoBoard 3000上的FPGA 器件后,利用音频线将电脑或者音箱的音频源送到NanoBoard 3000的音频输入接口,就能从喇叭上听到处理后的音频效果.设计过程表明,AD的软件平台构建器(SPB)为FPGA嵌入式设计访问硬件电路相关外围设备提供了底层软件驱动提供了便利.通过搭建软件平台,调用IP模块,避开了对于底层硬件的驱动程序的编写,只要掌握高级C语言就可以方便地对外围设备进行编程,简化了嵌入式代码的编写,缩短了FPGA嵌入式设计的开发时间。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)