模数接口是数字旗子暗记处理(DSP)系统中一个主要的组成部分,其设计和实现直接影响到旗子暗记处理的质量,许多A/D、D/A转换芯片都采取并行的数字接口,与DSP接口时须要设计相应的译码电路。
TMS320VC54x系列芯片配备了多通道带缓冲能力的串行口(MultichannelBufferedSerialPort,McBSP),为设计模数接供词给了极大的便利。
McBSP具有双向的自动缓冲单元,缓冲单元有自己的循环寻址寄存器组,用来将串行口和C54x内部存储器之间数据传输的缓存。
同时McBSP的功能非常强大,除具有一样平常DSP串口功能之外,还可以支持T1/E1,ST-BUS,IOM2,SPI,HS平分歧标准;为便于进行多通道的数字旗子暗记处理,McBSP最多支持128个通道;支持多种数据格式(8/12/16/20/24/32b)的传输;可自动进行语音的μ律、A律压扩;其事情速率可达到1/2CPU时钟速率。
这些特性为设计A/D,D/A接口电路供应了很大的灵巧性。
下面详细以语音编解码器为例来解释McBSP的设计和实现。

1语音编解码系统及McBSP接口的硬件设计
低速率语音编解码器是一种能够将传统的仿照语音旗子暗记(带宽为0.3~3.4kHz)实时压缩编码成1.2~9.6kb/s数据比特流,而保持相称语音质量的语音编解码系统。
由于他大大压缩了传输数字语音所需的带宽,便于实现高保密度的语音通信,因此在语音的保密通信、多媒体通信和移动通信系统中运用十分广泛。
如图1所示,语音采样芯片TP3067和数字旗子暗记处理器TMS320VC5409组成了一个语音编解码系统。
在仿照端口一侧,仿照语音输入采取同相输入,经由发话器前置放大器(microphonepreamplifier)放大后,从VFxI+管脚输入;仿照语音的输出也采取同相输出,经由两级放大后由VPO+输出,输出端可以驱动阻抗为600Ω的扬声器。
TP3067是美国国家半导体(NationalSemicodductor)公司生产的PCMCODEC芯片,具有串行的I/O接口,供电、功耗低于70mW,而且具有自动断电功能,内部设计有性能良好的电源滤波电路,能够实现A律PCM编码和解码。
TP3067对话音进行8kHz采样,即每0.125ms一次,每次采样编成8b编码,′C5409吸收后,变换成线性的16b,每20ms组成1帧,共需TP3067进行160次采样。
TMS320VC5409供应的串行口包括数据输入BDR,数据输出BDX,吸收时钟BCLKR,发送时钟BCLKX,吸收同步时钟BFSR和发送同步时钟BFSX。
TPS3067的帧同步有2步办法(longframesync)。
而TMS320VC5409的多通道自动缓冲串口的事情办法,可以通过发送和吸收寄存器灵巧配置帧长度、帧周期以及吸收发送时钟沿。
如图1所示对接后,只要在系统初始化时精确配置寄存器,就可以担保串行数据的输入输出。
TP3067数字端口一侧,MCLKR/PDN和MCLKX相连,同时相连的还有BCLKR,BCLKX,也便是忽略MCLKR/PDN的POWERUP和POWERDOWN功能,由′VC5409供应吸收发送时钟及同步时钟。
以上2个时钟的值可以通过软件设置McBSP掌握寄存器SRGR1和SRGR2设定并变动。
2系统软件的设计
2.1中断做事程序
由于全体语音编解码系统须要用到串行口中断以及定时器中断等多种中断办法,必须在中断向量表中解释中断发生时如何进入中断做事程序。
地址为0x001D的寄存器PMST(ProcessorModeStaTusRegister)的高9位为中断向量指针IPTR可以决定向量表的位置。
对付C54x,可以任意修正IPTR地址来表示1个128B的页,决定中断向量表的地址。
例如,′C5409硬件复位后PMST的15~7b全为1,以是中断向量表的位置在0xFF80。
初始化时,系统所有的中断都被屏蔽掉。
将中断向量表映射到程序空间的0x0080,以是修正IPTR为0x01。
中断向量表中每一个中断矢量有4B的空间,足够放2个大小为1B的延迟跳转指令和1个2B的延迟跳转指令,还有1条1B的从中断返回的指令RETE。
系统初始化往后,如果许可中断,将状态寄存器(ST1)的INTM位置0,中断屏蔽寄存器(IMR)对应的比专程位1,该中断就可以相应。
中断产生后,先到中断矢量表中寻址到该中断,然后跳转到中断做事程序,中断结束返回到中断矢量表,再返回到主程序,从中断发生处连续向下运行。
2.2McBSP的软件设计
McBSP在构造上可以分为一个数据通道和一个掌握通道。
数据通道完成数据的发送和吸收,紧张是通过数据发送寄存器DXR1/2和数据吸收寄存器DRR1/2。
掌握通道完成的任务包括内部时钟的产生、帧同步旗子暗记产生、对这些旗子暗记的掌握以及多通道的选择等。
掌握通道还卖力产生终端旗子暗记送往CPU。
对′C5409串行口的操作也是通过设置各掌握寄存器来进行的。
这些掌握寄存器有串行口掌握寄存器SPCR1/2;吸收掌握寄存器RCR1/2;发送掌握寄存器XCR1/2;多通道寄存器MCR1/2等。
对某一掌握寄存器寻址,只能采取加子地址寻址办法,即先将要寻址的寄存器子地址写入McBSPx的地址寄存器,再将数据写入McBSPx的数据寄存器。
例如要将0x0001写入McBSP0的吸收掌握寄存器RCR0,先在地址为0x0038的SPSA0中写入RCR0的子地址0x0002,再将0x0001写入地址为0x0039的SPSD0寄存器。
McBSP的寄存器初始化该当和系统软件的初始化一起进行,由于寄存器比较多,通过汇编源代码,逐行解释串行口初始化软件的流程。
以上完成了寄存器的设置,在发送和吸收数据之前,先将中断屏蔽寄存器(IMR)的串行发送中断位BXINT0和串行吸收中断位BRINT0置1,中断使能,这样有串行数据在数据发送寄存器DXR1中准备发送时,或数据吸收寄存器DRR1吸收到数据时,中断标志寄存器(IFR)的BXINT0或BRINT0位置1。
在进入发送中断做事程序时,紧张是将话音数据分割成16b为1B,依次送到DXR1中,用一个缓冲区加一个指针就可以实现,发送一帧就将IFR的BXINT0清0;吸收中断做事程序,是将吸收的数据缓存,形成160B的20ms帧,再送入声码器处理,同样吸收1个字就将IFR的BRINT0清零。
3结语
通过以上的设计,实现了低速语音编解码器,并将他运用于移动通信系统中,声音效果良好。
同时,以上的设计具有一定的通用性,运用于其他目的的数字旗子暗记处理时,只需变动一下相应寄存器的值,便可以利用。
加入微信
更多内涵你懂的!
搜索微信"大众年夜众号:电子产品天下
或用微信扫描二维码:
Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.