|
|||
![]() |
您现在的位置: 中国EDA技术网 >> 文章中心 >> 嵌入式系统 >> DSP技术 >> 文章正文 | 用户登录 新用户注册 |
|
|||||
| TMS320C54xx与TLV320AIC24型编解码器的接口设备 | |||||
| 作者:湖南大学… 文章来源:国外电子元器件 点击数: 更新时间:2006-3-27 | |||||
|
摘要:DSP由于其强大的数字信号处理能力而被广泛应用,而DSP与其他器件的接口方法是设计基于DSP器件的各种系统应重点考虑的问题。本文介绍一种TLV320AIC24型编码解码器与DSP的接口设计方法。给出TMS320C54xx与TLV320AIC24的硬件接口电路和部分软件程序。 1 前言 TMS320C54xx是TI公司生产的具有较高性价比的DSP系列,采用高性能的改进型哈佛总线结构;内含一个40bit的算术逻辑单元(包括一个40bit的筒形移位器和两个独立的加法器)、软件可编程等待状态发生器以及可编程分区转换逻辑电路;同时带有内部振荡器或用外部时钟源的片内锁相环(PLL)时钟发生器;该DSP带有全双工串行口,支持8位或16位传送;同时带有时分多路串行口、缓冲串行口、16位可编程定时器、8位并行主机接口等;可用外部总线进行关断控制,以断开外部数据总线、地址总线和控制信号;数据总线具有总线保持特性。 TI公司的TLV320AIC24型多媒体数字信号编解码器则可提供时分复用串行口(SMARTDM),并可用一个先进的TDM格式同步4线串行口以优化DSP的性能,从而实与流行DSP(如C5000、C6000)和微控制器的无缝连接。SMARTTDM提供了连续数据转换和再配置编程两种模式(ADC/DAC和控制数据),可使TLV320AIC24 DSP编码器和DSP数据转换的带宽最大化(只对ADC/DAC数据)。在一般的操作中,它会自动发现串行接口中的编码个数并调整时钟数以与编码数据相匹配。而在TURBO操作中,它可以保持相同的时钟数值,但位转换率最大到达25MHz,允许其他的DSP外围串行器件在相同的采样周期内分离相同的串行总线。TLV320AIC24支持任意基于SMARTDM的器件级联,实现多通道编码(最多可有8路TLV320AIC24编码级联到单个串行口),它所支持的3种串行口配置为单机主、单机从和级联主从模式。 2 硬件接口 DSP McBSP和TLV320AIC24的接口方式为4路SMARTDM信号,分别为帧同步、串行数据输出、串行数据输入和时钟源,它们分别连接到FSX/FSR、DR、DX、CLKX/CLKR。在级联模式下,DSP可通过主器件的FS端接收帧同步信号,主器件的FDS端连接到第一级从器件的FS端,而将第一级从器件的FSD连接到第二级从器件的FS端,如此类推。最后一级的FSD通过电阻器连接到3.3V电源输入端。图1给出级联TLV320AIC24和DSP的连接方式。 3 软件编程 TLV320AIC24的每一个通道都含有6个控制寄存器,可以编程所需的操作模式。在控制帧模式下,通过DIN引脚可以对所有的寄存器进行编程。在一个帧同步延时后,新的配置生效。上电后,TLV320AIC24被默认为编程模式。设置控制寄存器1到第6位可用于转换连续数据模式。如果采用15+1数据格式,那么,把DIN的最低位设置成1可将连续数据传输模式转换成编程设置模式。其格式如下:
其中,D15-D13位为控制寄存器地址,操作时可与位D7-D0所携带的数据一块写入;位D12用于确定对所寻址寄存器的读写;位D11用来确定是否选择广播模式;位D10-D8永远设置为1。 下面给出编码器寄存器的编程例子。其中,DSP通过DMA连接到SMARTDM以对TLV320AIC24进行初始化。DMA是指在不需要CPU干预的情况下,在映射存储区的不同区间传输数据的技术。DMA可支持上存储器、片上外设(包括EHPI8)或是外部设备间无CPU负责的独立数据交换。 (1)初始化 SeriaIPortOInit(); //串行口初始化TLV320AIC24 DMAC_init(); //DMA初始化 DMAC_ch_enable(DMAC_CH_0); DMAC_ch_enable(DMAC_CH_1); *IMR=DMAC0 |DMAC1; //开DMA中断 *IFR=0xffff; SeriaIPort0_TXRX_Enable(); //重新设置串行口0配置函数 Asm(" rsbx intm"); //使能中断 ......; (2)DMA0中断服务子程序,进行数据接收 interrupt void DMAC0_isr() {if (mode==1) {if(rx_full==0) {if(receive==0) {*(DMSA)=0;//配置通道0 *(DMSDI)=(unsigned short)MCBSP0_DRR1;//通道源地址寄存器配置为MCBSP0的数据接收寄存器的地址// *(DMSDI)=(unsigned short)dmac_ch0B;//DMDST0 .0通道目标地址寄存器 *(DMSDI)=0x07; //DMCTR0.0通道单元计数器寄存器 *(DMSDI)=0x1000;//DMMCR0-0通道传输模式控制寄存器 receive=1; } else {......; receive=0;} dmacount0++; rx_full=1;} DMAC_ch_enable(DMAC_CH_0);//使能DMA通道0 } else {if(frame>=4) {......; //配置通道0 } else {......; //配置通道0 } DMAC_ch_enable(DMAC_CH_0);//通道0使能 }} (3)用DMA初始化TLV320AIC24子程序 short dmc_ctrl[CTRL_BUF_SIZE]={0,0,0,0, AIC_RESETs,0,0,0,0,0,0,AIC_Ms,AIC_NFs, AIC_DACs,AIC_MUTE_SITONs,0,0,0,0, AIC_CH1_IN,AIC_CH2_IN,AIC_CH1_IN, AIC_CH2_IN,0,0,0,0,AIC_CH1_OUT, AIC_CH2_OUT,AIC_CH1_OUT,AIC_CH2_OUT,0,0, 0,0,AIC_ADCs,AIC_16BITs,0,0}; void DMAC_init() {*(DMPREC)=0x8380;配置通道优先工作寄存器,初始化所有通道为禁止和低优先级 //设置通道0 ...... //设置通道1 *(DMSA)=5; *(DMSDI)=(unsigned short)dmac_ctrl+1;//通道1源地址寄存器 *(DMSDI)=(unsigned short)MCBSP0_DXR1;//通道1目标地址寄存器配置为MCBSP0的数据发送寄存器// ...... //设置单元和帧地址索引寄存器0 ...... } 4 结束语 本文介绍的硬件设计方法和软件编程可以完成语音信号的采集与回放,从而实现语音数据的采集、处理和存储等功能。该方案能够满足主流语音处理产品的要求,可以广泛应用在各种相关设备中。 |
|||||
| 文章录入:奇观一线天 责任编辑:奇观一线天 | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 用TMS320LF2407和FPGA实现电 基于双DSP的磁轴承数字控制器 正弦逆变器控制软件设计 802.11b协议的直接序列扩频的 以DSP为核心的无线定位系统的 基于TMS320DM642的视频采集驱 TS201S型DSP引导程序加载方法 基于DSP与双目CMOS摄像头的数 DSP片外高速海量SDRAM存储系 双口RAM CY7C026在高速数据采 |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 欢迎投稿 | 网站简介 | 网站地图 | 广告服务 |联系我们 | 友情链接 | 版权申明 | | |
| 本站所载文章力求原创,部分文章来源网上,转载本站文章均注明出处,我们鼓励原创,欢迎投稿 假如我们发布的某些文章侵犯了您的权益,请联系我们,我们将在最短的时间内删除相关文章。 同时我们提供了一个电子爱好者自由交流的平台,欢迎大家参与讨论。点击进入 |
|