0 引言
隨著短距離無線通信技術(shù)的發(fā)展,WLAN,Bluetooth,IrDA,HomeRF,ZigBee等技術(shù)已經(jīng)被逐步應用于智能家居、工業(yè)控制及環(huán)境監(jiān)測等眾多領(lǐng)域,而語音識別技術(shù)作為一門交叉學科,也被廣泛應用于工業(yè)、家電、醫(yī)療等領(lǐng)域。將語音識別與無線通信技術(shù)相結(jié)合應用于智能家居領(lǐng)域,使人們能夠直接通過語音對家電進行控制,能夠讓人們享受現(xiàn)代科技在現(xiàn)實生活中的應用?;贗EEE 802.15.4協(xié)議的ZigBee通信技術(shù)具有功耗低、低成本、短距離、安全可靠、自組織網(wǎng)等特點。本文將凌陽科技的具有豐富語音處理功能的16位SPCE061A單片機與射頻芯片CC2530相結(jié)合設計了ZigBee語音識別節(jié)點,它能夠與基于SUMSUNG的S3C6410開發(fā)平臺的智能家居控制網(wǎng)關(guān)進行串口通信,網(wǎng)關(guān)在處理信息后,能夠顯示控制設備的狀態(tài),并通過ZigBee無線網(wǎng)絡與家庭內(nèi)的多個子節(jié)點通信,從而實現(xiàn)了對家電設備的語音智能控制。
1 系統(tǒng)總體設計
系統(tǒng)總體結(jié)構(gòu)如圖1所示,主要包括基于Samsung的S3C6410平臺的網(wǎng)關(guān)、基于SPCE061A的語音ZigBee子節(jié)點、電器繼電器控制ZigBee子節(jié)點、電器紅外控制ZigBee子節(jié)點等。其中各子節(jié)點與網(wǎng)關(guān)之間通過星型拓撲結(jié)構(gòu)進行連接。
在對語音子節(jié)點進行訓練之后,當語音節(jié)點采集接收到語音控制命令時,執(zhí)行語音識別指令,通過CC2530收發(fā)模塊發(fā)送相應的控制指令到網(wǎng)關(guān)的主節(jié)點上。主節(jié)點將接收到控制指令通過串口上傳到網(wǎng)關(guān)主機,主機在處理信息之后,再通過主節(jié)點發(fā)送相應的控制指令到控制子節(jié)點上,控制子節(jié)點在接收到相應的命令之后就會執(zhí)行相應的動作,對被控對象進行控制。
2 系統(tǒng)硬件設計
(1)網(wǎng)關(guān)。采用基于ARM11架構(gòu)的三星S3C6410處理器,與ZigBee主節(jié)點之間通過串口方式進行通信。S3C6410是基于ARM1176JZF-S的16/
32位的低功率消耗、高性能的RSIC通用處理器。其開發(fā)平臺具有豐富的外圍接口資源。其中,可以支持4個UART接口,支持DMA和Interrupt模式,最高速度可達3 Mb/s。ZigBee主節(jié)點在系統(tǒng)啟動時,作為協(xié)調(diào)器啟動和控制ZigBee網(wǎng)絡,當網(wǎng)絡建立后,負責接收語音節(jié)點的控制信息以及發(fā)送相應的控制信息到各ZigBee子節(jié)點。
(2)語音子節(jié)點。由凌陽科技的SPCE061A單片機與ZigBec收發(fā)節(jié)點模塊組成。SPCE061A是凌陽科技推出的以μ’nSPTM為核心的16位結(jié)構(gòu)的微控制器。具有8通道10位A/D轉(zhuǎn)換輸入功能,內(nèi)置自動增益控制功能的麥克風輸入方式以及雙通道10位DAC方式的音頻輸出功能。在使用SAC M_S240凌陽音頻編碼方式時,可以容納長達210 s的語音數(shù)據(jù)。因此被廣泛應用于數(shù)字語音識別領(lǐng)域中。
(3)電器控制繼電器子節(jié)點。由繼電器模塊與ZigBee收發(fā)節(jié)點組成。由于我國市電電壓在220 V左右,為了實現(xiàn)對部分家電開關(guān)的控制,采用繼電器模塊,并通過ZigBee通信模塊的CC2530芯片的I/O引腳及其外圍驅(qū)動電路,實現(xiàn)對繼電器模塊的吸合與釋放控制??梢钥刂拼昂?、燈光等開關(guān)型電器。
(4)紅外控制子節(jié)點。由學習型紅外控制模塊與ZigBee收發(fā)子節(jié)點組成。目前,紅外遙控類型的家用電器的比例正逐步攀升。因此本文在設計研究中采用了學習型的紅外控制模塊,它與ZigBee收發(fā)子節(jié)點之間通過串口進行通信。首先使用一個或多個紅外模塊對現(xiàn)有的家電(如電視機、DVD、空調(diào)、投影儀等)紅外遙控器的信號進行學習,把相應的編碼存放到紅外模塊的存儲器E2PROM中,每條代碼對應一個地址。當該
ZigBee節(jié)點接收到指令需要對某一家電進行控制時,紅外模塊就會根據(jù)指令調(diào)取該地址下的紅外發(fā)射編碼數(shù)據(jù)進行發(fā)射,從而實現(xiàn)對紅外型家用電器的語音控制。
(5)基于CC2530的ZigBee無線收發(fā)模塊。CC2530是TI公司推出的基于IEEE 802.15.4協(xié)議的片上系統(tǒng)。內(nèi)嵌增強型單周期的8051CPU,具有8 KB的SRAM、2個支持多種串行通信協(xié)議的USART、21個通用的I/O引腳、寬電壓范圍(2~3.6 V)、低功耗(主動模式RX:24 mA;主動模式TX在1 dBm:29 mA)以及電源電量可監(jiān)控等特點。在ZigBee協(xié)議棧中UART具有中斷、DMA兩種模式,本文設計中均采用了UART的中斷模式。
3 系統(tǒng)軟件設計
系統(tǒng)軟件設計主要包括下位機軟件與上位機軟件設計。在下位機程序設計過程中有2個關(guān)鍵點:對數(shù)字語音信號的采集、處理與識別;ZigBee收發(fā)模塊對控制信號的接收、發(fā)送與執(zhí)行。而在上位機軟件設計中,主要是基于Visual C++的串口通信的編程。
上位機主程序流程圖如圖2所示。
S3C6410開發(fā)平臺具有4個UART接口,在研究設計中,采用了芯片MAX 3232來解決ZigBee通信模塊的CC2530芯片與該開發(fā)平臺之間的串口通信電平轉(zhuǎn)換。上位機通過串口接收語音子節(jié)點的控制指令數(shù)據(jù),將數(shù)據(jù)處理后用文字顯示控制命令,并通過與ZigBee主節(jié)點之間的串口通信,向子節(jié)點發(fā)送控制指令數(shù)據(jù)。
單片機SPCE061A的UART數(shù)據(jù)格式只有一種,需按照規(guī)定的數(shù)據(jù)格式與CC2530模塊進行串口通信。該程序在凌陽科技的μ’nSP IDE集成開發(fā)環(huán)境下進行開發(fā),并采用凌陽科技提供的語音處理函數(shù)以及函數(shù)庫。語音子節(jié)點程序流程圖如圖3所示。
由于單片機SPCE061A在進行語音識別時,一次性只能同時識別5條語音指令。為了增加其所能識別的語音指令,本文采用了分組法,能夠在存儲器允許的情況下識別多條語音指令。在燒錄完程序首次使用該節(jié)點時,要對該節(jié)點進行訓練。在該節(jié)點的語音提示下,依次錄入4組命令,每組分5條語音指令,為了提高識別的質(zhì)量,每條命令需要訓練兩遍。在語音訓練結(jié)束后,啟動該智能家居系統(tǒng)就能夠?qū)揖舆M行語音控制,且能夠?qū)崿F(xiàn)非特定人語音識別。
為了利用語音命令實現(xiàn)ZigBee語音子節(jié)點的“重新訓練”,“停止識別”等控制,方便實際應用,本文在程序設計過程中采用goto無條件語句,部分程序源代碼如下:
利用學習型紅外收發(fā)模塊對紅外電器進行控制時,首先要對控制信號進行學習,將要發(fā)送的編碼與CC2530輸出的串口指令相對應??刂浦噶铍娖骷t外控制ZigBee子節(jié)點的程序流程圖如圖4所示。
4 實驗及結(jié)果
4.1 實際應用舉例
在對電動窗簾進行開關(guān)控制時,首先將本系統(tǒng)的電器控制繼電器子節(jié)點與電動窗簾的開關(guān)量電機控制器相連接,準備好硬件電路。然后,通過串口編程使上位機的ZigBee主節(jié)點在接收到語音子節(jié)點的窗簾開關(guān)命令時,向ZigBee子節(jié)點發(fā)射窗簾控制信號,從而當控制窗簾的繼電器子節(jié)點接收到控制指令時,能夠控制窗簾執(zhí)行相應的開關(guān)動作。通過如依次說出控制器打開窗簾”的命令時,語音子節(jié)點語音提示設備打開,主機界面顯示設備所處控制的狀態(tài),同時窗簾打開。
該語音控制智能家居系統(tǒng)能夠?qū)崿F(xiàn)家用電器的聯(lián)動。例如,可以通過依次說出控制器家庭影院的語音命令。這時上位機能夠按照程序設定逐步延時:打開紅外遙控投影儀,紅外遙控幕簾,關(guān)閉窗簾,關(guān)閉部分燈光等來開啟家庭影院模式。讓人們體驗真正的家居智能化。
4.2 ZigBee控制節(jié)點通信距離測試結(jié)果
(1)空曠場合測試。測試條件:CC2530模塊采用PCB天線,發(fā)射功率在1 mW,發(fā)射頻率在2.4 GHz。
測試結(jié)果:通信距離最遠可達120 m。
(2)居家場合測試測試條件:同上。測試結(jié)果:由于墻體阻礙,通信距離約在20 m。
4.3 語音控制紅外型電視開關(guān)測試
在語音識別程序設計中,為了增加語音節(jié)點所能識別命令的條數(shù)而采用了分組法。利用紅外遙控子節(jié)點對電視遙控器的開/關(guān)信號進行學習,對語音子節(jié)點進行訓練結(jié)束后,啟動系統(tǒng)。依次說出控制器、打開、電視連續(xù)三條命令,再說出控制器關(guān)閉電視連續(xù)三條命令。測試結(jié)果如表1所示。
5 結(jié)語
將具有數(shù)字語音識別功能的SPCE061A單片機與低功耗、低成本的ZigBee技術(shù)相結(jié)合,開發(fā)了基于單芯片CC2530的ZigBee語音節(jié)點,并利用ARM11架構(gòu)的開發(fā)平臺S3C6410作為網(wǎng)關(guān),WinCE 6.0的操作系統(tǒng),有著良好的人機交互界面,來共同應用于智能家居系統(tǒng)的語音控制中,實現(xiàn)了對開關(guān)型及紅外型家電設備的語音控制和家居智能化,實現(xiàn)人與家電之間的對話,方便了人們的生活,具有廣闊的應用前景。
(審核編輯: 智匯張瑜)