基于ZigBee多跳组播实验

合集下载

基于ZigBee协议多跳无线传感器网络设计

基于ZigBee协议多跳无线传感器网络设计

基于ZigBee协议的多跳无线传感器网络设计摘要:本文介绍了一种以zigbee协议为核心的多跳无线传感器网络设计,传感器节点处理器采用atmel公司的atmega128l芯片,无线通信采用chipcon公司的cc2420射频芯片,传感器采用数字湿度温度传感器sht10,对不同功能的节点采用不同的程序设计,成功实现数据在无线传感器网络节点间的多跳路由。

关键词:无线传感器网络;zigbee协议;多跳;协调器;路由器;终端设备中图分类号:tp79无线传感器网络(wsn,wirelesssensornetwork)是由多个节点组成的面向任务的无线自组织网络,它综合了无线通信技术,传感器技术,微机电技术,计算机网络技术等多学科的技术领域,借助各类传感器对检测目标进行数据采集,通过无线通信的方式把信息发送给观测者。

由于无线传感器网络具有不依赖有线基础设施,可以自组网和允许网络具有动态的拓扑结构等优点,特别适用于一些不适合人类直接参与的检测环境进行数据采集,因此无线传感器网络在军事、空间探索和灾难拯救等特殊领域有其得天独厚的技术优势,在环境、健康、家庭和其他商业领域有广阔的应用前景。

1 zigbee协议zigbee协议是一种建立在ieee802.15.4标准之上的短距离,低速率的无线通信协议,其中物理层和链路层由ieee802.15.定义,网络层和应用层由zigbee联盟规范。

与其他短距离无线通信技术相比,zigbee协议具有以下优点:(1)功耗低。

低功耗待机模式下,两节5号电池就可以是由6个月以上。

(2)具有3个无线收发器频段。

868mhz(欧盟);902mhz(美国);2.4ghz。

(3)网络容量大。

可支持6500个节点设备。

(4)采用csma-ca机制,有效的避免了数据发送时因碰撞产生的冲突。

(5)网络安全性高。

采用了密钥长度为128位的加密算法,对所传输的数据进行了加密算法,有效的保证了数据传输的有效性和安全性。

实验三ZigBee协议实验

实验三ZigBee协议实验

实验三ZigBee协议实验实验三ZigBee协议实验【实验目的】1、了解ZigBee 2007 协议栈操作系统的工作机制2、了解ZigBee 2007 协议栈应用程序框架的工作机制3、了解ZigBee 广播通信的原理4、掌握在ZigBee 网络中进行广播通信的方法5、了解ZigBee 组播通信的原理6、掌握在ZigBee 网络中进行组播通信的方法【实验设备】1、装有IAR 开发环境的PC 机一台2、物联网开发设计平台所配备的基础实验套件一套3、下载器一个【实验要求】1、广播通信实验要求:在GenericApp 应用程序框架下,编写程序,使得协调器周期性以广播的形式向终端节点发送数据“Coord Broadcast”(每隔5s广播一次),终端节点收到数据后,使开发板上的LED红灯状态翻转(如果LED原来是亮,则熄灭LED;如果LED原来是灭的,则点亮LED),同时向协调器发送字符串“EndDevice received!”,协调器收到终端节点发回的数据后,通过串口输出到PC机,用户可以通过串口调试助手查看该信息。

设备:一个协调器,二个终端2、组播通信实验要求:在GenericApp 应用程序框架下,编写程序,使得协调器周期性的以组播的形式向路由器发送数据“Group1”(每隔5s发送组播数据一次),组内的路由器收到数据后,使开发板上的红色LED状态翻转(如果LED原来是亮,则熄灭LED;如果LED原来是灭的,则点亮LED),同时向协调器发送自己的网络短地址和字符串“Router received!”,协调器收到路由器发回的数据后,通过串口输出到PC 机,用户可以通过串口调试助手查看该信息。

设备:一个协调器,三个路由器,其中两个加入组,一个不加入组。

【实验原理】1.无线数据传输模式: 组播和广播(1)组播:主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。

优于zigbee的最新无线自组网多跳传输方案解析

优于zigbee的最新无线自组网多跳传输方案解析

DL-LN3X 系列 2.4G自组网无线通信模块DL-LN3X 系列模块是深联创新新晋推出的无线通信模块,该模块专为需要自动组网多跳传输的应用场合设计。

相对于其他常见的自组网无线通信解决方案,本方案更加灵活、可靠,可长期稳定工作;用户可以抛开复杂的协议栈和芯片手册,只需要掌握简单的串口通讯便可驾驭无线多跳传输。

产品特性●定向扩散型自组网协议⏹模块上电后会自动组成多跳网状网络,完全不需要用户干预。

⏹每个模块都可以给网络中任意一个节点发送数据。

⏹带有确认传输功能,无线传输使用 CRC 校验,最多重传 15次。

⏹网络中任何节点故障不影响整个网络的运行,具有很强的抗毁性。

⏹最大可支持 130个模块组成网络,模块地址可通过程序进行修改。

⏹单个包长可达 63字节,带有数据包缓冲机制。

