系统中TLV320AIC23的主时钟11.2896MHz直接由DSP时钟产生,MODE接数字地表示利用I2C控制接口来对TLV320AIC23数据进行传输控制。SCLK和SDIN是TLV320AIC23控制端口的移位时钟和数据输入端,它们分别与TMS320VC5509的I2C模块端口SCL和SDA相连。TMS320VC5509的MCBSP1应工作在SPI模式下,以便使MCBSP1的接收器和发送器同步。收发时钟信号CLKX1和CLKR1由TLV320AIC23的串行数据传输时钟BCLK提供,并由TLV320AIC23的帧同步信号LRCIN、LRCOUT启动串口数据传输,DX1和DR1分别与TLV320AIC23的DIN和DOUT相连,可用于完成DSP与TLV320AIC23之间的数字通信。
3.2 通过I2C对TLV320AIC23进行编程控制
I2C模块接口由串行数据SDA和串行时钟SCL组成,SDA和SCL均为双向接口。连接在同一总线上的I2C设备可以工作在多主线(MultiMaster)工作模式下。包括TMS320C55x DSP在内的每个I2C设备都有唯一的设备地址可供软件寻址。其中,主设备用于发送时钟并启动数据传输,被主设备寻址的则为从设备。这些设备根据各自的功能,既可以作为发送器,也可以作为接收器。
设计时,可根据具体需要,使用如下代码来对TLV320AIC23进行寄存器写操作:
T0=0x1a; T0=从写地址,根据电路设计应为0011010b(见表2)
call Init I2C
T1=#0x02
XAR0=#0h
AR0=Register ; AR0=所要写入的寄存器的
地址和对应于该地址的值
call write I2C
NOP
return
这里应注意以下三点:
(1) 在写过一次I2C地址后,只能对一个寄存器进行写操作,而不能一次性对所有寄存器进行写操作。也就是说,对每个寄存器写之前都要按部就班的写一遍I2C地址。
(2) I2C模式下,数据是分为三个8Bit写入的。而TLV320AIC23有7位地址和9位数据,也就是说,需要把数据项上面的最高位补充到第二个8Bit中的最后一位。
(3) 在对控制寄存器的编程过程中,对应于每一次工作状态的改变,不能仅仅修改某个寄存器的值,而是要对这十个寄存器都重新写入一遍,否则系统将无法正常工作,而且应首先写Register10,同时还应对所有寄存器进行复位处理。
3.3 DSP的多通道缓冲串口(MCBSP)设置
由于TLV320AIC23采样输出的是串行数据,因此需要协调好与之相配的DSP的串行传输协议。所以必须对DSP的串口进行正确设置。
MCBSP串口一般通过六个引脚使数据通路和控制通路与外部设备相连。数据经MCBSP串口与外设的通信一般通过DR和DX引脚传输,控制同步信号则由CLKX、CLKR、FSX、FSR等四个引脚实现。
由于MCBSP串口的数据线DR和DX带有缓存寄存器,而帧同步信号FSX、FSR以及时钟信号CLKX、CLKR具有可编程性,因此,它与TLV320AIC23之间的接口设计非常灵活。从这些特点可以看到:将MCBSP串口设置为SPI工作模式,然后使串口的接收器和发送器同步,并且由TLV320AIC23的帧同步信号LRCIN、LRCOUT启动串口传输,同时将发送接收的数据字长设定为32Bit(左声道16Bit,右声道16Bit)单帧模式,就可以方便地实现与TLV320AIC23之间的无缝连接。
4 结束语
通过上述步骤对硬件系统进行设计编程,就可使TLV320AIC23正常工作,从而实现AD、DA以及与之相连接的DSP的正常数据通信,同时实现对语音的采集与回放等基本音频处理功能。通过在Code Composer Studio V2上的实际编程以及在硬件系统中的实际联调,证明:这种设计是合理和正确的。另外,如果把G.723.1的编解码算法移植到DSP算法处理中,则完全可以把该模块嵌入到网络会议的可视电话中作为语音处理模块。这种设想在DSP具体的算法实现上已经仿真试验通过。而对于实际嵌入到可视电话中,进而与H.324相结合来对视频音频数据的混合处理等一系列问题,则是今后进一步探索研究的方向。
本文关键字:暂无联系方式嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术
上一篇:QNX环境下多线程编程