文献标识码: A
文章编号: 0258-7998(2013)05-0082-04
随着信息技术的快速发展,物联网技术开始受到人们的广泛关注和重视,并被视为继计算机、互联网与移动通信网之后的世界信息产业第三次浪潮 [1]。同时,如何通过物联网技术改善居家环境和办公环境,从而实现对不同设备的集中控制、节能控制和智能化管理[2]也成为人们日益关注的热点。但当今我们所使用的家电大部分仍采用红外协议进行控制,如,空调、投影仪和DVD等,致使这些红外家电不能快速、有效地融入物联网中。而无论是对这些家电进行改造或是重新设计都将延长研发周期,增加研发成本,提高设备价格,这也正是物联网技术推广艰难的重要原因之一。因此,设计一套使现有红外家电在不做任何改造的情况下即可顺利融入物联网环境中的系统是十分必要的。同时对物联网的推广具有重要现实意义。
1 系统方案
本文设计的ZigBee-红外控制系统依次分为上位机控制中心、ZigBee网络和终端设备三部分。其系统架构如图1所示。其中ZigBee网络部分由ZigBee协调器和基于ZigBee无线网络控制的ZigBee-红外遥控组成。控制中心通过串口向ZigBee协调器发送控制指令,协调器在接收到控制指令后通过ZigBee网络将控制信息发送给对应ZigBee-红外遥控节点,并由该节点发射对应的红外信号,实现基于ZigBee无线通信技术的红外家电控制。
系统ZigBee网络部分采用TI公司的无线SoC集成芯片CC2530[3]以及TI2007版ZigBee协议栈。
2 硬件设计
硬件部分采用模块化的设计方式,将电路分为CC2530核心板与各功能不同的扩展板,实现同一核心板与不同扩展板的配合使用。这样的好处在于针对不同的应用场景只需选取不同的扩展板,而不必对核心板进行修改。CC2530核心板包含CC2530芯片和RF收发电路,并引出芯片的主要I/O口与扩展板结合。根据功能的不同,扩展版分为ZigBee协调器和ZigBee-红外遥控两种。
2.1 ZigBee-红外遥控电路
ZigBee-红外遥控由CC2530核心板和ZigBee-红外遥控扩展板两部分组成。其扩展版主要包括嵌入式微处理器、红外收/发模块和电源模块等。其结构框图如图2所示。
为实现低成本、高实时性的遥控,遥控的嵌入式微处理器选用由NXP半导体公司生产的基于Cortex-M0内核的LPC1114。该微处理器的CPU频率可到50 MHz,同时包含高达32 KB片内Flash存储器和8 KB数据存储器, 4个通用计时器以及多达42个通用I/O引脚[5]。同时为进一步提高遥控的实时性,减小软件负载,遥控不采用任何嵌入式操作系统。
2.2 ZigBee协调器电路
ZigBee协调器由CC2530核心板和协调器扩展板两部分组成。其扩展版主要包括电源和开关模块、UART串口模块以及编程下载模块。其框图如图3所示。
由于ZigBee协调器是一个ZigBee无线网络的创建者和协调者,同时还是网络内部与外部通信的枢纽[4],因此协调器必须一直处于活跃状态。本次设计选用220 V AC/DC稳压电源转换模块为协调器提供持续稳定的电源电压,并设有电源开关。
2.3 协调器电源电路
由于CC2530由3.3 V电压供电,因此协调器电源电路需设计为3.3 V电压输出,如图4所示。
首先由JP1电源接口输入220 V交流电,经过AC/DC电源模块输出5 V直流电源。再经过SPX1117-3.3 V LDO芯片产生稳定的3.3 V输出电压。SPX1117-3.3 V芯片的输出电流可达800 mA,输出电压的精度在±1%以内。
3 软件设计
本系统的软件设计包含基于TI Z-Stack软件构架的ZigBee程序设计、嵌入式微处理器程序设计和上位机控制中心软件设计三部分。
3.1 ZigBee程序设计
基于Z-Stack软件构架的ZigBee程序设计分为协调器程序设计和ZigBee-红外遥控程序设计两部分。它们同样采用TI 2007版ZigBee协议栈,该协议栈的特点在于很好地支持了网络的自组织和自愈合。同时,相对于2006版的ZigBee协议栈, 2007版协议栈还增加了支持多密钥高安全性、支持大型网络、支持分割传输等新特性。
ZigBee协议栈通过轮询的方式依次查询来自MAC层、网络层、硬件抽象层、应用支持子层(APS)、ZigBee设备对象(ZDO)层和应用层的任务,并按优先级由高至低的顺序依次处理[6]。
本设计的重点在于建立稳定可靠的、能自组织的ZigBee网络,同时实现基于ZigBee网络的红外家电控制。ZigBee协调器和ZigBee-红外遥控主要实现的功能有:
(1)协调器依据ZigBee协议栈,在Z_Stack架构下,组建了一个低功耗、自组织、可多跳和可靠健壮的树形无线网络。
(2)协调器将来自上位机控制中心的控制信息按照预定义的帧格式构造成发射数据,再通过ZigBee网络发送给相应的遥控节点。
(3)遥控节点在接收到数据后按照预定义的帧格式解析数据,并执行相应操作,实现基于ZigBee网络的红外家电控制。
(4)通过遥控节点上的不同传感器对室内温度、湿度等信息进行采集,并将采集到的信息通过上位机显示,实现对室内温度、湿度的监控。
如图5所示,根据ZigBee节点的类型、编号、功能指令和操作类型等参数定义数据帧格式。
3.2 嵌入式微处理器程序设计
为实现集中控制,同一遥控节点需对不同红外家电进行控制[7],因此遥控节点需具有一定红外学习能力。由于当前家电所采用的红外协议纷繁复杂,要实现红外协议的统一并不现实。因此,为了避开纷繁复杂的码型,本系统中的遥控采用记录红外信号高低电平脉冲宽度的方式实现红外信号的学习[8]。
设计思路为,通过嵌入式微处理器实现红外信号的学习、存储以及发射。当进入红外学习状态后,首先使能LPC1114 GPIO 2的双边沿触发中断,并等待红外信号。当检测到红外信号下降沿时,进入中断处理函数,开启计数器,直到红外信号出现边沿跳变时再次进入中断处理函数,关闭计数器,记录低电平脉冲宽度。同时再次启动计数器,开始记录高电平脉冲宽度。直至检测到脉冲宽度大于60 ms时,判断为红外信号发送完毕,结束学习过程。最后将学习到的数据存入存储器中。
以下为红外学习中断处理函数代码[5]:
LPC_GPIO2->IC|=Signal_In;
LPC_TMR16B0->TCR=0x00;
IR_Data[Ram_Point]= LPC_TMR16B0->TC;
LPC_TMR16B0->TC=0;
LPC_TMR16B0->TCR=0x01;
Ram_Point ++;
判断红外信号发射完毕程序代码:
if (LPC_TMR16B0->TC>=60000){
NVIC_DisableIRQ(EINT2_IRQn);
LPC_TMR16B0->TCR= 0x00;}
红外信号的发射过程采用匹配中断的方式实现。首先将学习到的脉宽数据加载到LPC1114的32位计数器中,并启动计数器。当计数值与计数器中预装载的值相匹配时,产生匹配中断。以下为红外发射中断处理函数代码:
LPC_TMR32B0->IR=0x01;
Ram_Point ++;
LPC_TMR32B0->MR0=
IR_Data[Ram_Point];
if (Ram_Point%2==0)
Signal_OFF(); else
Signal_ON();
嵌入式微处理器的程序流程图如图6所示。
遥控的载波由16位计数器通过匹配反转输出的方式产生。该方法极大地提高了载波的稳定性[9],同时减少额外器件,降低成本。图7为通过逻辑分析仪获取的某一红外信号与本遥控所学信号间的对比图。由于红外接收头会将接收到的红外信号反向,因此,原信号与学习信号刚好高低电平相反。通过图7的波形对比可看出该遥控已成功实现学习功能。
3.3 上位机控制中心软件设计
上位机控制中心的软件设计选用Visual Studio 2010集成开发环境,并采用面向对象的编程语言C#[10]。主要实现对各遥控节点的可视化控制,并实时显示由各节点采集到的数据。控制中心设计有串口调试窗口以便于对PC和协调器节点间的串口通信进行调试。
4 系统测试
系统的测试借助于上位机控制中心、ZigBee协调器和ZigBee-红外遥控。选用一间配备有空调和投影仪的普通房间作为实验环境,并将房间内的空调和投影仪作为实验对象。
首先,用ZigBee协调器创建一个ZigBee网络;其次,各ZigBee-红外遥控节点依次加入网络中;然后,通过上位机控制中心对相应遥控节点发送控制指令;最后,观察房间内空调与投影的工作状况。
测试过程中控制中心能实现对房间内空调和投影的有效控制,达到设计要求,表明该系统效果良好。
本文所设计的面向物联网家电的ZigBee-红外控制系统主要包括上位机控制中心、ZigBee协调器和ZigBee-红外遥控。它实现在不对现有红外家电做任何改造的情况下使其快速、有效地融入到物联网环境中,达到对红外家电的集中控制、节能控制和智能化管理。本系统成本低、功耗低、性能优越,并具有良好的可扩展性。不仅能满足普通家庭需求,同时还可应用在如政府机关、学校、医院等场合。因此本系统具有使用和推广价值。
参考文献
[1] ITU Internet Reports 2005: The Internet of Things[R].Geneva: International Telecommunication Union, 2005.
[2] HAN I, PARK H S, JEONG Y K,et al. An integrated home server for communication, broadcast reception, and home automation[J]. IEEE Transactions on Consumer Electronics, 2006,52(1):104-109.
[3] CC2530 data sheet[M]. April 2009.
[4] 钟永锋,刘永俊. ZigBee无线传感器网络[M]. 北京:北京邮电大学出版社, 2011.
[5] LPC111x/LPC11Cxx User Manual Rev. 7[M]. 19 September 2011.
[6] 高守玮,吴灿阳. ZigBee技术实践教程 [M]. 北京:北京航空航天大学出版社,2009.
[7] PARK W K, HAN I, PARK K R. ZigBee based dynamic control scheme for multiple legacy IR controllable digital consumer Devices[J]. IEEE Trans. On Consumer Electronics, 2007,53(1):172-177.
[8] 陈祖爵,王建毅. 智能型红外遥控器的设计[J]. 微计算机信息,2008,24(1-2):305-307.
[9] 徐志,何明华,林武,等. 一类基于软件载波的学习型遥控器的设计与实现[J]. 现代电子技术,2009(2):36-38.
[10] WATSON K, NAGEL C. C#入门经典(第5版)[M].北京:清华大学出版社, 2010.