基于FPGA的音频信号采集处理系统设计

2016-05-18 04:47
电子制作 2016年18期
关键词:寄存器移位时钟

基于FPGA的音频信号采集处理系统设计

李佳希 王才敏 北京航天控制仪器研究所通信系统事业部

本文介绍一种基于FPGA的音频采集处理系统。系统以FPGA器件为控制核心,通过AD/DA控制模块实现数据采集功能;通过SDRAM控制模块实现对SDRAM的数据读写功能;通过FIR滤波器模块,实现信号低通滤波处理功能。本设计具有速度快、成本低、体积小等优势。

FPGA;SDRAM读写;FIR滤波

引言

随着微电子和信号处理技术的发展,数字音频采集处理技术在众多领域得到广泛应用,以FPGA为核心的音频采集处理系统,在现代数字系统设计中具有广阔的应用空间。

1.总体设计方案

系统总体设计方案如图1所示,FPGA为系统的控制核心,负责控制AK4550和SDRAM芯片,使它们能够按特定的时序工作,并且在需要的时候进行调用,也负责对采样回来的信号进行滤波处理。AK4550负责对采集的音频信号进行模数转换。SDRAM负责数据的存储。

2.硬件控制模块

2.1 AD/DA控制模块

AK4550分别采用两路模拟信号输入和输出,使用简单灵活。AK4550与FPGA之间通过I²S总线连接,其中MCLK是主时钟,SCLK是移位时钟,LRCK是帧时钟,用于切换左右声道数据。

AD/DA控制模块主要由分频模块、I²S模块、系统控制模块和移位寄存器模块4部分组成。

分频模块:由FPGA的时钟分频得到所需要的主时钟信号MCLK,再由主时钟分频得到SCLK和LRCK信号。

I²S模块:通过分频得到的MCLK、SCLK和LRCK信号配置AK4550。当LRCK为高电平时,采集16位左声道数据;反之则采集16位右声道数据。

图1 系统结构框图

图2 AK4550控制模块原理图

系统控制模块:通过控制PWAD与PWDA来控制AK4550当前的工作状态,其中高电平代表工作,低电平代表空闲;通过控制DEM0和DEM1来选择采样频率,本设计选择将DEM0和DEM1同时置高,即采样频率选择为32kHz。

移位寄存器模块:由于采集的数据为16位,而芯片输入输出接口SDTI和SDTO均为1位,故需通过以SCLK为控制时钟的计数器控制数据的传输,每检测到16个SCLK上升沿信号进行一次数据传输。

2.2 SDRAM控制模块

SDRAM控制模块除了时钟分频、数据接口等部分外,主要由一个状态机来实现,整个状态机根据需要设计了8个主要状态,分别为初始化状态、空闲状态、刷新状态、激活状态、读、写等待状态、读状态和写状态,通过时钟上升沿时刻CS、CAS、RAS、WE的不同组合确定当前状态。状态机的工作流程为系统上电,对SDRAM进行初始化之后进入空闲状态,当收到写命令时,触发行激活,进入写等待状态,执行写操作。同理当收到读命令时,触发行激活,进入读等待状态,执行读操作。当准备打开新的行时进行预充电,与此同时,每当刷新时间到时,控制模块进入自刷新状态。

图3 SDRAM控制模块原理图

如图3所示,SDRAM控制模块通过外部RD和WR信号控制SDRAM的读写,并通过地址输入确定数据的内容和存放位置。时钟分频模块将外部晶振提供的时钟信号CLKIN分频得到MCLK时钟信号;接口模块负责数据接口DATA和SDRAM数据接口DQ之间的通信;状态机模块负责在各工作状态提供相应的CKE、CS、CAS、RAS、WE信号,使SDRAM按照正确的状态运行。

3.信号处理模块

在FPGA中实现FIR滤波器,首先要确定滤波器的阶数及各阶的系数,本设计选择了16位32阶、截止频率为1kHZ的低通滤波器。滤波器的主体部分由总控制器、加法树、移位累加器、移位寄存器和位选1×16乘法器5个部分组成。

总控制器:总控制器有接受复位信号、产生位移时钟、产生运算控制时钟等功能。滤波器是16位的,再加一个移数时钟脉冲,总共17个时钟脉冲周期,所以运算控制时钟是由一个17进制的计数器产生的。

移位寄存器:在一次序列运算结束后,原先存放x(n+1)的寄存器存入x(n+2),而原先存放x(n+2)的寄存器存入x(n+3),以此类推。原先存放x(n)的寄存器存入由AD控制器移位寄存器端口新进来的数据。

位选1×16乘法器:当运算控制时钟信号到来时,数据h(n)的相应位与x(n)相乘,并把结果送给加法树。

加法树:加法树把所有加数两个一组分别进行相加,然后将所得到的和值两个一组继续相加直到只剩下一个数,即为所有数相加的和。

移位累加器:移位累加器将加法树得出的结果进行逐个累加。

4.结论

按以上描述设计的基于FPGA的音频信号采集处理系统经过了FPGA下载验证,正确配置了AK4550和SDRAM芯片,滤波器运行正常,存储和播放声音效果良好,播放无失真。本设计实现了AK4450和SDRAM在FPGA上的应用及FIR滤波器的算法,提出了一种非DSP或单片机应用的做法,提高了系统运行速度,节约了空间和成本。

[1]潘松、王国栋.VHDL实用教程.电子科技大学出版社,2001.7

[2]ALTERA SDR SDRAM Controller White Paper. http://www.altera.com,2002

猜你喜欢
寄存器移位时钟
MDT诊疗模式在颞下颌关节盘不可复性盘前移位中的治疗效果
STM32和51单片机寄存器映射原理异同分析
别样的“时钟”
古代的时钟
Lite寄存器模型的设计与实现
再生核移位勒让德基函数法求解分数阶微分方程
大型总段船坞建造、移位、定位工艺技术
微小移位的B型股骨假体周围骨折的保守治疗
有趣的时钟
时钟会开“花”