●用户接口简单易学⏹使用 uart 作为交互接口,波特率可调⏹使用长度可变的包传输数据,使用安全的数据分包协议⏹支持端口分割机制●程序工作稳定⏹操作系统基于线程切片,工作稳定。

⏹使用内存池代替栈完成动态内存分配,长期工作不产生内存碎片。

●带有指示灯⏹模块带有收 /发包指示灯,可以选择开启或关闭。

⏹模块带有定位指示灯,可以远程点亮,方便寻找。

产品选型DL-LN33 使用印版天线可视距离通信单跳 70m 。

DL-LN32 使用 IPEX 接口可视距离通信单跳 100m 。

DL-LN32P 使用 IPEX 接口,并板载无线功放可视距离通信单跳 500m 。

1组网1.1组网通信概述DL-LN3X 模块是一种自组网多跳无线通信模块。

模块无线频率为2.4GHz~2.45GHz,属于全球免费的无线频段。

该模块工作时,会与周围的模块自动组成一个无线多跳网络,此网络为对等网络,不需要中心节点,网络包含以下可配置参数:表格 1-1模块网络参数将多个 DL-LN3X 模块配置成地址不相同,信道和网络 ID 相同的状态,模块将组成一个网络。

微控制器 (MCU 或者电脑通过 Uart 告诉模块目标地址和待发送的数据,模块会通过网络选择最优的路径,将信息传输给目标模块,而目标模块将通过Uart 输出源地址和上述的数据。

基于无线多跳网络的混合路由视频传输 (1).

基于无线多跳网络的混合路由视频传输 (1).

基于无线多跳网络的混合路由视频传输(1)1 引言:无线多跳网络是无线自组网、无线网状网、无线传感器网络的总称。

基于无线多跳网络上的视频传输已得到了广泛关注和研究,但所依赖的底层路由协议基本上是传统路由协议(如AODV,DSDV 等)。

近年来底层的路由协议有了新发展,文献[2]首次提出一种性能更好、被称作机会路由的协议ExOR(Extremely OpportuniSTic Routing)。

传统的无线多跳网络路由协议基本思路没有脱离有线网络,将节点之间人为地规定是否存在链路,并根1 引言:无线多跳网络是无线自组网、无线网状网、无线传感器网络的总称。

基于无线多跳网络上的视频传输已得到了广泛关注和研究,但所依赖的底层路由协议基本上是传统路由协议(如AODV,DSDV 等)。

近年来底层的路由协议有了新发展,文献[2]首次提出一种性能更好、被称作机会路由的协议ExOR(Extremely OpportuniSTic Routing)。

传统的无线多跳网络路由协议基本思路没有脱离有线网络,将节点之间人为地规定是否存在链路,并根据某种路由度量准则,选择最好的路由。

而机会路由协议认为无线电波的本质是广播的,利用广播性质所带来的增益,通过节点间的协作,获得了高于传统路由的带宽。

因此,从直观上,利用机会路由作为支持视频传输的底层路由协议会取得比传统路由协议更好的性能,但是机会路由为了获得这种增益而采取的调度机制在传输实时视频时会产生丢失部分I 帧的严重问题,使得视频传输的稳定性受到严重影响。

针对此问题,笔者提出一种综合利用传统路由和机会路由进行实时视频传输的跨层设计方法。

2 机会路由简介:传统的无线多跳网络的路由协议和有线网络中的路由协议十分相似,即在源节点和目的节点之间寻找1 组点形成1 条最优的路由,然后各节点依次转发数据。

路由上各个节点之间被人为地认为有1 条链路存在,因此并未有效利用无线电波的广播特性。

图1 机会路由原理演示图如图1,假设源节点到4 个中间节点n1,n2,n3,n4 的链路质量较差,且都是数据包发送1 次只有25%的概率可以收到,节点n1,n2,n3,n4 到目的节点的链路质量很好,且都是数据包发送1 次100%的概率可以收到。

ZigBee组网小实验1

ZigBee组网小实验1

ZigBee组网小实验1(实验所用程序在SampleApp基础上修改)终端经路由器入网:首先把协调器和两个终端的天线拔掉,以大幅减小传输距离,把两个终端放到稍远或障碍物多的地方,使协调器数据传输不到终端。

测试,两个终端入不了网。

然后把路由器放到协调器和终端中间某一处。

启动协调器,启动路由器,最后再启动两终端,测试,两个终端入网成功,网络地址分别为0x1430和0x1431,路由器网络地址为0x0001,协调器串口广播发送数据,路由器和两个终端成功接收到。

最后,再把路由器关闭,数据发送不成功,并且两终端的灯已经一闪一闪,与网络断开了。

各串口依次为:协调器/路由器/其中一个终端(路由器执行两次扫描入网)左那只:路由器右边两只:终端协调器:天线拔掉终端未经路由器入网:节点保持原来位置,但把协调器和两个终端的天线重新安上,以增加传输距离。

启动协调器,启动路由器,最后再启动两终端,测试,两终端入网成功,网络地址分别为0x796F和0x79 70,路由器网络地址为0x0001,协调器串口广播发送数据,路由器和两个终端成功接收到。

把路由器关闭,协调器串口广播发送数据,两终端同样成功接收。

各串口依次为:协调器/路由器/其中一个终端(路由器执行两次扫描入网)用无线龙的网络监控软件来查看拓扑图,不过因为电脑上串口的原因,监控软件只有com1~com9,而我这小电脑上经常是com10+,因此调整下相应模块的节点类型,然后下载与其配套的<C51RF-WSN无线传感器网络演示程序>的SampleApp例子再次组网,以下拓扑图不代表上面两种网络。

协调器和绿色网络线连接的那个路由器都是无线龙的两块老板子,明显很扛的!~图1:两个终端经过路由器入网(把模块的天线拔了,信号强度明显下降,网络线呈红色)图2:两个终端未经路由器入网三块蜂舞的CC2430模块,其中有一块组网入网极其慢,至少都十五秒以上,而那三块电源板,供电不稳,接触不良,最纠结的是因电源板的问题导致2430模块会乱发数据,同样程序的模块放蜂舞那扩展底板上很稳定,一换电源板上就尽情抽风,初步测试了下应该是串口引脚问题,把程序应用层中串口数据处理注释掉,很稳定。

基于ZigBee多跳组播实验.

基于ZigBee多跳组播实验.

6.6 ZigBee多跳组播在实际生活应用中,读者可能会遇到这样的问题:需要对特定的工程对象实现分组管理。

如在医院中的医疗病房中,病人患病情况类型是不同的,年龄组分布也不尽相同。

如果需要对特定分组的患者利用ZigBee网络通知相关消息,组播技术可以很方便地完成上述任务。

ZigBee网络中的节点分组,只有相同组号的组员才能收到每一个组员发出的消息。

即工作组内设备可以接收组播数据包,而组外设备将无法接收,可实现对特定设备的分组管理。

本节我们在TI官方例程SampleApp的基础上,定义了两个不同的分组对象。

设备可以通过按键选择加入特定分组,并且可以同时存在两个分组中。

当组内设备接收到按键组播消息后,连接在设备上的蜂鸣器发出“滴滴滴滴”的声音,并且LED灯闪烁,表示接收到组播消息。

实验目的与器材1)实验目的◆学习ZigBee协议的组播技术。

