主頁(yè)(http://www.130131.com):基于單片機(jī)控制的新型智能電梯語(yǔ)音系統(tǒng)設(shè)計(jì) 語(yǔ)音系統(tǒng)對(duì)電梯來(lái)說(shuō)是不可缺少的部分,比如進(jìn)行樓層報(bào)數(shù)、方向提示、報(bào)警告示、消防對(duì)講甚至廣告宣傳等。目前絕大多數(shù)電梯使用語(yǔ)音芯片來(lái)進(jìn)行語(yǔ)音存儲(chǔ)和播放,而語(yǔ)音芯片系統(tǒng)存在一些缺陷,比如外圍電路復(fù)雜、音質(zhì)不佳、成本偏高、容量有限以及語(yǔ)音更改不便等。有鑒于此,本文設(shè)計(jì)了一款基于單片機(jī)控制的智能電梯語(yǔ)音系統(tǒng)。 系統(tǒng)概述
圖1 電梯語(yǔ)音系統(tǒng)結(jié)構(gòu)框圖 硬件設(shè)計(jì) 系統(tǒng)微控制器采用了STC89C58RD+C,它是新一代51增強(qiáng)型高性能單片機(jī),具有加密性強(qiáng)、超強(qiáng)抗干擾、超低功耗、在系統(tǒng)可編程、可供應(yīng)內(nèi)部集成 MAX810 專用復(fù)位電路等特點(diǎn)。STC89C58RD+C擁有32K的FLASH和16K的EEPROM,而值得關(guān)注的是其內(nèi)含的1280 Byte內(nèi)部SRAM存儲(chǔ)空間,在音頻數(shù)據(jù)處理和顯示數(shù)據(jù)處理需要進(jìn)行較大數(shù)據(jù)緩沖的情況下,選擇該款具有大容量?jī)?nèi)部存儲(chǔ)器的單片機(jī),可以勝任系統(tǒng)的控制要求。 本文使用CPLD負(fù)責(zé)邏輯控制和數(shù)據(jù)傳遞。CPLD電路使用XC9572-VQ64,它擁有72個(gè)宏單元、1600個(gè)可用門電路、52個(gè)I/O口,具有低至2.5V供電,可在線編程等特性。 MP3解碼芯片VS1011E工作原理與電路設(shè)計(jì) VS1011E的工作流程 VS1011E的工作流程如圖2所示。
圖2 解碼芯片VS1011E工作流程圖 本系統(tǒng)中,MP3或WAV格式音頻文件首先通過(guò)SDI總線進(jìn)入芯片內(nèi)部,并解碼。 解碼后,如果SCL_AIADDR != 0,將會(huì)執(zhí)行應(yīng)用區(qū)代碼,代碼地址由相應(yīng)的地址寄存器提供。然后,按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的設(shè)置,數(shù)據(jù)可能會(huì)被送到低音和高音優(yōu)化器進(jìn)行音效處理。此后,數(shù)據(jù)通過(guò)音量控制單元,同時(shí)備份到音頻FIFO中。音頻FIFO保持?jǐn)?shù)據(jù),并作為采樣率轉(zhuǎn)換器和DAC的輸入。采樣率轉(zhuǎn)換器將所有不同采樣率轉(zhuǎn)換成CLKI/512,輸送給DAC。DAC按位依次產(chǎn)生立體聲模擬信號(hào)。 由于本系統(tǒng)為電梯系統(tǒng),推動(dòng)大功率揚(yáng)聲器發(fā)聲需要外置功放。這里功放采用的是CD4752CZ,該功放具有較大的電壓范圍和抗干擾能力,適合電壓波動(dòng)大,外界干擾強(qiáng)的電梯工作環(huán)境。 存儲(chǔ)器的組織結(jié)構(gòu) 軟件設(shè)計(jì)
圖3 系統(tǒng)主流程圖 VS1011E的軟件設(shè)計(jì)
圖4 解碼芯片VS1011E控制流程圖 VS1011E通過(guò)一個(gè)工作于從模式的SPI串行總線與主機(jī)進(jìn)行數(shù)據(jù)和控制信息的交流,音頻數(shù)據(jù)通過(guò)串行數(shù)據(jù)接口(SDI)傳送,控制數(shù)據(jù)則通過(guò)串行控制接口(SCI)傳送。 VS1011E的SPI接口具有兩種工作模式:VS1002新模式(SM_SDINEW = 1)和VS1001兼容模式(SM_SDINEW = 0)。當(dāng)SM_SDISHARED = 0時(shí),控制信號(hào)和數(shù)據(jù)信號(hào)的傳送分別采用XCS和XDCS作為同步信號(hào);當(dāng)SM_SDISHARED = 1時(shí),共用XCS作為同步信號(hào)。 作為從機(jī)工作模式,VS1011E通過(guò)一個(gè)信號(hào)線Dreq指示是否允許主機(jī)傳送數(shù)據(jù),當(dāng)Dreq為高時(shí),VS1011E至少可以接受32KB的SDI數(shù)據(jù)或者SCI控制命令。 軟件控制要點(diǎn) (1)設(shè)置內(nèi)部控制寄存器MODE的參數(shù)。包括支持文件格式、軟啟動(dòng)設(shè)置、數(shù)據(jù)流模式設(shè)置、DCLK觸發(fā)沿設(shè)置和SDI數(shù)據(jù)首位設(shè)置等。SM_SDINEW和SM_SDISHARED設(shè)置也在這里進(jìn)行。 (2)如果時(shí)鐘速率不是24.576MHz,需要設(shè)置SCI_CLOCKF寄存器。若通過(guò)改變SCI_CLOCKF使用倍頻時(shí)鐘,應(yīng)該將適當(dāng)?shù)牟蓸铀俾蕦懭隨CI_AUDATA寄存器,等待至少11000個(gè)時(shí)鐘后才可以進(jìn)行SPI通信。 (3)設(shè)置音量寄存器SCI_VOL;0位為最大音量,0xFEFE位為靜音,0xFFFF將觸發(fā)模擬調(diào)電模式。 (4)若希望強(qiáng)化低音和高音,可以設(shè)置寄存器SCI_BASS。 (5)若使用用戶代碼,通過(guò)將SCI_AIADDR置零關(guān)閉它。
|








