智能家居的核心系统,是基于无线通信传输系统的智能检测、控制系统,有线通信技术作为在某些场景的局部补充。智能家居,顾名思义就是智能化的家居系统,最近几年的技术进步和行业发展在智能化方面取得了很多成功,很多应用也切中了痛点,比如智能照明系统、智能能源管理系统、安防系统等;但目前这些系统大都是独立运行。究其原因,除了在该领域没有出现独角兽类型的公司之外,很大原因是并没有出现针对多个系统平滑接入、并存的技术解决方案。2017年年底蓝牙SIG推出的MESH V1.0技术(后文简称SIG MESH),正是针对市场现状提供解决方案的技术,无论未来该技术能否在智能家居系统中推广普及,其初衷的确是如此。本文将解读SIG MESH提供的智能家居解决方案。
SIG MESH按照正常的网络层次划分,从上到下为Model Layer, Foundation Model Layer, Access Layer, Upper Transport Layer, Lower Transport Layer, Network Layer, Bearer Layer。SIG MESH还是基于BLE技术,通过Bearer Layer和BLE core完成对接;SIG MESH最上层提供的应用接口通过Model Layer实现,针对不同的应用SIG有可供参考的model,比如针对照明系统的Light Model,同时也提供了可扩展的空间,用户可以自己定义model来完成各种不同的应用。SIG MESH的网络结构如图1所示:
图1 :SIG MESH 网络层次
作为完整的MESH通信协议,最重要的部分就是安全机制,包括设备加入系统的安全认证和网络通讯的安全机制。安全的部分在SIG MESH协议中贯穿始终,安全方面的算法主要有5个,包括一个椭圆算法和四个key产生、认证算法。
椭圆算法可以参考MESH协议的5.4.3.1部分,具体描述如下
图2:椭圆算法描述
椭圆算法作为SIG MESH协议中对加入的网络设备进行身份验证的一种算法,提供很好的加密算法。该椭圆算法属于复杂度中等的算法,大部分MCU都可以实现。这一点还是值得称赞的,不像Homekit的一系列加解密算法要求实在太高,而且还要Apple公司自己的芯片来配合,这无疑大大抬高了Homekit的进入门槛,毕竟消费者在满足需求的前提下还是会选择成本低的产品。
MESH协议的4个key加解密算法,都是基于AES,只要支持4.0以上版本的加解密feature,就可以很好的对MESH协议要求的4种加解密算法提供支持。
智能家居系统,涵盖的设备很多,包括照明、安防、白色家电、窗帘、门锁等等。能否把这些东西都装到一个网络里面?目前现有的技术无法做到,因为不同的设备属性不同,不同设备之间的应用也有很大差异。蓝牙SIG MESH协议,的确很超前,通过2个主要的feature来解决智能家居的问题。
SIG MESH的第一个主要feature是来解决不同属性的设备在同一个MESH网络中的共存。MESH协议本质上来看,不是低功耗特性的,MESH节点设备大多数时间的工作状态在监听状态,该工作模式功耗较大;智能家居的很多设备,比如门锁、传感器节点设备等,是电池供电的,对低功耗有比较高的要求。为了解决这些不同属性的设备共存,MESH协议设计了一种“friend”节点设备属性。friend节点是有低功耗要求的节点,它可以大多数时间在睡眠状态,它通过“friendship”来和其它的设备节点进行通信;friend节点的收发信息,可以在其它设备处进行保存;friend节点进入收发状态后,可以向其绑定的节点设备请求缓存的接收数据或者发送数据到该设备节点。图3给出了一个典型的带低功耗节点设备的SIG MESH网络拓扑图。
图3:带低功耗节点的MESH网络拓扑
在图3示出的网络中,I、J、K、L、M均为低功耗设备,他们通过O设备和P设备进行数据的收发、缓存,O设备和P设备为MESH网络中支持friendship的节点设备。
SIG MESH的第二个主要feature是多个MESH网络设备的数据实现互相之间的转发并保证网络间的独立性和可靠性。智能家居中会同时存在不同几个网络,如智能照明系统、空气质量检测系统等,这些网络有自身的特性,但由于这些节点设备使用的无线通讯技术和节点位置限制, 节点之间不一定能够直接通信。
考虑图4中示出的一套智能家居系统,系统中包括16个灯设备,分布在卧室、卫生间、客厅和餐厅区域,这些灯可以单独控制,并能够组合一起实现各种场景;包括4个空气质量检测器(A1~A4),分布在四个位置来监测室内空气质量状况;包括4个窗帘控制器(C1~C4),根据室内空气质量来控制四个窗户的开关;包括1个家居数据集中器(D1),会纪录所有设备的工作状态。如果要达到这些预期,就要解决几个问题:
1、灯设备之间需要组成网络,相互之间可以通信,可以被分组控制;
2、空气质量检测器需要跟家居数据集中器通信,把空气质量信息汇集到数据集中器,即A1~A4需要和D1进行通信;
3、数据集中器需要对窗帘控制器发送命令进行控制,即D1要和C1~C4进行通信。
图4:智能家居系统
问题1的比较容易解决,目前的智能照明系统已经可以通过MESH技术解决了灯的单个控制和分组控制问题;问题2,在当前比较难,因为A1~A4分散在各处,如果跟D1设备直接通信,这对A1~A4设备的无线通信性能和低功耗性能都提出了很高的要求,但如果让A设备和灯能够通信,然后借助灯的MESH网络和D1通信,这就简单多了;问题3,面临同样和2同样的问题,解决方案也是相同,借助灯的MESH网络能够完美的解决问题。那就有下图的系统方案了:
A3借助灯5来完成和D1的通信;
D1借助灯1完成和C3的通信;
A1借助灯16、13、12、3完成和D1的通信;
C1借助灯16、13、12、3完成和D1的通信。
这个网络数据传输模式可以由图5示出的数据流来完成。
图5:智能家居系统MESH 网络数据流
那么在MESH V1.0的协议里面怎么实现上述系统呢?必须再回到图1所示的MESH网络分层,这个网络结构提供了多种应用的上层接口,同时底层提供了可以转发不同网络数据包的能力。
Model layer作为最上层的用户接口,可以介入各种设备的model,包括蓝牙官方model和用户自定义model。不同的model对应不同的行为,在图5的系统中同时存在三种不同的设备,那就可以定义三种不同的model,包括灯model、空气检测器model、窗帘控制器model,这三种model除了各自的行为不同之外,还可以设置各自的加密密钥,这样就可以保证不同设备的数据包借用其它设备转发数据的同时又保证设备所在网络的独立性和安全性。
根据智能家居系统要求的多种设备要求,在其它的层次(Foundation Model Layer,AccessLayer等)进行相关的配置就可以完成对Model Layer要求的多种数据包转发的功能支持。