z-wave协议是一种低速率,半双工的可靠,健壮的无线传输协议,适用于低成本的网状控制网络。协议的主要目的是以可靠的方式从一个控制单元到一个或多个节点网络传输短控制消息。z-wave协议不是用来传输大量数据或者传输任何类型的流或临界时间的数据。
协议由下至上分为5层:物理层、MAC层、传输层、路由层和应用层。MAC层负责设备间无线数据链路的建立、维护和结束。同时控制信道接入,进行帧校验,并预留时隙管理。为了提高数据传输的可靠性,当有节点进行数据传送时,媒体介质层还采用了载波侦听多址、冲突避免(CSMA/CA)机制以防止其他节点传送信号。
传输层主要用于提供节点之间的可靠的数掘传输,主要功能包括重新传输、帧校验、帧确认以及实现流量控制等。路由层控制节点间数据帧的路由、确保数据帧在不同节点间能够多次重复传输、扫描网络拓扑和维持路由表等。应用层负责Z-Wave网络中的译码和指令的执行,主要功能包括曼彻斯特译码、指令识别、分配HomeID和Node ID、实现网络中控制器的复制以及对于传送和接收帧的有效荷载进行控制等。
Z-Wave技术的五大协议介绍
1)物理层
Z-Wave是一种低速率无线技术,专注于低速率应用,有9.6Kbit/s和40Kbit/s两种传输速率,前者用来传输控制命令绰绰有余,而后者可以提供更为高级的网络安全机制。它的工作频段灵活,处于900MHz (ISM (Industrial ScienTIfic Medical)频带)、868.42MHz(欧洲)、908.42MHz(美国),工作在这些频带上的设备相对较少,而ZigBee或蓝牙所使用的2.4GHz频带正变得日益拥挤,相互之间的干扰不可避免,因此Z-Wave技术更能保证通信的可靠性。
Z-Wave的功耗极低。它使用了频移键控(Frequency-Shift Keying,FSK)无线通方式,适合智能家居网络使用,电池供电节点通常保持在睡眠状态,每隔一段时间唤醒一次,监听是否有需要接收的数据,两节普通7号电池可以使用长达10年时间,免去了频繁充电和更换电池的麻烦,保证了应用的长久稳定。
Z-Wave的系统复杂性比ZigBee小, 比蓝牙设备要小得多,协议简单,所要求的存储空间很小。标准的Z-Wave模块中设计了32KB的闪存用于存放协议,而同等功能的ZigBee模块则至少需要128KB才能使用,蓝牙则需要更多。所以Z-Wave模块的成本要低于ZigBee或者蓝牙设备。
Z-Wave网络容量为单网络最多232个节点,远低于ZigBee的65535个。Z-Wave节点的典型覆盖范围为室内30m以及室外100m,最多支持4级路由。在应用的普适性方面差于ZigBee,不能使用单一技术建立大规模网络。但对于智能家居应用来说,已经足以覆盖到全部范围。通过使用虚拟节点技术,Z-Wave网络也可以与其他类型的网络进行通信。
2) MAC层
Z-Wave的MAC层控制无线媒介。数据流采用曼彻斯特编码,数据帧包含了前码、帧头、帧数据、帧尾。帧数据是帧传递给传输层的部分。所有数据都通过小端模式传输。MAC层独立无线媒介、频率和调制方法,但是要求接收到数据时能从曼彻斯特编码比特流或解码比特流获得帧数据或整个二进制信号。数据通过8bit据块传输,第—位是最高有效位(Most Significant Bit,MSB),数据经过曼彻斯特编码,以便得到一个无直流的信号。
MAC层具有冲突避免机制,防止节点在其他节点发送数据时开始数据的传输。冲突避免机制通过以下方法实现:让不在传输数据的节点进入接收模式,如果MAC层正处于接收数据阶段则延迟传输,沖突避免机制在所有类型的节点上都被激活。当媒介正忙时,帧的传输延迟一个随机的毫秒数。
MAC层沖突避免机制的核心是CSMA/CA,包括载波监听、帧间间隔和随机退避机制。每=个节点使用载波侦听多路访问(Carrier Sense MulTIple Access,CSMA)机制的分布接入算法,让各个节点争用信道来获取发送权。CSMA/CA方式采用两次握手机制,即ACK (Acknowledgement)机制:当接收方正确地接收帧后,就会立即发送确认帧ACK,发送方收到该确认帧,。就知道该帧已经成功发送。如果媒介闲时间大于等于帧间隔,就传输数据,否则将延时传输。
CSMA/CA的基础是载波监听。物理载波监听在物理层完成,通过对天线接收的有效信号进行检测,若探测到这样的有效信号,物理载波监听认为信道忙,MAC载波监听在MAC层完成,通过检测MAC帧中的持续间域完成。信道空闲时才能发送数据,如果信道繁忙,就执行退避算法,然后重新检测信道,避免共享介质碰撞。介质繁忙状态刚刚结束的时间是碰撞发生的高峰时刻,许多节点郡在等待介质,介质空闲的第一时间所有节点都试图发送,会导致大量碰撞,所以CSMA/CA采用随机退避时间控制各个节点帧的发送。
3)传输层
传输层主要用于提供节点之间可靠的数据传输,主要功能包括重新传输、帧校验、帧确认和实现流量控制等。传输层帧共有三种类型。
单播帧:单播帧向一个指定的节点发送,如果目标节点成功收到此帧,将会回复一个应答帧ACK,如果单播帧或者应答帧丢失或损坏,单播帧将被重发。为了避免与其他系统的碰撞,重传帧将会有一个随机延迟。随机延迟必须与传输最大帧长和接收应答帧所花费的时间一致。单播帧在不需要可靠传输的系统中可以选择关闭应答机制。应答帧是Z-Wave单播帧的一种类型,其数据域的长度是o。
多播帧:多播帧将传输给网络中节点1到节点232中的若干个。多播帧目标地址指定了所有的目标节点,而不用向每个节点发送一个独立的帧。多播没有应答,所以这种类型的帧不能用在需要可靠传输的系统中,如果多播帧一定要求可靠性,则需要在多播帧之后跟着发送单播帧。
广播帧:广播帧将传输给网络中所有节点,任何节点都不对该帧进行应答。和多播帧一样,它也不能用于需要可靠传输的系统中,和多播帧一样,如果广播帧一定要求可靠性,则需要在广播帧之后跟着发送单播帧。
4)路由层
路由层控制一个节点向另—个节点的帧的路由。控制器和节点都参与帧的路由。它们总是处在监听状态并且有一个固定的位置。该层负责通过一个正确的转发表来发送帧,同时也保证帧在节点与节点之间转发。路由层也要扫描网络拓扑结构并且维护控制器中的路由表。
Z- Wave技术的路由层采用了动态源路由(Dynamic Source RouTIng,DSR)协议。DSR协议是一种按需路由协议,它允许节点动态发现到达目标节点的路由,每个数据帧的头部附加有到达目标节点之前所需经过的节点列表,即数据分组中包含到达目标节点的完整路由。与传统的路由方法不同,传统路由方法如按需距离矢量(AdHoc On-demand Distance Vector RouTIng,AODV)协议在分组中只包含下一跳节点和目的节点地址,所以DSR不需要周期性广播网络拓扑信息,避免网络大规模更新,能有效减少网络带宽开销,节约能量消耗。
在发现路由时,源节点发送一个含有源路由列表的路由请求帧,此时路由列表只有源节点,收到该帧的节点继续向前发送该帧,并在路由列表中加入自己的节点地址,直到到达目标节点。每个节点都有一个用于保存最近收到路由请求的存储区,
因此可以不重复转发已经收到的请求帧。部分节点(如果它们有额外的外部存储空间)会将已经获得的源路由表存储下来以减少路由开销。当收到请求帧时,先查看存储的路由表中是否存在合适路由,如果有就不再转发,直接返回该路由至源节点,如果请求被转发到了目标节点,那么目标节点就将返回一个返回路由。
当源节点要与目标节点通信时,源节点首先广播一个具有唯-一ID的RREQ消息,被源节点无线覆盖范围内一个或多个具有到目标节点路由信息的中间节点接收,返回该路由信息至源节点。每个节点的路由缓冲区都会记录该节点侦听到的路由信息。当一个节点收到RREQ消息时,如果在该节点最近的请求中包含该请求,则丟弃该请求;如果RREQ路由记录中包含当前节点的地址,则不进行处理,防止形成环路;如果当前节点就是目标节点,则发送返回路由给源节点;其他情况下,该节点在RREQ中添加自己的地址,并将该帧广播出去。
当路由列表上的一个节点移动或掉电时,网络拓扑会发生变化,路由不可用。当上游节点通过MAC层协议发现连接不可用时,就会向上游所有节点发送RERR。源节点收到该RERR后,会从路由存储区中删除无效路由,如果需要的话源节点会重新发起路由发现过程来建立新路由。
DSR协议不需要周期性地交换路由信息,可以减少网络开销,节点可以进入休眠模式,节省电池电量。数据帧中含有完整的路由信息,节点可以获取完整路由中所包含的部分有用信息,如A到B到C的路由中包含了B到C的路由信息,B节点不需要发起对C的路由发现,从而节省了路由发现所需的开销。同时,DSR协议网络的规模受到了限制,因为数据包中有很多都带有路由信息,过长的路由表会大幅增加网络分组开销,鉴于一个Z-Wave网络中最多232个节点的限定和最多支持4跳路由,DSR协议的额外开销并不至于十分严重,增强型节点类型也有更大的外部存储空间可以存储最近使用的路由信息,也以硬件开销弥补网络性能。
5)应用层
应用层负责Z-Wave网络中的译码和指令的执行,主要功能包括曼彻斯特译码、指令识别、分配Home ID和Node ID、实现网络中控制器的复制以及对于传送和接收帧的有效荷载进行控制等。Z-Wave技术关注设备的互操作性和厂商开发的方便性,在应用层中引入了相关机制以实现这一点。
为了实现智能家居控制系统中众多子系统的相互作用,加强各个领域厂商产品的相互操作性,Z-Wave提供了标准化的方法来实现设备和设备之间的相互作用。这允许从某一个厂商制造的遥控器提供照明子系统的调光功能,对另一个厂商制造的灯光节点进行控制。这样所有的厂商只需要集中精力开发其所擅长的产品,它们可以很好地工作在一个Z-Wave网络中,而不需要自己包办整套智能家居系统,给厂商的开发提供了便捷。