基于CMX638的語音通信模塊設計與實現
摘要:CMX638是一款專用于通信系統中語音編解碼芯片,講解了CMX638的基本結構、功能,并給出了基于CMX638的語音系統的外圍電路設計以及與其通信控制器的軟件設計與實現。實際應用表明,該系統可適用許多需要語音處理的通信場合。
關鍵詞:CMX638;基帶;聲碼器;語音通信
語音通信系統是通信中非常重要的一個部分。如何在有限的頻段下,傳輸更多高質量的語音信息,是人們研究的一個重點課題?,F在,對于語音處理芯片有很多,包括CMX618/638和AMBE2000等。和AMBE2000相比,CMX638雖然壓縮的語音速率的選擇沒有AMBE2000多,但是它內部包含了語音CODEC模塊,它可以靈活選擇使用內部的CODEC或者外部的CODEC,從而在實際的運用中有較大的吸引力,本文以CMX638為基礎,設計和實現了一個語音處理模塊。
1 CMX638介紹
如圖1所示,CMX638是一款高性能的全雙工語音編解碼器,CMX638內部結構包含3個部分,一個是語音CODEC模塊,主要完成輸入語音和輸出語音的放大、16位的PCM A/D和D/A轉換;音碼器主要是將數字語音信號壓縮成低速率的數碼語音信號,或者將數碼語音信號解壓縮成數字語音信號。CMX638通過C-BUS總線完成和其它模塊數據通信和控制。FEC開關選擇前向糾錯編碼器和解碼器。
2 語音系統介紹
圖2為CMX638語音系統的結構圖。在該系統中,采用了該芯片內部的CODEC完成16位的PCM A/D和D/A轉化,因此不需要外部的CODEC模塊。其輸入輸出通過C-BUS接口和其他模塊進行通信。
3 硬件設計
3.1 電源供電
由于CMX638包含了模擬電路和數字電路,其供電也要求有模擬供電AVDD、數字端口供電IOVDD及數字供電VDD,其中AVDD電壓為3.3 V,IOVDD的電壓為3.3 V,VDD的電壓為1.8 V。如圖3所示為其供電電路,采用芯片LM1117-3.3,輸入電壓為5 V,輸出.電壓為3.3 V工IOVDD使用。采用同樣的電路,只是將芯片換為LM1117-1.8,就可以實現1.8 V的數字電路供電。而3.3 V的模擬電路供電可采用L1、C20、C18進行濾波,減小數字電路供電和模擬電路供電之間的干擾。同時,數字地DGND和模擬地AGND可采用0歐電阻來連接。在實際的電路設計以及PCB板的制作中,為了防止電磁干擾,在盡量靠近CMX638芯片的每個電源引腳附近加一個0.1μF的電容進行濾波。
3.2 語音電路
語音輸入電路采用LM358進行放大,如圖4所示。
由于采用CMX638內部CODEC,其23腳CSCEL需要連接到IOVDD上,CODEC PORT接口中的15腳SDI、17腳SCLK、18腳STRB需要連接到DGND。在此狀態下,由于CMX638內部模擬電路自帶了輸入語音和輸出語音放大電路,因此可以直接將話筒語音采用差分方式接入CMX638的5腳(INPUTP)和6腳(INPUTN),而將其10腳(OUTP)和11腳(OUTN)的輸出語音直接送給揚聲器。在實際的應用中,不能將語音輸出兩腳短路。
3.3 時鐘電路
對于CMX638,其時鐘類型必須由31腳(XTALSEL1)、32腳(XTALSEL2)、33腳(XTALSEL3)來選擇,而且,31、32、33腳不能由單片機輸出的邏輯電平來控制,而應該直接連接到IOVDD或者DGND。若采用12 MHz時鐘中晶體,則需要將31和33腳接DGND,32腳接IOVDD,27腳(XTAL IN)和28腳(XTALOUT)分別接12 MHz的晶體。同時需要將34腳(ENABXTAL)接高電平,使時鐘電路工作。
3.4 CBUS接口
CBUS接口包括42腳(CLK)、43腳(CDATA)、44腳(RDATA)、45腳(CSN)。該接口提供CMX638的控制信息數據和傳輸的數碼數據,其操作格式如圖5所示。
從控制器寫CMX638寄存器是通過CDATA(Command Data)線寫入,第1個字節為寄存器地址,后面沒有數據,或者接一個數據字節;讀CMX 638寄存器,首先在CDATA上傳對應的寄存器地址,然后從RDATA讀一個數據字節。而進行數碼語音數據交換時,其數據根式和讀寫寄存器一樣,只是地址位后面有多位數據字節而已。
4 軟件設計
4.1 信號處理流程
如圖6所示是CMX主要信號處理流程,在(a)中是系統剛啟動時的初始化過程,(b)是系統進行編碼過程,(c)是系統進行解碼過程。其中休眠狀態時,要求關閉解碼和編碼,并將芯片的34腳(ENABXTAL)設置為低電平,關閉時鐘電路。需要啟動芯片工作時,需要將芯片的34腳
(ENABXTAL)設置為高電平,并至少等27 ms后,在進行編碼或者解碼操作。
4.2 部分軟件代碼
CMX638的初始化如下,包含開中斷,設置工作模式,打開A/D、D/A轉換以及配置聲碼器等。
在控制器中對CMX638工作狀態處理函數如下,包含有休眠、激活、編碼、解碼等等。
5 結論
CMX638能夠運用到很多通信的環境,而且其內部包內涵了16位A/D、D/A轉換,因此不需要外加單獨的codec模塊,并且能夠實現多種傳輸速率,全雙工數據處理。經過實際的測試,該系統能夠適用于需要進行語音處理的許多通信系統中。
評論