通常,很多人对XBee和ZigBee这两个术语感到困惑,他们中的大多数人都可以互换使用它。但是实际上并非如此。ZigBee是无线网络的标准协议。同时的XBee是一种产品,支持各种无线通信协议,包括的ZigBee,无线网络(无线飞模块),802.15.4,868 MHz的模块等。在这里,我们主要集中于的Xbee /的Xbee-PRO ZB RF模块它由ZigBee固件。
试想一下计算机中的计算器,其中使用用户友好的界面执行复杂的计算。如果仅硬件可用,则该任务将非常困难且繁琐。因此,在最高级别上,软件的可用性使解决问题的过程变得更加容易。整个过程按实际硬件分为软件的各个层,这些层称为更高层。
我们甚至在日常生活中使用分层的概念。例如,将快递员/信件发送到您朋友的房子,将电子邮件从一个世界点发送到另一个世界。同样,大多数现代网络协议甚至采用层的概念将不同的软件组件分离为可以以不同方式组装的独立模块。为了深入了解Xbee架构,可能不得不动手,但是对于您来说,我们将使事情变得非常简单。
让我们从一些基本术语开始,例如路由,避免冲突和确认。 为了理解第一个术语,只需加上它的名称“ route”,即表示跟踪或标识路径。在联网中,路由是指提供从源节点到目标节点的数据方向。当网络中的两个节点尝试同时传输时,会产生一种称为冲突的情况。因此,通常, 带有冲突避免的载波侦听多路访问(CSMA / CA)技术 可以避免冲突,您可以使用此链接来了解有关CSMA的更多信息。基本上,节点的对话方式与人类对话相同。他们简短地检查以确保在开始发送数据之前没有人在说话。
只要接收器成功接收到发送的数据,它就会确认发送器。不允许数据流淹没接收器无线电。任何接收无线电设备都具有处理传入数据的速度有限和用于存储传入数据的有限数量的内存。
ZigBee架构:
ZigBee堆栈中主要有四个可用层,分别是物理层,媒体访问层,网络层和应用程序层。
应用程序层 定义了各种寻址对象,包括配置文件,群集和端点。您可以在上图中看到ZigBee堆栈层。
网络层:它增加了路由功能,允许RF数据包穿越多个设备(多个“跃点”)以将数据从源路由到目的地(对等)。
MAC层 管理相邻设备(点对点)之间的RF数据事务。MAC包括传输重试和确认管理以及避免冲突技术等服务。
物理层:定义如何连接设备以建立网络;它定义了输出功率,通道数和传输速率。大多数ZigBee应用程序均以250kbps的数据速率在2.4 GHz ISM频段上运行。
大多数XBee系列都内置有流量控制,I / O,A / D和指示器线,可以使用适当的命令对其进行配置。模拟样本以10位值的形式返回。对模拟读数进行缩放,使0x0000代表0V,0x3FF = 1.2V。(模块上的模拟输入不能超过1.2V)
要将A / D读数转换为mV,请执行以下操作:
AD(mV)=(A / D读数* 1200mV)/ 1023
ZigBee中的数据传输
您可以将网络称为软件和硬件的组合,可以将数据从一个位置发送到另一位置。硬件负责将信号从网络的一个点传送到另一点。软件由指令集组成,这些指令集使我们能够按预期工作。
通常, 可以通过两种方式通过ZigBee数据包 传输 数据:单播和广播。
广播传输:
简单来说,广播是指通过广播或电视发送的信息/节目。换句话说,广播传输被发送到网络中的许多或所有设备。ZigBee协议的广播传输在整个网络中传播,以便所有节点都可以接收传输。为此,协调器和所有接收广播传输的路由器将重发该数据包3次。
单播传输:
ZigBee中的单播传输将数据从一个源设备路由到另一台目标设备。目标设备可以是源设备的直接邻居,也可以在两者之间有多个跃点。在下面的示例图中,说明了用于识别双向链接可靠性的机制。
Xbee路由器和协调器的网络基础
要到达您朋友的房子,您需要什么?您只需要他的地址。同样,要将数据从一个Xbee模块发送到另一个模块,您需要它的唯一地址。就像与人一样,Xbee甚至有多个地址,每个地址在网络中都有特定的作用。 地址分为静态地址(64位地址)和动态地址(16位地址)两种。
地址:
64位地址在全球范围内都是唯一的;它由制造商固定在Xbee模块内部。地球上没有其他ZigBee无线电具有相同的静态地址,在每个xbee模块的背面都可以看到该地址,如下所示,并且值得注意的是,地址“ 0013A200”的较高部分对于每个xbee模块都是相同的。
设备加入ZigBee网络时,会收到一个16位地址,该地址在本地应该是唯一的。16位地址0x0000保留给协调器。所有其他设备从允许加入的路由器或协调器设备接收随机生成的地址。当发现两个设备具有相同的16位地址或一个设备离开网络并随后加入(它可以接收不同的地址)时,该16位地址可能会更改。
节点标识符:
我们的大脑记住字符串而不是数字总是比较容易的。因此,可以为网络中的每个Xbee模块分配一个节点标识符。 节点标识符是字符集,即字符串,可以是更人性化的网络节点寻址方式。
个人区域网:
这些Xbee模块开发的网络称为个人区域网或PAN。每个网络都定义有唯一的PAN标识符(PAN ID)。该标识符在同一网络的所有设备之间是公用的。 ZigBee支持64位和16位PAN ID。两个PAN地址都用于唯一地标识网络。同一ZigBee网络上的设备必须共享相同的64位和16位PAN ID。如果多个ZigBee网络在彼此的范围内运行,则每个网络都应具有唯一的PAN ID。
16位PAN ID用于寻址网络中设备之间所有RF数据传输中的MAC层。但是,由于16位PAN ID的寻址空间有限(可能有65,535种),多个ZigBee网络(彼此之间的范围内)可能具有相同的16位PAN ID。为了解决这些冲突,ZigBee联盟创建了一个64位PAN ID。ZigBee定义了三种不同的设备类型:协调器,路由器和终端设备。
每个网络中始终需要一个协调器来负责网络的建立。因此,它永远无法入睡。它还负责选择通道和PAN ID(64位和16位)以启动网络。它可以允许路由器和终端设备加入网络。它可以帮助路由网络中的数据。
一个网络中可以有多个路由器。一台路由器可以从其他路由器/ EP(端点)获取信号。它也永远无法入睡。它必须先加入Zigbee PAN,然后才能发送,接收或路由数据。加入后,它可以允许路由器和终端设备加入网络。加入后,它也可以协助路由数据。它可以为睡眠的终端设备缓冲RF数据包。
也可以有多个端点。它可以进入睡眠模式以节省电量。它必须先加入ZigBee PAN,然后才能发送或接收数据,甚至不允许设备加入网络。它依赖于父级来发送/接收数据。
由于终端设备可以进入睡眠模式,因此父设备必须缓冲或保留传入的数据包,直到终端设备唤醒并接收数据包为止。
ZigBee中的不同网络拓扑
网络拓扑是指设计网络的方式。在此,拓扑是所有链接和链接设备(协调器,路由器和终端设备)彼此之间关系的几何表示。
在这里,我们有四个基本的拓扑网格,星形,混合网格和树形。
在网状拓扑中,由于终端设备无法直接通信,因此每个节点相互连接都需要终端设备。为了实现两个ZB无线电之间的简单通信,您需要使用协调器固件配置一个,使用路由器或端点固件配置一个。Mesh网络的主要优点是,如果其中一个链路不可用,则不会使整个系统瘫痪。
在星形拓扑中,每个设备都具有到中央控制器(协调器)的专用点对点连接。所有设备均未彼此直接链接。与网状拓扑不同,在星形拓扑中,一台设备不能将任何东西直接发送到另一台设备。协调器或集线器在那里交换:如果一个设备想要将数据发送到另一设备,它将数据发送到协调器,协调器进一步将数据发送到目标设备。
混合网络是包含两种或多种通信标准的网络。在这里,混合网络是星形和树形网络的组合,很少有终端设备直接连接到协调器节点,而其他终端设备则需要父节点的帮助才能接收数据。
在树形 网络中,路由器构成骨干网,终端设备通常围绕每个路由器聚集。它与网状配置没有太大区别,只是没有路由器互连,您可以使用上图直观地显示这些网络。
Xbee固件
XBee可编程模块配备了Freescale应用处理器。该应用处理器随附提供的引导加载程序。此XBee ZV固件基于Embernet 3.xx ZigBee-PRO堆栈,可以将XBee-Znet 2.5模块升级为该功能。您可以使用ATVR命令检查固件,我们将在本章稍后讨论。 XBee版本号将有4位有效数字。使用ATVR命令也可以看到版本号。响应返回3或4个数字。所有数字均为十六进制,范围为0-0xF。一个版本报告为“ ABCD”。数字ABC是主要版本号,D是主要版本的修订号。第4章讨论的API和AT命令对于Znet 2.5和ZB固件几乎相同。
在电信中,整个Hayes命令是为Hayes调制解调器Smart Modem开发的特定于语言的命令,1981年,它们是一系列简短的单词,用于控制调制解调器,从而使当时的通信和调制解调器的建立变得简单。
XBee也可以在命令模式下工作,并且已经关闭了AT命令(代表ATTENTION),这些命令可以通过终端XBee发送到XBee,并且AT配置的XBee无线电具有两种通信模式
透明:无线电仅将接收到的信息传递到已配置为的远程无线电地址。通过串行端口发送的数据按原样被XBee接收。
命令:此模式用于与无线电通信并配置一些预配置的模式,在此模式下我们与模块通信并更改配置。
您可以键入+++并等待一秒钟,而无需按任何其他按钮,然后OK消息应出现,就像终端的图像一样。好的,XBee告诉我们他在COMMAND模式下花费并准备接收配置消息。
XBee AT命令:
AT(TEST):这是测试命令,用于检查模块是否响应OK(确认)。
ATDH:目标地址高。要配置64位目标地址的高32位,将DL和DH组合即可得到64位目标地址。
ATDL:目标地址低。再次用于配置64位目标地址的低32位。
ATID:此命令更改PAN ID(Pers,ID为4个字节的十六进制,范围从0000到FFFF
ATWR:写。将参数值写入非易失性存储器,以使参数修改在后续的复位中保持不变。
注意:发出WR后,在此之前,不得将其他字符发送到模块
收到“ OK \ r”响应后。
ATRE(恢复默认值):将出厂设置恢复到模块,如果模块没有响应,则非常有用。
如果您想了解有关ZigBee模块的更多信息,那么这里是Digi的重要资源。