◆加深对Z-Stack2007/Pro协议栈的应用层流程认识。

◆学会使用蜂鸣器,并利用LED灯控制函数控制蜂鸣器。

2)实验器材◆4个CC2530开发套件(1个协调器模块,3个路由器模块)。

◆4个蜂鸣器。

实验原理与步骤1.硬件介绍1)蜂鸣器蜂鸣器是一种结构非常简单的电子讯响器,采用直流电压供电,常被用于电子产品中的如图所示,蜂鸣器的工作原理非常简单,主要由发声器、三极管和电阻组成。

单片机I/O驱动能力不能够使蜂鸣器发音。

所以,三极管用来放大驱动电流。

如果电阻R输出是高电平,三极管导通,集电极的电流能够使得蜂鸣器发声。

当输出为低电平,三极管截止,蜂鸣器没有电流通过,不会发声。

如果输出为方波,通过控制方波的频率,蜂鸣器也能够产生简单的音乐。

2.程序流程组播通信寻址使用16 位多播组I D完成。

多播组是所有已登记在同一个多播组ID 下节点的集合。

一个多播信息发送给一个特定的目标组,即多播表中该组ID 所列的所有设备。

组播数据帧既可以由目标多播组的成员在网络中传播,也可以由非目标多播组成员在网络中传播。

基于Zigbee3.0技术的4G DTU数传电台工作模式详解

基于Zigbee3.0技术的4G DTU数传电台工作模式详解

Zigbee数传电台的工作原理及配置参数详解本文依据基于亿佰特Zigbee3.0技术专利研发生产的zigbee数传电台的工作原理、工作模式、相关参数配置等内容做详解介绍,具体zigbee DTU数传电台工作原理配置如下:Zigbee3.0数传电台传输模式当模块进入传输模式后,串口接收到的任何数据都将被无线发送出去,传输模式就是网络节点间进行无线通信,其通信的方式包括单播、广播、组播等。

传输模式一共有4种,第一种是普通传输,该模式下传输成功会返回“OK”,传输丢包或数据错误会返回“ERRO”或“FAIL”,“BUSY”等错误,且模组掉线或异常时有系统logo输出;第二种是无应答传输,该模式下传输成功不返回任何消息,但是传输失败或传输错误,或者模组掉线会打印错误提醒;第三种是无打印模式,模组在连接正常的情况下会把串口收到的任何数据发送给指定目标,模组传输失败或者模组异常时不返回任何消息;第四种是Modbus主机模式,该模式下模组串口收到的数据帧第一个字节为Modbus ID,且传输时不会有任何正常或异常的打印消息,该模式下需要设置从机的Modbus ID,且需要从机绑定主机,建议该模式仅在协调器或者路由器上使用。

Zigbee3.0数传电台HEX指令模式(配置模式)当模块进入HEX指令模式后,串口接收的数据都默认为HEX指令,如果发送的串口数据不符合HEX指令格式会被设备自动过滤掉,对设备进行功能配置和操作,在HEX指令模式下,模块串口收到的数据均认为是HEX指令。

