长宁区网站建设网页,网站建设 手机,怎么用虚拟主机做网站,某某网站建设策划书2000字zigbee路灯无线通讯机制
wang20160630
前言
目前路灯上通讯主要有电力载波和无线通讯#xff1b;各有利弊#xff0c;众说纷纭#xff1b;本文不对两种技术进行比较#xff0c;也不讨论哪种好#xff0c;毕竟同种通讯模块#xff0c;有的开发出来稳定#xff0c;有的…zigbee路灯无线通讯机制
wang20160630
前言
目前路灯上通讯主要有电力载波和无线通讯各有利弊众说纷纭本文不对两种技术进行比较也不讨论哪种好毕竟同种通讯模块有的开发出来稳定有的就不稳定究其原因有很多所以也不好做其讨论本文主要是记述了我如何通过zigbee无线来为路灯做数据的传输采用的何种通讯技术为了必免时间久了忘记了因此有必要把它记录下来方便自己记忆也可给别人做参考。
内容 本文主要内容分四点讲述1、Zigbee角色定义2、采用的通讯机制及实现功能3、路由表定义及作用4、通讯协义定义和解释
1、Zigbee角色定义 现状分析路灯灯杆与灯杆之间都是比较远而且有点直线分布不像是网状分布。Zigbee的角色有coorder、router、device。考虑到路灯灯杆分布的现状、一个集中器要带载很多个路灯终端设备及为了节省资源和以后安装方便本系统只采用两种角色coorder和router,每个单灯控制器都是router,可做中转一个coorder最多可带250个router。
采用的通讯机制及实现功能 本系统主要采用泛洪消息机制向本区域所管辖的网络广播router设备收到包后判断是否是自已的数据包如何是则接收如果不是则先判断是否可转发若转发次数未到则转发并且只能转发一次router设备需维护一张路由表记录以前转发过的包并在通讯协议上增加两个字段记录转发次数和发送序列号每一个router设备维护一个发送序列号每发送一个包序列号加1并把该序列号加到数据包的包头信息中其它设备节点收到一个数据包后依靠查找路由表中的序列号rxsn和uid来判断自己是否已接过该包是否是自己的包或是否需要转发该包。
主要功能实现coord和route数据透传功能coord通过串口接收特定的数据再通过无线传输把数据传到指定的route设备中route设备再把信息通过串口显示出来route设备也可以传送相关的数据到coord设备每个route设备都具有上、下行数据转发功能当收到的数据通过mac地址检测到的不是属于它的数据它需要再次转发出去并相应的更改转发次数同一数据包只能被转发一次数据包总的转发次数不超过100次
示意图 路由表定义及作用
typedef struct _dev_mac_t
{ u32 srcmac;//源mac u8 rxsn; //接收系列号 u8 rssi; //存储 rssi值 }dev_mac_t; 路由表数据采用动态分配源mac为唯一标识接收RF数据时通过查找srcmac判断是否增加或修改相应数据首次接收到数据时会增加一笔记录保存srcmac、rxsn和rssi,当再次接收到源mac发来的数据时如果当前数据包的rxsn与路由表记录的rxsn相同则不接收以必免重复接收如果不是只需要更新rxsn和rssi值 4、通讯协义定义和解释
总体包格式包长PHR1MAC7自定义数据(N)MFR(2)
详细包格式包长PHR(1)MAC{帧类型fcf (2)系列号seq1目标panid(2)目标短地址(2)}数据{包类型(1)源地址(4)目标地址(4)发送序列号(1)转发次数(1)终端MCU数据包(N)}MFR(2) 系统基于MAC层的自定义的zigbee协议数据包采用芯片的mac地址的后48位来做唯一的地址并称为uid短地址中设coorder地址为0coorder设备专门为集中控制器用的
coorder--router:则源地址为0目标地址为router的uid;
Router--coorder:则源地址为router的uid目标地址为0