基于DSP的TETRA话音编码系统的设计与实现
2.1.3 DSP与存储器接口设计
AT49LV001存储器内部以扇区组织,在对其编程前,必须对相应区域擦除。使用时可根据需要选择扇区擦除或芯片擦除。图3为5409与 AT49LV001的接口示意图,AT49LV001的地址总线和数据总线分别接至5409的地址总线和数据总线,5409的地址总线A22~A18悬空,数据总线D15~D8悬空。DS作为使能信号,XF则控制编程状态。应当注意,AT49LV001为8 b存储器,DSP为16 b处理器,所以每存储一条DSP指令需2个存储单元,且高字节在前。
2.2 软件设计
2.2.1 初始化程序
完成DSP的初始化工作,包括设置SWWSR,PMST等寄存器的值;根据需要设置CLKMD寄存器改变倍频数;配置串口。
2.2.2 中断服务程序
中断服务程序主要是串口接收和发送中断。接收中断从Codec的DS脚接收采样数据,放入接收缓冲区MicIn,当接收到30 ms的数据(算法要求),启动编码标志SpeechFlag。当解码程序从Acelp码流中解出话音后,放入发送缓冲区Sout中,然后通过串口发送中断发至Codec。MicIn和Sout均为双缓冲区。
2.2.3 算法设计
编码程序每30 ms执行一次,将240个采样值编成137 b,传递给解码程序,再将解码合成的话音通过音箱放出。在硬件平台上做自环实验,下面给出部分C代码。
3 结 语
本文从软件设计和硬件设计两方面介绍了在TMS320VC5409芯片上实现TETRA话音编码算法的具体步骤。通过标准P.862对算法评测,平均MOS得分为3.474。同时,在做抗噪实验时,本算法在10-2误码率下,仍能保持良好的通信质量。
评论