当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于Nios II的数字音频录放系统的设计

前言

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的寄存器及其参数设置



2.3  串/并转换模块[!--empirenews.page--]

由于WM8731在A/D转换后和D/A转换前的数字信号都是以串行格式与外界进行数据交换的,所以,在WM8731与系统控制核心之间需要加入串/并和并/串转换模块。本文主要对其中的串/并转换模块的设计原理进行介绍。工作于主模式的WM8731与串/并转换模块的连接如2所示。图中,BCLK、和LRCK为WM8731返回给控制模块的位同步时钟和采样时钟,ADCDATA为WM8731输出的串行音频数据流。



图2 主模式的WM8731与串/并转换模块的连接图

本设计中,串并转换模块由两个16位的移位寄存器构成,分别对左声道和右声道的位数据流进行串/并转换,电路构成如图3所示。两个移位寄存器inst7和inst8由LRCK和LRCK的非信号使能,当LRCK为低电平时,移位寄存器inst8工作,对左声道的数据流进行串并转换,当LRCK为高电平时,移位寄存器inst7工作,对右声道的数据流进行串并转换。



图3 移位寄存器电路图

3 系统软件设计

本系统的软件是在Altera公司提供的软件集成开发工具IDE中,以C语言形式,在硬件抽象层(HAL)函数支持下设计的。系统的软件流程图如图4所示。系统启动后,先进行初始化操作,初始化程序主要完成WM8731的寄存器配置、初始化DMA通道及清采集FIFO缓冲器。随后,系统进入主循环状态,并检测按键。当检测到SAVE按键时,系统先通过I2C配置WM8731为录制时需要的状态,然后清FIFO缓冲器,随后启动DMA接收通道,开始保存数据,直到一次DMA传输结束。当检测到播放按键被按下时,系统通过I2C配置WM8731为播放时所需要的状态,并进入播放程序。当系统检测到停止按键被按下时,设置播放标志位为STOP,并在一次DMA完成后,自动停止播放。



图4 系统软件流程图

4 结束语

本设计在Altera公司最新推出的CycloneII系列的EP2C35芯片上进行了软、硬件调试,功能全部正常。由于系统设计中采用了DMA控制下的FIFO和SDRAM之间的直接高速数据传输技术,有效地解决了音频信号的高速A/D、D/A转换及处理过程中对CPU资源长时间占用和系统功能扩展时对PCU资源更多需求的矛盾,使得本设计在系统功能扩展上具有极大的潜力。再加上SOPC技术在软、硬件设计上的可裁减和很方便移植等优点,本设计可以作为一个子系统应用在更大型的系统设计中,例如嵌入式网络音、视频信号处理等,有很好的应用前景和科研价值。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

每位音频测试工程师都值得拥有的AP音频分析仪

关键字: 模拟 数字音频 音频分析仪

深圳2022年10月8日 /美通社/ -- 日前,TUV南德受邀参与亚马逊全球个人防护设备(PPE)合规管理线上峰会,为企业分享欧盟、英国、美国及日本的个人防护设备...

关键字: 亚马逊 防护 BSP NIOS

摘 要:为了更好地实现物联网或工业控制领域中传感器网络设备的远程监控功能,本文设计了一种基于FPGA的嵌入式网关系统的随机方法。该设计通过构建可编程片上系统 (SOPC),并利用Nios II嵌入式系统通过串口通信来实现...

关键字: 嵌入式网关 FPGA NIOS II COS-II操作系统 SOPC

摘要:提出了一种基于ADI公司的ADSP-BF533和网络芯片LAN91C111的网络音频监控系统的设计与实现方案。介绍了VDK的组成与工作原理、TCP/IP堆栈移植、基于VDK的SOCKET编程、BF533和LAN91...

关键字: 数字音频 VDK BF533 LAN91C111 SOCKET 网络通信

摘要:针对工业控制领域中对多串口通信的需求,采用SOPC技术并利用FPGA的可编程性,给出了一个基于NiosII的30路串口数据转发通信处理机的设计方法,同时定义了相应的数据通信协议,从而实现了30路下位机与上位机的串口...

关键字: 多串口通信 SOPC FPGA NIOS

  本文主要搭建一个多生理参数测量系统的数据处理平台,在FPGA中嵌入一个32位Nios II软核处理器,用于控制数据的传输、存储及显示。主要完成了此数据处理平台硬件系统的定制及编写相应程序,以控制数

关键字: NIOS ii 生理

  目前液晶拼接屏是显示领域的热门产品,相信大多数用户对三星最新的7.3mm超窄边液晶拼接屏都不陌生,但是说到7.3mm超窄边拼接屏还有700cd/m2跟450cd/m2之分,可能大多数人都会迷

关键字: 数字音频 数字麦克风 阵列拾音

ADI今日推出采用SHARC®音频模块(SAM)的完整音频系统,可用于数字音频设备,包括音频FX处理器、多通道音频系统、MIDI合成器,以及其他基于DSP的音频系统。

关键字: 音频总线技术 音频系统 数字音频

  当前,随着居住和办公环境空间的增长,音频的布线在大型会议室、汽车等场所越来越难以实现,成本越来越高,迫切需要无线传输高质量的音频。CD音质音频的传输速率就达到1.5Mbps以上,因此对无线系

关键字: 数字音频 音频传输 nrf24z1

  接触过音响的人们应该都或多或少听说过“音场”这个词,那“音场”到底是什么样的概念?在发烧音乐的发源地美国,有两个词与音场有关,一个是&ldqu

关键字: 数字音频 音频系统
关闭
关闭