具体HEX指令详情可以在官网下载《亿佰特ZigBee 3.0模组HEX命令标准规范》。

Zigbee3.0数传电台AT指令模式AT指令模式是传输模式下的一种特殊模式,传输模式下的设备如果没有配网,重新上电后会进入AT指令模式。

而在AT模式下成功配网的设备,重启后自动进入传输模式。

Zigbee3.0数传电台模式切换模块上电初始化默认为HEX指令模式。

zigbee网络通讯实验(单播、组播、广播)

zigbee网络通讯实验(单播、组播、广播)

其中 Group_DstAddr 我们之前已经定义,我们在 SampleApp.h 中加入 WEBEE_GROUP_CLUSTERID 的定义如下(图 15 所示):
#define WEBEE_GROUP_CLUSTERID 4 //传输编号
图 14
11
WeBee 团队
Zigbee 组网实验教程
图 15 接下来为了测试我们的程序,我们把“1 小时实现数据传输”中 SampleApp.c 文件中的 SampleApp_SendPeriodicMessage();函数替换成我们刚刚建立的组 播发送函数 SampleApp_SendGroupMessage();;这样的话就能实现周期性组播发 送数据了(图 16 所示)。
uint8 data[10]={0,1,2,3,4,5,6,7,8,9}; if ( AF_DataRequest( & Group_DstAddr,
&SampleApp_epDesc, WEBEE_GROUP_CLUSTERID, 10, data, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) { } else { // Error occurred in request to send. } }
uint8 data[10]={0,1,2,3,4,5,6,7,8,9}; if ( AF_DataRequest( &Point_To_Point_DstAddr,
&SampleApp_epDesc, SAMPLEAPP_POINT_TO_POINT_CLUSTERID, 10, data, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) { } else { // Error occurred in request to send. } }

基于ZigBee网络的多跳图像传输系统的设计

基于ZigBee网络的多跳图像传输系统的设计
可以在很 多领域得到广泛应 用。 关键词 : 多媒体传感器网络 ; i e 协议 ; Zg e B 多跳 ; 图像传输
中 图分 类 号 : P 1 文 献 标 识 码 : 文 章 编 号 :0 9 3 4 (0 22 — 3 9 0 T 22 A 1 0 — 0 42 1 )2 5 2 — 5
(. o eeo c ne Naj g Un esy o ot ad T l o 1C H g f i c, ni i rt fP s n e cmmu i t n, nig2 0 4 hn ; .i guHihT cn lg — Se n v i s e nc i s Naj 1 0 6C ia 2 Ja s g eh oo y ao n n Re
Ab t a t n t i p p r rl s i g rn mi i n s s m a e n ZiBe ewo k h sb e r p s d Th y tm o s t o r e s r c :I h s a e ,a wiees ma e ta s s o y t s e b sd o g e n t r a e n p o o e . e s se c n i s ft e s h
摘 要 : 文提 出 了基 于 zg e 网 络 的 多跳 图像 传 输 系统 的 设 计 , 系统 由 三部 分 组 成 , 图像 采 集 模 块 , 由传 输 模 块 和 图像 接 收 该 i e B 该 即 路 模 块。C MOS 像 头 和 CC 4 0片上 系 统 构 成 了 图像 传 输 系统 的 采 集 节 点 , 用 M e 摄 22 利 s 网 络 的 自组 织 和 自愈 功 能 , 系统 允 许 多 h型 该 节点采集 , 并且远 端的节点信 息可以通过“ 多跳 ” 的方式到达终 端设 备。此 外 , 多跳 图像 传输 系统具有设 计简单 、 该 易于安装、 价 低

多跳无线网络中基于节点编码感知的组播路由协议

多跳无线网络中基于节点编码感知的组播路由协议

多跳无线网络中基于节点编码感知的组播路由协议姚玉坤;朱丽青;余志龙;徐亚伟;陈曦【摘要】针对在编码感知组播路由协议CAMR中存在中间转发节点因计算编码流对不完全且有错误而导致不能充分发现节点的编码机会,以及RREQ请求分组中存在冗余开销和编码感知度量值重复计算等问题,提出一种适用于多跳无线网络的节点编码感知组播路由协议(node network coding aware multicast routing protocol,NAMP).NAMP协议对节点编码流对算法进行了优化,以保证所计算出的编码流对具有可解性和完整性.在路由请求阶段,该协议去掉了RREQ分组中因循环添加中间节点的邻居信息和丢包率信息而产生的冗余信息,在路由回复阶段,该协议优化了中间节点收到多个RREP分组的回复方式,在不影响原有数据传输功能的前提下减小了网络开销.仿真结果表明:与CAMR和MAODV两种现有协议相比,NAMP协议提高了网络吞吐量,降低了网络控制开销,其中平均吞吐量提高了25.6%,网络控制开销降低了8.1%.【期刊名称】《西安交通大学学报》【年(卷),期】2015(049)010【总页数】6页(P79-83,89)【关键词】多跳无线网络;网络编码;编码感知;编码流对;平均吞吐量;控制开销【作者】姚玉坤;朱丽青;余志龙;徐亚伟;陈曦【作者单位】重庆邮电大学移动通信技术重庆市重点实验室,400065,重庆;重庆邮电大学移动通信技术重庆市重点实验室,400065,重庆;重庆邮电大学移动通信技术重庆市重点实验室,400065,重庆;重庆邮电大学移动通信技术重庆市重点实验室,400065,重庆;重庆邮电大学移动通信技术重庆市重点实验室,400065,重庆【正文语种】中文【中图分类】TP393香港中文大学的Ahlswede等在2000年首次提出网络编码的概念[1],通过网络编码可以达到网络信息传输的理论最大值,在此基础上,人们研究发现在无线多跳网络中能够提前预测节点有无编码机会以及编码能力的大小,这种提前预测的方法称为编码感知,近年来得到了学者的高度关注。

ZIGBEE点播、组播、广播模式

ZIGBEE点播、组播、广播模式

zigbee单播、组播、广播单播:按照协议栈示例GenericApp中的用法:单播有两种方式一种是绑定传输,一种是直接指定目标地址的单播传输按照如下步骤:1.设定发送的目标地址GenericApp_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent;GenericApp_DstAddr.endPoint = 0;GenericApp_DstAddr.addr.shortAddr = 0;设定发送的目标地址,这里地址模式AddrNotPresent,即按照绑定的方式进行单播,不需要指定目标地址,需要先将两个设备绑定,将两个设备绑定后即可通信还有另外三种传送方式,如下:enum{AddrNotPresent = 0,//按照绑定表进行绑定传输AddrGroup = 1,//组播传输Addr16Bit = 2,//指定目标网络地址进行单播传输Addr64Bit = 3,//指定IEEE地址进行单播传输AddrBroadcast = 15//广播传输};2.注册端点描述符// Fill out the endPoint description.GenericApp_epDesc.endPoint = GENERICAPP_ENDPOINT;GenericApp_epDesc.task_id = &GenericApp_TaskID;GenericApp_epDesc.simpleDesc= (SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc; GenericApp_tencyReq = noLatencyReqs;// Register the endpoint description with the AFafRegister( &GenericApp_epDesc );3.在需要发送数据的地方,执行如下代码:if ( AF_Datarequest( &GenericApp_DstAddr, &GenericApp_epDesc, GENERICAPP_CLUSTERID,(byte)osal_strlen( theMessageData ) + 1,(byte *)&theMessageData,&GenericApp_TransID,AF_DISCV_RoutE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){// Successfully requested to be sent.}else{// Error occurred in request to send.}注意GENERICAPP_CLUSTERID必须为对方的输入cluster,且两方的简单描述符中的profileID必须一致4.在接收设备任务循环中检测AF_INCOMING_MSG_CMD事件:afIncomingMSGPacket_t结构的数据包进行处理afIncomingMSGPacket_t结构如下:typedef struct{osal_event_hdr_t hdr;uint16 groupId;uint16 clusterId;afAddrType_t srcAddr;byte endPoint;byte wasBroadcast;byte LinkQuality;byte SecurityUse;uint32 timestamp;afMSGCommandFormat_t cmd;} afIncomingMSGPacket_t;其中afMSGCommandFormat_t结构如下:typedef struct{byte TransSeqNumber;uint16 DataLength; // Number of bytes in TransData byte *Data;} afMSGCommandFormat_t; //提取出Data即可组播:按照SampleApp实验,组播的实现需要如下步骤:1.声明一个组对象aps_Group_t SampleApp_Group;2.对aps_Group_t结构体赋值,示例如下:// By default, all devices start out in Group 1SampleApp_Group.ID = 0x0003;osal_memcpy( SampleApp_, "Group 3", 7 );3.设定通信的目标地址,示例如下:// Setup for the flash command's destination address - Group 1SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;4.注册端点描述符,示例如下:// Fill out the endpoint description.SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;SampleApp_epDesc.task_id = &SampleApp_TaskID;SampleApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t*)&SampleApp_SimpleDesc; SampleApp_tencyReq = noLatencyReqs; // Register the endpoint description with the AFafRegister( &SampleApp_epDesc );5.在本任务里将端点加入到组中,示例如下:aps_AddGroup( SAMPLEAPP_ENDPoint, &SampleApp_Group );6.按照组播地址向对方发送数据,示例如下:if ( AF_Datarequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,1,(uint8*)&SampleAppPeriodicCounter,&SampleApp_TransID,AF_DISCV_RoutE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){ } else{ // Error occurred in request to send. }通信时候,发送设备的输出cluster设定为接收设备的输入cluster,另外profileID设定相同,即可通信7.对数据的处理与单播的实现一样8.若要把一个设备加入到组中的端点从组中移除,调用aps_RemoveGroup即可,示例如下:aps_Group_t *grp;grp = aps_FindGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );if ( grp ){ // Remove from the groupaps_RemoveGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );}广播:按照SampleApp,执行如下步骤即可1.声明afAddrType_t 的变量SampleApp_Periodic_DstAddr;2.设定目标地址变量为广播地址,示例如下:SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;3.进行数据发送,示例如下:if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc, SAMPLEAPP_PERIODIC_CLUSTERID,1,(uint8*)&SampleAppPeriodicCounter,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){ } else{ // Error occurred in request to send.}通信时候,发送设备的输出cluster设定为接收设备的输入cluster,另外profileID设定相同,即可通信4.对数据的处理与单播的实现一样。

优于zigbee的最新无线自组网多跳传输方案

优于zigbee的最新无线自组网多跳传输方案

DL-LN3X 系列 2.4G自组网无线通信模块DL-LN3X系列模块是深联创新新晋推出的无线通信模块,该模块专为需要自动组网多跳传输的应用场合设计。

相对于其他常见的自组网无线通信解决方案,本方案更加灵活、可靠,可长期稳定工作;用户可以抛开复杂的协议栈和芯片手册,只需要掌握简单的串口通讯便可驾驭无线多跳传输。

产品特性●定向扩散型自组网协议⏹模块上电后会自动组成多跳网状网络,完全不需要用户干预。

⏹每个模块都可以给网络中任意一个节点发送数据。

⏹带有确认传输功能,无线传输使用CRC校验,最多重传15次。

⏹网络中任何节点故障不影响整个网络的运行,具有很强的抗毁性。

⏹最大可支持130个模块组成网络,模块地址可通过程序进行修改。

⏹单个包长可达63字节,带有数据包缓冲机制。

●用户接口简单易学⏹使用uart作为交互接口,波特率可调⏹使用长度可变的包传输数据,使用安全的数据分包协议⏹支持端口分割机制●程序工作稳定⏹操作系统基于线程切片,工作稳定。

⏹使用内存池代替栈完成动态内存分配,长期工作不产生内存碎片。

●带有指示灯⏹模块带有收/发包指示灯,可以选择开启或关闭。

⏹模块带有定位指示灯,可以远程点亮,方便寻找。

产品选型DL-LN33 使用印版天线可视距离通信单跳70m。

DL-LN32 使用IPEX接口可视距离通信单跳100m。

DL-LN32P 使用IPEX接口,并板载无线功放可视距离通信单跳500m。

1组网1.1组网通信概述DL-LN3X模块是一种自组网多跳无线通信模块。

模块无线频率为2.4GHz~2.45GHz,属于全球免费的无线频段。

该模块工作时,会与周围的模块自动组成一个无线多跳网络,此网络为对等网络,不需要中心节点,网络包含以下可配置参数:表格 1-1模块网络参数将多个DL-LN3X模块配置成地址不相同,信道和网络ID相同的状态,模块将组成一个网络。

微控制器(MCU)或者电脑通过Uart告诉模块目标地址和待发送的数据,模块会通过网络选择最优的路径,将信息传输给目标模块,而目标模块将通过Uart输出源地址和上述的数据。

基于无线传感器网络_ZigBee协议多跳语音通信结点设计_刘洲洲

基于无线传感器网络_ZigBee协议多跳语音通信结点设计_刘洲洲

图1 多跳网络通信示意图图2 多节点广播通信示意图
Mesh网络最简单的多跳路由算法就是多跳广播通信技术。

目前还有很多其它类型的多跳路由算法,然而它们大多数也都建立在广播通信基础之上。

多跳广播通信机制如图2所示。

图2中,节点a1和节点b1分别是数据包的源节点和目的节点,节点a1发送广播数据之后,经过节点a和节个DA转换器以及比较器、电源监视
器等。

自制的无线通信节点采用两节
5号电池供电,电压不低于2.6V,节
点通信距离小于100米。

系统节点数
目为4~10个,网络拓扑为多跳Mesh
网络,采用多跳广播路由通信技术。

节点采用wm8510语音处理芯片进行
音频采样和处理,WM8510芯片是一
给射频芯片发送出去,同时对来自
JN5139/5148的数字语音数据进行DA
转换还原成模拟语音信号,并发送到
扬声器还原出音频。

系统层次结构
节点软件分为三个部分,分别是
组网与传输模块、语音处理模块及辅
图3 单节点系统结构示意图图4 节点层次结构示意图。

低功耗多跳自组织Zigbee传输系统设计技术

低功耗多跳自组织Zigbee传输系统设计技术

低功耗多跳自组织Zigbee传输系统设计技术随着无线通信技术和传感器技术的进步,加速了无线传感器网络的快速发展,人们对于高可靠,低价位,高容量的无线网络协议的需求更加迫切。

传统的有线通信方式成本高昂,检修不便,容易受到腐蚀,使得无线通信方式成为人们的首选。

同时,一般常见的无线通信协议并不具备多跳传输的特点,不支持自有扩展,其自恢复能力比较差。

而Zigbee在具备低功耗,自组织,节点高扩展性特点的同时还具有良好的容错能力和自恢复能力。

本文的任务是设计基于Zigbee协议的传输系统并搭建适用于岩土工程监测的无线传感器网络以替代传统的RS485有线通信方式。

根据传输系统设计的目标要求选用Zigbee协议来完成传输系统的设计。

应用Zigbee协议可以很好的实现传输系统低功耗,自组织和多跳的目标。

为了实现数据的多跳传输,利用Zigbee 自有的组播方式来实现,节点低功耗方面在硬件和软件两方面进行优化,为了提高传输系统的实用性,增加了距离提示功能。

按照通信系统以及嵌入式系统设计的一般原则,对传输系统设计过程中涉及的相关技术进行了的叙述。

传输系统的运行离不开合适的软硬件平台,硬件方面结合节点的工作特点设计核心板和外围扩展板电路,选用MAX485芯片来完成信号转换电路的设计;软件方面,在Z-Stack协议栈下完成相关软件的开发工作。

基于传输系统实际应用的考虑,重点完成了传输系统组网通信协议的设计与实现以及距离提示功能的实现。

最后对所设计的传输系统进行了实际测试,分别测试了传感器模块、信号转换电路模块、数据收发电路模块等,并对传输系统的性能进行了分析。

测试结果表明,本文所设计的传输系统能够正确的将上位机指令多跳传达到指定的传感器,并且传感器也将数据准确的上传到上位机,实现了设计目标。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.6 ZigBee多跳组播在实际生活应用中,读者可能会遇到这样的问题:需要对特定的工程对象实现分组管理。

如在医院中的医疗病房中,病人患病情况类型是不同的,年龄组分布也不尽相同。

如果需要对特定分组的患者利用ZigBee网络通知相关消息,组播技术可以很方便地完成上述任务。

ZigBee网络中的节点分组,只有相同组号的组员才能收到每一个组员发出的消息。

即工作组内设备可以接收组播数据包,而组外设备将无法接收,可实现对特定设备的分组管理。

本节我们在TI官方例程SampleApp的基础上,定义了两个不同的分组对象。

设备可以通过按键选择加入特定分组,并且可以同时存在两个分组中。

当组内设备接收到按键组播消息后,连接在设备上的蜂鸣器发出“滴滴滴滴”的声音,并且LED灯闪烁,表示接收到组播消息。

实验目的与器材1)实验目的◆学习ZigBee协议的组播技术。

◆加深对Z-Stack2007/Pro协议栈的应用层流程认识。

◆学会使用蜂鸣器,并利用LED灯控制函数控制蜂鸣器。

2)实验器材◆4个CC2530开发套件(1个协调器模块,3个路由器模块)。

◆4个蜂鸣器。

实验原理与步骤1.硬件介绍1)蜂鸣器蜂鸣器是一种结构非常简单的电子讯响器,采用直流电压供电,常被用于电子产品中的如图所示,蜂鸣器的工作原理非常简单,主要由发声器、三极管和电阻组成。

单片机I/O驱动能力不能够使蜂鸣器发音。

所以,三极管用来放大驱动电流。

如果电阻R输出是高电平,三极管导通,集电极的电流能够使得蜂鸣器发声。

当输出为低电平,三极管截止,蜂鸣器没有电流通过,不会发声。

如果输出为方波,通过控制方波的频率,蜂鸣器也能够产生简单的音乐。

2.程序流程组播通信寻址使用16 位多播组I D完成。

多播组是所有已登记在同一个多播组ID 下节点的集合。

一个多播信息发送给一个特定的目标组,即多播表中该组ID 所列的所有设备。

组播数据帧既可以由目标多播组的成员在网络中传播,也可以由非目标多播组成员在网络中传播。

数据包发送由数据包的一个地址模式标志指明,确定转发到下一跳的方式。

如果原始信息由组的成员创建,就被视为处于“成员模式”,按广播方式转发。

如果原始信息不是组成员设备创建,就被视为处于“非成员模式”,按单播方式转发一个组成员。

如果一个非成员信息到达目标组的任何成员,不管下一个数据包由哪个设备进行转发,就会立即转换为成员模式类型。

实现组播通信,首先,要对组对象进行定义和初始化,将设备加入到特定组中,然后,向特定设备组发送组播消息,最后组内成员接收到消息后,进行相应消息处理。

1)组对象初始化组播网络中,设备发出的消息经过组寻址才会发到具有相同组号的组员设备中。

组号用来标记设备所属的组,而组寻址需要定义组播地址。

(1).在SampleApp.h中定义两者的组ID,以标记设备所属的组。

#define SAMPLEAPP_FLASH_GROUP1 0x0001#define SAMPLEAPP_FLASH_GROUP2 0x0002(2)在程序SampleApp.c文件的SampleApp_Init函数中定义两个组对象并进行简单初始化,主要包括组的ID和组名字。

aps_Group_t SampleApp_Group1;//定义组1和组2对象aps_Group_t SampleApp_Group2;//组1初始化SampleApp_Group1.ID = 0x0001;osal_memcpy( SampleApp_, "Group 1", 7 );//组2初始化SampleApp_Group2.ID = 0x0002;//osal_memcpy( SampleApp_, "Group 2", 7 );(3)组播地址定义。

组播通信过程中,网络中节点是通过使用组地址进行网络寻址,并能够向特定分组节点传递消息。

组播数据包应该具有设备寻址的地址模式、所属任务的端点号和组号。

组1地址定义以及初始化为://定义组1地址afAddrType_t SampleApp_Flash_DstAddr_Group1;//设置地址模式为组播SampleApp_Flash_DstAddr_Group1.addrMode = (afAddrMode_t)afAddrGroup;SampleApp_Flash_DstAddr_Group1.endPoint = SAMPLEAPP_ENDPOINT;//设置组地址为组1 ID号SampleApp_Flash_DstAddr_Group1.addr.shortAddr = SAMPLEAPP_FLASH_GROUP1;2)设备入组/离开组(1).在ZigBee 网络实现组播通信时,设备加入组是通过设备端点加入到工作组中。

aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );初始情况下,编者将设备都加入到了组1和组2中:aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group1 );aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group2);#if defined ( LCD_SUPPORTED )HalLcdWriteString( "GROUP 1+2", HAL_LCD_LINE_6 );#endif(2).将一个设备从工作组中移除,将该端点依据组ID号将其从组中移除。

