4程序设计
对DSP的串口编程时,首先要复位MCBSP串口,其次是配置一些16位寄存器,设置控制和收发寄存器中各位的值。配置好寄存器,对串口的操作实际上就变成了对寄存器DRR和DXR的操作,发送数据就是对DXR进行写操作,接收数据就是对DRR进行读操作。MCBSP支持包括8、12、16和32位字长格式的数据收发。编程复位和配置寄存器的程序如下:

MAX147每次从DIN接收一组8位的控制字,启动一次转换,DOUT上输出一组12位的A/D转换数值。一般控制字为1XXX1111,其中包括选择输入通道、采样极性和转换时钟方式(内部时钟和外部时钟)、功耗模式等设置信息。在最后一位控制字输出结束后的第一个时钟下降沿,触发一次A/D转换。在A/D转换数据的最高位移出之前,SSTRB产生一个高电平脉冲,可以作为DSP串口的帧同步信号。如果在A/D转换器空闲时出现第一个高电平或在第5位A/D转换数值后出现的第一个高电平,MAX147都判断为起始位。图3所示为16时钟周期转换时序。
一组16个时钟的数据包对应一组12位的A/D转换数据,DSP读入的16位数中最高1位和最低3位是无效位。当一组数据包传送完毕后,至少有2个SCLK周期的空闲,这是由SPI方式的特点所决定的,所以,在SPI模式下,最快的采样周期并不是16个SCLK周期,而是18个SLCK周期。MCBSP在时钟的下降沿发送数据,上升沿接受数据。以下是向DXR传送一次控制字,将接收寄存器DRR中的数据存入缓冲区的中断服务子程序。

;tint中断服务程序
-tint:SSBX INTM;/屏蔽所有中断
STM #COMMAND,DXR11;/向DXR11传送控制字
LDM DRR1l,A;/DRR11为Mcbsp1的数据接收寄存器
STL A,-3,*AR1+%;/数据存入缓冲区,循环寻址
RETE
.end
本系统已成功地应用到温度、振动加速度信号检测系统中。
参考文献 [1]TMS320C54X DSP Reference Set Volume 5:Enhanced Peripherals[Z].T I,1999.Literature Number.SPRU302.
[2]申敏.DSP原理及其在移动通信中的应用[M].北京:人民邮电出版社,2001.