[Zigbee]

基于ZigBee Mesh网络的无线串口设计

[复制链接]
752|26
手机看帖
扫描二维码
随时随地手机跟帖
Peonys|  楼主 | 2019-11-15 21:56 | 显示全部楼层 |阅读模式
基于ZigBee Mesh网络的无线串口设计

RS-232串行通信是异步通信中应用最广的标准总线,在没有Modem的情况下,一般传输距离限制在15 m内,使得远距离串口通信受到较大限制。无线技术是当今设备通信中取代有线技术的必然趋势。
    本文利用ZigBee无线技术组成Mesh网络实施串口通信,网络中任意两个模块的传输距离可达100 m,如果模块有功放,传输距离可上升至1.5 km。因为Mesh网络的多跳性,数据能够多跳传输,所以数据的传输距离取决于跳数的多少,如图1所示S4经过3跳把数据传送到S1,如果每一跳距离是1 km,则传输距离达3 km,这有效地解决了有线串口传送的距离限制问题。同时,ZigBee网络中最大的数传速率为250 kb·s-1,完全能满足一般用户的要求。

20121105063804234793319_副本.jpg



1 ZigBee无线串口设计原理
1.1 节点入网后的初始化
    根据ZigBee技术的要求,ZigBee网络中存在3种角色,协调器、路由和终端设备,协调器负责建立网络,路由器负责路由,终端设备只能收发数据。协调器和路由统称为全功能设备(FFD)。
    在此,所有的设备都统称为节点(node),只是所扮演的角色不一样,每个节点都人为地在程序里给它们取名,如:01、02、03表示节点1、节点2、节点3,00保留给协调器。
    协调器(00)加电后组建网络,各节点自动发现并加入网络,根据本文的设计,节点在加入网络后都会自动地向网络中的其他节点广播其16位网络地址和名字,网络中的其他节点接收到这广播数据后将该数据储存在数组NodeAddress[]中,然后以单播的方式向新加入节点反馈自己的网络地址和名字,新节点也将该数据保存在数组NodeAddress[]中,从而保证网络中的每个节点都知道其他节点的网络地址和名字。具体流程如图2所示。

20121105063804281673320.jpg


1.2 串口数据的格式
    当节点串口有数据要发送的时候,必须要指明,数据的发送目的地,所以从串口输入的数据必须满足一定的格式,本设计规定该格式为:××……;××为要发送的目的节点名字,……为要发送的数据。譬如向节点01发送数据“ZigBee”,格式为:01 ZigBee。因为节点在加入网络的时候,已经建立了名字和网络地址的对应表,所以发送节点会自动将01解释为网络地址0x0023,从而将数据准确地发送到节点01上。

2 无线串口硬件设计
2.1 系统框图

20121105063804328543321.jpg


    串口接收、发送系统可以是PC或者其他嵌入式系统,ZigBee控制系统负责组网和接收发送数据。这里主要研究ZigBee控制系统。


2.2 芯片选择
    选择TI公司的2.4 GHz片上系统解决方案CC2530。CC2530是用于IEEES02.15.4、ZigBee和RF4CE应用的一个片上系统解决方案。它能以较低的总材料成本建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,使操作更容易,具备不同的运行模式,尤其适应超低功耗要求的系统。
     2.3 无线串口电路设计
    CC2530中的P0_1和P0_2为TTL电平的串口接收发送管脚,可直接与TTL电平的串口系统相连,如果与PC机连,要加上MAX232模块。可见该无线串口与其他系统的兼容性很强,而且连接方便。

20121105063804453543322_副本.jpg



3 软件设计
3.1 ZigBee协议栈简介
    ZigBee协议栈以IEEE 802.15.4标准为基础,IEEES02.15.4工作组主要负责制定物理层(PHY)、媒体访问控制层(MAC)。ZigBee联盟提供了网络层和应用层(APL)框架的设计。其中,应用层的框架包括了应用支持子层(APS)、ZigBee设备对象(ZDO)及由制造商制定的应用对象。如图5所示。

20121105063804484793323.jpg


    采用TI公司的Z—Stack 07协议栈实现ZigBee协议。Z—Stack 07协议栈,对之前几个版本的协议进行了改进,使得网络稳定性更强,组网更灵活。
3.2 主体程序流程与任务
    TI的Z—Stack 07/PRO协议栈,对应的开发环境为IAR 7.51A。在安装完Z—Stack 07协议栈之后,用IAR打开工程文件GenericApp,GenericApp是TI公司专门为开发者提供的开发模板,在此借助该模板实现无线串口。
    打开GenericApp后,如图6所示,App文件夹即为应用层代码文件夹。利用模板只需在GenericApp.c中加入实现代码,就可以实现无线串口。

