單聲道/立體聲錄放芯片MSM9841及其在數(shù)字語音錄放機中的應(yīng)用
摘要:MSM9841是日本OKI(沖)電氣半導(dǎo)體公司研制的單聲道/立體聲語音控制處理大規(guī)模集成芯片。文中介紹了該芯片的結(jié)構(gòu)、特點、工作原理及其在數(shù)字語音錄放機中的應(yīng)用。
1 引言
MSM9841是日本OKI(沖)電氣半導(dǎo)體公司研制的帶有1kbitFIFO(先進先出)存儲器的單聲道/立體聲語音控制處理大規(guī)模集成芯片。它可以很方便的同外部系統(tǒng)或非半導(dǎo)體存儲器進行接口,且具有多種錄放模式。由于該芯片采用了較新的ADPCM2算法,因而可以保證非常高的語音回放質(zhì)量。MSM9841的錄音和回放功能可以由微處理器通過8/16bit的總線接口來進行控制。MSM9841采用56腳QFP封裝,電源電壓為2.7V~5.5V,振蕩頻率為4.096MHz時的代樣頻率有以下值可供選擇:4.0 kHz、6.4 kHz、8.0 kHz、12.8 kHz、16.0 kHz、32.0 kHz(僅用于回放);振蕩頻率為5.6448 MHz時,采樣頻率可以選擇22.05 kHz或44.1 kHz(僅用于回放)。MSM9841具有8/16bit總線接口和DMA接口且內(nèi)含低通濾波器、14bitA/D和D/A轉(zhuǎn)換器,采樣頻率為16 kHz或更低;具有由用戶定義(256/512/1024bit)的FIFO存儲功能(當使用8 kHz采樣頻率,4bitADPCM2/ADPCM算法,非立體聲模式時,其緩沖時間為32ms);支持4種錄放壓縮算法,即4/5/6/7/8bit ADPCM2算法、4bit ADPCM算法、16 bit PCM算法和8bit非線性PCM算法;通過控制命令可實現(xiàn)8級音量控制(0dB~21dB)。
2 引腳排列及功能
MSM9841的引腳排列如圖1所示,各引腳的功能如下:
D15~D8:對于8 bit總線接口,這些管腳可以通過命令被定義到外部存儲器的輸入輸出接口。否則,這些管腳只能定義為輸入管腳。對于16 bit總線接口,這些管腳可用作外部存儲器或微處理器的雙向數(shù)據(jù)總線。
D7~D0:到外部存儲器或微處理器的雙向數(shù)據(jù)總線。
WR:寫允許,低有效。
RD:讀允許,低有效。
CS:讀寫功能允許,低有效(低電平時,允許讀寫功能操作)。
D/C:當該管腳為高電平時,語音數(shù)據(jù)可以從D0~D15引腳輸入或輸出。當該管腳為低電平時,D0~D7引腳用于輸入控制命令或輸出狀態(tài)。
BUSY:當處于錄音、回放、暫停狀態(tài)時,該管腳輸出低電平。 MID:當FIFO中的數(shù)據(jù)超過FIFO存儲空間的一半時,該管腳輸出高電平。在回放期間,MID為高電平時開始語音合成。通過命令可使MID由高電平變成低電平。當不使用FIFO時,該管腳可為語音的輸入/輸出提供一個同步信號。 FUL/DREQR:當FIFO存儲空間已滿時,該管腳輸出高電平。在回放期間,該管腳為高電平,F(xiàn)IFO中不能寫入數(shù)據(jù)。FUL/DREQR輸出的高電平可由命令輸入來將其改變成低電平。當選擇DMA轉(zhuǎn)換和立體聲回放時,DREQR輸出高電平信號表示需要DMA轉(zhuǎn)換。DREQR輸出的高電平亦可由命令輸入平將其改變成低電平。 CH/DACKR:當選擇立體聲回放且CH為高電平時,EMP、MID或FUL管腳輸出右移FIFO的狀態(tài)。當CH為低電平時,EMP、MID或FUL管腳輸出左移FIFO的狀態(tài)。在錄音和單聲道回放時需將該管腳設(shè)置為低電平。當選擇DMA轉(zhuǎn)換和立體聲回放時,該管腳為DACKR功能。在這種情況下,輸入DMA轉(zhuǎn)換應(yīng)答信號到DACKR。當DACKR為低電平時,IOW信號被接受。DACKR輸出的低電平可由命令輸入來將其改變成高電平。 DREQL:當選擇DMA轉(zhuǎn)換和立體聲回放時,DREQL輸出高電平表示需要DMA轉(zhuǎn)換。DREQL輸出的高電平可由命令輸入來將其改變成低電平。 DACKL:當DMA控制器允許DMA轉(zhuǎn)換時,可輸入一個信號到DACKL端。如果DACKL為低電平,IOW和IOR信號將被接受。當選擇立體聲回放時,可給DACKL端輸入左移FIFO的DMA轉(zhuǎn)換應(yīng)答信號。DACKL端的低電平可由命令輸入將其改變成高電平。如果不使用DMA轉(zhuǎn)換,應(yīng)將該腳置為高電平。 IOW:在DMA轉(zhuǎn)換時,該管腳為將外部數(shù)據(jù)寫入MSM9841的寫脈沖輸入管腳。如果不使用DMA轉(zhuǎn)換,將該引腳置為高電平。 IOR:在DMA轉(zhuǎn)換時,該管腳可作為MSM9841的讀脈沖輸入管腳。如果不使用DMA轉(zhuǎn)換,應(yīng)將該引腳置為高電平。
圖2
EMP:當FIFO存儲器中無數(shù)據(jù)時該管腳輸出高電平,通過命令可使該管腳由高電平變?yōu)榈碗娖健?/P>
圖3
DASD:當使用外部DAC時,該管腳為16 bit串行數(shù)據(jù)輸出管腳。
SIOCK:當使用外部ADC或DAC時,該管腳為16 bit串行數(shù)據(jù)輸入/輸出的同步時鐘管腳。
XT,XT:外部振蕩器連接管腳,當使用外部時鐘時,可將外部時鐘輸入到該管腳。
VCK:錄音和回放時的輸出采樣頻率。當用外部ADC或DAC時,VCK管腳的信號被用作同步信號。
RESET:復(fù)位管腳,低有效。
TESTO、TESTI:測試管腳,將該引腳置為低電平。
SG:模擬地輸出管腳。
MIN,LIN:內(nèi)部OP放大器的反相輸入端,同相輸入端內(nèi)部已連到信號地。
MOUT,LOUT:MOUT為內(nèi)部放大器到MIN的輸出端,LOUT為內(nèi)部放大器到LIN的輸出端。
AOUTL:內(nèi)部LPF(低通濾波器)左路模擬信號輸出端。它是回放信號波形輸出端,將該管腳連到放大器后可驅(qū)動揚聲器。
AOUTR:內(nèi)部LPF(低通濾波器)右路模擬信號輸出端。它是回放信號波形輸出端,將該管腳連到放大器后可驅(qū)動揚聲器。
DVDD:數(shù)字電源。在該管腳和數(shù)字地之間應(yīng)接一個0.1μF電容。
DGND,AGND:數(shù)字地和模擬地。
AVDD:模擬電源。在該管腳和模擬地之間應(yīng)接一個0.1μF電容。
3 內(nèi)部結(jié)構(gòu)及工作原理
MSM9841的內(nèi)部結(jié)構(gòu)如圖2所示,它主要由微處理器、定時控制器、音量控制器、ADPCM2/ADPCM/PCM分析器、ADPCM2/ADPCM/PCM/非線性PCM合成器、直接存儲器訪問接口、FIFO、ADC、DAC、LPF等部件構(gòu)成。
對MSM9841可采用二進制編碼命令進行控制,從而完成錄音、回放、停止、暫停、音量調(diào)節(jié)、DMA轉(zhuǎn)換、設(shè)置使用內(nèi)部或外部D/A、A/D、信號輸出模式選擇等功能。該控制命令的長度為8bit。
4 以MSM9841為核心的錄放機
基于MSM9841的錄放機電路如圖3所示,該錄放機采用雙CPU模式,以單片機AT89C52作為錄放音模塊的主控單元。鍵盤和液晶顯示模塊以AT89C2051作為主控單元,通過串口與錄放音模塊變換指令與數(shù)據(jù)。由于本錄放機未采用DMA方式,故MSM9841的DMA控制管腳均接高電平。MSM9841中D/C管腳的電平高低可決定數(shù)據(jù)總線上的數(shù)據(jù)類型。當D/C為低電平時,數(shù)據(jù)總線上的信號為系統(tǒng)控制命令;當D/C為高電平時,總線上的信號為語音數(shù)據(jù)。由于AT89C52是8位單片機,而MSM9841支持16位或8位數(shù)據(jù)總線,所以,在系統(tǒng)工作時,首先要利用MSM9841的控制命令將其設(shè)置為8位數(shù)據(jù)總線模式。
錄放機音頻輸出端采用音頻功率放大器LM386,其電路連接如圖4所示。當電源電壓為+5V時,LM386輸出功率為300mW左右。MSM9841內(nèi)部有2個運算放大器,可用于放大麥克風(fēng)的語音信號,每個運算放大器對外提供反向輸入端和輸出端,而同向輸入端則在芯片內(nèi)部與模擬地相連。兩個運算放大器可以級連,通過調(diào)節(jié)外部電阻阻值即可獲得所需的放大倍數(shù)。通過下式可調(diào)節(jié)VLO,以使其處于LOUT管腳所允許的電壓范圍內(nèi):
VLO=(R4/R3)VMO=(R2R4/R1R3)VIN(V)
當供電電壓為5V時,LOUT引腳所允許的電壓范圍為1~4V.LOUT管腳在芯片內(nèi)部與輸入低通濾波器相連,可用于去掉超過1/2采樣頻率的輸入頻率分量。這樣,就可滿足數(shù)據(jù)采樣系統(tǒng)所適用的奈奎斯特定理,然后送ADC進行數(shù)據(jù)采樣。放大電路通過隔直電容與麥克風(fēng)相連,隔直電容主要用于去掉低電平交流信號(約2~20mV)中的直流信號。整個音頻輸入電路如圖5所示。
整個刻錄機系統(tǒng)采用4片2M8 bit的DRAM MSM5116800作為語音存儲介質(zhì),在較高質(zhì)量的8kbps的采樣速率下,若采用4 bit的ADPCM2算法,4片MSM5116800能夠記錄的語音長度大約是41.02420008/(84)=2048s。2M8 bit的DRAM的地址總線共20位,分為高位地址(即A0~A8和A9R~A11R共12位構(gòu)成行地址Row address)和低位地址(即A0~A8共9位構(gòu)成的列地址Column address),兩者通過分時復(fù)用共用9根地址線A0~A8,每片DRAM的尋址范圍為000000H~7FFFFFH,各片DRAM通過不同的CAS信號線來區(qū)別。DRAM有多種不同的讀寫模式和存儲單元數(shù)據(jù)刷新模式,在本系統(tǒng)中,由于所需要的數(shù)據(jù)率非常低,所以可采用最基本的讀寫模式,即先發(fā)送完整的地址信號(包括行地址和列地址),然后讀寫;而刷新模式則采用cas-before-ras方式,并將刷新脈沖穿插到讀寫時序中間。
該系統(tǒng)通過接收鍵盤指令來完成錄放音的操作。錄音時,首先利用二進制命令對MSM9841進行初始化,具體內(nèi)容包括:設(shè)置語音合成方式為4 bit的ADPCM2算法;選擇采用內(nèi)部ADC;設(shè)置總線寬度為8位;不采用DMA方式;配置FIFO的大小,F(xiàn)IFO最大可配置為1024 bit;設(shè)置輸出數(shù)據(jù)的模式;設(shè)定采樣頻率為8.0 kHz。此采樣頻率可使語音音質(zhì)大大優(yōu)于電話的音質(zhì)。提高采樣頻率還可使音質(zhì)進一步得到改善,但錄音時間也就相應(yīng)縮短;反之,較低的采樣頻率會增加錄音時間,但會降低音質(zhì)。
與錄音相同,放音時首先進行同樣的初始化,然后發(fā)控制命令20H(采樣頻率為8.0 kHz)啟動放音操作。MCU開始從DRAM中讀取要播放的語音數(shù)據(jù)并寫入FIFO中,當FIFO中的語音數(shù)據(jù)裝滿時,F(xiàn)UL引腳將變?yōu)楦唠娖?,并產(chǎn)生外部中斷信號送至MCU的INTO端以使MCU產(chǎn)生中斷響應(yīng),此時應(yīng)停止向FIFO寫入數(shù)據(jù)。
在MCU錄、放音的過程中,可根據(jù)鍵盤指令向MSM9841發(fā)出暫?;蛲V姑睿詴和;蚪Y(jié)束錄、放音操作。同時利用液晶顯示器來顯示當前正在執(zhí)行的操作及操作結(jié)果。通過鍵盤和液晶進行人機交流可方便的實現(xiàn)多段語音的錄放操作以及音量調(diào)節(jié)等功能。
5 結(jié)束語
基于MSM9841的錄放機在使用較為滿意8kbps的比特率時,其錄放音時間大約為34分鐘。若需延長錄放音時間,可對存儲部分進行擴展。系統(tǒng)使用廉價的DRAM作為語音存儲介質(zhì),因此成本較低。整機具有結(jié)構(gòu)簡單、性能可靠、人機交互界面友好、使用方便等一系列優(yōu)點,因而具有較好的應(yīng)用前景。如果將存儲部分的DRAM換成FLASH或鐵電存儲器,該機還可被廣泛地應(yīng)用于公交車報站系統(tǒng)、錄音電話、自動語音服務(wù)臺等領(lǐng)域。
評論