ZIGBEE技术规范与协议栈分析
- 格式:docx
- 大小:30.97 KB
- 文档页数:20
针对ZigBee协议范文栈的分析通过物理层提供的具体服务,在MAC层中,ZigBee协议实现了两个物理设备之间的稳定数据通信链路,并且采用带冲突避免的载波侦听多路访问的控制方法,实现了ZigBee信道的访问冲突问题。
同时,ZigBee协议还设计了专门的功能从而实现时隙保护、数据发送、检测、跟踪等基本功能,从而有效保障数据链路层通信。
ZigBee协议在MAC层的数据包结构,规定了MAC头、尾和MAC净荷,其中MAC头定义了数据帧的序列号、目标地址和PAN标识符以及源地址和PAN标识符,MAC尾则表示MAC数据包结束,MAC净荷则是MAC层的主要传输部分,是包含了具体的上层数据。
在ZigBee协议中,对网络层的功能进行定义,其主要功能是为上层应用层提供服务,同时保障MAC层工作有效。
针对网络层的具体功能,ZigBee规定了网络层数据的处理规则、路由跳转规则、发送和接受的规则,在网络层数据通信的数据结构中,网络层头规定了目的地址、源地址以及多点传送的控制信息,而网络层净荷则是包含了网络层的具体传输数据,在ZigBee针对网络层数据传输规则下进行数据和控制指令的传送。
针对应用层,ZigBee定义了APS、ZDO和应用对象。
其中APS为应用支持层,主要是为ZigBee物理设备之间的绑定信息传输,同时为物理设备对象和应用对象相关的服务和应用提供接口,从而为物理设备提供服务。
ZDO是ZigBee的设备对象的专门程序,通过ZigBee的服务原语来执行ZigBee网络中的协调器、路由器以及各个终端设备之间的信息数据和控制指令的传输。
应用层的数据传输报文包含了帧头和应用层净荷两部分,枕头数据包括了目的地址、源地址、集团地址以及针对数据帧控制的信息,应用层净荷则包含了应用层的传输数据。
2.2ZigBee协议栈的服务原语在ZigBee协议栈中,由不同的层级构成了整个体系结构,作为一个有机整体,ZigBee设备要求在工作时能够准确无误且有效,这就需要协议栈中层与层之间的协作共性和效率较高,在ZigBee协议栈中,服务原语作为基本的操作单元来实现ZigBee协议栈各层之间的数据传输和信息关联。
zigbee协议规范及时间Zigbee协议规范及应用前景概述:Zigbee是一种无线通信协议,旨在实现低功耗、低带宽、低成本的无线传感器和控制网络。
其特点是简单、灵活、可靠,适用于各种物联网场景。
本文将介绍Zigbee协议的规范以及其在不同领域的应用前景。
一、Zigbee协议规范1. Zigbee协议栈Zigbee协议栈包括物理层、MAC层、网络层、应用层等。
物理层负责无线信号的传输和接收,MAC层提供无线电资源的管理,网络层处理路由和网络拓扑,应用层用于支持各种应用。
Zigbee协议栈灵活可配置,使其适用于各种不同的应用场景。
2. Zigbee网络拓扑Zigbee支持多种网络拓扑结构,包括星型、网状和混合型。
星型拓扑适用于点对点通信,网状拓扑适用于多节点之间的通信,混合型拓扑则是两者的结合。
Zigbee的网络拓扑结构灵活,可以根据实际需求来选择。
3. Zigbee安全性Zigbee协议提供了多层次的安全措施,包括加密通信、身份验证和密钥管理。
通过这些安全措施,Zigbee网络可以有效地防止未经授权的访问和信息泄露,提供了可靠的数据保护。
二、Zigbee在家居自动化中的应用1. 智能家居Zigbee作为智能家居的重要组成部分,在家庭中的应用前景广阔。
通过Zigbee协议,各种智能设备(如智能灯泡、智能门锁、温度传感器等)可以互联互通,并通过无线网络进行远程控制和监控。
智能家居带来了更加智能、便捷和舒适的生活体验。
2. 能源管理Zigbee协议在能源管理领域也有广泛的应用。
通过Zigbee无线传感器,可以实现对能源的实时监测和控制,提高能源利用效率。
同时,Zigbee还可以实现对能源设备的自动化控制,如智能电表的远程抄表和调控。
三、Zigbee在工业自动化中的应用1. 物联网工业控制Zigbee协议在工业自动化中发挥着重要的作用。
通过Zigbee无线传感器网络,可以实现对工业生产过程的实时监测和控制。
ZigBee协议栈学习总结近年来,物联网技术发展迅猛,智能家居、智能工厂等应用逐渐普及。
而ZigBee协议作为一种广泛应用于物联网中的低功耗、近距离、网状网络通信协议,受到了广泛的关注和应用。
在ZigBee技术中,协议栈是关键的一环。
本文将对ZigBee协议栈的相关知识进行总结。
一、ZigBee协议栈概述ZigBee协议栈是指在物联网中实现ZigBee通信的软件系统,它包含了多个层级,每个层级负责不同的功能。
ZigBee协议栈分为应用层、网络层、MAC层和物理层,通过这些层级的协同工作,实现了ZigBee设备之间的通信。
1.1 应用层在ZigBee协议栈中,应用层是最上层的一层,负责定义应用数据的传输方式和应用协议。
应用层通过上层应用与下层协议栈进行交互,将上层应用数据封装为ZigBee命令帧发送给网络层。
1.2 网络层网络层是ZigBee协议栈的中间层,负责实现设备的网络发现、路由选择和网络管理等功能。
网络层通过维护网络拓扑结构,实现了ZigBee设备之间的互联互通。
1.3 MAC层MAC层即介质访问控制层,是介于网络层和物理层之间的一层。
MAC层负责管理无线通信信道,实现了数据的可靠传输和统计信息的收集。
1.4 物理层物理层是ZigBee协议栈的最底层,负责处理物理信号的传输和接收。
物理层根据不同的频段和传输速率,将数字信号转换为模拟信号进行无线传输。
二、ZigBee协议栈的工作原理ZigBee协议栈的各层级通过相互协作,实现了物联网设备之间的通信。
协议栈从应用层开始,将上层应用数据经过各层的处理和封装,最终通过物理层进行无线传输。
在接收端,协议栈将接收到的信号依次经过物理层、MAC层、网络层和应用层的解析,最终将数据传递给上层应用进行处理。
三、ZigBee协议栈的特点和优势ZigBee协议栈相较于其他通信协议具有以下特点和优势:3.1 低功耗ZigBee协议栈采用低功耗设计,设备在待机状态下功耗非常低,能够延长设备的使用寿命。
Zigbee技术规范与协议栈分析
李战明;刘宝;骆东松
【期刊名称】《微型机与应用》
【年(卷),期】2009(028)005
【摘要】以Zigbee 2006协议栈为对象,研究其技术规范,使用串口调试助手及数据分析仪解读其协议栈程序,详细解释OSAL(操作系统)的工作流程及整个协议栈的实现过程,以达到提高Zigbee源代码的可读性和可操作性的目的.
【总页数】4页(P45-48)
【作者】李战明;刘宝;骆东松
【作者单位】兰州理工大学,电气工程与信息工程学院,甘肃,兰州,730050;兰州理工大学,电气工程与信息工程学院,甘肃,兰州,730050;兰州理工大学,电气工程与信息工程学院,甘肃,兰州,730050
【正文语种】中文
【中图分类】TN915
【相关文献】
1.Zigbee协议栈消息事件处理分析 [J], 陈亚琳
2.基于ZigBee协议栈的Mesh网络分析 [J], 王长荀
3.2.4GHz ZigBee无线网络处理器(内置ZigBee协议栈) [J],
4.具有嵌入式ZigBee PRO协议栈的最新ZigBee网络处理器 [J],
5.TI具有嵌入式ZigBee PRO协议栈的最新ZigBee网络处理器 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
随着传感器网络的大肆应用;随着物联网概念的爆发;随着通信技术的迅速发展,人们提出了在自身附近几米范围内通信的要求,这样就出现了个人区域网络PAN(Personal Area Network)和无线个人区域网络WPAN(Wireless Personal Area Network)的概念。
WPAN网络为近距离范围内的设备建立无线连接,把几米到几十米范围内的多个设备通过无线方式连接在一起,使他们可以相互通信甚至接入LAN或者Internet。
2001年8月成立的zigbee联盟就是一个针对WPAN网络而成立的产业联盟。
该联盟致力于近距离、低复杂度、低数据速率、低成本的无线网络技术。
他们开发的技术被称为zigbee 技术,该技术希望被部署到商用电子、住宅及建筑自动化、工业设备监测、PC外设、医疗传感设备、玩具以及游戏等其他无线传感和控制领域当中。
1.1 IEEE802.15.4标准zigbee联盟已于2005年6月27日公布了第一份zigbee规范“zigbee Specification V1.0”。
这标准定义了在IEEE 802.15.4-2003物理层和标准媒体接入控制层上的网络层及支持的应用服务。
zigbee联盟的长期目标是能够建立基于互操作平台和配置文件的可伸缩、低成本嵌入式基础架构。
1.1.1 IEEE802.15.4协议框架IEEE802.15.4标准采用分层结构。
每一层为上层提供一系列特殊的服务:数据实体提供数据传输服务,管理实体则提供所有其他的服务。
所有的服务实体都通过服务接入点SAP (Service Access Point)为上层提供一个接口,每个SAP都支持一定数量的服务原语来实现所需的功能。
IEEE 802.15.4标准堆栈架构是在OSI七层模型的基础上根据市场和应用的实际需要定义了,如图2-1。
其中,IEEE 802.15.4标准定义了底层:物理层PHY(Physical Layer)和媒体访问控制子层MAC(Medium Access Control Sub-Layer)层。
zigbee协议栈2010-03-10 15:11zigbee协议栈结构由一些层构成,每个层都有一套特定的服务方法和上一层连接。
数据实体(data entity)提供数据的传输服务,而管理实体(managenmententity)提供所有的服务类型。
每个层的服务实体通过服务接入点(Service AccessPoint.SAP)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。
ZigBee协议栈基于标准的OSI七层模型,但只是在相关的范围来定义一些相应层来完成特定的任务。
IEEE 802.15.4—2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。
ZigBee联盟在此基础上建立了网络层(NWK 层)以及应用层(APL层)的框架(framework)。
APL层又包括应用支持子层(Application Support Sub—layer,APS)、ZigBee的设备对象(ZigBee Device 0bjects。
ZD0)以及制造商定义的应用对象。
1物理层(PHY)IEEE802.15.4协议的物理层是协议的最底层,承担着和外界直接作用的任务。
它采用扩频通信的调制方式,控制RF收发器工作,信号传输距离约为50m(室内)或150m(室外)。
IEEE802.15.4.2003有两个PHY层,提供两个独立的频率段:868/915MHz 和2.4GHz。
868/915MHz频段包括欧洲使用的868MHz频段以及美国和澳大利亚使用的915MHz频段,2.4GHz频段世界通用。
2媒体访问控制层(MAC)MAC层遵循IEEE802.15.4协议,负责设备间无线数据链路的建立、维护和结束,确认模式的数据传送和接收,可选时隙,实现低延迟传输,支持各种网络拓扑结构,网络中每个设备为16位地址寻址。
它可完成对无线物理信道的接入过程管理,包括以下几方面:网络协调器(coordinator)产生网络信标、网络中设备与网络信标同步、完成PAN的入网和脱离网络过程、网络安全控制、利用CSMA—CA机制进行信道接入控制、处理和维持GTS(Guaranteed Time Slot)机制、在两个对等的MAC实体间提供可靠的链路连接。
《ZigBee协议栈的分析与设计》篇一一、引言随着物联网技术的快速发展,无线通信技术已成为连接各种智能设备的重要手段。
ZigBee作为一种基于IEEE 802.15.4标准的低速无线个人区域网络通信协议,以其低功耗、低成本、覆盖范围广等优势,在智能家居、工业监控、农业物联网等领域得到了广泛应用。
本文将对ZigBee协议栈进行分析与设计,探讨其工作原理、关键技术及设计要点。
二、ZigBee协议栈概述ZigBee协议栈是一种为基于IEEE 802.15.4标准的无线个人区域网络(WPAN)设计的协议栈。
它包括物理层(PHY)、媒体访问控制层(MAC)和Z-Stack协议栈三个主要部分。
物理层定义了无线信号的传输方式和特性;媒体访问控制层负责设备的接入与数据传输;Z-Stack协议栈则是为了实现不同设备间的互操作性而设计的一系列服务和应用支持层。
三、ZigBee协议栈分析1. 物理层分析物理层是ZigBee协议栈的基础,它定义了无线信号的传输方式和特性。
物理层包括射频收发器、天线和相关的控制电路等。
在分析物理层时,需要关注其传输速率、传输距离、抗干扰能力等性能指标。
2. MAC层分析MAC层负责设备的接入与数据传输,它通过CSMA-CA(带冲突避免的载波监听多路访问)机制实现信道的访问控制。
在分析MAC层时,需要关注其信道接入的公平性、数据传输的可靠性以及能耗控制等方面。
3. Z-Stack协议栈分析Z-Stack协议栈包括应用支持层(APS)、ZigBee设备对象(ZDO)、以及各种应用框架等。
在分析Z-Stack协议栈时,需要关注其服务发现、绑定、群组通信等机制的实现,以及如何实现不同设备间的互操作性。
四、ZigBee协议栈设计1. 设计目标在设计ZigBee协议栈时,需要明确设计目标,如低功耗、低成本、高可靠性等。
根据实际需求,选择合适的物理层和MAC 层技术,以及适合的应用场景的Z-Stack协议栈版本。
见过的最浅显易懂的ZigBee协议栈解析ZigBee技术是物联网领域最常用的无线技术之一,如果我们要做基于ZigBee技术的物联网应用,最好对ZigBee协议栈有一个基本的了解。
这篇文章对ZigBee协议栈做一个简单明了的介绍。
概述本文准备介绍的ZigBee协议栈是ZigBee2007,也是目前业界最常用的标准版本,对于ZigBee协议栈的演进历程,可以参加《5分钟了解Zigbee的前世今生》。
ZigBee协议栈可以分为四层:物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)及应用层(APL)。
如图所示,粉色的部分是由IEEE标准中定义的,浅蓝色部分是由ZigBee联盟规定的,黄色部分是由设备厂商自行定义。
ZigBee协议栈图示在ZigBee协议栈的图示中,我们还可以发现有很多圆角矩形,都带有SAP的字样。
SAP的意思就是服务接入点(Service Access Point)的意思,是协议栈层与层之间的接口,协议栈都是分层结构的,接口就是层与层之间的沟通渠道。
协议栈相邻的上下层之间一般都有两个接口,也就是两个SAP。
名字中带字母D的SAP是数据接口,负责层间数据传输;名字中带字母M的SAP是管理接口,供上层或协议栈的管理平面对该层进行控制,比如进行一些参数配置,或读取状态等。
PHY & MAC & NWKZigBee2007协议栈的物理层及MAC层都是IEEE802.5.14-2003标准中定义的。
PHY层(物理层)规定了所使用的频段,以及所使用的编码、调制、扩频、调频等无线传输技术;有了物理层,就有了一个实现点到点之间的信号发射与接收的基础,没有物理层协议,设备间是根本没有办法通信的,有可能都不在一个频段上。
MAC层的主要作用规定了无线信道的访问控制机制,也就是规定各个设备按照什么规矩轮流使用信道;如果没有MAC层协议,节点一多,大家没有个规矩,就会发生信号冲突,谁都没法正常传输数据了。
ZigBee协议栈的分析与设计ZigBee协议栈的分析与设计引言随着物联网的不断发展,无线传感器网络(WSN)得到了广泛的应用。
ZigBee作为一种低功耗、短距离、低带宽的无线通信协议,逐渐成为物联网中最受欢迎的通信协议之一。
本文将对ZigBee协议栈进行深入的分析与设计,以期更好地理解其工作原理并提供一种优化方案。
一、ZigBee协议栈的结构与功能1. ZigBee协议栈结构ZigBee协议栈由两部分组成:上层和下层。
上层包括应用层(Application Layer)、网络层(Network Layer)和安全层(Security Layer)。
下层包括物理层(Physical Layer)和介质访问控制层(Media Access Control Layer)。
2. ZigBee协议栈功能- 物理层(Physical Layer):负责将数据转换为无线信号,通过无线传输介质进行通信。
ZigBee协议栈支持多种物理层标准,例如2.4GHz、900MHz和868MHz等。
- 介质访问控制层(Media Access Control Layer):负责数据帧的分发和接收,同时处理多跳中继和协议转发。
- 网络层(Network Layer):提供网络拓扑管理、路由选择、数据包传输和安全性等功能。
ZigBee协议栈使用了Ad-hoc On-Demand Distance Vector(AODV)路由协议来实现自组网和动态路由选择。
- 应用层(Application Layer):定义应用程序的协议和接口,包括设备发现、网络配置、设备控制等功能。
- 安全层(Security Layer):提供数据加密和认证等安全机制,确保通信的可靠性和机密性。
二、ZigBee协议栈的分析1. 物理层分析ZigBee协议栈采用低功耗、短距离的射频通信技术。
2.4GHz频段是其最常用的无线传输介质,具有广泛的应用领域。
ZigBee协议栈使用了Direct Sequence Spread Spectrum (DSSS)技术来提高抗干扰性能。
ZIGBEE开源协议栈篇一:ZigBee协议栈中文完整版Zigbee协议栈中文说明1.概述1.1解析ZigBee堆栈架构ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。
ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC 层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。
图1-1给出了这些组件的概况。
1.1.1ZigBee堆栈层每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。
这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。
公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。
每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件图1-1 zigbe堆栈框架从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。
端点之间的通信是通过称之为簇的数据结构实现的。
这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。
图1-1-2就是设备及其接口的一个例子:图1-1-2每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。
一共有二个特殊的端点,即端点0和端点255。
端点0用于整个ZigBee设备的配置和管理。
应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为ZigBee设备对象(ZD0)。
端点255用于向所有端点的广播。
端点241到254是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。
APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。
1.概述1.1解析ZigBee堆栈架构ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。
ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。
图1-1给出了这些组件的概况。
1.1.1ZigBee堆栈层每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。
这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。
公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。
每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。
图1-1 zigbe堆栈框架从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。
端点之间的通信是通过称之为簇的数据结构实现的。
这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。
图1-1-2就是设备及其接口的一个例子:图1-1-2每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。
一共有二个特殊的端点,即端点0和端点255。
端点0用于整个ZigBee设备的配置和管理。
应用程序可以通过端点0与ZigBee 堆栈的其它层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为ZigBee设备对象 (ZD0)。
端点255用于向所有端点的广播。
端点241到254是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。
APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。
ZIGBEE技术规范与协议栈分析篇一:ZigBee知识无线龙1.协议栈工作流程和无线收发控制 LED 实验内容:1. ZigBee 协议栈简介2. 如何使用 ZigBee 协议栈3. ZigBee 协议栈的安装、编译与下载4. 协议栈无线收发控制 LED5. 协议栈工作流程实现现象:协调器、终端上电,组网成功后 D1 灯闪烁 1. ZigBee 协议栈简介什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。
协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。
图 1 展示了 ZigBee 无线网络协议层的架构图。
ZigBee 的协议分为两部分,IEEE 802.15.4 定义了 PHY(物理层)和 MAC(介质访问层)技术规范;ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。
ZigBee协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用。
图 1 ZigBee 无线网络协议层 2. 如何使用 ZigBee 协议栈协议栈是协议的实现,可以理解为代码,函数库,供上层应用调用,协议较底下的层与应用是相互独立的。
商业化的协议栈就是给你写好了底层的代码,符合协议标准,提供给你一个功能模块给你调用。
你需要关心的就是你的应用逻辑,数据从哪里到哪里,怎么存储,处理;还有系统里的设备之间的通信顺序什么的,当你的应用需要数据通信时,调用组网函数给你组建你想要的网络;当你想从一个设备发数据到另一个设备时,调用无线数据发送函数;当然,接收端就调用接收函数;当你的设备没事干的时候,你就调用睡眠函数;要干活的时候就调用唤醒函数。
所以当你做具体应用时,不需要关心协议栈是怎么写的,里面的每条代码是什么意思。
除非你要做协议研究。
每个厂商的协议栈有区别,也就是函数名称和参数可能有区别,这个要看具体的例子、说明文档。
怎么使用 ZigBee 协议栈?举个例子,用户实现一个简单的无线数据通信时的一般步骤: 1、组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。
2、发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。
3、接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。
是不是看上去很简单啊,其实协议栈很多都封装好了,下面我们大概看看无线发送函数: 1. afStatus_tAF_DataRequest( afAddrType_t *dstAddr, 2.afStatus_t AF_DataRequest( afAddrType_t *dstAddr, 2. endPointDesc_t *srcEP, 3.endPointDesc_t *srcEP, 3. uint16 cID, 4.uint16 cID, 4. uint16 len, 5.uint16 len, 5. uint8 *buf, 6.uint8 *buf,6. uint8 *transID,7.uint8 *transID, 7. uint8 options, 8.uint8 options, 8. uint8 radius )用户调用该函数即可实现数据的无线数据的发送,此函数中有8个参数,用户需要将每个参数的含义理解以后,才能熟练使用该函数进行无线数据通信的目的。
现在只讲其中最重要的两个参数,其它参数不需要死记硬背,以后用多了自然就记住了。
4. uint16 len, //发送数据的长度; 5. uint8 *buf,5. uint8 *buf, //指向存放发送数据的缓冲区的指针。
至于调用该函数后,如何初始化硬件进行数据发送等工作,用户不需要关心,ZigBee协议栈己经将所需要的工作做好了,我们只需要调用相应的API函数即可,而不必关心具体实现细节。
看起来是不是很简单呢,是不是有动手试试的冲动。
先别急还要先安装ZigBee协议栈才能进行开发调试呢,下面就动手安装ZigBee协议栈吧。
3. ZigBee 协议栈的安装、编译与下载解压..\相关资料与软件\Zigbee 开发软件\ZStack-CC2530-2.3.0-1.4.0 协议栈安装文件.rar ;解压得到.exe 文件,双击进行安装,路径你可以选择默认,同样你也可以选择你想要安装的位置。
也许有人就困惑了,装完之后不是应该有个桌面图标的么?其实所谓的安装协议栈只是把一些文件解压到你安装的目录下。
怎么用它呢?我们先来看看这个协议栈的目录Components,顾名思义这个是放我们的库的文件夹,里面放了一些我们用到的 ZDO,driver, hal,zcl 等库的代码Documents,这个不用说大家都知道是放 TI 的开发文档的,里面很多都是讲述协议栈的 API 的有空时可以看看Projects,这个文件夹放的是 TI 协议栈的例子程序,一个个例子程序都是以一个个 project 的形式给我们的,学好这些例子程序里面的一两个,基本你能做事情了。
Tools,这个文件夹是放 TI 的例子程序的一些上位机之类的程序,作为工具使用。
好了,基本明白了基本架构之后,我们以一个简单的实验开始。
先掌握一点必要的理论再实验效果比较好。
4. 协议栈无线收发控制 LED打开工程:..\EB2530\5.zigbee 协议栈应用与组网\1.协议栈工作流程和无线收发控制 LED\ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp.eww ,从软件开发专业角度讲建议大家复制工程到非中文目录,因为有些开发环境对中文路径支持的不好,虽然IAR 支持但在实际工作中你想别人看到你的工程,认为你很专业就照着上面做吧。
我们演示就不修改,容易引起大家误会,打开工程如下图: App:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容。
HAL:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。
MAC:MAC 层目录,包含了 MAC 层的参数配置文件及其 MAC 的 LIB 库的函数接口文件。
MT:实现通过串口可控制各层,并与各层进行直接交互NWK:网络层目录,包含网络层配置参数文件网络层库的函数接口文件及 APS层库的函数接口。
OSAL:协议栈的操作系统。
Profile: Application framework 应用框架层目录,包含AF 层处理函数文件。
应用框架层是应用程序和 APS 层的无线数据接口。
Security:安全层目录,包含安全层处理函数,比如加密函数等Services:地址处理函数目录,包括地址模式的定义及地址处理函数。
Tools:工程配置目录,包括空间划分及 Z-Stack 相关配置信息。
ZDO:ZDO 目录ZMac:MAC 层目录,包括 MAC 层参数配置及 MAC 层 LIB 库函数回调处理函数。
ZMain:主函数目录,包括入口函数及硬件配置文件。
Output:输出文件目录,由 IAR IDE 自动生成。
带协议栈的工程怎么这么多文件夹和文件,都有什么用啊?后面实验接触多了自然就懂了。
1. 编译协议器的程序,在Workspace 下拉框中选择“CoordinatorEB-Pro”,在工程名上点右键选择”Rebuild All”,没错误提示再下载到开发板当中。
尽量教大家用一些快捷方法。
2.编译终端设备的程序选择“EndDeviceEB-Pro”编译下载即可。
两个 zigbee 节点都下载好后,分别上电看效果吧。
协调器、终端上电,组网成功后 D1 灯闪烁。
看完后是不是在想怎么实现的?下面我就带着大家分析协议栈工作流程: 1) zigbee工作流程2)看源码推荐大家使用 Source_Insight,十分强大的工具,从事软件必备软件,除非你想做菜鸟,具体使用请参考相关资料与软件\Zigbee 参考资料\ Source Insight 使用教程.pdf。
下面列出实验中涉及到比较重要的函数进行详解,由于是带协议栈第一个实验,我们对源码也进行注释,方便习惯看源码的同志学习。
我建议大家先看看下面的文章,再阅读一次源码加深印象,后面的例子结构基本相同,所以学好此实验,再做后面的实验就得心应手了。
用户自己添加的应用任务程序在 Zstack 中的调用过程:main()---> osal_init_system()---> osalInitTasks()---> SampleApp_Init() 下面我们就先从 main()函数开始吧。
提示:如果你第一次接触 ZStack,第一个实验的代码看注释只须大概知道它们是做什么的,有点印象就行了,后面实验会徐徐渐进,慢慢带领大家搞懂整个流程和代码的。
如果刚开始就啃代码,不但效率低而且信心受损。
2) 打开 ZMain.c 找到 main 函数 int main( void ) {osal_int_disable( INTS_ALL ); //关闭所有中断HAL_BOARD_INIT(); //初始化系统时钟zmain_vdd_check(); //检查芯片电压是否正常InitBoard( OB_COLD ); //初始化 I/O ,LED 、Timer 等HalDriverInit(); //初始化芯片各硬件模块osal_nv_init( NULL ); //初始化 Flash 存储器 ZMacInit(); //初始化 MAC 层zmain_ext_addr(); //确定 IEEE 64 位地址 zgInit(); //初始化非易失变量 #ifndef NONWK// Since the AF isn't a task, call it's initialization routine afInit(); #endifosal_init_system(); //初始化操作系统osal_int_enable( INTS_ALL );//使能全部中断InitBoard( OB_READY ); //最终板载初始化zmain_dev_info(); //显示设备信息 #ifdef LCD_SUPPORTEDzmain_lcd_init(); //初始化 LCD #endif#ifdef WDT_IN_PM1/* If WDT is used, this is a good place to enable it. */ WatchDogEnable( WDTIMX ); #endifosal_start_system();// No Return from here 执行操作系统,进去后不会返回 return 0; // Shouldn't get here. } // main()看了上面的代码后,可能感觉很多函数不认识。