TMS320VC54x处理器McBSP接口的设计和实现
TP3067是美国国家半导体(NationalSemicodductor)公司生产的PCM CODEC芯片,具有串行的I/O接口,供电、功耗低于70 mW,而且具有自动断电功能,内部设计有性能良好的电源滤波电路,能够实现A律PCM编码和解码。TP3067对话音进行8 kHz采样,即每0.125 ms一次,每次采样编成8 b编码,′C5409接收后,变换成线性的16 b,每20 ms组成1帧,共需TP3067进行160次采样。TMS320VC5409提供的串行口包括数据输入BDR,数据输出BDX,接收时钟BCLKR,发送时钟BCLKX,接收同步时钟BFSR和发送同步时钟BFSX。TPS3067的帧同步有2步方式(long frame sync)。而TMS320VC5409的多通道自动缓冲串口的工作方式,可以通过发送和接收寄存器灵活配置帧长度、帧周期以及接收发送时钟沿。如图1所示对接后,只要在系统初始化时正确配置寄存器,就可以保证串http://www.szmzhg.com/贴片电感行数据的输入输出。TP3067数字端口一侧,MCLKR/PDN和 MCLKX相连,同时相连的还有BCLKR,BCLKX,也就是忽略MCLKR/PDN的POWERUP和POWERDOWN功能,由′VC5409提供接收发送时钟及同步时钟。以上2个时钟的值可以通过软件设置McBSP控制寄存器SRGR1和SRGR2设定并更改。
2 系统软件的设计
2.1 中断服务程序
由于整个语音编解码系统需要用到串行口中断以及定时器中断等多种中断方式,必须在中断向量表中说明中断发生时如何进入中断服务程序。地址为0x001D 的寄存器PMST(Processor Mode StaTusRegister)的高9位为中断向量指针IPTR可以决定向量表的位置。对于C54x,可以任意修改IPTR地址来表示1个128 B的页,决定中断向量表的地址。例如,′C5409硬件复位后PMST的15~7 b全为1,所以中断向量表的位置在0xFF80。初始化时,系统所有的中断都被屏蔽掉。将中断向量表映射到程序空间的0x0080,所以修改IPTR为0x01。中断向量表中每一个中断矢量有4 B的空间,足够放2个大小为1 B的延迟跳转指令和1个2 B的延迟跳转指令,还有1条1 B的从中断返回的指令RETE。系统初始化以后,如果允许中断,将状态寄存器(ST1)的INTM位置0,中断屏蔽寄存器(IMR)对应的比特位置1,该中断就可以响应。中断产生后,先到中断矢量表中寻址到该中断,然后跳转到中断服务程序,中断结束返回到中断矢量表,再返回到主程序,从中断发生处继续向下运行。