20121105063804531663324.jpg


    Z—Stack采用操作系统的思想来构建,采用任务轮循机制,当各层初始化之后,系统进入低功耗模式,当任务有事件发生时,唤醒系统,开始进入中断处理任务事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。Z—Stack的工作流程如图7所示。

20121105063804578533325.jpg


3.3 无线串口程序流程
    因为Z—Stack是采用任务轮循机制,GenericApp是属于其中的一个任务,在文件GenericApp.c中的任务初始化函数GenericApp_Init()中添加串口初始化代码,在GenericApp_ProcessEven()函数中添加无线串口收发事件Serial_RecEven和Serial_TranEven的处理函数。图8和图9是GenericApp_Init()函数流程图和GenericApp_ProcessEven()函数流程图。

20121105063804609783326.jpg


20121105063804656663327.jpg


    图中初始化NV Flash是用以储存其他节点网络地址名字对应表。
    当节点上电加入ZigBee网络后,便会执行GenericApp_Init()函数,初始化串口,并向网络中的其他节点以广播的方式发送其网络地址和名字。
    当网络中的其他节点接收到数据时,便会触发接收数据事件,GenericApp_ProcessEven()函数判断是串口接收数据命令还是储存网络地址命令,如果是前者,便将数据写到串口;如果是后者则先判断是否来自于广播方式发送来的数据:若是则储存该网络地址和名字,并且以单播的方式回馈本节点的网络地址,保证网络中的各个节点都知道其他节点的地址和名字;若不是就储存该网络地址和名字,不用反馈本节点的网络地址和名字。
    当GenericApp_ProcessEven()函数检测到Serial_TranEven事件发生时,便读串口并将数据按照约定的格式发送出去。

4 结束语
    利用ZigBee无线技术组成Mesh网络实施串口通信,无线通信距离取决于单跳距离和跳数,而默认最大跳数为20,但多跳的出现会导致数据延时,出现误码。建议跳数控制在5跳之内,此时数据传输稳定、时延短、误码率低,能有效地解决有线串口距离限制的问题。



使用特权

评论回复

相关帖子

51xlf| | 2019-11-18 12:42 | 显示全部楼层
无线mesh网络和zigbee协议哪个更适用于智能家居  

使用特权

评论回复
i1mcu| | 2019-11-18 12:42 | 显示全部楼层
ZigBee节点是可以组建Mesh网络的  

使用特权

评论回复
pmp| | 2019-11-18 12:43 | 显示全部楼层
可以组建树状网络、Mesh网络、星型网络等。  

使用特权

评论回复
mmbs| | 2019-11-18 12:43 | 显示全部楼层
ZigBee组网的最大优势是MESH型网络  

使用特权

评论回复
1988020566| | 2019-11-18 12:43 | 显示全部楼层
ZigBee支持的3种拓扑结构哪种最常用呀  

使用特权

评论回复
lzbf| | 2019-11-18 12:43 | 显示全部楼层
如果考虑节点众多,可以组MESH网网络  

使用特权

评论回复
youtome| | 2019-11-18 12:44 | 显示全部楼层
“蓝牙 Mesh”与 WI-FI 谁更具优势   

使用特权

评论回复
cemaj| | 2019-11-18 12:44 | 显示全部楼层
ZigBee Mesh Network。           

使用特权

评论回复
jimmhu| | 2019-11-18 12:45 | 显示全部楼层
组成Mesh网扩大通讯距离  

使用特权

评论回复
hellosdc| | 2019-11-18 12:45 | 显示全部楼层
大多数协议或多或少依赖无线网格(mesh)组网  

使用特权

评论回复
youtome| | 2019-11-18 12:45 | 显示全部楼层
Zigbee如何快速组建大规模网络?  

使用特权

评论回复
51xlf| | 2019-11-18 12:45 | 显示全部楼层
zigbee节点之间怎么组网  

使用特权

评论回复
lzbf| | 2019-11-18 12:45 | 显示全部楼层
ZigBee具备MESH型网络拓扑结构   

使用特权

评论回复
i1mcu| | 2019-11-18 12:45 | 显示全部楼层
其他每个ZigBee节点都可以当做路由节点来使用  

使用特权

评论回复
1988020566| | 2019-11-18 12:45 | 显示全部楼层
哪个智能家居公司有zigbee协议的智能网关  

使用特权

评论回复
pmp| | 2019-11-18 12:45 | 显示全部楼层
一般是在标准的ZigBee协议  

使用特权

评论回复
mmbs| | 2019-11-18 12:45 | 显示全部楼层
自组网是ZigBee区别于其他无线网络最显著   

使用特权

评论回复
hellosdc| | 2019-11-18 12:45 | 显示全部楼层
zigbee可以在移动中通信吗   

使用特权

评论回复
jimmhu| | 2019-11-18 12:45 | 显示全部楼层
Zigbee的点对点通讯距离为1到3KM

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