aps_RemoveGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );(3).使用aps_FindGroup函数判断一设备端点SAMPLEAPP_ENDPOINT是否在组ID 号为SAMPLEAPP_FLASH_GROUP的组中。

grp = aps_FindGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );读者可以在按键函数(SampleApp_HandleKeys)中利用这三个函数实现设备入组、退组、以及组间切换。

3)向特定组发送消息设备在按键函数中调用SampleApp_SendFlashMessage()函数来发送消息。

本例中,为了实现对不同分组函数控制,编者加入了组号“SAMPLEAPP_FLASH_GROUP”参数:SampleApp_SendFlashMessage(uint16 flashTime,uint8 SAMPLEAPP_FLASH_GROUP)该函数中调用AF_DataRequest()函数进行数据收发,下面是向组1设备发送消息的语句:if ( AF_DataRequest( &SampleApp_Flash_DstAddr_Group1, &SampleApp_epDesc,SAMPLEAPP_FLASH_CLUSTERID,3,buffer,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) {}AF_DataRequest()函数中需要定义ZigBee设备完整地址,包括网络地址以及端点地址、源端点描述符、发送端Cluster ID、数据以及数据长度等。

4)组设备接收到消息,并进行相应处理节点接收到其他节点设备到来的数据后,应用层任务事件处理函数调用SampleApp_MessageMSGCB()回调函数将进行处理。

