基于SPCE061A的SIO實(shí)現(xiàn)數(shù)碼錄音及播放
SPCE061A是臺(tái)灣凌陽(yáng)公司生產(chǎn)的一種新型的十六位單片機(jī),該款單片機(jī)資源豐富,具有極高的性價(jià)比。SPCE061A具有可編程的音頻處理功能,同時(shí)又具有串口輸入輸出端口SIO(它提供了一個(gè)1位的串行接口,用于與其它設(shè)備進(jìn)行數(shù)據(jù)通訊),本文就是介紹利用SPCE061A的這兩個(gè)資源和串行接口的FLASH(SPR1024)來開發(fā)數(shù)碼錄音及播放系統(tǒng)。
本系統(tǒng)只使用5個(gè)IO口,還有好多資源沒有用到。因此,開發(fā)者可以在此基礎(chǔ)上擴(kuò)展系統(tǒng)的功能,比如,使用SPCE061A的通用異步串行接口UART來實(shí)現(xiàn)與PC機(jī)的通訊,或者使用其他的IO口來外掛USB器件實(shí)現(xiàn)與PC機(jī)的USB通訊,制作復(fù)雜的錄、放音系統(tǒng)。
1系統(tǒng)結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)框圖如圖7所示,它主要由按鍵輸入、音頻錄入、音頻輸出和SPR1024存儲(chǔ)擴(kuò)展這四部分組成。
按鍵輸入部分:它由3個(gè)按鍵組成。
音頻錄入部分:主要由MIC、自動(dòng)增益電路、AD轉(zhuǎn)換電路構(gòu)成。
音頻輸出部分:主要由LM386放大器,喇叭播放器組成。
SPR1024FLASH部分:主要用來存儲(chǔ)編碼后的語(yǔ)音數(shù)據(jù)。
2硬件設(shè)計(jì)
本系統(tǒng)主要采用SPCE061A單片機(jī)和SPR1024FLASH芯片。其中SPR1024也是臺(tái)灣凌陽(yáng)科技公司生產(chǎn)的,它是串行接口的FLASH,是40腳DIP封裝的IC。它的工作電壓范圍為2.7V~6V,存儲(chǔ)容量為128K*8位,F(xiàn)LASH內(nèi)部結(jié)構(gòu)以1k字節(jié)為一頁(yè),共128頁(yè)。該芯片與SPCE061A的IOB0和IOB1相連的管腳是21pin的SCLK,4pin的ADPAD。
SPCE061A是性價(jià)比極高、資源豐富的一款十六位單片機(jī),使用它可以非常方便的實(shí)現(xiàn)語(yǔ)音的錄放系統(tǒng)。SPCE061A的A/D轉(zhuǎn)換器有8個(gè)通道,其中有1個(gè)通道是MIC-IN輸入,它專門用于對(duì)語(yǔ)音信號(hào)進(jìn)行采樣。語(yǔ)音信號(hào)經(jīng)Mic轉(zhuǎn)換成電信號(hào),由隔直電容隔掉直流成分,然后輸入至SPCE061A內(nèi)部前置放大器。SPCE061A內(nèi)部自動(dòng)增益控制電路AGC能隨時(shí)跟蹤、監(jiān)視前置放大器輸出的音頻信號(hào)電平,當(dāng)輸入信號(hào)增大時(shí),AGC電路自動(dòng)減小放大器的增益;當(dāng)輸入信號(hào)減小時(shí),AGC電路自動(dòng)增大放大器的增益,以便使進(jìn)入A/D的信號(hào)保持在最佳電平,又可使削波減至最小。2路10位精度的DA,只需要外接功放(LM386)電路即可完成語(yǔ)音的播放。
系統(tǒng)的硬件連接圖如圖8所示。圖中三個(gè)按鍵控制著系統(tǒng)的錄音、停止、放音三個(gè)過程。按下Record鍵,采集語(yǔ)音數(shù)據(jù),編碼后存儲(chǔ)語(yǔ)音數(shù)據(jù)到SPR1024;按下Stop鍵,停止錄音;按下Play鍵,播放所錄語(yǔ)音。
圖8硬件連接圖
3軟件設(shè)計(jì)
本系統(tǒng)軟件設(shè)計(jì)流程圖如圖9所示:
錄放音的編解碼是靠調(diào)用庫(kù)函數(shù)完成,不需要我們?cè)O(shè)計(jì)硬件電路。凌陽(yáng)公司提供了豐富的庫(kù)函數(shù),我們只要了解庫(kù)函數(shù)的使用,就能輕松完成語(yǔ)音錄放。本系統(tǒng)采用的是凌陽(yáng)公司提供的音頻格式SACM_A2000,它的壓縮編碼率是16Kbit/s,因此可以計(jì)算出1Mbit的存儲(chǔ)器可以存放播放1M/16K=64秒的語(yǔ)音數(shù)據(jù)。凌陽(yáng)的音頻格式有許多種,由于篇幅關(guān)系,不在這里詳細(xì)講述,請(qǐng)參考相關(guān)資料。
本系統(tǒng)底層驅(qū)動(dòng)程序包括IO口初始化、SPR1024的讀寫、擦除使用的是匯編語(yǔ)言編寫的。上層程序包括語(yǔ)音的錄放采用C語(yǔ)言編寫。程序以函數(shù)的形式封裝對(duì)SPR1024芯片的操作,上層程序可以輕松調(diào)用這些函數(shù),實(shí)現(xiàn)對(duì)SPR1024讀寫、擦除操作。這些主要源于凌陽(yáng)十六位單片機(jī)具有易學(xué)易用的效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語(yǔ)言,可以實(shí)現(xiàn)C語(yǔ)言與凌陽(yáng)匯編語(yǔ)言的互相調(diào)用。
4總結(jié)
凌陽(yáng)公司的十六位單片機(jī)SPCE061A是一種款式新穎,性價(jià)比極高的單片機(jī)。它具有較高運(yùn)算速度的16位×16位的乘法運(yùn)算指令;具有DSP功能的內(nèi)積運(yùn)算指令;具有音頻處理功能;具有8位機(jī)價(jià)格、16位單片機(jī)性能••••••
本系統(tǒng)只是實(shí)現(xiàn)SPCE061A的一個(gè)基本應(yīng)用,設(shè)計(jì)者只要對(duì)該系統(tǒng)的電路、程序稍加改動(dòng),就可以實(shí)現(xiàn)語(yǔ)音復(fù)讀機(jī)、跟讀機(jī)、留言機(jī)、以及電話錄音儀等功能。