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