一、创建网络
首先,由协调器创建一个网络,您必须准备4个参数:
- PAN ID
- 扩展 PAN ID
- 工作频道
- 发射功率
您需要指定这四个参数。如果您不这样做,协调器将随机选择一个PAN ID和一个扩展的PAN ID。如果您未指定频道,则协调器将扫描并选择一个相对安静的频道进行工作。
二、加入网络
2.1 使用Well-Known Link Key加入
网络创建后,新设备可以开始加入。
- 新设备将开始查找可连接的网络。在此阶段,新设备不知道可加入的网络处于哪个信道,所以它将通过扫描的方式来发现可加入的网络。它将在每个信道上都发送Beacon Request,等待一会儿如果没有回应的话,就跳到下一个信道继续发Beacon Request。
- 路由器和协调器将使用Beacon中携带的网络信息来响应Beacon Request。这些信息包括PAN ID,扩展PAN ID以及路由器或协调器的其他一些属性,例如设备是否允许连接,设备是否具有允许新设备连接的能力。
- 新设备可以从不同设备接收多个Beacon。它将选择信号质量最好的一个,并开始发送Association Request。在该Association Request中,将PAN ID设置为所选的PAN,并将目标节点ID设置为所选设备的节点ID。在这个报文里面,将会携带这个新设备的设备类型等信息。
- 当路由器或协调器收到此Association Request时,它将为新设备选择一个节点ID,并以Association Response进行响应。然后,新设备获得了其Node ID,但由于未获得Network Key而无法与其他节点通信。
- 协调器会将当前的Network Key传输到新设备。该传输消息在应用程序层中使用Well-Known Link Key加密。
- 当新设备收到此消息时,它将使用Well-Known Link Key对消息解密并获取Network Key。之后,该设备实际上已加入网络,并能够与网络中的所有其他节点通信。
- 设备将发送一条Device Announce,以通知网络的其他节点,以通知他们我已加入。
2.2 使用Install Code Derived Link Key加入
- 在出厂之前,应该已经将Install Code烧录到新设备里面了。
- 在加入之前,用户需要获取新设备的Install Code和Eui64,然后在协调器上对其进行配置。
- 然后,协调器从Install Code中获取Link Key,并将协调器设置为使用此Link Key来加密此新设备的传输Network Key消息。
- 当协调器开始将Network Key传输到新设备时,它将对消息使用Install Code Derived Link Key进行加密并将其传输到新设备。
- 当新设备收到此消息时,它将从闪存中读取Install Code并计算得出应和协调器端相同的Link Key,然后使用此密钥对消息进行解密并获取Network Key。
其余过程类似于使用Well-Known Link Key进行组网的过程。