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