在一个zigbee网络中,只有协调器(coordinator)设备可以建立网络,在建立网络过程中,所有的实现过程都是通过原语实现的(具体在程序中,如用c语言,就是调用一个一个函数,或者是一个一个任务来实现(不要刻意最求这句话的准确性,本来好的协议就是只要达到这样的结果,不管具体实现)),首先协调器设备的应用层调用NLME_NETWORK_FORMATION.request原语,发出建立网络请求,网络层收到这个原语,就要求MAC层执行信道能量扫描(在IEEEE802.15.4协议中规定,在2.4G频段,共有16个信道,每个信道的带宽为5M,深入理解,可以看协议和通信原理的相关资料)。这调用MLME_SCAN.request,主要找到信道能量低于设定能量值的信道,并且标注这些信道是可用信道,下一步就在可用信道中执行活动情况扫描(active scan),就是在可接受的信道搜寻zigbeee设备,找到一个最好的信道,通过记录的结果,选择一个信道,该信道存在最少的zigbee网络,最好是没有zigbee设备。
如果没有合适的,将发送confirm原语,并告知上层结果;如果找到了合适的信道,将随机选择一个PAN(网络号,就是可以识别一个特定zigbee网络的标识号),不与原来的冲突,如果没有找到,也通过原语告诉上层结果,如果找到了,就通过原语在MAC层注册,这个ID号,然后选择网络地址,并发送MLME_START.request原语,获取PAN ID和信道扫描结果,将通过confirm原语告知上层。
收到PAN 开始的状态,NLME 将告知应用层,它要求的建立网络的状态,这通过NLME_NETWORK_FORMATION.confirm原语实现。
zigbee设备发送数据
只有加入了网络的设备才可以发送数据,首先,应用层将一帧数据打包好,然后调用网络层的原语,并在网络层按照协议的配置,加上帧头,如果考虑安全机制,还要做安全处理。
接收和再发送:
在非信标的网络中,只要设备不发送数据,就可以处于接收的状态,只要在接收使能的情况下,收到一帧数据,将把该帧数据帧头的传输半径减一。如果该值为零,将不会再传输到下一个设备,该帧数据,将被送到应用层,或在网络层做具体的处理。数据帧,如果目的地址是该接收设备,将会发送到应用层,如果是广播数据帧,也会发送到应用层,并且还会继续传播到其他设备,具体的传输方式将在下一讲中介绍。如果正在接收的设备是协调器或路由器设备,并且已经使能了路由,如果接收到的数据目的地址不是该设备,将中继该帧数据到其他设备,如果其他情况,将舍弃该帧数据。如果接收到的数据是路由应答,如果目的地址是该设备,将用后面讲到的方式处理,否则,将舍弃该帧数据,并且将发送路由错误帧。
更多资料与技术讨论请联系:
上海无线龙通讯科技有限公司
联系人:司文铠
QQ:876692208
MSN:siwenkai@hotmail.com
TEL:13816689475
email:wxlsiwenkai@yahoo.com.cn
skype:sparksi01
公司网址:www.wxlsoc.com
文章评论(0条评论)
登录后参与讨论