
马鞍山虽然是一个地名,但不是一个精确的地名。据统计,中国可能有二十几个地方叫马鞍山。
对应到ZigBee网络也会有同样的问题。ZigBee使用PAN ID和扩展的PAN ID来识别网络。
马鞍山就类似于PAN ID,Extended PAN ID就类似一个全地名,比如说安徽省马鞍山市
ZigBee是一个低速率的通信技术,本身最大的数据传输速率就只有250Kbps,并且在实际传输的时候有MAC层头部、网络层头部,还有各种安全控制的字段等等,导致的后果就是真正有效的数据载荷占比比较低。这种情况下,如果每次通信仍然使用这个64 bit的PAN ID,就会导致有效载荷占比进一步降低。所以大部分时候的通信都是使用16 bit的PAN ID来标识目的网络,可以改善这种情况。仅在回复节点扫描请求入网的Beacon Request的Beacon报文中,或是进行PAN ID更新时,才会在报文中使用扩展的PAN ID。
PAN,又称个人区域网络,通过其PAN ID与其他网络分开。这是同一PAN中所有节点将共享的16位标识符。因此,这与以太网世界中的子网掩码类似,因为您通常只与本地网络内的设备通信,在这种情况下为PAN。该标识符放置在每个传出数据包中的低层MAC层标头中,它使接收该数据包的设备可以过滤出与他们的网络无关的消息。 他们可以将其与自己的PAN ID进行比较,并确定这是来自自己网络中某人的消息,还是来自恰好在此信道上的其他网络中的某人的消息,因此无需尝试解码或解密。
0xFFFF这个PANID用于广播,那么所有网络都能收得到。


PAN ID由协调器在网络创建时随机生成,或者在创建网络的时候由用户指定。因为PAN ID是一个网络与另一个网络之间的区别因素,所以它应该是随机的以确保其唯一性。建议您为PAN ID选择一个随机的16位值,以防止您的网络与该区域中碰巧存在的任何其他网络重合。
现在,如果您碰巧选择了另一个网络已经使用的PAN ID,该怎么办?或者,如果您确实选择了一个与任何其他网络都没有冲突的随机PAN ID,但后来又有另一个网络与您的网络重叠,该怎么办?如果曾经发生过PAN ID冲突,则协议栈实际上可以检测到这种冲突并可以自动更新其PAN ID,并通知其网络中的所有节点都移至新的PAN ID,以便每个节点可以继续与原始网络中的节点进行通信,并排除冲突网络上的任何节点。如果PAN ID冲突,我们需要使用扩展的PAN ID来区分网络。
扩展PAN ID是PAN中所有节点都知道的另一个网络标识符。
正常的短16位PAN ID由于简短,在空中传输的所有数据包中都有包含,但64位扩展PAN ID很少通过空中传输。扩展的PAN ID对于每个PAN也是唯一的,当16位PAN ID不足以始终将一个网络与另一个网络区分开时,它基本上用作备份标准。例如,当发生PAN ID冲突并且您要通知网络中的所有设备更新PAN ID时,将网络与冲突的网络区分开的方式是,网络中的这些设备都共享相同的扩展PAN ID。扩展PAN ID极不可能发生冲突,因为与短PAN ID中的16位相比,它具有64位。

扩展的PAN ID由协调器在网络创建时随机生成。
这也是允许您选择网络的有用因素。如果您尝试加入一个网络而不是创建一个网络,那么您可能想知道如何判断哪些网络可用。网络之间可区分的方式不仅在PAN ID中,而且在扩展的PAN ID中。您可能想做一些特别的事情,决定只使用扩展PAN ID的特定子集,以便您可以将网络与其他网络区分开来,但不要太限制自己,因为您限制得越多您发生冲突的可能性就越大,并且如果您的扩展PAN ID曾经发生冲突,您实际上无能为力。它有点像WiFi SSID,不同之处在于WiFi网络之间的SSID可以相同,而ZigBee不同网络间的扩展PAN ID则不能相同。
(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)

