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