Zigbee 技术综合探究论文.docx
- 文档编号:18011895
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:20
- 大小:598.18KB
Zigbee 技术综合探究论文.docx
《Zigbee 技术综合探究论文.docx》由会员分享,可在线阅读,更多相关《Zigbee 技术综合探究论文.docx(20页珍藏版)》请在冰豆网上搜索。
Zigbee技术综合探究论文
Zigbee技术综合探究
一Zigbee简介
1.1ZigBee定义
物联网的定义是:
通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现物体的智能化识别、定位、跟踪、监控和管理的一种网络。
无线传感网络的定义是:
大规模,无线、自组织、多跳、无分区、无基础设施支持的网络。
其中的节点是同构的、成本较低、体积较小,大部分节点不移动,被随意撒布在工作区域,求网络系统有尽可能长的工作时间。
在通信方式上,虽然可以采用有线、无线、红外和光等多种形式,但一般认为短距离的无线低功率通信技术最适合传感器网络使用,为明确起见,一般称无线传感器网络(WSN.WirelessSensorNetwork)。
Zigbee是IEEE802.15.4协议的代名词。
根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。
这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群中的通信网络。
其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。
主要合用于自动控制和远程控制领域,可以嵌入各种设备。
简而言之,ZigBee就是一种便宜的,功耗的近距离无线组网通讯技术。
无线传感网络的无线通信技术可以采用ZigBee技术、蓝牙、Wi-Fi和红外等技术。
ZigBee技术是一种短距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术或无线网络技术,是一组基于IEEE802.15.4无线标准研制开发的组网、安全和应用软件方面的通信技术。
协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:
由上层协议到底层协议,再由底层协议到上层协议。
使用最广泛的是英特网协议栈,由上到下的协议分别是:
应用层(HTTP,TELNET,DNS,EMAIL等),运输层(TCP,UDP),网络层(IP),链路层(WI-FI,以太网,令牌环,FDDI等),物理层。
ZigBee的技术特性决定它将是无线传感器网络的最好选择,广泛用于物联网,自动控制和监视等诸多领域。
以美国德州仪器TI公司CC2430/CC2530芯片为代表的ZigbeeSOC解决方案在国内高校企业掀起了一股Zigbee技术应用的热潮。
CC2430/CC2530集成了51单片机内核,相比于众多的Zigbee芯片,CC2430/CC2530颇受青睐。
CC2530提供了101dB的链路质量,优秀的接收器灵敏度和健壮的抗干扰性,四种供电模式,多种闪存尺寸,以及一套广泛的外设集—包括2个USART、12位ADC和21个通用GPIO,以及更多。
除了通过优秀的RF性能、选择性和业界标准增强8051MCU内核,支持一般的低功耗无线通信,CC2530还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI,Z-Stack或SimpliciTI)来简化开发,使你更快的获得市场。
CC2530可以用于的应用包括远程控制、消费型电子、家庭控制、计量和智能能源、楼宇自动化、医疗以及更多领域。
1.2IEEE802.15.4标准概述
IEEE802.15.4是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks,LR-WPAN)标准。
该标准定义了物理层(PHY)和介质访问控制层(MAC)。
这种低速率无线个人局域网的网络结构简单、成本低廉、具有有限的功率和灵活的吞吐量。
低速率无线个人局域网的主要目标是实现安装容易、数据传输可靠、短距离通信、极低的成本、合理的电池寿命,并且拥有一个简单而且灵活的通信网络协议。
LR-WPAN网络具有如下特点:
◆实现250kb/s,40kb/s,20kb/s三种传输速率。
◆支持星型或者点对点两种网络拓扑结构。
◆具有16位短地址或者64位扩展地址。
◆支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance,CSMA-CA)。
◆用于可靠传输的全应答协议。
◆低功耗。
◆能量检测(EnergyDetection,ED)。
◆链路质量指示(LinkQualityIndication,LQI)。
◆在2450MHz频带内定义了16个通道;在915MHz频带内定义了10个通道;在868MHz频带内定义了1个通道。
为了使供应商能够提供最低可能功耗的设备,IEEE(InstituteofElectricalandElectronicsEngineers,电气及电子工程师学会)定义了两种不同类型的设备:
一种是完整功能设备(full.functionaldevice,FFD),另一种是简化功能设备(reduced.functionaldevice,RFD)。
1.3ZigBee协议体系结构
ZigBee协议栈建立在IEEE802.15.4的PHY层和MAC子层规范之上。
它实现了网络层(networklayer,NWK)和应用层(applicationlayer,APL)。
在应用层内提供了应用支持子层(applicationsupportsub—layer,APS)和ZigBee设备对象(ZigBeeDeviceObject,ZDO)。
应用框架中则加入了用户自定义的应用对象。
ZigBee的体系结构由称为层的各模块组成。
每一层为其上层提供特定的服务:
即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。
ZigBee协议的体系结构如下图所示:
物理层(PHY)
物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。
物理层内容:
1)ZigBee的激活;
2)当前信道的能量检测;
3)接收链路服务质量信息;
4)ZigBee信道接入方式;
5)信道频率选择;
6)数据传输和接收。
介质接入控制子层(MAC)
MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。
MAC层功能:
1)网络协调器产生信标;
2)与信标同步;
3)支持PAN(个域网)链路的建立和断开;
4)为设备的安全性提供支持;
5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;
6)处理和维护保护时隙(GTS)机制;
7)在两个对等的MAC实体之间提供一个可靠的通信链路。
网络层(NWK)
ZigBee协议栈的核心部分在网络层。
网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。
网络层功能:
1)网络发现;
2)网络形成;
3)允许设备连接;
4)路由器初始化;
5)设备同网络连接;
6)直接将设备同网络连接;
7)断开网络连接;
8)重新复位设备;
9)接收机同步;
10)信息库维护。
应用层(APL)
ZigBee应用层框架包括应用支持层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。
应用支持层的功能包括:
维持绑定表、在绑定的设备之间传送消息。
ZigBee设备对象的功能包括:
定义设备在网络中的角色(如ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。
ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。
ZigBee应用层除了提供一些必要函数以及为网络层提供合适的服务接口外,一个重要的功能是应用者可在这层定义自己的应用对象。
应用程序框架(AF):
运行在ZigBee协议栈上的应用程序实际上就是厂商自定义的应用对象,并且遵循规范(profile)运行在端点1~240上。
在ZigBee应用中,提供2种标准服务类型:
键值对(KVP)或报文(MSG)。
ZigBee设备对象(ZDO):
ZigBee设备对象(ZDO)的功能包括负责定义网络中设备的角色,如:
协调器或者终端设备。
还包括对绑定请求的初始化或者响应,在网络设备之间建立安全联系等。
实现这些功能,ZDO使用APS层的APSDE-SAP和网络层的NLME-SAP。
ZDO是特殊的应用对象,它在端点(entire)0上实现。
远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调用配臵对象获取相应描述符值。
二ZigBee基本概念
2.1设备类型(DeviceTypes)
在ZigBee网络中存在三种逻辑设备类型:
Coordinator(协调器),Router(路由器)和End-Device(终端设备)。
ZigBee网络由一个Coordinator以及多个Router和多个End_Device组成。
上图是一个简单的ZigBee网络示意图。
其中红色节点为Coordinator,黄色节点为Router,绿色节点为End-Device。
2.1.1Coordinator(协调器)
协调器负责启动整个网络。
它也是网络的第一个设备。
协调器选择一个信道和一个网络ID(也称之为PANID,即PersonalAreaNetworkID),随后启动整个网络。
协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。
注意,协调器的角色主要涉及网络的启动和配臵。
一旦这些都完成后,协调器的工作就像一个路由器(或者消失goaway)。
由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。
2.1.2Router(路由器)
路由器的功能主要是:
允许其他设备加入网络,多跳路由和协助它自己的由电池供电的终端设备的通讯。
通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。
但是当使用树状网络拓扑结构时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。
2.1.3End-Device(终端设备)
终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。
通常,终端设备对存储空间(特别是RAM的需要)比较小。
协议栈规范由ZigBee联盟定义指定。
在同一个网络中的设备必须符合同一个协议栈规范(同一个网络中所有设备的协议栈规范必须一致)。
ZigBee联盟为ZigBee协议栈2007定义了2个规范:
ZigBee和ZigBeePRO。
所有的设备只要遵循该规范,即使在不同厂商买的不同设备同样可以形成网络。
如果应用开发者改变了规范,那么他的产品将不能与遵循ZigBee联盟定义规范的产品组成网络,也就是说该开发者开发的产品具有特殊性,我们称之为“关闭的网络”,也就是说它的设备只有在自己的产品中使用,不能与其他产品通信。
更改后的规范可以称之为“特定网络”规范。
2.2拓扑结构
ZigBee网络支持星状、树状和网状三种网络拓扑结构,如下图所示,分别依次是星状网络,树(簇)状网络和网状网络。
星状网络由一个PAN协调器和多个终端设备组成,只存在PAN协调器与终端的通讯,终端设备间的通讯都需通过PAN协调器的转发。
树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或子节点进行点对点直接通讯外,其他只能通过树状路由完成消息传输。
网状网络是树状网络基础上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表实现消息的网状路由。
该拓扑的优点是减少了消息延时,增强了可靠性,缺点是需要更多的存储空间开销。
2.3地址
2.3.1地址定义
ZigBee设备有两种类型的地址。
一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。
64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。
它通常由制造商或者被安装时设臵。
这些地址由IEEE来维护和分配。
16位网络地址是当设备加入网络后分配的。
它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
其中,协调器的网络地址为0x00。
2.4ZigBee原语
ZigBee协议按照开放系统互联的7层模型将协议分成了一系列的层结构,各层之间通过相应的服务访问点来提供服务。
这样使得处于协议中的不同层能够根据各自的功能进行独立的运作,从而使整个协议栈的结构变得清晰明朗。
另一方面,由于ZigBee协议栈是一个有机的整体,任何ZigBee设备要能够正确无误的工作,就要求协议栈各层之间共同协作。
因此,层与层之问的信息交互就显得十分重要。
ZigBee协议为了实现层与层之间的关联,采用了称为服务“原语"的操作。
利用下图来说明原语操作的概念。
服务由N用户和N层之问信息流的描述来指定。
这个信息流由离散瞬时事件构成,以提供服务的特征。
每个事件由服务原语组成,它将在一个用户的某一层,通过与该层相关联的层服务访问A(SAP)与建立对等连接的用户的相同层之问传送。
层与层之间的原语一般情况下可以分为4种类型:
◆请求:
请求原语从NI用户发送到它的N层,请求发起一个服务。
◆指示:
指示原语从N层到N2用户,指示一个对N2用户有重要意义外部N层事件。
这个事件可能与一个远程的服务请求有关,或者由内部事件产生。
◆响应:
响应原语由N2用户向它的N层传递,用来响应上一个由指示原语引
起的过程。
◆确认:
确认原语由N层向Nl用户传递,用来传递与前面一个或多个服务请求相关的执行结果。
三WTB_StackV1.0协议栈
3.1WTB概述
WTB_StackV1.0协议栈是我公司自主开发的zigbee协议栈,其主要应用与矿下人员定位。
由于TI提供的Zstack协议栈内容过于复杂、庞大,且路由深度不够,无法应用与矿下人员定位。
因此,我公司基于TI提供的精简协议栈(只提供了PHY层和MAC层),自主定义了NWK层和APP层,成功开发出适应井下人员定位的协议栈WTB_Stack。
3.2WTBV1.0网络结构
WTBV1.0为树形网络结构,采用静态路由方式,其主要网络参数如下:
●最大子网个数:
<=256;
●一个ZigBee子网包含的Router个数:
<=31;
●一个ZigBee子网包含的EndDevice个数:
<=100;
●Router之间距离:
200m
3.3WTB协议栈体系结构
WTB协议是由一系列layer组成,每层完成特定的服务:
数据类型服务(**DE-SAP),网络管理类型服务(**ME-SAP)。
体系结构如下图所示:
PhysicalLayer:
由IEEE802.15.4定义
MACLayer:
由IEEE802.15.4定义
NetworkLayer:
面向无线网络,定义网络应用
ApplicationLayer:
面向用户,定义服务
OSHLayer:
支撑平台,定义OS、以及硬件封装
3.4IEEE地址与短地址
每个子网的PANId不同,不同子网的短地址可以重复,除了Router加入网络使用IEEE地址以外,其他应用全部使用短地址。
Coordinator的短地址:
0x0000
Router的短地址:
0x0001–0x0100
EndDevice的短地址:
0x0101–0x0FFE
3.5工作流程
3.5.1网络层流程
3.5.1.1Coordinator建网流程
3.5.1.2Router加入网络流程
3.5.2应用层流程
3.5.2.1EndDevice工作流程
3.5.2.2Router工作流程
3.5.2.3Coordinator工作流程
3.4WTB_Stack协议栈设计
WTB_Stack协议栈依据IEEE802.15.4标准和ZigBee协议规范。
ZigBee网络中的各种操作需要利用协议栈各层所提供的原语操作来共同完成。
原语操作的实现过程往往需要向下一层发起一个原语操作并且通过下层返回的操作结果来判断出下一条要执行的原语操作。
IEEE802.15.4标准和ZigBee协议规范中定义的各层原语操作多达数十条,原语的操作过程也比较复杂,它已经不是一个简单的单任务软件。
对于这样一个复杂的嵌入式通信软件来说,其实现通常需要依靠嵌入式操作系统来完成。
我们使用TI提供的精简协议栈中已经提供了一个名为操作系统抽象层OSAL的协议栈调度程序。
对于用户来说,除了能够看到这个调度程序外,其它任何协议栈操作的具体实现细节都被封装在库代码中。
用户在进行具体的应用开发时只能够通过调用API接口来进行,而无权知道实现的具体细节。
整个协议栈由RouterApp.c文件中的main()函数开始执行,main()函数共做了2件事:
一是系统初始化,另外一件是开始执行轮转查询式操作系统。
3.4.1任务初始化
voidosalInitTasks(void)
{
uint8taskID=0;
tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16)*tasksCnt);
osal_memset(tasksEvents,0,(sizeof(uint16)*tasksCnt));
macTaskInit(taskID++);
MSA_Init(taskID++);
Hal_Init(taskID++);
MT_TaskInit(taskID++);
WtbApp_Init(taskID++);
WTB_NWK_Init(taskID++);
WTB_APP_Init(taskID);
}
3.4.2任务调度
协议栈中的每一层都有很多原语操作要执行,因此对于整个协议栈来说,就会有很多并发操作要执行。
协议栈中的每一层都设计了一个事件处理函数,用来处理与这一层操作相关的各种事件。
将这些事件处理函数看成是与协议栈每一层相对应的任务,由协议栈中调度程序OSAL来进行管理。
这样,对于协议栈来说,无论何时发生了何种事件,我们都可以通过调度协议栈相应层的任务,即事件处理函数来进行处理。
这样,整个协议栈便会按照时间顺序有条不紊的运行。
◆任务列表
constpTaskEventHandlerFntasksArr[]=
{
macEventLoop,
MSA_ProcessEvent,
Hal_ProcessEvent,
MT_ProcessEvent,
WtbApp_ProcessEvent,
WTB_NWK_ProcessEvent,
WTB_APP_ProcessEvent
};
◆任务调度主循环
voidosal_run_system(void)
{
uint8idx=0;
osalTimeUpdate();
Hal_ProcessPoll();//ThisreplacesMT_SerialPoll()andosal_check_timer().
do{
if(tasksEvents[idx])//Taskishighestprioritythatisready.
{
break;
}
}while(++idx if(idx { uint16events; halIntState_tintState; HAL_ENTER_CRITICAL_SECTION(intState); events=tasksEvents[idx]; tasksEvents[idx]=0;//CleartheEventsforthistask. HAL_EXIT_CRITICAL_SECTION(intState); events=(tasksArr[idx])(idx,events); HAL_ENTER_CRITICAL_SECTION(intState); tasksEvents[idx]|=events;//Addbackunprocessedeventstothecurrenttask. HAL_EXIT_CRITICAL_SECTION(intState); } #ifdefined(POWER_SAVING) else//Completepassthroughalltaskeventswithnoactivity? { osal_pwrmgr_powerconserve();//Puttheprocessor/systemintosleep } #endif /*Yieldincasecooperativeschedulingisbeingused.*/ #ifdefined(configUSE_PREEMPTION)&&(configUSE_PREEMPTION==0) { osal_task_yield(); } #endif } ◆设置事件发生标志 当协议栈中有任何事件发生时,我们可以通过设臵event_flag来标记有事件发生,以便主循环函数能够及时加以处理。 其函数说明如下: uint8osal_set_event(uint8task_id,uint16event_flag) { if(task_id { halIntState_tintState; HAL_ENTER_CRITICAL_SECTION(intState);//Holdoffinterrupts tasksEvents[task_id]|=event_flag;//Stufftheeventbit(s) HAL_EXIT_CRITICAL_SECTION(intState);//Releaseinterrupts return(SUCCESS); } else { return(INVALID_TASK); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Zigbee 技术综合探究论文 技术 综合 探究 论文