




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于SPI總線的語(yǔ)音錄放系統(tǒng)實(shí)現(xiàn) 黃崇摘 要ISD4004語(yǔ)音系列芯片是SPI接口,具有多次重復(fù)錄放,存儲(chǔ)時(shí)間長(zhǎng),使用時(shí)不需擴(kuò)充存儲(chǔ)器,所需外圍電路簡(jiǎn)單等特點(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總線簡(jiǎn)介32.1 SPI總線簡(jiǎn)介32.2 接口信號(hào)32.3 SPI接口硬件結(jié)構(gòu)33 硬件電路設(shè)計(jì)43.1 ISD4004簡(jiǎn)介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é)束語(yǔ)71 前言語(yǔ)音生成技術(shù)用于工業(yè)監(jiān)控系統(tǒng)、自動(dòng)應(yīng)答系統(tǒng)、多媒體查詢系統(tǒng)、智能化儀表、辦公自動(dòng)化系統(tǒng)或家用電氣產(chǎn)品中,使它們具有語(yǔ)音輸出功能,使之能在適當(dāng)?shù)臅r(shí)候用語(yǔ)音實(shí)時(shí)報(bào)告系統(tǒng)的工作狀態(tài)、警告信息、提示信息或相關(guān)的解釋說(shuō)明等,無(wú)疑在提高人機(jī)通信能力、減少對(duì)錯(cuò)誤處理的遺漏、提高系統(tǒng)性能、降低人們的工作強(qiáng)度等方面都有極大的好處。數(shù)字錄音放音系統(tǒng)是將現(xiàn)場(chǎng)的語(yǔ)音模擬信號(hào)轉(zhuǎn)變?yōu)殡x散的數(shù)字信號(hào),然后存儲(chǔ)在一定的存儲(chǔ)介質(zhì)上的一種錄音方式,它也是數(shù)字語(yǔ)音處理技術(shù)中常用的一種方式。采用數(shù)字錄音技術(shù),有較高的效率和自動(dòng)化程度,錄音時(shí)間也長(zhǎng),并
3、可將信息長(zhǎng)期保存于存儲(chǔ)介質(zhì)中,同時(shí)對(duì)語(yǔ)音信息進(jìn)行編輯整理非常方便,可快速查找。2 SPI總線簡(jiǎn)介2.1 SPI總線簡(jiǎn)介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 接口信號(hào)(1)MOSI 主
4、器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入(2)MISO 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出(3)SCLK 時(shí)鐘信號(hào),由主器件產(chǎn)生 (4)SS 從器件使能信號(hào),由主器件控制 圖2.1為SPI常見的與控制器的連接圖。圖2.1 SPI常見的與控制器的連接圖2.3 SPI接口硬件結(jié)構(gòu)SPI接口在內(nèi)部硬件實(shí)際上是兩個(gè)簡(jiǎn)單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號(hào)和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的上升沿上數(shù)據(jù)改變,同時(shí)一位數(shù)據(jù)被存入移位寄存器。3 硬件電路設(shè)計(jì)本文討論的語(yǔ)音錄放系統(tǒng)包括單片機(jī)控制器模塊、語(yǔ)音錄放模塊、鍵盤控制模塊以及顯示模塊??紤]到本文主要的任務(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)起來(lái)的硬件電路非常簡(jiǎn)單。3.1 ISD4004簡(jiǎn)介ISD4004語(yǔ)音芯片是與普通的錄音/重放芯片相比,ISD4004具有如下特點(diǎn):(1)記錄聲音沒有段長(zhǎng)度限制,并且聲音記錄不需要A/D轉(zhuǎn)換和壓縮。(2)快速閃存作為存儲(chǔ)介質(zhì),無(wú)需電源可保存數(shù)據(jù)長(zhǎng)達(dá)100年,重復(fù)記錄10000次以上。(3)ISD4004具有記錄時(shí)間長(zhǎng)(可達(dá)16分鐘,本文采用的為8分鐘
6、的ISD4004語(yǔ)音芯片)的優(yōu)點(diǎn)。(4)ISD4004開發(fā)應(yīng)用具有所需外圍電路簡(jiǎn)單的優(yōu)點(diǎn),這一點(diǎn)從本文介紹的其在語(yǔ)音報(bào)站器中的實(shí)際應(yīng)用中可以體會(huì)到。 圖3.1為ISD4004內(nèi)部結(jié)構(gòu)圖。圖3.1 ISD4004內(nèi)部結(jié)構(gòu)圖3.2 ISD4004與單片機(jī)接口電路本文討論的語(yǔ)音錄放系統(tǒng)主電路主要由單片機(jī)AT89S52和ISD4004構(gòu)成。該系統(tǒng)的硬件電路連接如圖2.1所示。AT89S52單片機(jī)并沒有集成SPI控制器,所以設(shè)計(jì)中必須用普通IO口來(lái)模擬,單片機(jī)的32個(gè)IO口理論上說(shuō)說(shuō)是可以隨便連接四個(gè)的。本設(shè)計(jì)中單片機(jī)的P1.0P1.3引腳接分別接的ISD4004的SS、SCLK、MOSI、MISO引腳
7、,可以看出AT89S52和ISD4004之間的連接較少。圖3.2 ISD4004與單片機(jī)接口電路 3.3錄音模塊電路 正如前文所述,ISD4004內(nèi)部集成有音頻輸入端的放大器和濾波器,所以這部分電路也是非常簡(jiǎn)單的。麥克風(fēng)輸出信號(hào)經(jīng)過一個(gè)三極管放大電路輸入到ISD4004中。在實(shí)踐中,筆者也嘗試著將此部分電路去除,直接接到ISD4004上,但是發(fā)現(xiàn)錄音聲音太小,看來(lái)此部分電路還是不能省的。圖3.3錄音模塊電路3.4放音模塊電路放音模塊電路連接圖如圖3.4所示。 LM386是一款常用的音頻放大芯片,只需要簡(jiǎn)單的外圍電路就能實(shí)現(xiàn)一個(gè)語(yǔ)音放大電路。本設(shè)計(jì)中放音模塊電路就是把ISD4004的音頻輸出接到
8、LM386放大器上,經(jīng)過放大驅(qū)動(dòng)喇叭發(fā)聲。圖中header 3為一個(gè)滑動(dòng)變阻器,通過改變此變阻器的阻值,可以調(diào)節(jié)輸出聲音的大小。圖3.4放音模塊電路4 軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)從文件的角度說(shuō),包括主程序文件、ISD4004驅(qū)動(dòng)文件、功能函數(shù)文件。主程序文件調(diào)用功能函數(shù)文件提供的函數(shù)構(gòu)造主程序框架,功能函數(shù)調(diào)用ISD4004文件提供的驅(qū)動(dòng)函數(shù)實(shí)現(xiàn)錄音、放音、暫停等等功能函數(shù)。ISD4004驅(qū)動(dòng)文件時(shí)根據(jù)ISD4004芯片手冊(cè)編寫的驅(qū)動(dòng)程序,包括發(fā)送啟動(dòng)、8位命令、發(fā)送16位命令、暫停等等相關(guān)的函數(shù)。本文主要的任務(wù)是闡述與SPI總線相關(guān)的軟件設(shè)計(jì)部分,在4.3部分會(huì)詳細(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 命令。器件會(huì)從此00 地址開始放音,當(dāng)出現(xiàn)EOM 時(shí),立即中斷,停止放音。4.3 部分工作子程序圖4.1為向ISD4004發(fā)送一個(gè)八位命令的時(shí)序圖。從圖
10、中可以看出,從MOSI數(shù)據(jù)線向ISD4004發(fā)送命令的同時(shí),主機(jī)也會(huì)從MISO數(shù)據(jù)線得到8位數(shù)據(jù)。無(wú)論主機(jī)是否選擇接受,ISD4004都會(huì)在主機(jī)發(fā)送命令的同時(shí),將一組狀態(tài)數(shù)據(jù)發(fā)送回來(lái)。圖4.1 ISD4004發(fā)送八位命令的時(shí)序圖 正如前文所述,由于AT89S52單片機(jī)內(nèi)部沒有集成SPI控制器,所以需要通過普通IO口來(lái)模擬這樣的時(shí)序。雖然這帶來(lái)的編程的復(fù)雜性,但是對(duì)于理解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來(lái)驅(qū)動(dòng)數(shù)據(jù)流動(dòng),這樣體現(xiàn)了SPI通信的同步特征。isd_rxd = isd_rxd >> 1和isd_cmd = isd_cmd >> 1這兩句代碼模擬了主機(jī)的移位寄存器,這也是對(duì)SPI控制器的硬件電路用軟件方法的模擬實(shí)現(xiàn)。4.4 錄音放音暫停功能的實(shí)現(xiàn)錄音放音暫停功能是非常重要的功能,一個(gè)成熟的錄音放音系統(tǒng)是不能缺少的。ISD4004可以向主機(jī)發(fā)送當(dāng)前錄音放音的存儲(chǔ)地址給系統(tǒng)實(shí)現(xiàn)這種功能提供了硬件支持。實(shí)現(xiàn)思路是這樣的:在錄音或者放音進(jìn)行中,可以通過發(fā)送
12、一個(gè)暫停命令,在停止錄音放音的同時(shí),將ISD4004會(huì)將當(dāng)前錄音放音的存儲(chǔ)器地址發(fā)送給控制器??刂破髟诮邮盏竭@個(gè)地址后,可以從這個(gè)地址繼續(xù)放音或者錄音,從而達(dá)到暫停后再啟動(dòng)繼續(xù)放音或者錄音的功能。 5 結(jié)束語(yǔ)本文并沒有詳細(xì)闡述有關(guān)系統(tǒng)實(shí)現(xiàn)的具體細(xì)節(jié),而把重點(diǎn)集中在SPI總線硬件連接和軟件編程上,這樣與本學(xué)期“電子與系統(tǒng)總線”這門課聯(lián)系的更加緊密。本文通過對(duì)ISD4004語(yǔ)音芯片在語(yǔ)音錄音放音系統(tǒng)的實(shí)現(xiàn),熟悉了ISD4004的基本應(yīng)用,也掌握了SPI總線的硬件工作原理以及軟件編程控制。系統(tǒng)設(shè)計(jì)基本上滿足了錄音、放音、暫停以及暫停后繼續(xù)錄音放音的功能,但是也存在一些問題,比如說(shuō)錄音音質(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)展執(zhí)行面試題及答案
- 初一語(yǔ)文試題及答案
- 護(hù)理定科面試題及答案
- 物業(yè)證書考試題及答案
- 獼猴桃考試題及答案
- 春運(yùn)駕駛員試題及答案
- 大??谇辉囶}及答案
- 政治原則面試題及答案
- 2025年非織造材料與工程專業(yè)畢業(yè)設(shè)計(jì)開題報(bào)告
- 2025年材料成型及控制工程專業(yè)畢業(yè)設(shè)計(jì)開題報(bào)告
- 初步設(shè)計(jì)及概算評(píng)估咨詢服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 職業(yè)健康檢查質(zhì)量管理工作手冊(cè)
- 資產(chǎn)并購(gòu)咨詢合同協(xié)議
- 2025統(tǒng)編版(2024)小學(xué)道德與法治一年級(jí)下冊(cè)《第13課-快樂兒童節(jié)》教學(xué)設(shè)計(jì)
- 櫥柜合同協(xié)議書電子版
- 2025-2030中國(guó)精液分析行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析研究報(bào)告
- 教師招考試題及答案臨沂
- 2025年咖啡師職業(yè)技能競(jìng)賽參考試題庫(kù)500題(含答案)
- PSP問題解決流程分析
- 2025年軍隊(duì)文職人員-司機(jī)崗考點(diǎn)題庫(kù)附答案
- 鐵路橋梁工程圖第一節(jié)全橋布置圖第二節(jié)橋墩?qǐng)D第三節(jié)橋臺(tái)圖第四
評(píng)論
0/150
提交評(píng)論