一、通讯基础知识
1、信号载波
在无线通信时,通常需要传输的信号(有用信息)通常是一些频率较低,强度较弱的信号,这些信号无法直接通过天线发送出去,效率太低。载波(carrier wave, carrier signal或carrier)是由振荡器产生并在通讯信道上传输的电波,是一个特定频率的无线电波,频率通常较高,具有传输效率高的特点。 因此,传输的信号(频率较低)往往调制到一个高频载波上,就好像搭乘了一列高铁或一架飞机一样,然后再被发射和接收。载波充当了传送信息(话音和数据)的物理基础和承载工具。
载波是一种如可在频率、调幅或相位方面被调制以传输语言、音乐、图象或其它信号的电磁波。(涉及调制等概念这里不做过多讲解,自行学习)
2、同频接收与发送
zigbee模块之间要相互进行正常的发送与接收信息,则接收模块必须设置接收频率与发射模块的载波频率一致,才能进行通信。
3、信道与频段
zigbee有27个载波可以进行通信,载波叫做信道(以无线信号作为传输载体的数据信号传送通道)。这些载波的频率也会落在某些频率范围内,我们把这个频率范围叫做频段。
对于cc2530的zigbee而言,有三个频段:2.4G,915M和896M。其中2.4G有16个信道(信道11~26)可用,915M和896M共有11个信道(信道0~10)。但TI的所有支持zigbee底层协议的芯片只能在2.4G频段的16个信道中进行通信。
信道编号 | 频率Hz |
11 | 2405M |
12 | 2410M |
... | ... |
26 | 2480M |
4、PANID 局域网ID
PANID是一个2个字节的编码,用来是标识和区别不同zigbee无线局域网,称为局域网ID。只有在同一个局域网内的zigbee节点可以相互通信。
5、网络地址
在zigbee无线局域网中,每一个zigbee模块(节点)都在一个网络里唯一的2个字节的地址,用来标识和区别其他的zigbee模块,这个地址叫做网络地址,也称网络短址。
6、协调器、路由器、终端
在zigbee无线局域网中,节点(无线模块)按照在网络里的功能来划分,协调器、路由器、终端,三者的硬件模块一模一样,下载不同的功能版本的代码,在网络里表现不同的功能。一个zigbee节点是路由器、协调器、终端,前提是它必须在一个zigbee无线局域网里,如果他还没有入网,那么它仅仅是一个下载了相应功能代码的模块而已。
(1)协调器:网络不会平白无故产生,所以创建网络由下载了协调器代码的模块来完成,协调模块上电的第一件事就是创建网络。
(2)路由器、终端:下载了路由器和终端代码的模块,上电的第一件事就是寻找网络,请求加入。
(3)任何一个网络,第一个节点一定是网络的协调器,一个网络里有且仅有一个协调器。
(4)任何zigbee模块要加入到某一个网络,一定要一个处于该网络里面的节点作为介绍人,并且这个介绍人只能是路由器或协调器。在加入网络以后,介绍人节点和被介绍人互为父子关系,介绍人节点是被介绍节点的父节点,反之。当被加入节点有多个介绍人时,会根据对于被加入节点相对于介绍人的信号强度等参数,自动选择最佳介绍人节点加入。
(5)协调器、路由器、终端区别:协调器可以创建一个网络(确定局域网的PANID,并成为该网络的第一个节点),可以成为网络介绍人,介绍路由器和终端入网;路由器可以成为网络介绍人,介绍另一个路由器和终端入网;终端:无法成网络介绍人,只能通过网络介绍人入网。协调器,路由器,节点都可以进行信息采集和发送。协调器、终端节点和路由节点这 3 种类型的节点在 zigbee 无线通信中的流程图如下图。
由上图可得,协调器(负责建立 zigbee 网络、信息收发)、终端节点(信息采集、接收控制)和路由节点(在终端节点的基础上增加了一个路由转发的功能)。
7、协调器、路由器、终端的入网分析
入网前
(1)路由器:在入网前,一直发送信标请求帧,它的作用是,让它附近的所有具备介绍人资格的节点回复信标帧,这些返回的信标帧被这个想要加入的路由器模块拿到,通过信标帧,选择最佳的介绍人节点,请加入。
(2)终端:入网前行为与下载了路由器代码的模块一样。
(3)协调器:发送了一帧信标请求帧,发送这一帧也会得到周围具备介绍人资格的节点回复信标帧,协调器拿到这些信标帧,用来判断周围的环境情况,为网络创建做准备。当协调器创建网络成功后,就会发送一帧数据帧,这一帧里面可以看到网络的PANID,以及协调器在该网络中的网络地址0x0000,这一帧叫做网络连接状态帧。
入网到稳定工作
以路由器通过协调器入网例:
(1)协调器会发出的网络连接状态帧,表明协调器稳定工作。
(2)路由器模块发出信标请求帧,用于发现周围的网络,请求加入。
(3)协调器模块发出的信表请求帧,路由器模块在拿到这个帧后,可以得到协调器模块相对于它自己的信号强度,判断是不是最佳介绍人。
(4)路由器模块收到了协调器模块的信标帧,通过信标帧判断协调器是当前路由器模块的最佳介绍人。路由器模块会发送请求帧是告诉协调器,你是我 当前的最佳介绍人,请你充当我入网的介绍人,介绍我入网,并具在这个帧携带了自己MAC,这个MAC地 址是介绍人模块(协调器模块)给被介绍人模块(路由器模块)分配网络的地址的依据。
(5)协调器模块收到路由器的入网请求帧,硬件回复给路由器模块的ACK,表明我已经收到了你发过来的帧。
(6)路由器模块发给协调器模块的帧,请求协调器把你根据我前面发给你的MAC地址给我分配的网 络地址现在发给我。是一个数据请求帧。
(7)协调器回复给路由器的ACK表明收到了路由器发过来的帧。
(8)协调器把为路由器分配好的网络地址发给路由器而这个帧需要非常明确的发给路由器模块,但 是路由器模块还不知道自己的网络地址是多少,所有在指定目标地址的时候用MAC地址
(9)在路由器模块根据自己的MAC地址收到了协调器发过来分配给自己的网络地址,硬件自己回复ACK表明已经收到
(10)入网宣告,告诉当前网络里所有的节点,我入网了,我的网络地址是0x****。
(11)协调器模块在收到了路由器模块发的入网宣告帧以后,会转发该帧。
(12)协调器模块和路由器模块在工作稳定时,发出的网络连接状态帧。协调器和路由器在入网后,稳走工作时的行为是,每隔一段时间发一次网络连接状态帧,默认是15s。
终端
终端的入网过程和路由器入网的过程,所有的行为都是一样的 ;不通点:终端入网后,终端节点不会定时发送给它的父节点协调器的数据请求帧为了告诉它的父节点,我还在线。协调器在收到终端发来的帧,硬件自动回复的ACK
补充:
(1)在zigbee网络中,如果一个模块发出的射频帧,非常明确的指定接收目标节点的地址,那么目标节点在接收到这个帧以后,硬件会自动回复一个ACK帧,表明已经收到。
(2)MAC地址:TI在CC2530出厂的时候在flash上固化一个8个字节编号的唯一值,这个值是这个芯片的物理地址,又叫MAC地址或IEEE地址,3种说法是一个意思。
注意:上述讲解的相关概念都是基于理解与使用,不作为专业解读。