新型语音压缩编解码器AMBE2000
摘要:AMBE2000是美国DVSI公司推出的一种具有专利技术的语音压缩/解压芯片。利用该芯片能进行全双工的压缩和解压,从而以极高的压缩率提供高品质的语音质量。文中介绍了它的主要特点、引脚功能、控制接口及应用电路。
关键词:语音压缩;格式字;FEC;VAD;AMBE2000
1 引言
AMBE2000是一种高性能、低功耗的单片实时语音压缩解压芯片,其压缩率可在2kbps~9.6kbps范围内由软件调节,且具有FEC(前向纠错)、VAD(语音激活检测)功能和DTMF信号检测功能,因此可广泛应用于卫星通信、数字移动通信、保密通信、语音邮件等方面。
2 引脚说明及特性参数
AMBE2000的主要特性及参数如下:
●具有高品质的语音质量;
●压缩数据率可在2kbps~9.6kbps范围内用软件调节;
●纠错率范围为50bps~7.2kbps;
●具有VAD(语音激活检测)/CNI(插入舒适噪声)功能;
●具有DTMF信号检测和产生功能;
●电源电压:+3.3V;
●工作温度范围:-40~+100℃;
●采用100脚TQFP封装。
表1 主机接口选择
端口类型 | 选择脚 | |
CH_SEL1 | CH_SEL0 | |
主动有格式 | 0 | 0 |
主动无格式 | 0 | 1 |
被动有格式 | 1 | 0 |
被动无格式 | 1 | 1 |
表2 语音数据位选择(无格式)
字中的语音数据位个数 | 选择脚 | |
BA_SEL1 | BA_SEL0 | |
1 | 0 | 0 |
2 | 0 | 1 |
3 | 1 | 0 |
4 | 1 | 1 |
AMBE2000的引脚说明如下:
CHANN_SEL0~1(75,77)脚:主机接口类型选择端具体操作见表1所列;
BAUD_SEL0~1(80~81)脚:无格式语音数据位选择端具体操作见表2所列
RATE_SEL0~4(70~74)脚:语音压缩率与前向纠错率选择端具体操作见表3所列;
CODEC_SEL0~1(84~85)脚:A/D和D/A接口选择端口具体操作见表4所列;
表3 AMBE2000压缩数据率选择表
管脚74 | 管脚73 | 管脚72 | 管脚71 | 管脚70 | 语音速率(bps) | FEC速率(bps) | 总数据率(bps) |
1 | 1 | 1 | 1 | 1 | 2000 | 0 | 2000 |
1 | 0 | 0 | 0 | 0 | 3600 | 0 | 3600 |
1 | 0 | 0 | 0 | 1 | 4000 | 0 | 4000 |
1 | 0 | 1 | 1 | 0 | 2400 | 1600 | |
1 | 0 | 0 | 1 | 0 | 4800 | 0 | 4800 |
1 | 1 | 0 | 0 | 0 | 4000 | 800 | |
1 | 0 | 1 | 1 | 1 | 3600 | 1200 | |
1 | 1 | 0 | 0 | 1 | 2400 | 2400 | |
1 | 0 | 0 | 1 | 1 | 6400 | 0 | 6400 |
1 | 1 | 0 | 1 | 0 | 4000 | 2400 | |
1 | 1 | 0 | 1 | 1 | 4400 | 2800 | 7200 |
1 | 0 | 1 | 0 | 0 | 8000 | 0 | 8000 |
1 | 1 | 1 | 0 | 0 | 4000 | 4000 | |
1 | 0 | 1 | 0 | 1 | 9600 | 0 | 9600 |
1 | 1 | 1 | 0 | 1 | 3600 | 6000 | |
1 | 1 | 1 | 1 | 0 | 2400 | 7200 |
*注:压缩数据率也可通过控制字改变。
表4 A/D-D/A硬件配置
A/D-D/A类型 | CODEC_SEL1 | CODEC_SEL0 |
普通16位线性(采样率8kHz) | 0 | 0 |
AD公司AD73311(采样率32kHz) | 0 | 1 |
普通μ律(采样率8kHz) | 1 | 0 |
普通A律(采样率8kHz) | 1 | 1 |
VAD_EN(86)脚:使能语音激活检测功能端(高电平有效);
ECHOCAN_EN(78)脚:使能回声消除功能端(高电平有效);
SLEEP_EN(83)脚:休眠模式控制端口(高电平有效);
SLIP_EN(82)脚:滑动模式控制端口(高电平有效);
X2/CLKIN(68)脚:16.384MHz时钟输入脚;
X1(67)脚:内部振荡器输出;
RESETN(69)脚:复位脚(低有效);
EPR(20)脚:编码包就绪标志;
SOFT_EN(79)脚:使能软件误码判断端口(高电平有效);
CHAN_RX_DATA(32)脚:用于接收主机数据到AMBE2000;
CHAN_TX_DATA(42)脚:用于将AMBE2000数据发送到主机;
CHAN_RX_LK(28)脚:主机接收时钟;
CHAN_TX_CLK(34)脚:主机发送时钟;
CHAN_TX_STRB(38)脚:主机发送/接收帧同步脉冲;
CHAN_RX_STRB(30)脚:主机接收帧同步脉冲端口;
CODEC_RX_STRB(29)脚:A/D帧同步脉冲接收端;
CODEC_TX_STRB(37)脚:D/A帧同步脉冲发送端口;
CODEC_RX_DATA(31)脚:A/D发送PCM数据给AMBE2000;
CODEC_TX_DATA(41)脚:AMBE2000发送PCM数据到D/A;
CODEC_RX_CLK(27)脚:A/D时钟;
CODEC_TX_CLK(33)脚:D/A时钟;
CLOCK_MODE(51)脚:时钟模式选择端口,该端口接高电平时选择晶体振荡模式;当接低电平时选择外部时钟);
VDD(8,11,12,23,36,39,44,45,46,47,48,49,54,57,64,76,87,90脚):正电源;
GND(1,9,10,25,26,35,40,50,52,53,56,63,65,88,89脚):接地端;
其余管脚:N.C,悬空不用。
3 主机接口及数据格式
AMBE2000与主机的接口数据格式分为两种:一种是有格式;另一种是无格式。
3.1 有格式
在有格式情况下,AMBE2000大约每20ms生成一个压缩数据包,这个数据包共由24个字组成;数据包生成后,其EPR管脚会输出一个短的负脉冲指示,依此来决定对数据包的处理。数据包的具体构成如下:
格式字0:固定为x13ECH,为数据包的头;
格式字1:高8位用于芯片功率控制,0x00表示正常工作模式;0x55表示低功耗模式。低8位的位功能(高有效)如表5所列;
表5 格式字1格式
类型 | 7:MSB | 6 | 5 | 4 | 3 | 2 | 1 | 0:LSB |
输入 | 补丢失帧 | NC | NC | NC | NC | NC | 插入舒适噪声 | NC |
输出 | NC | NC | 解码帧重复 | 解码静默指示 | NC | NC | 编码静默检测 | 编码DTMF检测 |
表6 格式字2-6格式
字2 | 字3 | 字4 | 字5 | 字6 | 语音速率(bps) | FEC速率(bps) | 总数据率(bps) |
0x0028 | 0x0000 | 0x0000 | 0x0000 | 0x6428 | 2000 | 0 | 2000 |
0x5048 | 0x0000 | 0x0000 | 0x0000 | 0x3948 | 3600 | 0 | 3600 |
0x5250 | 0x0000 | 0x0000 | 0x0000 | 0x4150 | 4000 | 0 | 4000 |
0x1030 | 0x0001 | 0x0000 | 0x34la | 0x6750 | 2400 | 1600 | |
0x5360 | 0x0000 | 0x0000 | 0x0000 | 0x6c60 | 4800 | 0 | 4800 |
0x5250 | 0x2010 | 0x0000 | 0x0000 | 0x7460 | 4000 | 800 | |
0x5048 | 0x0001 | 0x0000 | 0x2412 | 0x6860 | 3600 | 1200 | |
0x1030 | 0x0005 | 0x180c | 0x3018 | 0x7360 | 2400 | 2400 | |
0x6b80 | 0x0000 | 0x0000 | 0x0000 | 0x6c80 | 6400 | 0 | 6400 |
0x5250 | 0x0001 | 0x0000 | 0x542a | 0x5280 | 4000 | 2400 | |
0x5258 | 0x0009 | 0xle0c | 0x4127 | 0x7390 | 4400 | 2800 | 7200 |
0x7fa0 | 0x0000 | 0x0000 | 0x0000 | 0x52a0 | 8000 | 0 | 8000 |
0x5250 | 0x0005 | 0x2010 | 0x6834 | 0x72a0 | 40000 | 4000 | |
0x7fc0 | 0x0000 | 0x0000 | 0x0000 | 0x69c0 | 9600 | 0 | 9600 |
0x5048 | 0x000e | 0x4010 | 0x6a2e | 0x65c0 | 3600 | 6000 | |
0x1030 | 0x000e | 0x68la | 0x511b | 0x76c0 | 2400 | 7200 |
格