回调函数根据到来数据包的Cluster ID判断数据类型,如果Cluster ID为SAMPLEAPP_FLASH_CLUSTERID,设备蜂鸣器和LED 会进行相关数据包接收指示操作:SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ){switch ( pkt->clusterId ){case SAMPLEAPP_FLASH_CLUSTERID:flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );HalLedBlink(HAL_LED_4,4,50,(flashTime/4));//蜂鸣器HalLedBlink(HAL_LED_2, 4, 50, (flashTime / 4) );//LED灯闪}}这里,编者并没有针对蜂鸣器编写驱动函数,而是直接利用LED4 Blink函数进行操作。

与LED灯闪类似,蜂鸣器会响四次,每次周期蜂鸣器响的百分比为50%,每个周期时间为flashTime / 4。

这是由于LED灯和蜂鸣器工作都是由于电平使能的。

原来芯片引脚到LED4的电平加到蜂鸣器的引脚上。

由此,读者可以联想下单片机基本的编程操作方式。

3)实验步骤组播实验使用四个节点设备,分别编号为节点1,2,3,4。

首先将蜂鸣器接到节点模块上,与原来连接灯LED4的芯片引脚P10相连。

节点初始时,节点既加入到组1,又加入到组2中。

经过按键选择分组后,节点1为协调器,既在组1,又在组2中。

