關鍵詞:語音壓縮;格式字;FEC;VAD;AMBE2000
1 引言
AMBE2000是一種高性能、低功耗的單片實時語音壓縮解壓芯片,其壓縮率可在2kbps~9.6kbps范圍內(nèi)由軟件調(diào)節(jié),且具有FEC(前向糾錯)、VAD(語音激活檢測)功能和DTMF信號檢測功能,因此可廣泛應用于衛(wèi)星通信、數(shù)字移動通信、保密通信、語音郵件等方面。
2 引腳說明及特性參數(shù)
AMBE2000的主要特性及參數(shù)如下:
●具有高品質(zhì)的語音質(zhì)量;
●壓縮數(shù)據(jù)率可在2kbps~9.6kbps范圍內(nèi)用軟件調(diào)節(jié);
●糾錯率范圍為50bps~7.2kbps;
●具有VAD(語音激活檢測)/CNI(插入舒適噪聲)功能;
●具有DTMF信號檢測和產(chǎn)生功能;
●電源電壓:+3.3V;
●工作溫度范圍:-40~+100℃;
●采用100腳TQFP封裝。
表1 主機接口選擇
端口類型 | 選擇腳 | |
CH_SEL1 | CH_SEL0 | |
主動有格式 | 0 | 0 |
主動無格式 | 0 | 1 |
被動有格式 | 1 | 0 |
被動無格式 | 1 | 1 |
表2 語音數(shù)據(jù)位選擇(無格式)
字中的語音數(shù)據(jù)位個數(shù) | 選擇腳 | |
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)腳:無格式語音數(shù)據(jù)位選擇端?具體操作見表2所列?
RATE_SEL0~4(70~74)腳:語音壓縮率與前向糾錯率選擇端?具體操作見表3所列;
CODEC_SEL0~1(84~85)腳:A/D和D/A接口選擇端口?具體操作見表4所列;
表3 AMBE2000壓縮數(shù)據(jù)率選擇表
管腳74 | 管腳73 | 管腳72 | 管腳71 | 管腳70 | 語音速率(bps) | FEC速率(bps) | 總數(shù)據(jù)率(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 |
*注:壓縮數(shù)據(jù)率也可通過控制字改變。
表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)腳:內(nèi)部振蕩器輸出;
RESETN(69)腳:復位腳(低有效);
EPR(20)腳:編碼包就緒標志;
SOFT_EN(79)腳:使能軟件誤碼判斷端口(高電平有效);
CHAN_RX_DATA(32)腳:用于接收主機數(shù)據(jù)到AMBE2000;
CHAN_TX_DATA(42)腳:用于將AMBE2000數(shù)據(jù)發(fā)送到主機;
CHAN_RX_LK(28)腳:主機接收時鐘;
CHAN_TX_CLK(34)腳:主機發(fā)送時鐘;
CHAN_TX_STRB(38)腳:主機發(fā)送/接收幀同步脈沖;
CHAN_RX_STRB(30)腳:主機接收幀同步脈沖端口;
CODEC_RX_STRB(29)腳:A/D幀同步脈沖接收端;
CODEC_TX_STRB(37)腳:D/A幀同步脈沖發(fā)送端口;
CODEC_RX_DATA(31)腳:A/D發(fā)送PCM數(shù)據(jù)給AMBE2000;
CODEC_TX_DATA(41)腳:AMBE2000發(fā)送PCM數(shù)據(jù)到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 主機接口及數(shù)據(jù)格式
AMBE2000與主機的接口數(shù)據(jù)格式分為兩種:一種是有格式;另一種是無格式。
3.1 有格式
在有格式情況下,AMBE2000大約每20ms生成一個壓縮數(shù)據(jù)包,這個數(shù)據(jù)包共由24個字組成;數(shù)據(jù)包生成后,其EPR管腳會輸出一個短的負脈沖指示,依此來決定對數(shù)據(jù)包的處理。數(shù)據(jù)包的具體構成如下:
格式字0:固定為x13ECH,為數(shù)據(jù)包的頭;
格式字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) | 總數(shù)據(jù)率(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 |
格式字2~6:用于指定和表示芯片的壓縮數(shù)據(jù)率,具體如表6所列;
格式字7:該位在輸入數(shù)據(jù)包中不用,因此,在設計時,應將其設置為0x0000;而在輸出數(shù)據(jù)包中表示誤碼率;
格式字8、9:不用,通常設置為0x0000;
格式字10:高8位用于控制和表示DTMF信號的幅度,范圍從3~-60dBm0(例如:0x03=3,0x00=0,0xC4=-60);低8位用于控制和檢測DTMF信號,所發(fā)出和檢測的信號為標準的北美呼叫音。DTMF代碼見表7所列。
表7 DTMF代碼
DTMF代碼 | DTMF數(shù)字 | DTMF代碼 | DTMF數(shù)字 |
0x80 | 1 | 0x84 | 2 |
0x88 | 3 | 0x81 | 4 |
0x85 | 5 | 0x89 | 6 |
0x82 | 7 | 0x86 | 8 |
0x8A | 9 | 0x87 | 0 |
0x83 | * | 0x8B | # |
0x8C | A | 0x8D | B |
0x8E | C | 0x8F | D |
0xFF | DTMF無效 |
表8 格式字11格式
類型 | 7:MSB | 6 | 5 | 4 | 3 | 2 | 1 | 0:LSB |
輸入 | NC | NC | 語音激活(1) | NC | 休眠(1) | 回聲消除(1) | 編碼/解碼選擇 | |
輸出 | NC | NC | NC | NC | 休眠(1) | 回聲消除(1) | 編碼/解碼選擇 |
格式字11:高8位用于解碼器音量控制,其中0x80表示原音量,0xFF為原音量的兩倍,小于0x80為減小音量;低8位的功能如表8所列。其中編碼/解碼選擇如下:00為編碼+解碼;01為編碼;10為解碼;11為不用;
格式字12~23:壓縮數(shù)據(jù)信息。根據(jù)數(shù)據(jù)率的不同,其數(shù)據(jù)位數(shù)也不相同。數(shù)據(jù)位數(shù)和壓縮數(shù)據(jù)率的關系如下:
位數(shù)=壓縮數(shù)據(jù)率(bps)/50(bps)
例如,在最低壓縮率為2kbps時,數(shù)據(jù)位數(shù)為:
2000/50=40位。
3.2 無格式
在無格式情況下,只需要發(fā)送數(shù)據(jù)位,但每秒會減少50bit的數(shù)據(jù)(與有格式情況相比),因而會降低語音質(zhì)量。其每個字中包含的數(shù)據(jù)位數(shù)參見表2。每幀的字數(shù)和壓縮數(shù)據(jù)率的關系如下:
字數(shù)=[壓縮數(shù)據(jù)率(bps)/50(bps)]/位數(shù)
式中,所選的位數(shù)必須能被選擇的壓縮數(shù)據(jù)率整除。AMBE2000串口時鐘速率最高為2.048MHz。
圖1 用AMBE2000和AD73311構成的語音采樣、壓縮、解壓縮的實用電路
4 應用電路
圖1所示是用AMBE2000和AD73311構成的語音采樣、壓縮、解壓縮實用電路,其中AD73311是A-DI公司的一種聲碼器芯片,它的采樣速率可以達到32kHz、16位采樣數(shù)據(jù),且具有較好的聲音質(zhì)量,因而可配合AMBE2000使用,在實際應用中取得了良好的效果。圖中,AMBE2000選擇的管腳接法將壓縮率定義為2kbps?同時電路設置在外部輸入時鐘模式,且回聲消除、語音激活、滑動補償功能有效,其EPR腳用來輸出數(shù)據(jù)包就緒指示信號。在電路上電正常工作以后,還可以通過軟件對AMBE2000進行重新設置,因此,AMBE2000語音壓縮編解碼器應用起來十分靈活。
5 結束語
語音通信在數(shù)字通信中占有十分重要的地位,通過本文所介紹的AMBE2000和AD73311所構成的數(shù)據(jù)壓縮方法,不但可以節(jié)約存儲資源,而且能夠減小對通信帶寬的需求。因此,在某些特殊的應用領域,AMBE2000語音壓縮編解碼芯片有著十分廣闊的應用前景。