在许多应用系统中,数字信号处理器(DSP)必须从多路模数转换器(ADC)通道获取信息,才能将经DSP处理后的数字信号传送到多路数模转换器(DAC)通道进行。关键问题是怎样在DSP系统中十分容易且高效地实现这些转换,而这必然涉及到接口电路的设计。为此,本文将介绍一种在单片内集成有ADC通道和DAC通道的模拟接口电路TLC320AC01与TMS320VC5402缓冲串口进行接口的设计方法,同时给出了通过对这种接口电路的硬件进行软件编程来实现模拟信号的采集与回放的程序代码。
1 芯片介绍
TMS320VC5402是TI公司生产的TMS320VC54x系列中的一个操作灵活、高速、具有较高性价比、低功耗的16位定点通用DSP芯片。它的主要特点包括:改进的哈佛结构(1条程序存储器总线,3条数据存储器总线和4条地址总线)、带有专用硬件逻辑CPU和片内存储器以及片内外围专用的指令集、具有专用的汇编语言工具等。TMS320VC5402内含4k字的片内Rom和16k字的双存取RAM、1个HPI(Host Port Interface)接口、2个多通道缓冲串口MCBSP(Multi-Channel Buffered Serial Port),它的单周期指令执行时间为10ns、双电源(1.8V和3.3V)供电,此外,该DSP同时还带有符合IEEE1149.1标准的JTAG边界扫描仿真逻辑。 TLC320AC01是TI公司生产的14位、音频(大约12kHz带宽)、内含抗混叠滤波器和重构滤波器的模拟接口电路,它同时带有一个能与许多DSP芯片相连的同步串行数字接口。其内部电路的配置和性能参数的设定(比如采样频率、滤波器带宽和增益高调整等)都可以通过对它内部的8个数据寄存器写入控制信息来实现。其ADC通道与DAC通道可同步操作,数据是以二进制补码格式进行传输的。它有3种基本的操作模式:单机模式、主从模式、线性编解码模式。在单机模式下,TLC320AC01可生成移位时钟和帧同步信号以用于单机的数据传输;在主从模式下,1个TLC320AC01将作为主机生成主移位时钟和帧同步信号,另外的模拟接口电路为从机;在线性编解码操作模式下,移位时钟和帧同步信号由外部电路生成,定时信号可以由任何一种编解码电路产生。TLC320AC01的典型应用包括调制解调器、语音处理、工业过程控制、光谱分析、作为DSP的模拟接口电路进行数据采集处理以及各种记录仪等。TLC320AC01的工作温度范围是0~70℃,采用28脚塑料J型针封装(带FN后缀)和64脚塑料扁平封装(带PM后缀),体积较小,适用于便携设备。它采用单5V电源供电时,工作时的最大功耗为110mW。
2 硬件连接
该接口的硬件连接电路原理如图1所示。图中,TMS320VC5402与2片TLC320AC01的主时钟必须来源于同一外部时钟源。本采用10MHz的有源晶振作主时钟源,以消除噪声并保持DSP芯片与TLC320AC01接口电路的协调工作。主模式时,TLC320AC01的M/S端接高电平;从模式时,TLC320AC01的M/S接地。
3 软件设计
3.1 软件编制过程
在完成了正确的硬件连接后,接下来就可以进地软件编程调试了。该过程要完成的工作主要包括以下几方面: (1)两个通道的区分 TLC320AC01的运行模式是主从模式:一个TLC320AC01是主,另一个是从。硬件上可通过设置M/S的高低电平来分配主从模式的TLC320AC01,而软件上则通过检测从TLC320AC01所接收的信息字中的最低有效位来分析主与从。主信息字的最低有效位是0,而所有从信息字的最低有效位均是1。主从模式下,TLC320AC01与TMS320VC5402的缓冲串口通信轮流进行。
(2)初始化 初始化操作过程包括通过TMS320VC5402的同步串口发送两串16位的数字信息到TLC320AC01。第一串为0000 0000 0000 0011B,其中14个最高有效位(bits 15~2)定义输出采样值为0,而2个最低有效位(bits1~0)用于说明下一个要传输的数据字是否属于二次通信(关于一次通信和二次通信的内容请参阅TLC320AC01的数据手册)。第二串数据值用来对TLC320AC01的9个数据寄存器的某一个进行配置。其中Bit15、14用来控制Modem中的相移,这里设置为0;bit13为0表示这个数据值将写到TLC320AC01的某个寄存器;bit12~8用于要配置的寄存器地址;bit7~0为要写到寄存器的值。9个寄存器的描述如下:R0在大多数应用时设为0,R1用于设置采样频率,R2用于设置低通滤波器的截止频率,R3用于进行相移控制,R4用于进行模拟输入输出的增益控制,R5用于使能高通滤波器,R6用于控制操作模式,R7可用来控制从模式的串行通信,R8则用于控制生成的帧同步脉冲数。 (3)用户代码的编写 该过程主要完成音频信号的采集与回放代码的编制。本设计采用中断方式,包括发送中断和接收中断。3.2 部分关键代码
(1)初始化初始化代码TMS320VC5402的初始化和TLC320AC01的初始化。TMS320VC5402的初始化代码如下:
SSBX INTM ;使所有中断无效
ORM #0834h,PMST ;设备处理器方式状态寄存器
PMST STM #02492h,SWWSR ;所有外围两个等待状态
RSBX OVM ;使OVM=0
RSBX FRCT ;使FRCT=0,允许整数乘
STM #010h,IMR ;多通道缓冲串口接收中断使能
RSBX INTM ;使能所有非屏蔽中断
下面是TLC320VC01的初始化程序代码:
SSBX SXM ;设置符号扩展模式
LD #PR1,DP ;以下三句设置TLC320AC01内部数据
LD PR1,A ;寄存器R1的值,其余寄存器的设置与此同 CALL AC01_2ND …… RET AC01_2ND;
RSBX INTM :使中断有效
STH A,DXR10 STL A,DXR10 STL #0,DXR10 ;确保字被发送
SSBX INTM ;使中断无效
RET
(2)接收中断服务程序这段程序包括通道的区分,方法是使主TLC320AC01首选写入,主TLC320AC01的LSB是0,从TLC320AC01的LSB是1。发送中断与此相同。具体程序如下:
SBPREC:BITF
DRR10,#1
BC loop1,TC
LD DRR10,A
AND #0fffch,A
STL A,DXR10 B
loop2
Loop1:
LD DRR10,A
AND # 0fffch,A
STL A,DXR10
RETE
Loop2:RETE
4 结束语
利用本文介绍的硬件设计方法和软件编程可以完成模拟信号的采集与回放,从而实现诸如数据采集、处理和存储等功能,并可对采集的数据进行频谱分析,因而可广泛应用于频谱分析仪、数字记录仪以及调制解调器等。