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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

12、一個暫停命令,在停止錄音放音的同時,將ISD4004會將當前錄音放音的存儲器地址發(fā)送給控制器??刂破髟诮邮盏竭@個地址后,可以從這個地址繼續(xù)放音或者錄音,從而達到暫停后再啟動繼續(xù)放音或者錄音的功能。 5 結(jié)束語本文并沒有詳細闡述有關(guān)系統(tǒng)實現(xiàn)的具體細節(jié),而把重點集中在SPI總線硬件連接和軟件編程上,這樣與本學期“電子與系統(tǒng)總線”這門課聯(lián)系的更加緊密。本文通過對ISD4004語音芯片在語音錄音放音系統(tǒng)的實現(xiàn),熟悉了ISD4004的基本應(yīng)用,也掌握了SPI總線的硬件工作原理以及軟件編程控制。系統(tǒng)設(shè)計基本上滿足了錄音、放音、暫停以及暫停后繼續(xù)錄音放音的功能,但是也存在一些問題,比如說錄音音質(zhì)差,缺少分段錄音放音的功能,系統(tǒng)還有待于進一步完善。附錄:/*函數(shù)功能:SPI串行發(fā)送8位命令并同時接收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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論