基于SPI總線的語音錄放系統(tǒng)實(shí)現(xiàn)_第1頁
基于SPI總線的語音錄放系統(tǒng)實(shí)現(xiàn)_第2頁
基于SPI總線的語音錄放系統(tǒng)實(shí)現(xiàn)_第3頁
基于SPI總線的語音錄放系統(tǒng)實(shí)現(xiàn)_第4頁
基于SPI總線的語音錄放系統(tǒng)實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于SPI總線的語音錄放系統(tǒng)實(shí)現(xiàn) 黃崇摘 要ISD4004語音系列芯片是SPI接口,具有多次重復(fù)錄放,存儲時(shí)間長,使用時(shí)不需擴(kuò)充存儲器,所需外圍電路簡單等特點(diǎn)。本文使用ISD4004芯片在錄音放音系統(tǒng)中的一個(gè)實(shí)際應(yīng)用。筆者通過這個(gè)系統(tǒng)的實(shí)現(xiàn),掌握了SPI總線的協(xié)議規(guī)范和編程方法。關(guān)鍵字:SPI總線ISD4004 單片機(jī)目錄1 前言32 SPI總線簡介32.1 SPI總線簡介32.2 接口信號32.3 SPI接口硬件結(jié)構(gòu)33 硬件電路設(shè)計(jì)43.1 ISD4004簡介43.2 ISD4004與單片機(jī)接口電路43.3錄音模塊電路53.4放音模塊電路54 軟件設(shè)計(jì)64.1 錄音程序設(shè)計(jì)64.2 放音程

2、序設(shè)計(jì)64.3 部分工作子程序64.4 錄音放音暫停功能的實(shí)現(xiàn)75 結(jié)束語71 前言語音生成技術(shù)用于工業(yè)監(jiān)控系統(tǒng)、自動應(yīng)答系統(tǒng)、多媒體查詢系統(tǒng)、智能化儀表、辦公自動化系統(tǒng)或家用電氣產(chǎn)品中,使它們具有語音輸出功能,使之能在適當(dāng)?shù)臅r(shí)候用語音實(shí)時(shí)報(bào)告系統(tǒng)的工作狀態(tài)、警告信息、提示信息或相關(guān)的解釋說明等,無疑在提高人機(jī)通信能力、減少對錯誤處理的遺漏、提高系統(tǒng)性能、降低人們的工作強(qiáng)度等方面都有極大的好處。數(shù)字錄音放音系統(tǒng)是將現(xiàn)場的語音模擬信號轉(zhuǎn)變?yōu)殡x散的數(shù)字信號,然后存儲在一定的存儲介質(zhì)上的一種錄音方式,它也是數(shù)字語音處理技術(shù)中常用的一種方式。采用數(shù)字錄音技術(shù),有較高的效率和自動化程度,錄音時(shí)間也長,并

