語音系統對電梯來說是不可缺少的部分,比如進行樓層報數、方向提示、報警告示、消防對講甚至廣告宣傳等。目前絕大多數電梯使用語音芯片來進行語音存儲和播放,而語音芯片系統存在一些缺陷,比如外圍電路復雜、音質不佳、成本偏高、容量有限以及語音更改不便等。有鑒于此,本文設計了一款基于單片機控制的智能電梯語音系統。 系統概述 電梯控制系統的基本功能,是根據用戶的樓層按鍵信息,顯示到往樓層數字,語音播報到達樓層。系統框圖如圖1所示。 圖1 電梯語音系統結構框圖 硬件設計 根據FLASH的讀寫規則和MP3的解碼協議,事先設定CPLD的邏輯規則。控制器按照輸入的信息,向CPLD發出控制命令和傳送數據。CPLD根據接收到的命令按照邏輯規則讀寫FLASH以及對MP3設定內部控制寄存器和輸送音頻數據。MP3輸出的模擬信號可以直接推動耳機發音,但是如果需要推動大功率揚聲器,還需要外接功率放大器。 系統微控制器采用了STC89C58RD+C,它是新一代51增強型高性能單片機,具有加密性強、超強抗干擾、超低功耗、在系統可編程、可供應內部集成 MAX810 專用復位電路等特點。STC89C58RD+C擁有32K的FLASH和16K的EEPROM,而值得關注的是其內含的1280 Byte內部SRAM存儲空間,在音頻數據處理和顯示數據處理需要進行較大數據緩沖的情況下,選擇該款具有大容量內部存儲器的單片機,可以勝任系統的控制要求。 本文使用CPLD負責邏輯控制和數據傳遞。CPLD電路使用XC9572-VQ64,它擁有72個宏單元、1600個可用門電路、52個I/O口,具有低至2.5V供電,可在線編程等特性。 MP3解碼芯片VS1011E工作原理與電路設計 VS1011E音頻解碼芯片為VS10XX系列的第三代產品,它內部包含一個高性能、低功耗的DSP處理核,一個5.5KB 片內RAM可供用戶存儲代碼和數據,一個串行SPI總線接口,一個雙聲道采樣頻率可調的16位DAC。工作于12.288MHz"14MHz或24.576MHz"28MHz時鐘頻率下,可以解碼MPEG1&2 Layer1、2、3以及MPEG2.5 Layer3、WAV和PCM格式文件。 VS1011E的工作流程 VS1011E的工作流程如圖2所示。 圖2 解碼芯片VS1011E工作流程圖 本系統中,MP3或WAV格式音頻文件首先通過SDI總線進入芯片內部,并解碼。 解碼后,如果SCL_AIADDR != 0,將會執行應用區代碼,代碼地址由相應的地址寄存器提供。然后,按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的設置,數據可能會被送到低音和高音優化器進行音效處理。此后,數據通過音量控制單元,同時備份到音頻FIFO中。音頻FIFO保持數據,并作為采樣率轉換器和DAC的輸入。采樣率轉換器將所有不同采樣率轉換成CLKI/512,輸送給DAC。DAC按位依次產生立體聲模擬信號。 由于本系統為電梯系統,推動大功率揚聲器發聲需要外置功放。這里功放采用的是CD4752CZ,該功放具有較大的電壓范圍和抗干擾能力,適合電壓波動大,外界干擾強的電梯工作環境。 存儲器的組織結構 系統采用NAND閃存K9F5608作為存儲器。NAND閃存以塊(block)和頁(page)為存儲單元。K9F5608包括2048塊,每1塊又包括32頁,1頁大小為528字節,依次分為2個256字節的數據區,最后是16字節的備用空間。 軟件設計 電梯在運行過程中,如果沒人去按鍵,那么電梯語音系統就播報一些廣告、天氣預報等,同時根據要求伴有點陣或液晶顯示。當有鍵按下時,語音系統則會根據按下的鍵值調用相應的按鍵處理程序,比如到達的樓層數等。主程序流程圖如圖3所示。 圖3 系統主流程圖 VS1011E的軟件設計 本系統音頻解碼芯片采用VS1011E,控制流程如圖4所示。 圖4 解碼芯片VS1011E控制流程圖 VS1011E通過一個工作于從模式的SPI串行總線與主機進行數據和控制信息的交流,音頻數據通過串行數據接口(SDI)傳送,控制數據則通過串行控制接口(SCI)傳送。 VS1011E的SPI接口具有兩種工作模式:VS1002新模式(SM_SDINEW = 1)和VS1001兼容模式(SM_SDINEW = 0)。當SM_SDISHARED = 0時,控制信號和數據信號的傳送分別采用XCS和XDCS作為同步信號;當SM_SDISHARED = 1時,共用XCS作為同步信號。 作為從機工作模式,VS1011E通過一個信號線Dreq指示是否允許主機傳送數據,當Dreq為高時,VS1011E至少可以接受32KB的SDI數據或者SCI控制命令。 軟件控制要點 對MP3解碼器進行控制時應注意以下6點: (1)設置內部控制寄存器MODE的參數。包括支持文件格式、軟啟動設置、數據流模式設置、DCLK觸發沿設置和SDI數據首位設置等。SM_SDINEW和SM_SDISHARED設置也在這里進行。 (2)如果時鐘速率不是24.576MHz,需要設置SCI_CLOCKF寄存器。若通過改變SCI_CLOCKF使用倍頻時鐘,應該將適當的采樣速率寫入SCI_AUDATA寄存器,等待至少11000個時鐘后才可以進行SPI通信。 (3)設置音量寄存器SCI_VOL;0位為最大音量,0xFEFE位為靜音,0xFFFF將觸發模擬調電模式。 (4)若希望強化低音和高音,可以設置寄存器SCI_BASS。 (5)若使用用戶代碼,通過將SCI_AIADDR置零關閉它。 (6)若采用RAM級的用戶代碼,可以通過激活SCI_WRAM、SCI_WRAMADDR、SCI_AIADDR來裝載這些數據實現所需功能。 結語 基于MP3的語音系統如今越來越受到人們的重視和喜愛,它們被應用到更多的工業領域,如公共汽車的站名播報系統等。由于具有良好的性能,基于MP3的語音系統將在非專業音響領域也得到更廣泛的應用。 |