摘要:給出了利用嵌入式計算機STC89C52與ISD4003構成的語音系統的硬件結構和軟件設計方法,具有較好的工程應用與參考價值。
關鍵詞:嵌入式;語音錄放;ISD4003;串行外設接口
中圖分類號:TP368文獻標識碼:A文章編號:1009-3044(2008)22-823-02
Design and Application of Voice Record-replay System Based on ISD4003
SUO Ming-he1,HUANG Pei-hua2,WANG Jin-hong1
(1.East China Institute of technology,Fuzhou Jiangxi344000; 2.Binzhou University, Binzhou 256600)
Abstract: This paper presented the hard structure and soft design method of the voice system consisted of Embedded Computer STC89C52 and ISD4003, showing the value of engineering application and reference.
Key words:embedded; voice record-replay; ISD4003; SPI
1 引言
在嵌入式設備中,增加語音錄放功能可進一步提高人機界面的友好性。本文重點介紹由嵌入式計算機STC89C52與語音芯片 ISD4003 相結合的硬件結構和軟件實現方法。其中 ISD4003 系列工作電壓3V,單片錄放語音時間4至8分鐘,音質好。芯片的所有操作必須由微控制器控制,操作命令通過串行通信接口(SPI或Micro wire)送入。片內信息存于閃爍存貯器中,可在斷電情況下保存100 年,反復錄音10萬次。
2 硬件結構
圖1為由STC89C52和ISD4003組成的語音錄放電路,其功能說明如下。
錄音:開關 S1 打到 VCC 是錄音狀態,按住S2鍵不放,指示燈亮即可對著板上話筒講話錄音,S2 鍵松開時錄音停止并形成一段,再按下 S2 則錄下一段。按 S3 鍵為復位,再錄音時又從第一段開始。
放音:開關 S1 打到 GND 是放音狀態,按一下S2鍵即播放一段,一段結束后自動停止放音,再按 S2 鍵則播放下一段。按 S3 鍵為復位,再放音時又從第一段開始。
3 軟件設計
3.1 SPI(串行外設接口)
ISD4003 工作于SPI串行接口。SPI 協議是一個同步串行數據傳輸協議,協議假定微控制器的 SPI 移位寄存器在 SCLK 的下降沿動作,因此對 ISD4003 而言,在時鐘上升沿鎖存 MOSI 引腳數據,在下降沿將數據送至 MISO 引腳。協議具體內容如下:
1)所有串行數據傳輸開始于 SS 下降沿;
2)SS在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平;
3)數據在時鐘上升沿移入,在下降沿移出;
4)SS變低,輸入指令和地址后,240B才能開始錄放操作;
5)指令格式是5位控制碼加11位地址碼;
6)TER 任何操作(含快進)如果遇到EOM或OVF,則產生一個中斷,該中斷狀態在下一個SPI周期開始時被清除;
7)使用“誤”指令會使中斷狀態位移出TER的MISO引腳時,控制及地址數據也同步從MOSI端移入。因此,要注意移入的數據是否與器件當前進行的操作兼容,當然,也允許在 SPI周期里,同是執行讀狀態和開始新的操作(即新移入的數據與器件操作可以不兼容)。
8)所有操作在運行位(RUN)置1時開始,置0時結束;
9)所有指令都在 SS 端上升沿開始執行。
SPI 端口的命令字和狀態字如圖2所示,相關指令如表1所示。
表1 指令表
■
3.2程序流程圖(見圖3、圖4、圖5)
3.3 SPI串行發送子程序(8位數據)
void spi_send(uchar isdx)
{ uchar cnt;
SS=0;//ss=0,打開 spi 通信端
SCLK=0;
for(cnt=0;cnt<8;cnt++) //從低到高,逐位發送
{if((isdx0x01)==1)MOSI=1;
elseMOSI=0;
SCLK=1;
isdx=isdx>>1;
SCLK=0;
}
}
4 結束語
經過測試表明,本文介紹的設計方法能很好地實現基于ISD4003的語音錄放功能,具有較高的工程應用與參考價值。
參考文獻:
[1] 何為民,潘仕彬.計算機組成與嵌入式系統[M].北京:北京航空航天大學出版社,2007.
[2] 馬忠梅等.單片機的C語言應用程序設計[M]. 4版. 北京:北京航空航天大學出版社,2007.