微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于Nios II的数字音频录放系统的设计

基于Nios II的数字音频录放系统的设计

时间:01-08 来源:21IC 点击:
前言

SOPC( System On Programmable Chip)技术是SOC( System On Chip)技术和电子设计自动化(EDA)技术结合的产物。它可以将处理器、存储器、I/O接口、硬件协处理器和普通的用户逻辑等系统设计需要的功能模块都集成到一个FPGA 芯片里, 构建一个可编程的片上系统[1]。它还具有灵活的设计方式,可裁减、可扩充、可升级,具备系统可编程等功能,是一种优秀的嵌入式系统设计技术[2]。本文研究了一种基于SOPC技术的嵌入式数字音频录放系统的设计方案。系统通过在FPGA芯片上配置NiosII软核处理器和相关的接口模块来实现嵌入式系统的主要硬件结构,并结合嵌入式系统所支持的软件设计来控制音频编/解码芯片WM8731和SDRAM,实现了音频信号的A/D、D/A转换、存储、回放等功能。由于采用了SOPC和DMA控制技术,该系统具有设计灵活、扩展性好和数据处理速度快等优点[3、4]。

1 系统原理和结构

系统结构如图1所示。本系统选用的FPGA芯片是Altera公司最新推出的CycloneII 系列的EP2C35。该芯片具有35000个逻辑单元、672个引脚、475个用户自定义I/O接口、35个嵌入式乘法器和4个锁相环,是一个集成度极高和功能强大的FPGA芯片。在FPGA中设计有NiosII软核处理器和挂在该NiosII系统的Avalon总线上的I2C配置接口模块、串/并转换模块(S/P)、并/串转换模块(P/S)、先入先出存储器模块(fifo_in、fifo_out)、Sdram存储器控制接口(Sdram control)、DMA控制器接口(Dma_in、Dma_out)和用于接收按键信息的通用并行接口(pio)模块等。在FPGA外有音频编/解码芯片(WM8731)、音频数据存储模块(SDRAM)和控制按键(keybord)等。

图1 系统结构图


系统的音频信号采集原理是:WM8731经过I2C配置后,将输入端加入的模拟音频信号进行A/D转换后,成为串行的数字信号。FPGA内的串/并转换模块再将该信号转换成16位宽的并行数字信号。此信号从s/p的输出,并交给先入先出存储器(fifo)进行缓存。当fifo的数据达到其容量的一半时向dma_in请求一次DMA传送。Dma_in接受请求后就执行一次fifo到Sdram之间的直接DMA数据保存。多次重复fifo到Sdram之间的DMA传送,直到采集停止键被按下后,就完成了一段音频数据的采集。

回放原理是:在Dma_out的控制下,通过Sdram控制器将Sdram中保存的音频数据经fifo_out送到并/串转换模块的输入端,经过并/串转换后的串行数字信号再由WM8731进行数/模转换,就还原成为模拟的声音信号。多次重复这种DMA传送操作,直到回放停止键被按下后就完成了一段音频数据的回放。

2 系统硬件设计

系统的硬件主要由FPGA内的NIOSII中央处理器及接口模块和FPGA外的音频编/解码芯片WM8731、存储器和控制键等部分构成。

在系统的硬件设计中,FPGA内部各模块的设计是本系统硬件设计的核心技术。FPGA内部各模块是利用Altera公司提供的QuartusII开发软件和其中集成的SOPC Builder系统开发工具来设计的。SOPC Builder支持NiosII CPU的配置,并支持设计者在该工具所提供的IP库中根据系统设计需要选择相应的接口模块,并加入到NiosII系统中。这样,在极短的时间内就可以完成一个SOPC系统的设计。将这些设计在QuartusII中编译并生成sof格式文件后,下载到FPGA芯片中就形成了SOPC的嵌入式系统硬件平台。

下面主要对NIOSII软核处理器、I2C总线控制接口、串/并转换模块等几个关键模块的设计进行介绍。

2.1 NiosII软核处理器

本系统设计所选择的处理器是Altera公司新近推出的第二代嵌入式NiosII软核处理器系列中的一个。NiosII处理器系列是一个用户可配置的通用32位RISC嵌入式软核处理器集合。它包括三种软核CPU:一种是高性能软核,它的处理能力超过200MIPS,需要占用1800个逻辑单元;一种是精简软核, 用这种软核构造一个完整的CPU系统只需要占用700个逻辑单元;第三种是标准软核,这种软核约占用1400个逻辑单元,性能也介于上两种软核之间。所有软核都是100%代码兼容,设计者可根据需要对上述三种软核进行选择来调整嵌入式系统的性能及成本。由于本设计采用的CycloneII系列的2C35芯片具有35000个逻辑单元,逻辑资源十分丰富,加上系统对CPU的性能要求较高的原因,因此选用了高性能的NiosII软核作为本系统的CPU。


2.2 I2C总线控制接口

WM8731是Wolfson Microelectronics公司生产的一款低功耗的高品质双声道数字信号编解码芯片。该芯片的ADC和DAC的采样频率为8KHZ~96KHZ可调,可转换的数据位长度为16~32位可调。WM8731的内部有11个寄存器。该芯片的初始化和内部功能设置是以I2C总线方式对其内部的这11个寄存器进行相应的配置来实现的。本设计中WM8731工作于主模式,采样频率设为48KHZ,转换的数据位长度为16位。

由于SOPC Builder自带的IP库中并不包含I2C配置接口模块,所以该模块需要设计者根据要配制的芯片的寄存器特点和功能要求进行专门的设计。本系统的I2C接口是作者自行设计,并以IP核的形式通过SOPC Builder连接到系统的Avalon总线上的。WM8731的基地址是34h ,11个寄存器的配置数据如表1所示。其中1Eh为WM8731的软件复位控制寄存器,复位时配置的值为00h,平时为缺省值。

表1 WM8731的寄存器及其参数设置

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

网站地图

Top