节点2在组1中,节点3在组2中,节点4既在组1,又在组2中。

第一步:按照程序说明将源代码目录下的SampleApp.c和SampleApp.h替换SampleApp 目录下的同名文件。

CoordinatorEB下载到节点1,RouterEB下载到节点2,3,4中。

第二步:1)按下节点1(协调器)的重启键,LCD屏会显示网络号,LED3(黄灯)长亮时说明网络建立成功;2)分别按下节点2,3,4的重启键。

等到LED3(黄灯)长亮,并且屏幕上出现设备类型和地址时,说明已与协调器节点建立连接。

3)连续按节点2的SW2(右键),直到节点屏幕上出现“GROUP1”字样,代表节点2只加入到组1中。

4)连续按节点3的SW2(右键),节点屏幕上出现“GROUP2”字样,代表节点3只加入到组2中。

5)节点4不用按键,节点4默认在组1和组2中。

第三步:按节点1(协调器)的SW1(上键),节点1屏幕上出现“MSG 2 GROUP1”字样,代表向组1中发送按键消息。

这时,节点2和节点4的蜂鸣器会发出“滴滴滴滴”的声音,并且其LED2闪亮四次。

第四步:按节点1的SW3(下键),节点1的屏幕上出现“MSG 2 GROUP2”字样,代表向组2中发送按键消息。

这时,节点3和节点4的蜂鸣器会发出“滴滴滴滴”的声音,并且其LED2闪亮四次。

4)程序清单清单6.1 按键处理函数/****************************************************************************** * 函数名 SampleApp_HandleKeys* 描述按键处理函数,主要完成组消息发送,组间切换。

相关文档
最新文档