3、可將信息長期保存于存儲介質(zhì)中,同時(shí)對語音信息進(jìn)行編輯整理非常方便,可快速查找。2 SPI總線簡介2.1 SPI總線簡介SPI(Serial Peripheral Interface-串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。它是一種符合工業(yè)標(biāo)準(zhǔn)、全雙工、三線或四線通信方式的總線系統(tǒng)。它允許MCU與各種外圍設(shè)備以串行方式進(jìn)行通信。在SPI接口中,數(shù)據(jù)的傳輸需要一條時(shí)鐘線,一條數(shù)據(jù)線和一條控制線(有些芯片需要兩條控制線)。SPI可以工作在主模式下或從模式下。在主模式下每位數(shù)據(jù)發(fā)送/接收需要一個(gè)時(shí)鐘周期。2.2 接口信號(1)MOSI 主

4、器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入(2)MISO 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出(3)SCLK 時(shí)鐘信號,由主器件產(chǎn)生 (4)SS 從器件使能信號,由主器件控制 圖2.1為SPI常見的與控制器的連接圖。圖2.1 SPI常見的與控制器的連接圖2.3 SPI接口硬件結(jié)構(gòu)SPI接口在內(nèi)部硬件實(shí)際上是兩個(gè)簡單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的上升沿上數(shù)據(jù)改變,同時(shí)一位數(shù)據(jù)被存入移位寄存器。3 硬件電路設(shè)計(jì)本文討論的語音錄放系統(tǒng)包括單片機(jī)控制器模塊、語音錄放模塊、鍵盤控制模塊以及顯示模塊。考慮到本文主要的任務(wù)應(yīng)該是討

5、論與系統(tǒng)總線相關(guān)的內(nèi)容,也就是與ISD4004有關(guān)的硬件軟件設(shè)計(jì),所以下邊的內(nèi)容講的主要是與SPI總線相關(guān)的內(nèi)容,硬件模塊包括與單片機(jī)接口模塊、錄音模塊以及放音模塊。因?yàn)镮SD4004芯片在音頻輸入端和輸出端都集成了合適的濾波器和放大器,所以實(shí)際實(shí)現(xiàn)起來的硬件電路非常簡單。3.1 ISD4004簡介ISD4004語音芯片是與普通的錄音/重放芯片相比,ISD4004具有如下特點(diǎn):(1)記錄聲音沒有段長度限制,并且聲音記錄不需要A/D轉(zhuǎn)換和壓縮。(2)快速閃存作為存儲介質(zhì),無需電源可保存數(shù)據(jù)長達(dá)100年,重復(fù)記錄10000次以上。(3)ISD4004具有記錄時(shí)間長(可達(dá)16分鐘,本文采用的為8分鐘

6、的ISD4004語音芯片)的優(yōu)點(diǎn)。(4)ISD4004開發(fā)應(yīng)用具有所需外圍電路簡單的優(yōu)點(diǎn),這一點(diǎn)從本文介紹的其在語音報(bào)站器中的實(shí)際應(yīng)用中可以體會到。 圖3.1為ISD4004內(nèi)部結(jié)構(gòu)圖。圖3.1 ISD4004內(nèi)部結(jié)構(gòu)圖3.2 ISD4004與單片機(jī)接口電路本文討論的語音錄放系統(tǒng)主電路主要由單片機(jī)AT89S52和ISD4004構(gòu)成。該系統(tǒng)的硬件電路連接如圖2.1所示。AT89S52單片機(jī)并沒有集成SPI控制器,所以設(shè)計(jì)中必須用普通IO口來模擬,單片機(jī)的32個(gè)IO口理論上說說是可以隨便連接四個(gè)的。本設(shè)計(jì)中單片機(jī)的P1.0P1.3引腳接分別接的ISD4004的SS、SCLK、MOSI、MISO引腳

7、,可以看出AT89S52和ISD4004之間的連接較少。圖3.2 ISD4004與單片機(jī)接口電路 3.3錄音模塊電路 正如前文所述,ISD4004內(nèi)部集成有音頻輸入端的放大器和濾波器,所以這部分電路也是非常簡單的。麥克風(fēng)輸出信號經(jīng)過一個(gè)三極管放大電路輸入到ISD4004中。在實(shí)踐中,筆者也嘗試著將此部分電路去除,直接接到ISD4004上,但是發(fā)現(xiàn)錄音聲音太小,看來此部分電路還是不能省的。圖3.3錄音模塊電路3.4放音模塊電路放音模塊電路連接圖如圖3.4所示。 LM386是一款常用的音頻放大芯片,只需要簡單的外圍電路就能實(shí)現(xiàn)一個(gè)語音放大電路。本設(shè)計(jì)中放音模塊電路就是把ISD4004的音頻輸出接到

8、LM386放大器上,經(jīng)過放大驅(qū)動喇叭發(fā)聲。圖中header 3為一個(gè)滑動變阻器,通過改變此變阻器的阻值,可以調(diào)節(jié)輸出聲音的大小。圖3.4放音模塊電路4 軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)從文件的角度說,包括主程序文件、ISD4004驅(qū)動文件、功能函數(shù)文件。主程序文件調(diào)用功能函數(shù)文件提供的函數(shù)構(gòu)造主程序框架,功能函數(shù)調(diào)用ISD4004文件提供的驅(qū)動函數(shù)實(shí)現(xiàn)錄音、放音、暫停等等功能函數(shù)。ISD4004驅(qū)動文件時(shí)根據(jù)ISD4004芯片手冊編寫的驅(qū)動程序,包括發(fā)送啟動、8位命令、發(fā)送16位命令、暫停等等相關(guān)的函數(shù)。本文主要的任務(wù)是闡述與SPI總線相關(guān)的軟件設(shè)計(jì)部分,在4.3部分會詳細(xì)闡述SPI總線協(xié)議的實(shí)現(xiàn)方法。至

