倪启彦,石建波
(电子工程学院,安徽 合肥 230037)
TMS320C6713(C6713)是业界流行的一款高性能的32 bit浮点DSP,在 255 MHz时钟主频下,其最高执行速度可达1 800 MIPS。C6713拥有丰富的片内资源,其多功能串口不仅可以配置成标准串口的全双工串行通信模式,还能配置成SPI模式,适应于多种应用。TLV320AIC23B是一款高性能立体声的编解码器 (简称AIC23B),内部的ADC和DAC采用Sigma-Delta技术,采样率支持8 kHz~96 kHz, 数据传输能配置成 16、20、24 和 32 bit。AIC23B还提供了麦克风输入,左右两通道线性输入、线性输出及耳机输出。本文详细介绍AIC23B的电路连接和软件设计。利用C6713的McBSP1配置AIC23B的内部寄存器,利用McBSP0与AIC23B进行数据传输。系统采集外部语音信号,采集数据通过C6713处理后送到AIC23B转换成模拟信号。
AIC23B是TI公司出品的一款高品质立体声音频编解码芯片,其与处理器有两个连接口:控制口和数据口,它们都能与C6713的McBSP(Multichannel Buffered Serial Port)无缝连接。内置耳机输出放大器,支持MIC和LINE IN两种输入方式,输入和输出都具有可编程增益调节。AIC23B的模数转换和数模转换部件高度集成在芯片内部,ADC和DAC的信噪比分别可达到90 dB和100 dB。同时,AIC23B还具有很低的能耗,回放模式下功率仅为 23 mW,省电模式下更是小于 15 μW[1],其特性如下:
·∑-△过采样技术;
·采样速率:8 kHz~96 kHz;
·数据格式:16 bit、20 bit、24 bit、32 bit;
·信噪比(NSR):90 dBA(96 kHz);
·省电模式设置;
·包含麦克风输入、立体声输入、耳机输出(带耳机放大器)、立体声输出;
·1.42 V~3.6 V内核电压;
·2.7 V~3.6V缓冲器和模拟电路供电电压;
·兼容TI的McBSP协议。
AIC23B的引脚图如图1所示,主要有模拟输入输出通道、芯片控制口、芯片数据口、时钟接口等。主机通过控制口(CS、MODE、SDIN、SCLK)配置 AIC23B寄存器,控制口根据MODE可配置成两种模式:SPI模式和2-Wire模式。本文采用SPI模式,如表1所示。图2为SPI模式时控制口的时序图,B15~B9为 AIC23B内部寄存器的 7位地址,B8~B0为AIC23B寄存器的9 bit数据。主机通过AIC23B的数据口与其交换数据,数据接口有4种模式:右对齐模式、左对齐模式、IIS模式、DSP模式,四种模式都是先传左通道的数据后传右通道的数据。本文采用DSP数据传输模式与C6713的McBSP相连,在这种方式下,AIC23B可以很方便地与DSP的McBSP接口无缝相接,LRCIN及LRCOUT必须与DSP的McBSP的帧同步信号相连。从LRCIN或LRCOUT的下降沿开始传送数据,第1个数据字是左声道的数据字,紧跟其后的是右声道的数据字,输入字长由寄存器IWL设定[2]。图3为DSP模式下数据传输的时序图[3]。
表1 MODE的引脚设置
AIC23B主机通过写AIC23B的寄存器来配置AIC23B,AIC23B有十一个寄存器,表2显示各寄存器的地址和名称。
在DSP嵌入式系统中,多通道缓冲串行接口McBSP是一个功能强大、连线简洁的接口,通常用来连接音频编解码芯片、串行AD器件、串行DA器件等。McBSP包含一个数据通道和一个控制通道,互相独立的发送、接收引脚,4个通信控制信息引脚。DSP器件通过32 bit并行总线访问McBSP控制和数据寄存器。图4为McBSP组成框图[4]。
表2 显示各寄存器的地址和名称
C6713的McBSP模块具有如下基本特性:
·全双工通信;
·两个数据缓冲寄存器;
·独立的发送和接收帧及时钟;
·可直接连接工业标准的CODEC、AIC以及其他串口AD/DA芯片;
·在数据传输过程中,可设置为外部移位时钟或内部可编程的频率移位;
·可连接AC97标准的接口、IIS接口、SPI接口;
·多达128通道的发送和接收;
·多种数据格式:8、12、16、20、24、和 32 bit;
·8 bit数据格式中可设为低字节在前或高字节在前;
·同步帧和数据时钟的极性可编程;
·高度可编程的内部时钟和帧产生。
根据McBSP与AIC23B的原理,无论是控制口还是数据口AIC23B都可以与C6713的McBSP无缝连接,本设计采用McBSP1连接AIC23B的控制口,用来配置AIC23B的内部寄存器。时钟CLKX1和帧同步发送信号FSX1由DSP产生,向AIC23B发送16 bit的数据字,来初使化AIC23B。每个16 bit的数据字分为两部分,第一部分为AIC23B中寄存器的地址,共7 bit;第二部分为对该寄存器的设置值,共9 bit,对应着寄存器的每一位 (D8~D0)。用McBSP0与AIC23B数据口直接相连,用来与 AIC23B交换数据。CLKX0、CLKR0和帧同步信号FSX0、FSR0由AIC23B产生。图5为C6713与AIC23B的硬件连接示意图。MODE引脚接3.3 V高电平,AIC23B配置成SPI模式,McBSP1工作于SPI模式下;McBSP0配置成外部时钟、帧信号驱动接收和发送。AIC23B中共有11个寄存器,对AIC23B进行初始化时,必须由DSP向它发送11个16 bit数据字来设置它的寄存器。
图5 C6713与AIC23B的硬件接口
软件设计分为初始化、数据传输和数据处理3个部分。如图6给出了系统的工作流程,初始化完成后,系统进入工作状态。外部模拟信号通过AIC23B的AD变换器转换成数字信号,通过数据口传给 DSP,数据经过 DSP处理后传到 AIC23B,经过AIC23B的DA变换后放大输出。
初始化部分包括McBSP的初始化和AIC23B的初始化。该设计中AIC23B工作于主模式,左右声道的采样字宽均为16 bit,数据接口为DSP模式。DSP通过SPI总线接口对音频编解码芯片AIC23B的寄存器进行设置,控制其采样速率、音频源、音量等参数。其初始化步骤为:
(1)设置McBSP1为SPI模式,用于配置AIC23B。
图6 AIC23B的工作流程
(2)设置McBSP0为被动接收模式,用于与AIC23B交换数据。
(3)用DSP的McBSP1配置AIC23B相关寄存器,使其工作在主动模式。
以下给出配置AIC23B寄存器的程序:
图7为在CCS开发软件下对1.1 kHz音频信号采集的波形图,其中横坐标为连续时间段内采样的序号,纵坐标为采样转换后的数值。AIC23B工作在USB模式,采样率为48.8 kHz,所以一个周期采样44个点。信号经过C6713处理后回送到AIC23B,经过AIC23B的DA变换器变换为音频信号。
本文详细介绍了AIC23B与TI公司的32 bit高性能DSP TMS320C6713的接口设计和编程实现。设计电路简洁,编程简单,可用于语音处理、数字电话等音频信号处理的系统中。
[1]TEXAS INSTRUMENTS,TLV320AIC23B Data Sheet,2006.
[2]吕卫强,黄荔.基于短时能量加过零率的实时语音端点检测方法[J].兵工自动化,2009,28(9).
[3]齐敏,王玲,韩韬,刘辉.基于 TMS320DM642的实时语音处理系统[J].电声技术,2009,33(1):65-67.
[4]刘向宇.DSP嵌入式常用模块与综合系统设计实例精讲[M].电子工业出版社,2009.
[5]涂水林,薛正明.TMS320DM642与音频编解码器的接口设计[J].电声技术,2006,30(9):26-29.