基于ZigBee节点的智能家居系统语音控制设计
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所示。
|