其中的帧同步捕捉指的是对接收到的码流的分帧工作,因为SELP是基于帧结构的编解码算法,所以在解码之前需要先利用帧同步算法捕捉到每帧的起始位置。这里采用的是基于计数器的帧同步捕捉算法。
另外,由于声码器的码流收发都是按照CLK频率连续进行的,而基于帧结构的SELP编解码器对码流的输入输出却是每帧进行一次的,所以对于发送和接收码流都需要设置循环缓冲区并对每个缓冲区设置一读一写两个指针。这两个指针间的距离应大于一倍帧长。但由于声码器中给AD/DA提供采样时钟的晶振有一定误差,所以导致这两个指针移动速度不同。以输入码流缓冲区为例,其读指针应由SELP编码器控制,而编码器被调用的频率由本地晶振的频率决定,所以读指针的移动速度由本地晶振控制。写指针则是由码流输入部分控制,其移动速度实际上是由对方的解码速度决定的,也就是受对方声码器的晶振控制。所以在编码后和解码前都需要进行指针调整,也就是检查码流缓冲区的读写指针间距,并根据需要丢弃一帧或复制一帧。
声码器设计和实现中的主要难点在于硬件接口的设计和FLASH上电加载部分,下面分别进行介绍。
2 硬件接口的设计
TMS320VC5416片上有三个多通道缓冲串口(MCBSP),每个MCBSP都可以作为串口使用或被初始化成通用I/O口使用。其中,MCBSP0按照串口的工作方式与AD/DA相连,这部分比较简单,按照典型的连基于TMS320VC5416的自适应变速率声码器基于TMS320VC5416的自适应变速率声码器-单片机技术电子技术信息港


