基于AT89S52 和K9F6408U0A 的語(yǔ)音數(shù)字系統(tǒng)設(shè)計(jì)
摘要: 在研究傳統(tǒng)語(yǔ)音錄放電路的基礎(chǔ)上,提出了一種基于AT89S52 的音頻信號(hào)采集、存儲(chǔ)與處理系統(tǒng)。該系統(tǒng)以單片機(jī)AT89S52 為控制器, 采用鍵盤(pán)和LCD 作為人機(jī)界面,ADC0809 采集音頻信號(hào), 擴(kuò)展8 MB 閃速存儲(chǔ)器K9F6408U0A作為數(shù)字化音頻信號(hào)的存儲(chǔ)器,通過(guò)軟件濾波濾除噪音;采用PWM 產(chǎn)生聲音的原理,使存儲(chǔ)在Flash 中的音頻數(shù)據(jù)控制PWM 每個(gè)波形的占空比,通過(guò)低通濾波器將聲音從PWM 的脈沖中分離,并驅(qū)動(dòng)揚(yáng)聲器。實(shí)驗(yàn)表明:8 kHz 采樣頻率和8 位采樣位數(shù)可獲得清晰的語(yǔ)音以及較好的音樂(lè)聲,語(yǔ)音存儲(chǔ)時(shí)間達(dá)15 min。
數(shù)據(jù)采集技術(shù)涉及領(lǐng)域廣,采集信號(hào)的動(dòng)態(tài)范圍寬,處理數(shù)據(jù)量大,對(duì)系統(tǒng)實(shí)時(shí)性能要求高。以數(shù)字信號(hào)的形式對(duì)信號(hào)進(jìn)行處理,具有處理速度快、靈活、精確、抗干擾能力強(qiáng)、體積小及可靠性高等優(yōu)點(diǎn),滿(mǎn)足了對(duì)信號(hào)快速、精確、實(shí)時(shí)處理及控制的要求。本設(shè)計(jì)利用了數(shù)字電路的這些優(yōu)點(diǎn),對(duì)傳統(tǒng)的模擬錄音電路進(jìn)行了改進(jìn),以較低的成本使性能得到了提高。
1 方案論證
本設(shè)計(jì)以數(shù)字化信號(hào)的形式對(duì)音頻信號(hào)進(jìn)行處理,有以下3 種方案可供選擇:
1)直接利用語(yǔ)音芯片進(jìn)行語(yǔ)音錄放。Winbond 公司的ISD系列語(yǔ)音芯片采用了Chip-Corded 專(zhuān)利技術(shù), 聲音無(wú)需A/D轉(zhuǎn)換和壓縮就可直接存儲(chǔ),不存在A/D 轉(zhuǎn)換誤差,在一個(gè)記錄位(BIT)可存儲(chǔ)多達(dá)250 級(jí)聲音信號(hào),相當(dāng)于通常A/D 技術(shù)記錄容量的8 倍。片內(nèi)集成了晶體振蕩器、麥克風(fēng)前置放大器、自動(dòng)增益控制、抗混疊濾波器、平滑濾波器、聲音功率放大器等,只需很少的外圍器件,就可構(gòu)成一個(gè)完整的聲音錄放系統(tǒng)。
2)利用DSP 對(duì)采樣信號(hào)進(jìn)行處理。DSP 是專(zhuān)門(mén)為快速實(shí)現(xiàn)各種信號(hào)處理算法而設(shè)計(jì)的、具有特殊結(jié)構(gòu)的微處理器,其處理速度遠(yuǎn)遠(yuǎn)超過(guò)一般的CPU。
3)利用AT89S52 作為系統(tǒng)主控芯片,利用ADC0809 對(duì)音頻信號(hào)進(jìn)行采集和A/D 轉(zhuǎn)換,將轉(zhuǎn)換得到的數(shù)字化音頻信號(hào)存儲(chǔ)到擴(kuò)展的數(shù)據(jù)存儲(chǔ)器中,利用軟件對(duì)信號(hào)進(jìn)行數(shù)字濾波,最后通過(guò)單片機(jī)輸出PWM 信號(hào)來(lái)完成放音。
從經(jīng)濟(jì)和技術(shù)等因素考慮對(duì)上述3 種方案進(jìn)行比較:直接利用語(yǔ)音芯片可以減少很多外圍電路, 電路設(shè)計(jì)方便,但語(yǔ)音芯片使用不夠靈活。DSP 具有強(qiáng)大的數(shù)字信號(hào)處理功能,使用靈活,但該芯片價(jià)格較高,不適于一般的應(yīng)用。方案3)中器件均為常用芯片,易于獲取,且價(jià)位不高。因此,方案3)為最佳設(shè)計(jì)方案。
2 硬件設(shè)計(jì)
圖1 為系統(tǒng)硬件結(jié)構(gòu)圖。音頻信號(hào)通過(guò)拾音器將聲音信號(hào)轉(zhuǎn)換為可以處理的電信號(hào),前置放大電路用來(lái)對(duì)拾音器的輸出進(jìn)行放大, 與A/D 轉(zhuǎn)換電路匹配,A/D 轉(zhuǎn)換電路實(shí)現(xiàn)對(duì)模擬信號(hào)的編碼。微處理器是系統(tǒng)的核心,它用來(lái)對(duì)數(shù)字化音頻信號(hào)進(jìn)行處理和存儲(chǔ),協(xié)調(diào)系統(tǒng)各個(gè)部分的工作,輸出PWM 波來(lái)驅(qū)動(dòng)輸出電路。
系統(tǒng)硬件結(jié)構(gòu)框圖
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖。
2.1 單片機(jī)
單片機(jī)是系統(tǒng)的控制中心, 它主要實(shí)現(xiàn)以下的功能:控制LCD 顯示語(yǔ)音信號(hào)的相關(guān)信息, 控制按鍵識(shí)別和功能選擇; 控制音頻數(shù)據(jù)的采集并存儲(chǔ)在Flash ROM, 放音時(shí)讀取Flash ROM 中數(shù)據(jù),用軟件方法產(chǎn)生PWM 脈沖信號(hào),實(shí)現(xiàn)語(yǔ)音的存儲(chǔ)和回放。
2.2 聲音信號(hào)拾取、放大電路
聲音信號(hào)拾取電路就是將聲音信號(hào)轉(zhuǎn)換為電信號(hào)的裝置。本設(shè)計(jì)選用麥克風(fēng),它是一種聲敏電阻,其阻值隨外界聲音信號(hào)的變化而變化,將其串聯(lián)在電路中,電阻的變化形成電壓的變化,經(jīng)過(guò)電容通交隔直,就得到了表征聲音信號(hào)特征的電信號(hào)。
然而由于聲音信號(hào)拾取電路輸出電壓的幅值很小,為20~25 mV,若將該信號(hào)直接與A/D 轉(zhuǎn)換電路相連,由于A/D轉(zhuǎn)換器最小分辨電壓也為毫伏數(shù)量級(jí), 會(huì)產(chǎn)生很大的誤差,為了保證系統(tǒng)的精度,在和A/D 轉(zhuǎn)換電路相連之前,需串聯(lián)一個(gè)放大電路, 考慮到聲音信號(hào)拾取電路的輸出信號(hào)很小,放大電路的失真度和噪聲對(duì)系統(tǒng)的精度影響最大,故將其設(shè)計(jì)為抗共模干擾強(qiáng)的并聯(lián)負(fù)反饋放大電路, 由于音頻信號(hào)的頻寬較大,故選用寬頻帶,低輸出阻抗的雙運(yùn)放NE5532。
2.3 A/D 轉(zhuǎn)換電路
A/D 轉(zhuǎn)換電路由A/D 轉(zhuǎn)換器ADC0809 與系統(tǒng)處理器AT89S52 組成, 主要實(shí)現(xiàn)對(duì)放大后的聲音信號(hào)進(jìn)行采樣。
ADC0809 與AT89S52 的電路連接如圖2 所示。
ADC0809 與AT89S52 的連接電路
圖2 ADC0809 與AT89S52 的連接電路
從圖2 中可以看到,把ADC0809 的ALE 信號(hào)與START信號(hào)接在一起,這樣可使得在信號(hào)的前沿寫(xiě)入(鎖存)通道地址,緊接著在其后沿就啟動(dòng)轉(zhuǎn)換。啟動(dòng)A/D 轉(zhuǎn)換只需要一條P2.7=0 指令。在此之前,要將P2.7 清零并將最低3 位與所選的通道對(duì)應(yīng)的地址送入數(shù)據(jù)指針DPTR 中。ADC0809 的轉(zhuǎn)換結(jié)束信號(hào)EOC 取反后與AT89S52 的INT1 相連,采用中斷方式讀取A/D 轉(zhuǎn)換結(jié)果,并啟動(dòng)下一次A/D 轉(zhuǎn)換。也可定時(shí)啟動(dòng)A/D 轉(zhuǎn)換,并讀取上次轉(zhuǎn)換結(jié)果。
評(píng)論