随着社会经济和科学技术的发展,社会信息化程度越来越高,物联网的推出是时代发展的需要,“三网合一”、“三屏合一”等新概念不断提出,智能家居成为未来家居的发展方向[1]。智能家居在两个方面具有重要作用:(1)家居智能化,继而实现住户舒适最大化,家庭安全最大化。智能家居通过其智能家庭控制系统帮助人们改进生活方式,重新安排每天的时间计划表,并为高质量的生活环境提供安全保障[2]。(2)智能家居的另一个重要作用是降低能源消耗,操作成本最小化,帮助人们节约日常能源消耗开支[3]。
智能家居主要通过智能家庭控制系统实现,家庭控制网络是实现智能家庭控制系统的关键。近几年,各种家庭网络推进组织相继成立,并各自推出了相关建议和标准,但这些技术标准缺乏统一的通信接口,相互间不兼容,无法提供家庭控制网络的完整解决方案。因此,智能家居研究者面临的最大挑战和机遇是家用电子领域缺乏统一的通信标准和互操作协议。
1 家庭控制网络中的主要联网技术与标准
在家庭控制网络领域出现的众多技术和标准中,最受研究者和设备制造商关注的是家庭现场总线技术(适用于家庭控制网络的现场总线技术)和短距离低速率无线网络技术[2]。其中,家庭现场总线技术根据通信介质不同可分为三个子类:
(1)PLC(Power Line Communication)技术:利用现有的电力线进行数据传输,主要是北美标准,包括X-10、INSTEON、HomePlug C&C、CEBus、LonWorks和PLC-BUS等,其中CEBus 和LonWorks也可通过双绞线、同轴电缆、无线等介质实现通信;
(2)HBS:日本家庭总线系统标准,采用双绞线或同轴电缆作为传输介质;
(3)EIB:欧洲安装总线标准,也可采用双绞线、同轴电缆、无线等介质实现通信。
基于短距离低速率的无线通信技术主要包括:红外、无线射频、蓝牙、802.15.4/ZigBee和Z-Wave等。
在家庭自动化中,各种技术和标准都有自己的优缺点,不同标准间的差异较大,缺乏统一的通信接口和协议标准,相互间并不兼容,没有一种技术能够为家庭控制网络提供理想的解决方案[4-7]。
2 点对点接口访问机制
核心控制单元是整个智能家居控制系统的心脏。核心控制单元将各种设备和应用集成在一个同步的环境中,监视设备状态,发出控制命令,管理预设的生活场景,并与外部网络通信。在一个通用的智能家居体系结构中,核心控制单元至少应包含下列接口:
(1)用户接口:提供用户访问设备和应用服务的接口;
(2)设备操作接口:提供对各种设备功能和控制操作的接口;
(3)底层网络通信接口:提供底层通信网络接入的协议驱动和硬件接口;
(4)AI接口[8]:提供访问人工智能模块的接口;
(5)数据库接口:提供访问系统活动数据库的接口,数据库主要存储用户命令、设备命令、住户动作记录、场景定义等;
(6)应用服务接口:提供添加新软件模块的接口,从而在整个智能家居系统中实现动态的设备操作更改、用户接口定制和设备互联等;
(7)Net接口:用于与家庭宽带网或外部高速网互联通信。
这些接口按照功能可分为两类:
(1)面向上层应用:用户接口、设备操作接口、AI(人工智能接口)和应用服务接口等;
(2)面向底层硬件及数据访问:底层通信网络接口(如LonWorks、ZigBee、X-10等)、数据库接口和Net接口等。
由于缺乏标准的通信接口,在实际应用中很难将各种硬件设备和用户应用集成到一个系统当中。这个问题可以通过适配器和转换器部分解决,但存在很多限制。实际中,多种联网技术代替单一技术可能为家庭控制网络提供一种更理想的解决方案,例如考虑节能、协议开放性、互操作性及成本效益,控制主干网可采用HomePlug C&C 与ZigBee结合的方案[9]。而在老房子中组建家庭控制网络,可能采用X-10与ZigBee的结合更加合适[10]。这些情况下,就要求智能家居核心控制单元具有多种基础硬件网络的访问接口,能同时处理多个现场网络设备的数据并进行控制,如图1所示。
从图1可以看出,在点对点的接口访问机制下,每增加或变换一种底层外部网络系统,核心控制单元需提供相应的协议接口,核心控制单元中高层接口与底层接口之间的访问复杂度将线性增加,这将大大增加核心控制单元数据处理负担。在实际应用中,有的智能家居系统方案甚至要求核心控制单元支持所有适用于家庭网络控制的网络技术。
在现有应用中,Net接口除了实现与家庭宽带网络或外部高速网络互联通信外,并没有实现直接面向Internet的远程智能监控,这跟当前核心控制单元复杂的接口访问机制是密切相关的[11]。
另外,在一个定制的家庭控制网络中,为了充分利用新的设备,基础控制网络和用户接口都可能需要作较大的调整。即使协议和网络都能够满足在系统运行中添加设备,仍需要解决动态用户接口修改以适应基础网络架构的变化,这也需要一种更加灵活的核心控制单元接口访问机制来简化这种操作。
3 通用接口访问机制
以一种中间件的形式,为上层应用接口和底层硬件/协议接口提供一个通用的接口访问与协议适配层,将点对点接口访问机制转化为基于适配层的总线式接口访问机制,如图2所示。该适配层分离上层应用和底层通信协议,将上层应用接口从具体的硬件中抽象出来,同时将底层硬件接口从上层应用中剥离出去,从而简化接口访问和协议适配。
3.1 通用接口与协议适配层
根据数据流向,适配层主要完成两个方向的通信工作:(1)下行:将从上层应用接口接收到的上层请求通过具体的硬件/协议驱动接口执行;(2)上行:将从底层硬件驱动接口接收到的状态数据实时准确地传送到具体的上层应用接口。由此可以看出,适配层设计中的关键是建立一种上层应用接口和底层硬件接口具体实例之间的绑定关系及内部接口层面之间的通信机制。其中,绑定关系可以通过上层应用接口实例的某种唯一标识与底层硬件接口实例的唯一协议地址建立绑定实现。内部接口层面之间的通信机制可采用消息机制实现,如图3所示。消息机制能很好地体现智能家居关联的活动场景是基于动作事件触发的一系列行为和事件处理过程,而不是一些离散的操作命令列表。消息队列服务是一种松耦合的分布式应用集成形式。发送者将消息发送到消息服务器,消息服务器将消息存放在若干队列中,在适当的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待,两者的生命周期也未必相同。消息机制同时也支持一对多通信,即一个消息可以有多个接收者。消息队列服务系统处理高并发服务是一技术难点,使用异步I/O机制,处理好进程与线程的关系是又一技术关键所在。实现中可采用多种同步机制同步异步操作模式,如超时、等待I/O操作完成、等待值变化、公共消息板等。