一種智能電梯語(yǔ)音系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
隨著城市文明化和現(xiàn)代化建設(shè)步伐的加快,對(duì)建筑物中電梯的服務(wù)要求也越來(lái)越高,人們?cè)絹?lái)越追求智能化、人性化的乘梯環(huán)境。在電梯語(yǔ)音服務(wù)方面,目前主要是傳統(tǒng)的人工服務(wù),即通過電梯管理員告知乘客所要到達(dá)的樓層以及其他相關(guān)的服務(wù)信息。本文以單片微機(jī)和ISD語(yǔ)音芯片為核心,設(shè)計(jì)了一種電梯語(yǔ)音服務(wù)系統(tǒng),實(shí)現(xiàn)了電梯語(yǔ)音服務(wù)的智能化和自動(dòng)化,以適應(yīng)各種對(duì)服務(wù)要求比較高的電梯中。
2 器件功能介紹
Winbond公司的ISD系列語(yǔ)音芯片采用了“直接模擬量存儲(chǔ)”(DAST)專利技術(shù),信號(hào)無(wú)需經(jīng)過D/A,A/D轉(zhuǎn)換,數(shù)字壓縮和語(yǔ)音合成等復(fù)雜的數(shù)字信號(hào)處理過程,減少了失真,使其聲音存貯效果較以前產(chǎn)品有大幅提高,實(shí)際試聽主觀評(píng)價(jià)可以達(dá)到磁帶錄音機(jī)的水平,是目前市場(chǎng)上錄放效果最好的語(yǔ)音電路之一。
ISD4004語(yǔ)音芯片采用CMOS技術(shù),內(nèi)含晶體振蕩器、防混疊濾波器、平滑濾波器、自動(dòng)靜噪、音頻功率放大器及高密度多電平閃爍存儲(chǔ)陳列等(見圖1),因此只需很少的外圍器件就可構(gòu)成一個(gè)完整的聲音錄放系統(tǒng)。芯片設(shè)計(jì)是基于所有操作由微控制器控制,操作命令通過串行通信接口(SPI或Micwire)送入。采樣頻率可為4.0kHz、 5.3kHz、6.4kHz、8.0kHz頻率越低,錄放時(shí)間越長(zhǎng),而音質(zhì)則有所下降。片內(nèi)信息存于閃爍存儲(chǔ)器中,可在斷電情況下保存100年(典型值) 反復(fù)錄10萬(wàn)次。器件工作電壓3V,工作電流25~30mA,維持電流1uA,單片錄放語(yǔ)音時(shí)間8~16min,音質(zhì)好,適用于移動(dòng)電話機(jī)及其它便攜式電子產(chǎn)品中。
圖1 ISD4004系列語(yǔ)音芯片內(nèi)部框圖
2.1 引腳描述
ISD4004系列芯片引腳圖如圖2所示:
圖2 ISD4004系列芯片引腳圖(TSOP及PDIP、SOIC)
同相模擬輸入(ANA IN+)—這是錄音信號(hào)的同相輸入端,輸入放大器可用單端或差分驅(qū)動(dòng)。單端輸入時(shí),信號(hào)由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3kΩ輸入阻抗決定了芯片頻率的低端截止頻率。在差分驅(qū)動(dòng)時(shí),信號(hào)最大幅度為峰峰值16mV。
反相模擬輸入(ANA IN-)—差分驅(qū)動(dòng)時(shí),這是錄音信號(hào)的反相輸入端。信號(hào)通過耦合電容輸入,最大幅度為峰峰值16mV,本端的標(biāo)稱輸入阻抗為56kΩ,單端驅(qū)動(dòng)時(shí),本端通過電容接地。 兩種方式下,ANA IN+和ANA IN-端的耦合電容值應(yīng)相同。
·音頻輸出(AUD OUT)—提供音頻輸出,可驅(qū)動(dòng)5Ω的負(fù)載。
·片選(SS)—此端為低,即選中ISD4004 系列。
·串行輸入(MOSI)—此為串行輸入端,主控制器應(yīng)在串行時(shí)鐘上升沿之前半個(gè)周期將數(shù)據(jù)放到本端,供ISD 輸入。
·串行輸出(MISO)—串行輸出端,ISD未選中時(shí),本端呈高阻態(tài)。
·串行時(shí)鐘(SCLK)—ISD的時(shí)鐘輸入端,由主控制器產(chǎn)生,用于同步 MOSI 和MISO的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
·中斷(INT)—本端為漏極開路輸出,ISD在任何操作(包括快進(jìn))中檢測(cè)到EOM或OVF時(shí),本端變低并保持。中斷狀態(tài)在下一個(gè)SPI周期開始清除,中斷狀態(tài)也可用RINT指令讀取。
·行地址時(shí)鐘(RAC)—漏極開始輸出。每個(gè)RAC周期表示 ISD存儲(chǔ)器的操作進(jìn)行了一行(ISD4004系列中的存儲(chǔ)器有2400行)。8kHz采樣頻率的器件,RAC周期為200ms,其中175ms保持高電平,低電平為25ms??爝M(jìn)模式下,RAC為218.75ms高電平,31.25ms為低電平,該端可用于存儲(chǔ)管理技術(shù)。
·外部時(shí)鐘(XCLK)—本端有內(nèi)部下拉元件,芯片內(nèi)部的采樣時(shí)鐘在出廠前已調(diào)校,誤差在+1%內(nèi),在不外接時(shí)鐘時(shí),此端必須接地。
·自動(dòng)靜噪(AM CAP)—1μF電容構(gòu)成內(nèi)部峰值檢測(cè)電路的一部分,檢測(cè)出的峰值電平與內(nèi)部設(shè)定的閾值作比較,決定自動(dòng)靜噪電路的工作與否。大信號(hào)時(shí)自動(dòng)靜噪電路不衰減,靜音時(shí)衰減6dB。同時(shí),1μF電容也影響自動(dòng)靜噪電路時(shí)信號(hào)幅度的響應(yīng)速度,本端接VCCA則禁止自動(dòng)靜噪。
2.2 SPI接口
ISD4004工作于SPI串行接口。SPI協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿動(dòng)作。因此,對(duì)ISD4004而言,在時(shí)鐘上升沿鎖存MOSI引腳數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO引腳。協(xié)議具體內(nèi)容如下:
(1) 所有串行數(shù)據(jù)傳輸開始于SS下降沿;
(2) SS在傳輸期間必須保持為低電平,在兩條指令之間保持為高電平;
(3) 數(shù)據(jù)在時(shí)鐘上升沿移入,在下降沿移出;
(4) SS變低,輸入指令和地址后,ISD行才開始錄放操作;
(5) 指令格式是8位控制碼加16位地址碼;
(6) ISD的任何操作(含快進(jìn))如果遇到EOM或OVF,則產(chǎn)生一個(gè)中斷,該中斷狀態(tài)在下一個(gè)SPI周期開始時(shí)被清除;
(7) 使用“讀”指令會(huì)使中斷狀態(tài)位移出ISD的MISO引腳時(shí),控制及地址數(shù)據(jù)也同步從MOSI端移入;
(8) 所有操作在運(yùn)行位(RUN)置1時(shí)開始,置0時(shí)結(jié)束;
(9) 所有指令都在SS端上升沿開始執(zhí)行。
OVF標(biāo)志指示ISD錄放操作已到達(dá)存儲(chǔ)器的末尾。EOM標(biāo)志只在放音過程中檢測(cè)到內(nèi)部的EOM標(biāo)志時(shí),此狀態(tài)位置1,如圖3所示。SPI指令碼如表1所示。
圖3 SPI端口的控制位
表1 SPI指令表
以下列舉了幾種對(duì)ISD器件進(jìn)行操作時(shí)的指令次序。
(1) 信息快進(jìn)。用戶不必知道確切的地址,就能快進(jìn)跳過一條信息。信息快進(jìn)只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,內(nèi)部地址計(jì)數(shù)器加1,并接下條信息開始處。
(2) 上電順序。器件延時(shí)TPUD(8kHz)采樣時(shí),約25ms后才能開始操作。因此,用戶發(fā)完上電指令后,必須等待TPUD,才能發(fā)出一條操作指令。例如從 00處放音,應(yīng)遵循如下時(shí)序:發(fā)power up命令;等待TPUD上電延時(shí));發(fā)地址值為00的SETPLAY命令;發(fā)PLAY命令。器件會(huì)從00地址開始放音,當(dāng)出現(xiàn)EOM時(shí),立即中斷,停止放音。如果從00處錄音,則按以下時(shí)序:發(fā)power up命令;等待TPUD(上電延時(shí));發(fā)power up命令;等待2倍 TPUD;發(fā)地址值為00的SET REC命令;發(fā)REC命令。器件便從00地址開始錄音,一直到出現(xiàn)OVF存儲(chǔ)器末尾)時(shí),錄音停止。
SPI控制寄存器控制器件的每種功能,如表2所列。
表2 SPI 控制寄存器
注:IAB置0時(shí),錄、放操作從A15A0地址開始。為了能連貫錄、放到后續(xù)存儲(chǔ)空間,在操作到達(dá)該行之前,應(yīng)發(fā)出第二個(gè)SPI指令將IAB置1,原則器件在同一地址上反復(fù)循環(huán)。這個(gè)特點(diǎn)對(duì)語(yǔ)音提示功能很有用,RAC腳和 IAB位可用于信息管理。
2.3 命令格式及時(shí)序
8位及24位命令格式如圖4和圖5所示。錄音、放音、停止時(shí)序如圖6所示。
圖4 8位命令格式
圖5 24位命令格式
圖 6 錄音、放音、停止時(shí)序
3 電梯語(yǔ)音系統(tǒng)的設(shè)計(jì)
3.1 系統(tǒng)原理電路
本系統(tǒng)是指安裝在電梯內(nèi)的放音電路,不包含錄音部分。在實(shí)際應(yīng)用中,將對(duì)方需要播音的內(nèi)容事先錄制到語(yǔ)音芯片中(每一層樓對(duì)應(yīng)一段語(yǔ)音服務(wù),按樓層從低到高的順序錄音),電梯運(yùn)行時(shí),本系統(tǒng)便可實(shí)現(xiàn)自動(dòng)的語(yǔ)音播報(bào)服務(wù)。各樓層信號(hào)通過信號(hào)采集系統(tǒng)從電梯控制面板中引出,經(jīng)過隔離系統(tǒng),進(jìn)入單片機(jī)(如圖8所示,其中隔離器件選用TOSHIBA的光電耦合芯片TLP521-4)。電源部分從電梯內(nèi)部引入220V交流電源,通過電源模塊和電壓調(diào)節(jié)模塊分別為單片機(jī)和語(yǔ)音芯片提供5V和3V電壓(如圖9所示)。語(yǔ)音芯片輸出的音頻信號(hào)通過功放電路輸出至外部。系統(tǒng)總體結(jié)構(gòu)如圖7所示。
圖7 系統(tǒng)整體結(jié)構(gòu)圖
圖8 信號(hào)采集電路
圖9 電源電路
3.2 單片機(jī)與ISD芯片接口電路
本文討論的電梯語(yǔ)音系統(tǒng)的控制和放音部分主要由AT89C51單片機(jī)和ISD4004語(yǔ)音芯片構(gòu)成,其中單片機(jī)和語(yǔ)音芯片的接口設(shè)計(jì)如圖10所示:
圖10 ISD4004與89C51接口電路
從圖10中可以看出,單片機(jī)和ISD4004之間的連線較少。P1.0接 ISD4004的片選引腳/SS,控制ISD4004是否選通;P1.1接ISD4004的MOSI串行輸入引腳,語(yǔ)音芯片從該引腳讀入放音的地址; P1.2接ISD的串行輸出引腳MISO,單片機(jī)從該引腳接收從語(yǔ)音芯片傳來(lái)的信號(hào);單片機(jī)AT89C51的P1.3接ISD4004的串行時(shí)鐘輸入端 SCLK,作為ISD的時(shí)鐘輸入,用于同步MOSI和MISO的數(shù)據(jù)傳輸;P1.4接ISD芯片的中斷引腳/INT, 接收從語(yǔ)音芯片發(fā)來(lái)的EOM信號(hào),獲得語(yǔ)音段結(jié)束信息, 控制其放音或快進(jìn)操作;ISD4004音頻信號(hào)輸出引腳AUDOUT通過一濾波電容輸出至外部功放。
本系統(tǒng)是針對(duì)播報(bào)20層樓的情形設(shè)計(jì)的,通過信號(hào)采集系統(tǒng)從電梯控制面板內(nèi)主要取出了三類信號(hào):樓層信號(hào),上下行信號(hào),關(guān)門信號(hào)。其中F1至F20便是樓層信號(hào),UP和DOWN分別為上行和下行信號(hào),CLOSE為關(guān)門信號(hào),這些信號(hào)經(jīng)過隔離處理后進(jìn)入單片機(jī)。
4 軟件設(shè)計(jì)
按照前面的分析和硬件原理圖,軟件部分的任務(wù)主要是找出將要進(jìn)行語(yǔ)音播報(bào)服務(wù)的樓層和在找到樓層后在合適的時(shí)候進(jìn)行放音。
4.1 軟件流程包括以下步驟
(1) 初始化,取定當(dāng)前樓層;
(2) 掃描電梯面板,并量化存儲(chǔ)用戶選取的所有目標(biāo)樓層信息;
(3) 為存儲(chǔ)的目標(biāo)樓層數(shù)據(jù)排序;
(4) 判斷是否存在有效的目標(biāo)樓層信息,若判斷結(jié)果為否,則返回步驟(2);
(5) 若步驟(4)中的判斷結(jié)果為是,檢測(cè)是否有關(guān)門信號(hào),若檢測(cè)結(jié)果為否,則返回步驟(2);
(6) 若(5)中檢測(cè)的結(jié)果為是,判斷電梯是上行還是下行;
(7) 保存判斷所述的電梯最近目標(biāo)樓層;
(8) 調(diào)用選音播放子程序;
(9) 保存已經(jīng)播放語(yǔ)音的電梯最近目標(biāo)樓層為當(dāng)前樓層。
4.2 軟件
軟件流程圖如圖11所示。選音播放子程序見圖12。
圖11 系統(tǒng)軟件流程圖
圖12 選音播放子程序流程圖
對(duì)于ISD4004而言,由于兩次要放音的內(nèi)容在存儲(chǔ)器里不一定是相鄰的兩段,所以涉及到對(duì)語(yǔ)音芯片的分段提取語(yǔ)音的控制,而不只是簡(jiǎn)單的放音操作。對(duì)于這種情況,如果在知道每一語(yǔ)音段首地址的情況下,可以直接采用“發(fā)送該段首地址并從當(dāng)前地址開始放音”的命令來(lái)實(shí)現(xiàn),由于在實(shí)際錄音過程中,錄音設(shè)備不一定提供每一語(yǔ)音段的物理地址(一般只是顯示對(duì)應(yīng)的段數(shù)),所以在提取樓層對(duì)應(yīng)的語(yǔ)音段的問題上,就必須采取另外的方法,在這里我們是采取控制語(yǔ)音芯片連續(xù)快進(jìn)的方式來(lái)實(shí)現(xiàn)的。因此,選音播放子程序包括下列步驟:
(1) 根據(jù)電梯最近目標(biāo)樓層設(shè)置快進(jìn)次數(shù)計(jì)數(shù)器;
(2) 從首地址處開始快進(jìn)一次(本系統(tǒng)一樓不要求語(yǔ)音服務(wù));
(3) 向語(yǔ)音芯片發(fā)送從當(dāng)前語(yǔ)音段地址開始快進(jìn)的命令;
(4) 檢測(cè)是否到達(dá)電梯最近目標(biāo)樓層的語(yǔ)音段地址,若否則返回步驟(3);
(5) 若步驟(4)中的檢測(cè)結(jié)果為是,則播放語(yǔ)音。
本文重點(diǎn)給出選音播放子程序如下:
FANGYIN:MOV 34H,33H
;設(shè)置33H為計(jì)數(shù)器并將當(dāng)前播音樓層作一備份
SETMC: CLR SS
MOV R1,#0E8H
;發(fā)送從首地址開始快進(jìn)命令
MOV A, #00H
ACALL SEND
MOV A, #00H
ACALL SEND
MOV A, R1
ACALL SEND
SETB SS
SETMC1: CLR SS
MOV R1, #0F8H
;發(fā)送從當(dāng)前地址開始快進(jìn)命令
MOV A, R1
ACALL SEND
ACALL DELAY125U
;調(diào)用12.5微秒延時(shí)子程序
SETB SS
ACALL DELAY125U
JB INT,$
;一段快進(jìn)結(jié)束則接收到低電平信號(hào)
DJNZ 33H,SETMC1
;判斷快進(jìn)次數(shù)是否達(dá)到要求, 是則往下執(zhí)行
ACALL PLAY ;調(diào)用放音子程序
MOV 33H,34H
;保存播音樓層為當(dāng)前樓層
RET
PLAY: CLR SS
MOV R1,#0F0H
;發(fā)送從當(dāng)前地址開始放音命令
MOV A, R1
ACALL SEND
;調(diào)用發(fā)送子程序進(jìn)行發(fā)送
SETB SS
JB INT, $
;放音結(jié)束則接收到低電平信號(hào)
RET
由于篇幅所限,相關(guān)子程序并未全部給出。
5 結(jié)束語(yǔ)
本文所介紹的電梯語(yǔ)音系統(tǒng)已在某大醫(yī)院門診部大樓的多臺(tái)電梯中投入使用,整個(gè)系統(tǒng)工作穩(wěn)定,功耗小,音量可調(diào),輸出的語(yǔ)音清晰,音色優(yōu)美,實(shí)現(xiàn)了電梯語(yǔ)音服務(wù)的智能化和自動(dòng)化,用戶評(píng)價(jià)良好。