新型聲碼器CMX638及應(yīng)用設(shè)計(jì)
3 CMX638工作原理
3.1 編解碼過(guò)程
3.1.1 不帶FEC的簡(jiǎn)單幀格式編解碼
CMX638提供簡(jiǎn)單的編解碼數(shù)據(jù)幀格式,其壓縮速率包括2 050 b/s,2 400 b/s,2 750 b/s,此過(guò)程不帶FEC,STD和DTMF功能。CMX638每隔20 ms采集160個(gè)16位數(shù)據(jù)(A/D轉(zhuǎn)換器的采樣率為8 kHz),當(dāng)?shù)谝粋€(gè)20 ms結(jié)束后,開始編碼運(yùn)算,由于信號(hào)的異同會(huì)產(chǎn)生不同抖動(dòng)延時(shí),主機(jī)在40 ms的時(shí)刻讀取第一幀數(shù)據(jù)。以后每隔20 ms操作一次,形成流水線作業(yè)。在解碼過(guò)程中,在0 ms時(shí)刻主機(jī)向CMX638輸入一幀數(shù)據(jù)后,CMX638開始解碼運(yùn)算,與編碼相似也會(huì)出現(xiàn)算法抖動(dòng)延時(shí),第一個(gè)樣本的輸出時(shí)刻由內(nèi)部寄存器IDD決定,其延時(shí)應(yīng)確保輸出連續(xù)有效的數(shù)據(jù)。圖2為CMX638簡(jiǎn)單幀格式編解碼過(guò)程。
3.1.2 帶FEC的復(fù)雜幀格式編解碼
CMX638可提供帶前向糾錯(cuò)的編解碼數(shù)據(jù)幀格式,其數(shù)據(jù)包長(zhǎng)度為60 ms,包括3幀數(shù)據(jù),其壓縮速率為3 600 b/s。CMX638在0時(shí)刻開始采樣,每隔20 ms進(jìn)行編碼運(yùn)算,會(huì)出現(xiàn)抖動(dòng)延時(shí),每隔60 ms插入一次FEC編碼(圖3黑色部分),在80 ms時(shí)刻一個(gè)數(shù)據(jù)包穩(wěn)定有效,主機(jī)讀出數(shù)據(jù),以后每隔60 ms操作一次。在解碼過(guò)程中,主機(jī)向CMX638輸入數(shù)據(jù)包后,開始對(duì)每一幀數(shù)據(jù)解碼運(yùn)算,并會(huì)出現(xiàn)抖動(dòng)延時(shí),設(shè)置適當(dāng)?shù)膬?nèi)部寄存器IDD,可在延時(shí)后輸出連續(xù)有效的數(shù)據(jù)。圖3是帶FEC的復(fù)發(fā)幀格式編解碼過(guò)程,其數(shù)據(jù)包壓縮時(shí)間為60 ms。
3.2 數(shù)據(jù)幀格式
CMX638編碼后輸出的數(shù)據(jù)幀格式較簡(jiǎn)單,無(wú)幀頭和其他控制標(biāo)志信息,直接輸出有效數(shù)據(jù)。當(dāng)壓縮速率為2 050b/s時(shí),每隔20 ms產(chǎn)生一幀數(shù)據(jù),有效數(shù)據(jù)位為41 bit,占用6字節(jié),主機(jī)必須以字節(jié)為單位與CMX638交換數(shù)據(jù),所以應(yīng)該輸入/輸出6字節(jié),其中最高字節(jié)先進(jìn)先出,7個(gè)無(wú)效比特位不影響編解碼。當(dāng)壓縮速率為2 400 b/s時(shí),其工作原理與2 050 b/s壓縮速率相同,有效數(shù)據(jù)為48 bit,恰好占用6字節(jié),無(wú)無(wú)效比特位。當(dāng)壓縮速率為2 750 b/s,有效數(shù)據(jù)為55bit,占用7字節(jié),1個(gè)無(wú)效比特位,必須輸入/輸出7字節(jié)。當(dāng)壓縮速率為3 600 b/s,帶FEC功能,每隔60 ms產(chǎn)生包括3幀的數(shù)據(jù)包,有效數(shù)據(jù)為216 bit,采用硬比特格式,占用27字節(jié)。而采用軟比特格式時(shí),則占用108字節(jié)。
3.3 主機(jī)與片外CODEC接口
主機(jī)通過(guò)C-BUS串行接口與CMX638交換數(shù)據(jù)。寫操作時(shí),CSN為低,先寫入要訪問(wèn)的寄存器地址,再寫入有效數(shù)據(jù),以字節(jié)為單位,結(jié)束時(shí)CSN拉高;讀操作時(shí),先寫入地址,接著讀取數(shù)據(jù)。在CLK上升沿采樣,最大時(shí)鐘頻率為5 MHz;每?jī)纱蜟SN操作應(yīng)至少相隔1μs。
當(dāng)CMX638選用外部CODEC時(shí),利用SSP接口與外部CODEC交換數(shù)據(jù)。當(dāng)STRB同步脈沖到達(dá),如果是寫操作,SDI輸入16 bit數(shù)據(jù);如果是讀操作,SDO輸出16 bit數(shù)據(jù)。SCLK的最大時(shí)鐘頻率為6.6 MHz,時(shí)鐘沿采樣輸入數(shù)據(jù)方式取決于內(nèi)部寄存器EXCODECCONT($0B)。
4 應(yīng)用電路
4.1 CMX638采集電路設(shè)計(jì)
圖4是基于CMX638的語(yǔ)音采樣、壓縮、解壓縮的應(yīng)用電路,采集麥克風(fēng)的語(yǔ)音信號(hào),直接壓縮;再解壓縮恢復(fù)源語(yǔ)音信號(hào)輸出到喇叭。CMX638使用片內(nèi)的語(yǔ)音CODEC,可直接采集模擬信號(hào)。輸入/輸出通道分別有兩個(gè)可編程增益放大器,通過(guò)配置寄存器AIG($05)和AOG($06)確定其增益。當(dāng)輸入/輸出增益較大時(shí),可能出現(xiàn)噪聲,但這些噪聲被片內(nèi)數(shù)字低通濾波器濾除。信號(hào)的輸入/輸出端無(wú)需接放大電路和濾波電路,提高信噪比。
評(píng)論