9、于系統(tǒng)其他的與SPI總線關(guān)聯(lián)不大的軟件設(shè)計(jì)本文不再過多闡述,以免淡化了主題。4.1 錄音程序設(shè)計(jì)發(fā)POWER UP 命令;等待TPUD(上電延時(shí));發(fā)POWER UP 命令;4. 等待2 倍TPUD;發(fā)地址值為00 的SETREC 命令;發(fā)REC 命令。器件便從00 地址開始錄音,一直到出現(xiàn)OVF(存貯器末尾)時(shí),錄音停止。4.2 放音程序設(shè)計(jì)發(fā)POWERUP 命令;等待TPUD(上電延時(shí));發(fā)地址值為00 的SETPLAY 命令;發(fā)PLAY 命令。器件會從此00 地址開始放音,當(dāng)出現(xiàn)EOM 時(shí),立即中斷,停止放音。4.3 部分工作子程序圖4.1為向ISD4004發(fā)送一個(gè)八位命令的時(shí)序圖。從圖

10、中可以看出,從MOSI數(shù)據(jù)線向ISD4004發(fā)送命令的同時(shí),主機(jī)也會從MISO數(shù)據(jù)線得到8位數(shù)據(jù)。無論主機(jī)是否選擇接受,ISD4004都會在主機(jī)發(fā)送命令的同時(shí),將一組狀態(tài)數(shù)據(jù)發(fā)送回來。圖4.1 ISD4004發(fā)送八位命令的時(shí)序圖 正如前文所述,由于AT89S52單片機(jī)內(nèi)部沒有集成SPI控制器,所以需要通過普通IO口來模擬這樣的時(shí)序。雖然這帶來的編程的復(fù)雜性,但是對于理解SPI總線的協(xié)議是非常有幫助的,因?yàn)閷?shí)際上程序模擬了一個(gè)SPI控制器。筆者從源程序中摘出了SPI串行發(fā)送8位命令并同時(shí)接收8位數(shù)據(jù)的函數(shù),接收的8位數(shù)據(jù)的這樣一個(gè)函數(shù)見于附錄。 從這段代碼可以看出,程序發(fā)送命令isd_cmd,同

11、時(shí)接收一個(gè)8位的數(shù)據(jù)保存在isd_rxd。這也驗(yàn)證了SPI全雙工通信的特征。數(shù)據(jù)在發(fā)送和接收過程中,需要通過SCLK來驅(qū)動數(shù)據(jù)流動,這樣體現(xiàn)了SPI通信的同步特征。isd_rxd = isd_rxd >> 1和isd_cmd = isd_cmd >> 1這兩句代碼模擬了主機(jī)的移位寄存器,這也是對SPI控制器的硬件電路用軟件方法的模擬實(shí)現(xiàn)。4.4 錄音放音暫停功能的實(shí)現(xiàn)錄音放音暫停功能是非常重要的功能,一個(gè)成熟的錄音放音系統(tǒng)是不能缺少的。ISD4004可以向主機(jī)發(fā)送當(dāng)前錄音放音的存儲地址給系統(tǒng)實(shí)現(xiàn)這種功能提供了硬件支持。實(shí)現(xiàn)思路是這樣的:在錄音或者放音進(jìn)行中,可以通過發(fā)送

12、一個(gè)暫停命令,在停止錄音放音的同時(shí),將ISD4004會將當(dāng)前錄音放音的存儲器地址發(fā)送給控制器??刂破髟诮邮盏竭@個(gè)地址后,可以從這個(gè)地址繼續(xù)放音或者錄音,從而達(dá)到暫停后再啟動繼續(xù)放音或者錄音的功能。 5 結(jié)束語本文并沒有詳細(xì)闡述有關(guān)系統(tǒng)實(shí)現(xiàn)的具體細(xì)節(jié),而把重點(diǎn)集中在SPI總線硬件連接和軟件編程上,這樣與本學(xué)期“電子與系統(tǒng)總線”這門課聯(lián)系的更加緊密。本文通過對ISD4004語音芯片在語音錄音放音系統(tǒng)的實(shí)現(xiàn),熟悉了ISD4004的基本應(yīng)用,也掌握了SPI總線的硬件工作原理以及軟件編程控制。系統(tǒng)設(shè)計(jì)基本上滿足了錄音、放音、暫停以及暫停后繼續(xù)錄音放音的功能,但是也存在一些問題,比如說錄音音質(zhì)差,缺少分段錄音放音的功能,系統(tǒng)還有待于進(jìn)一步完善。附錄:/*函數(shù)功能:SPI串行發(fā)送8位命令并同時(shí)接收8位數(shù)據(jù)的函數(shù),接收的8位數(shù)據(jù) 高位低位反向(P5|P4|P3|P2|P1|P0|EOM|OVF)*/unsigned char spi_8bit_tr(unsigned char isd_cmd)unsigned char isd_rxd = 0;unsigned char count;SS = 0;for(count=0;count<8;count+) isd_rxd = isd_rxd &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論