ZigBee学习之10

合集下载

ZigBee基础知识

ZigBee基础知识

ZigBee基础知识一、ZigBee特点ZigBee技术是一种新兴的短距离、低功耗、低成本、低数据传输率的无线通信技术。

它的主要特点如下:1)低功耗:在低功耗待机模式下,两节普通5号干电池可使用6~24个月。

2)低速率:数据传输速率只有10kb/s〜250kb/s,专注于低速数据传输应用。

3)低成本:因为ZigBee数据传输速率低,协议简单,降低了对通信控制器的要求,所以大大降低了成本。

4)短距离:传输距离一般介于10〜100m之间,在增加RF发射功率后,亦可增加到1〜3km。

这指的是相邻节点间的距离,如果通过路由和节点间通信的接力,传输距离将可以更远。

5)短时延:Zigbee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。

6)容量大:Zigbee可采用星状、簇状和网状网络结构,一个主节点可管理254个子节点,同时主节点还可由上一层网络节点管理,这样可组成65000多个节点。

7)安全:ZigBee提供了数据完整性检查和鉴权功能,采用AES-128加密算法,各个应用可灵活确定其安全属性。

8)工作频段灵活:使用的频段分别为全球的2.4GHzISM频段(16个信道)、欧洲的868MHz频段(1个信道),以及美国的915MHz频段(10个信道),均为免执照频段。

二、ZigBee工作频率三、ZigBee的设备类型ZigBee网络支持两种功能类型的网络节点:全功能器件(FullFunctionDevice, FFD)和精简功能器件(ReduceFunctionDevice,RFD)。

全功能器件拥有完整的协议功能,在网络中可以作为协调器(Coordinator),路由器(Router)和普通节点(Device);而精简功能器件旨在实现最简单的协议功能而设计,只能作为普通节点存在于网络中。

全功能器件可以与精简功能器件或其他的全功能器件通信,而精简功能器件只能与全功能器件通信,精简功能器件之间不能直接通信。

ZigBee无线协议学习笔记

ZigBee无线协议学习笔记

1. ZigBee简介1.1. 概述zigbee协议栈结构由一些层构成,每个层都有一套特定的服务方法和上一层连接,称为协议。

数据实体(data entity)提供数据的传输服务,而管理实体(management entity)提供所有的服务类型。

每个层的服务实体通过服务接入点(service access point SAP)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。

zigbee协议栈基于标准的OSI七层模型,但只是在相关范围来定义一些相应层来完成特定的任务。

IEEE802.15.4-2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。

zigbee联盟在此基础上建立了网络层(NWK 层)以及应用层(APL层)的框架(framework)。

APL层又包括应用支持子层(application support sub-layer APS),zigbee的设备对象(zigbee device object ZDO)以及制造商定义的应用对象。

1.2. 缩略语和简称AIB 应用支持层的信息库AF 应用框架APDU 应用支持子层协议数据单元APL 应用层APS 应用支持子层APSDE 应用支持子层数据实体APSDE-SAP 应用支持子层数据实体-服务接入点APSME 应用支持子层管理实体APSME-SAP 应用支持子层管理实体-服务接入点ASDU APS服务数据单元MAC 媒体访问控制MCPS-SAP 媒体访问控制公用部分子层-服务接入点MLME-SAP 媒体访问控制子层管理实体-服务接入点MSG 信息服务类型NHLE 上层实体NIB 网络层信息库NWK 网络OSI 开放式系统互连PAN 个人区域网络PDU 协议数据单元PHY 物理层QOS 服务质量RREP 路由应答RREQ 路由请求SAP 服务接入点ZB ZigBeeZDO ZigBee设备对象1.3. ZDOZigBee设备对象(ZDO)描述了一个基本的功能函数类,在应用对象、设备profile和APS 之间提供了一个接口。

Zigbee知识点

Zigbee知识点

第一章Zigbee概述1、Zigbee就是一种新兴的短距离、低速率无线网络技术,主要用于近距离无线连接。

2、Zigbee的特点就是功耗低、成本低、时延短、网络容量大、可靠安全。

3、常见的Zigbee芯片有CC243X系列、MC1322X系列与CC253X系列。

4、常见的Zigbee协议栈有非开源(msstatePAN)协议栈、开源(freakz)协议栈与半开源(Zstack)协议栈。

5、Zigbee软件开发平台包括IAR、Zigbee Sniffer、物理地址修改软件以及其它辅助软件。

6、Zigbee硬件开发平台采用Altium Designer进行设计。

7、简述Zigbee的定义。

答:Zigbee就是一种近距离、低复杂度、低功耗、低成本的双向无线通讯技术。

主要用于距离短、功耗低且传输速率不高的各种电子设备之间,进行数据传输(包括典型的周期性数据、间歇性数据与低反应时间数据)的应用。

( Zigbee的基础就是IEEE802、15、4,但就是IEEE802、15、4仅处理低级的MAC(媒体接入控制协议)层与物理层协议,Zigbee联盟对网络层协议与应用层进行了标准化。

)8、简述无线传感器网络与Zigbee之间的关系。

答:从协议标准来讲:目前大多数无线传感器网络的物理层与MAC层都采用IEEE802、15、4协议标准。

IEEE802、15、4描述了低速率无线个人局域网的物理层与媒体接入控制协议(MAC层),属于IEEE802、15、4工作组。

而Zigbee技术就是基于IEEE802、15、4标准的无线技术。

从应用上来讲:Zigbee适用于通信数据量不大,数据传输速率相对较低,成本较低的便携或移动设备。

这些设备只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另外一个传感器,并能实现传感器之间的组网,实现无线传感器网络分布式、自组织与低功耗的特点。

9、Zigbee技术特点:低功耗、低成本、大容量、可靠、时延短、灵活的网络拓扑结构。

ZIGBEE学习笔记

ZIGBEE学习笔记

1、ZigBee协议栈:ZigBee协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。

协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来遵循和使用这个协议的,进而实现无线数据收发。

2、ZigBee无线网络协议层的架构:ZigBee协议分为两部分---IEEE 802.15.4和ZigBee,IEEE 802.15.4定义了PHY (物理层)和MAC(介质访问层)技术规范;ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。

ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供API(应用层),用户可以直接调用---学习Zigbee就是熟悉API和学习如何使用对应函数。

3、用户实现简单的无线数据通信的一般步骤:---组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。

---发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。

---接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。

4、Z-STACK协议栈工作原理:Z-stack可以看做是一个小型的操作系统(本质是大型的程序),用于实现底层和网络层的内容,Z-stack将复杂部分屏蔽掉。

用户通过API函数就可以轻易用ZigBee。

5、协调器、路由器、终端:Router----路由器Coodinator----协调器EndDevice----终端设备(1)协调器:(coordinator)每个zigbee网络只允许有一个zigbee的协调器,协调器首先选择一个信道和网络标识(PAN ID),然后开始这个网络.因为协调器是整个网络的开始,他具有网络的最高权限,是整个网络的维护者,还可以保持间接寻址用的表格绑定,同时还可以设计安全中心和执行其他动作,保持网络其他设备的通信。

zigbee学习自我总结!!!!!

zigbee学习自我总结!!!!!

1. Zigbee网络节点类型Zigbee网络有三类节点类型:即协调器Coordinator、路由器Router和终端设备EndDevice,其中协调器和路由器均为全功能设备,而终端设备选用精简功能设备。

2. Zigbee协议栈各层主要功能模块3. Zigbee网络节点地址Zigbee网络协议的每一个节点皆有两个地址:64位的IEEEMAC地址及16位网络地址.EUI-64(64-bit extended unique identifier)1)64-bit地址,又称为MAC地址或IEEE地址。

每个ZigBee节点都应该有全球唯一的64位IEEE地址。

这个地址需要向IEEE 组织申请才能使用。

通信时,将待发送的数据包的目的地址设为此64位IEEE 地址,从而实现数据包的正确投递。

2)16-bit地址,即网络地址,或称为短地址。

当一个ZigBee网络形成后,ZigBee 网络内的每个节点,都会分配到一个16位的网络地址。

通信时,将待发送的数据包的目的地址设为此16位网络地址。

4.Zigbee协议术语配置文件(profile):Zigbee协议的配置文件是对逻辑组件及其相关接口的描述,是面向某个应用类别的公约、准则.通常没有程序代码与配置文件相关联.属性(attribute):设备之间通信的每一种数据像开关的状态或温度计值等皆可称为属性.每个属性可得到唯一的ID值.簇(cluster):多个属性的汇集形成了簇,每个簇也拥有一个唯一的ID。

虽然个体之间传输的通常是属性信息,但所谓的逻辑组件的接口指的却是簇一级的操作,而非属性一级.终端(endpoint):每个支持一个或多个簇的代码功能块称为终端。

不同的设备通过它们的终端及所支持的簇来进行通信。

PAN IDs:PAN IDs是用来在逻辑上分离在同一领域内的多个节点组。

这样不同组之间节点通信就不会干扰,且可以在同一通道channel上(zigbee2007不行,因为它通信时可以改变频率的)Pan id是16位,范围是0x0000~03fff。

zigbee学习自我总结

zigbee学习自我总结

1. Zigbee网络节点类型Zigbee网络有三类节点类型:即协调器Coordinator、路由器Router和终端设备EndDevice,其中协调器和路由器均为全功能设备,而终端设备选用精简功能设备。

2. Zigbee协议栈各层主要功能模块3. Zigbee网络节点地址Zigbee网络协议的每一个节点皆有两个地址:64位的IEEEMAC地址及16位网络地址.EUI-64(64-bit extended unique identifier)1)64-bit地址,又称为MAC地址或IEEE地址。

每个ZigBee节点都应该有全球唯一的64位IEEE地址。

这个地址需要向IEEE 组织申请才能使用。

通信时,将待发送的数据包的目的地址设为此64位IEEE 地址,从而实现数据包的正确投递。

2)16-bit地址,即网络地址,或称为短地址。

当一个ZigBee网络形成后,ZigBee 网络的每个节点,都会分配到一个16位的网络地址。

通信时,将待发送的数据包的目的地址设为此16位网络地址。

4.Zigbee协议术语配置文件(profile):Zigbee协议的配置文件是对逻辑组件及其相关接口的描述,是面向某个应用类别的公约、准则.通常没有程序代码与配置文件相关联.属性(attribute):设备之间通信的每一种数据像开关的状态或温度计值等皆可称为属性.每个属性可得到唯一的ID值.簇(cluster):多个属性的汇集形成了簇,每个簇也拥有一个唯一的ID。

虽然个体之间传输的通常是属性信息,但所谓的逻辑组件的接口指的却是簇一级的操作,而非属性一级.终端(endpoint):每个支持一个或多个簇的代码功能块称为终端。

不同的设备通过它们的终端及所支持的簇来进行通信。

PAN IDs:PAN IDs是用来在逻辑上分离在同一领域的多个节点组。

这样不同组之间节点通信就不会干扰,且可以在同一通道channel上(zigbee2007不行,因为它通信时可以改变频率的)Pan id是16位,围是0x0000~03fff。

zigbee学习总结

zigbee学习总结

竭诚为您提供优质文档/双击可除zigbee学习总结篇一:Zigbee协议栈学习总结典型的智能家居网络总体结构图智能家居系统模块整体框图Zigbee是一种标准,该标准定义了短距离、低速率传输速率无线通讯所需要的一系列通信协议。

基于Zigbee的无线网络所使用的工作频段为868mhz、915mhz和2.4ghz,最大数据传输速率为250Kbps。

Zigbee无线网络共分为5层:物理层(phY),介质访问控制层(mAc),网络层(nwK),应用程序支持子层(Aps),应用层(ApL)。

总体而言,Zigbee技术有如下特点:高可靠性,低成本,低功耗,高安全性,低数据速率Zigbee网络中的设备主要分为三种:1,协调器,协调器节点负责发起并维护一个无线网络,识别网络中的设备加入网络,一个Zigbee网络只允许有一个Zigbee协调器;2,路由器,路由器节点支撑网络链路结构,完成数据包的转发;。

Zigbee网格或树型网络可以有多个Zigbee路由器。

Zigbee星型网络不支持Zigbee路由器。

3,终端节点,负责数据采集和可执行的网络动作。

从功能上,zigbee节点应由微控制器模块、存储器、无线收发模块、电源模块和其它外设功能模块组成。

Zigbee/Ieee802.15.4定义了两种类型的设备:它们是全功能设备(FFD,FullFunctionDevice)和精减功能设备(RFD,ReducedFunctionDevice)。

FFD可以当作一个网络协调器或者一个普通的传感器节点,它可以和任何其他的设备通讯,传递由RFD发来的数据到其他设备,即充当了路由的功能。

而RFD只能是传感器节点,它只能和FFD进行通讯,经过FFD 可以将自己测得数据传送出去。

在Zigbee网络中大多是这两种设备,网络中结点数理论上最多可达65,536个,可以组成三种类型网络:星型、网状型和树型。

星状网络由一个pAn协调器和多个终端设备组成,只存在pAn协调器与终端的通讯,终端设备间的通讯都需通过pAn 协调器的转发。

zigbee学习总结.doc

zigbee学习总结.doc

zigbee学习总结篇一:Zigbee协议栈学习总结典型的智能家居网络总体结构图智能家居系统模块整体框图ZigBee是一种标准,该标准定义了短距离、低速率传输速率无线通讯所需要的一系列通信协议。

基于ZigBee的无线网络所使用的工作频段为868MHz、915MHz和2.4GHz,最大数据传输速率为250Kbps。

ZigBee无线网络共分为5层:物理层(PHY),介质访问控制层(MAC),网络层(NWK),应用程序支持子层(APS),应用层(APL)。

总体而言,ZigBee技术有如下特点:高可靠性,低成本,低功耗,高安全性,低数据速率Zigbee网络中的设备主要分为三种:1,协调器,协调器节点负责发起并维护一个无线网络,识别网络中的设备加入网络,一个ZigBee 网络只允许有一个ZigBee 协调器;2,路由器,路由器节点支撑网络链路结构,完成数据包的转发;。

ZigBee 网格或树型网络可以有多个ZigBee 路由器。

ZigBee 星型网络不支持ZigBee 路由器。

3,终端节点,负责数据采集和可执行的网络动作。

从功能上,zigbee节点应由微控制器模块、存储器、无线收发模块、电源模块和其它外设功能模块组成。

ZigBee/IEEE802.15.4定义了两种类型的设备:它们是全功能设备(FFD,Full Function Device)和精减功能设备(RFD,Reduced Function Device)。

FFD可以当作一个网络协调器或者一个普通的传感器节点,它可以和任何其他的设备通讯,传递由RFD发来的数据到其他设备,即充当了路由的功能。

而RFD只能是传感器节点,它只能和FFD进行通讯,经过FFD可以将自己测得数据传送出去。

在ZigBee网络中大多是这两种设备,网络中结点数理论上最多可达65,536个,可以组成三种类型网络:星型、网状型和树型。

星状网络由一个PAN 协调器和多个终端设备组成,只存在PAN 协调器与终端的通讯,终端设备间的通讯都需通过PAN 协调器的转发。

Zigbee学习知识重点

Zigbee学习知识重点

第一章Zigbee概述1、Zigbee是一种新兴的短距离、低速率无线网络技术,主要用于近距离无线连接。

2、Zigbee的特点是功耗低、成本低、时延短、网络容量大、可靠安全。

3、常见的Zigbee芯片有CC243X系列、MC1322X系列和CC253X系列。

4、常见的Zigbee协议栈有非开源(msstatePAN)协议栈、开源(freakz)协议栈和半开源(Zstack)协议栈。

5、Zigbee软件开发平台包括IAR、Zigbee Sniffer、物理地址修改软件以及其它辅助软件。

6、Zigbee硬件开发平台采用Altium Designer进行设计。

7、简述Zigbee的定义。

答:Zigbee是一种近距离、低复杂度、低功耗、低成本的双向无线通讯技术。

主要用于距离短、功耗低且传输速率不高的各种电子设备之间,进行数据传输(包括典型的周期性数据、间歇性数据和低反应时间数据)的应用。

(Zigbee的基础是IEEE802.15.4,但是IEEE802.15.4仅处理低级的MAC(媒体接入控制协议)层和物理层协议,Zigbee联盟对网络层协议和应用层进行了标准化。

)8、简述无线传感器网络与Zigbee之间的关系。

答:从协议标准来讲:目前大多数无线传感器网络的物理层和MAC层都采用IEEE802.15.4协议标准。

IEEE802.15.4描述了低速率无线个人局域网的物理层和媒体接入控制协议(MAC 层),属于IEEE802.15.4工作组。

而Zigbee技术是基于IEEE802.15.4标准的无线技术。

从应用上来讲:Zigbee适用于通信数据量不大,数据传输速率相对较低,成本较低的便携或移动设备。

这些设备只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另外一个传感器,并能实现传感器之间的组网,实现无线传感器网络分布式、自组织和低功耗的特点。

9、Zigbee技术特点:低功耗、低成本、大容量、可靠、时延短、灵活的网络拓扑结构。

zigbee实训报告总结

zigbee实训报告总结

zigbee实训报告总结在过去的几周中,我们团队一起参加了一项关于ZigBee技术的实训项目。

通过这个实训,我们学到了许多关于ZigBee网络的知识和技能,也获得了实际操作和解决问题的经验。

本文将对我们的实训过程进行总结,并分享我们的收获和思考。

一、实训背景在本次实训中,我们的主要任务是设计和搭建一个基于ZigBee技术的无线传感器网络。

该网络由多个终端设备和一个协调器组成,通过无线信号在设备之间传输数据。

我们需要在给定的环境条件下,利用ZigBee协议进行网络布线和通信。

二、实训步骤1. ZigBee网络规划与拓扑结构设计在项目开始时,我们对实训环境进行了调研和布局规划。

根据实际需求,确定了ZigBee网络的拓扑结构,并规划了每个终端设备的位置。

我们考虑到信号覆盖范围和设备之间的距离,以确保网络的稳定性和可靠性。

2. ZigBee协议配置与网络配置在网络规划完成后,我们进行了ZigBee协议配置和网络配置。

通过配置协调器和终端设备的参数,我们确保它们能够相互通信并建立稳定的连接。

我们调整了数据传输速率和功率以适应不同的应用场景,并设置了安全功能以保护网络的数据传输过程。

3. ZigBee终端设备开发与编程为了实现具体的应用功能,我们需要为每个终端设备进行开发和编程。

我们使用ZigBee开发工具包进行开发,并编写了适应项目需求的程序代码。

通过编程,我们实现了终端设备之间的数据交互和传感器数据的采集与处理。

4. ZigBee网络测试与故障排除在整个实训过程中,我们对ZigBee网络进行了多次测试和调试。

我们使用专业的测试工具对网络的连通性、数据传输速率和稳定性进行了评估。

当遇到故障或问题时,我们采取了适当的排除措施,以确保网络运行正常。

三、实训收获与思考通过这次实训,我们取得了一系列显著的收获和成果。

首先,我们对ZigBee技术有了更深入的了解,包括网络拓扑结构、协议配置、设备开发和编程等方面。

其次,我们熟悉了实际操作过程,提高了团队合作和问题解决的能力。

zigbee学习笔记

zigbee学习笔记

关于ZIGBEE技术Zigbee的由来在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。

对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化对无线通信的需求越来越强烈。

正因此,经过人们长期努力,Zigbee协议在2003年中通过后,于2004正式问世了。

Zigbee是什么Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里;另外整个Zigbee网络还可以与现有的其它的各种网络连接。

例如,你可以通过互联网在北京监控云南某地的一个Zigbee控制网络。

不同的是,Zigbee网络主要是为自动化控制数据传输而建立,而移动通信网主要是为语音通信而建立;每个移动基站价值一般都在百万元人民币以上,而每个Zigbee“基站”却不到1000元人民币;每个Zigbee 网络节点不仅本身可以与监控对对象,例如传感器连接直接进行数据采集和监控,它还可以自动中转别的网络节点传过来的数据资料; 除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。

每个Zigbee网络节点(FFD和RFD)可以可支持多到31个的传感器和受控设备,每一个传感器和受控设备终可以有8种不同的接口方式。

可以采集和传输数字量和模拟量。

Zigbee技术的应用领域Zigbee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿山和物流管理等应用领域。

另外它还可以对局部区域内移动目标例如城市中的车辆进行定位.通常,符合如下条件之一的应用,就可以考虑采用Zigbee技术做无线传输:1.需要数据采集或监控的网点多;2.要求传输的数据量不大,而要求设备成本低;3.要求数据传输可性高,安全性高;4.设备体积很小,不便放置较大的充电电池或者电源模块;5.电池供电;6.地形复杂,监测点多,需要较大的网络覆盖;7.现有移动网络的覆盖盲区;8.使用现存移动网络进行低数据量传输的遥测遥控系统。

zigbee基础知识笔记

zigbee基础知识笔记

1.基础知识 (1)1.1IEEE地址 (1)1.2簇 (2)1.3 Profile ID (4)1.4 网络地址与端点号、节点 (4)1.5 PANID (5)1.6 zigbee设备 (5)2.绑定机制 (7)2.1描述符绑定 (7)2.2设备绑定 (23)1.基础知识1.1IEEE地址IEEE地址是64位,在设备进入网络之前就分配好了的,应该在全球是唯一的,而网络地址是在网络建立后,设备加入网络时,它的父节点给它分配的,在设备通信时,首先由ieee地址找到设备的网络地址,然后根据网络地址实现设备之间的通信,这样可以减少帧头长度,多传有效数据通俗的说IEEE地址相当于你的手机号(11位的那个),短地址就相当于你们公司的小号(3、4)位,一个公司的互打电话就用小号噻。

假设你的手机号138xxxxx666,这个是唯一的,但你的小号,假设是666,在你的公司网中是唯一的,但是在另一个网中,可能别人的小号也是666。

1.2簇簇就是相当于端点房间里面的人,是接收最终的目标。

这东西是2个字节编号,在射频发送的时候,必须要指定接收模块的镞,发送模块不需要指定。

首先每一个端点可以看成是一个1个字节数字编号的开有一扇门的房间,数据最终的目标是进入到无线数据包指定的目标端点房间,而取无线数据这个相关的代码在任务事件处理函数里,TI协议栈有那么多的任务事件处理函数,所以必须要指定在哪个任务事件处理函数来取这个无线数据包里面的有用数据。

端点就相当于一个房间的门牌号!!!SimonApp_epDesc.endPoint = 10;//SimonApp_ENDPOINT; 此端点编号为10SimonApp_epDesc.task_id = &SimonApp_TaskID; 和我们应用层任务挂钩完成了簇信息表的构建,因为簇信息封装在SimonApp_SimpleDesc里面,这里面却只是起到一个信息表的作用!方便数据到来的时候查询相关信息表!const cId_t SimonApp_ClusterList[SimonApp_MAX_CLUSTERS] ={SimonApp_CLUSTERID};const SimpleDescriptionFormat_t SimonApp_SimpleDesc = {SimonApp_ENDPOINT, // int Endpoint;SimonApp_PROFID, // uint16 AppProfId[2];SimonApp_DEVICEID, // uint16 AppDeviceId[2];SimonApp_DEVICE_VERSION, // int AppDevVer:4;SimonApp_FLAGS, // int AppFlags:4;SimonApp_MAX_CLUSTERS, // byte AppNumInClusters;(cId_t *)SimonApp_ClusterList, // byte *pAppInClusterList;SimonApp_MAX_CLUSTERS, // byte AppNumInClusters;(cId_t *)SimonApp_ClusterList // byte *pAppInClusterList;};接收到数据以后,判断是属于哪一个端点、属于哪一个簇1.3 Profile ID这个是由Zigbee组织来分配的应用ID号,比如无线开关用0x0001,智能电表用ox0002,万用遥控器用0x0003等等。

ZigBee学习资料

ZigBee学习资料
}
我们可以看出所有任务的状态都被初始化为0。代表了当前任务没有需要响应的事件。
紧接着,我们来到了main()函数。此函数在ZMain文件夹的ZMain.c文件中。略过许多对当前来说并非重要的语句,我们先来看osal_init_system()这个函数。在此函数中,osalInitTasks()被调用,从而tasksEvents中的所有内容被初始化为0。
不过接下来就有了更加深入的问题了,事件是如何被捕获的?直观一些来说就是,tasksEvents这个数组里的元素是什么时候被设定为非零数,来表示有事件需要处理的?为了详细的说明这个过程,我将以GenericApp这个例程中响应按键的过程来进行说明。其他的事件虽然稍有差别,却是大同小异。
按键在我们的应用里面应该属于硬件资源,所以OSAL理应为我们提供使用和管理这些硬件的服务。稍微留意一下我们之前说过的tasksArr这样一个数组,它保存了所有任务的事件处理函数。我们从中发现了一个很重要的信息:Hal_ProcessEvent。HAL(Hardware Abstraction Layer)翻译为“硬件抽象层”。许多人在这里经常把将Z-Stack的硬件抽象层与ZigBee的物理层混为一谈。在这里,我们应该将Z-Stack的硬件抽象层与ZigBee的物理层区分开来。硬件抽象层所包含的范围是我们当前硬件电路上面所有对于系统可用的设备资源。而ZigBee中的物理层则是针对无线通信而言,它所包含的仅限于支持无线通讯的硬件设备。
osal_msg_send( registeredKeysTaskID, (uint8 *)msgPtr );
与前面的pHalKeyProcessFunction相同,我先直接告诉大家registeredKeysTaskID所指示的任务正式我们需要响应按键的GenericApp这个任务。

ZigBee学习资料

ZigBee学习资料

ZigBee学习资料ZigBee是一种低功耗、短距离、无线通信协议,主要用于物联网应用。

它基于IEEE 802.15.4标准,适用于各种设备之间的无线通信,如智能家居、智能电网、工业自动化等。

如果你对ZigBee感兴趣,想要深入了解相关知识和学习资料,本文将为你提供一些有用的资源和学习指南。

1. ZigBee官方文档和规范:ZigBee联盟是ZigBee技术的官方组织,他们提供了一系列的官方文档和规范,包括ZigBee技术规范、应用框架、网络层协议等。

你可以通过访问ZigBee联盟的官方网站,下载这些文档并深入学习。

这些文档提供了关于ZigBee的详细说明、架构、通信协议等方面的信息。

2. ZigBee开发工具和SDK:如果你想要进行ZigBee的开发和实践,可以考虑使用一些开发工具和软件开发包(SDK)。

例如,Digi International提供了一套名为"XCTU"的开发工具,它可以帮助你进行ZigBee设备的配置、调试和测试。

此外,Silicon Labs也提供了一套名为"ZigBee SDK"的软件开发包,用于开发基于ZigBee的应用程序。

3. ZigBee教程和在线课程:除了官方文档和开发工具,还有一些在线教程和课程可以帮助你学习ZigBee。

例如,Coursera平台上有一门名为"Wireless Communication for Everybody"的课程,其中包括了关于ZigBee的内容。

此外,你还可以在YouTube上找到一些ZigBee相关的教学视频,这些视频可以帮助你更好地理解ZigBee的原理和应用。

4. ZigBee参考书籍:如果你更喜欢通过阅读书籍来学习,以下是一些关于ZigBee的参考书籍推荐:- "ZigBee Wireless Networks and Transceivers" by Shahin Farahani- "ZigBee Network Protocols and Applications" by Chonggang Wang, Tao Jiang,and Qian Zhang- "ZigBee Wireless Sensor and Control Network" by Ata Elahi这些书籍涵盖了ZigBee的基础知识、网络协议、应用案例等方面的内容,可以帮助你系统地学习和理解ZigBee技术。

zigbee学习之-入门

zigbee学习之-入门

zigbee学习之--入门一、基础定义及知识。

1、何为ZigBee,与普通的RF技术有何区别?ZigBee是一种具有低成本低复杂度低功耗的小范围低速率的无线传输技术。

相对于普通的RF技术,其重要的特点是;(1) 低功耗,速率低数据量少。

、(2)自组织网络,可适应网络拓扑结构动态变化。

(3)高可扩充,在有协调器加入的情况下,最高可达65535个ZigBee节点。

2、何为IEEE 802.15.4,其特点。

是ZigBee无限传感器网络通信标准,具有短距离(10m),低功耗,低速率,低成本的特点,支持单跳星形(10m内)和多跳对等(>10m)两种网络拓扑。

3、何为Z-Stack?Z-Stack是TI公司开发的ZigBee协议栈,并且经过了ZigBee联盟的认可而为全球众多开发商所广泛采用。

Z-Stack实际上是帮助程序员方便开发ZigBee的一套系统,它采用轮转查询式操作系统,包括两个主要流程(如图):系统初始化和执行操作系统。

系统初始化完成后,就进入执行操作系统,并且在其中是一个死循环。

执行操作系统中主函数即为轮询式操作系统的主体部分,也是我们需要重点开发、调用、掌握的部分。

欲知其详,且听下文分解。

有关第一部分的题外话,笔者在学习的时候,还是详细看了ZigBee概述和IEEE 802.15.4通信标准的,不过事后发现,如果只是想达到能调用Z-Stack中的函数进行简单的程序编写,尤其像我们这样为了比赛而准备的短期突击学习来说,并没有太大必要去详细了解这些标准,不过看了这些标准之后,的确会对后面的学习有些帮助。

另,为了能看懂一些Z-Stack资料,需要知道很多的名词定义和缩写,这部分我就放在了第四章,如果有看不懂的地方,可以先跳到第四章查询。

二、开发Z-Stack须知。

1、ZigBee的体系,数据及管理的方式和方向。

ZigBee网络构架。

上图是ZigBee协议的体系结构。

上图是zigbee网络构架。

zigbee实验心得体会

zigbee实验心得体会

zigbee实验心得体会
本次实训之前,我就上网搜索了zigbee的概念和相关信息。

通过这次为期五周的无线通信技术综合训练,我对Zigbee无线通信技术,以及单片机CC2530开发板的硬件结构和功能有了初步的了解和认识。

实训的第一周,我们学习利用IAREmbeddedWordbench软件,建立工程,编写、调试和下载程序,通过CC2530开发板的现象来分析程序的功能。

亲眼目睹了软件驱动硬件工作之后,我开始对这次实训产生了浓厚兴趣。

在熟悉了软件和硬件的基本操作后,我们开始编写和调试相对复杂的程序。

这个编写和调试的过程对我来说是个很大的挑战,因为我的C51基础很薄弱,所以很多看似简单的程序,我都要去查资料或者请教老师同学。

最后一周的综合实验,是小组合作共同完成的。

我体会到了Zigbee技术的功能强大,也体会到了团队合作的快乐和价值。

现实和理想总是有差距的,或多或少都会出现一些问题。

对于通信方面的实训来说更是如此。

在这次实训过程中,我遇到了各种问题:某句程序不理解,程序调试不成功,节点指示灯不闪烁,
液晶屏显示乱码,实验现象和预期要求不符等。

通过查阅相关资料、小组成员探讨和请教老师等途径,这些问题得到了及时有效的解决。

解决问题的过程不是一帆风顺的,是要付出汗水和努力的,但这个过程很值得。

通过这次实训,我认识和了解了热门的Zigbee技术,提高了C51的程序编写和调试能力。

更重要的是,这次实训提高了我们通信专业所必需的实践能力和职场所需的团队合作能力,培养了我们认真严谨的科学态度。

这些东西将让我们终身受益!。

Zigbee协议的基础知识

Zigbee协议的基础知识

Zigbee协议的基础知识一、ZigBee堆栈层ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。

ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。

图1-1给出了这些组件的概况。

图:Zigbee堆栈框架每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。

这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。

公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。

设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。

每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件从应用角度看,通信的本质就是端点到端点的连接,例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮。

端点之间的通信是通过称之为簇的数据结构实现的。

这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。

图1-1-2就是设备及其接口的一个例子:每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。

一共有二个特殊的端点,即端点0和端点255。

端点0用于整个ZigBee 设备的配置和管理。

应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置。

附属在端点0的对象被称为ZigBee设备对象(ZD0);端点255用于向所有端点的广播;端点241到254是保留端点。

所有端点都使用应用支持子层(APS)提供的服务。

APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。

APS使用网络层(NWK)提供的服务。

NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。

zigbee学习总结.doc

zigbee学习总结.doc

zigbee学习总结篇一:Zigbee协议栈学习总结典型的智能家居网络总体结构图智能家居系统模块整体框图ZigBee是一种标准,该标准定义了短距离、低速率传输速率无线通讯所需要的一系列通信协议。

基于ZigBee的无线网络所使用的工作频段为868MHz、915MHz和2.4GHz,最大数据传输速率为250Kbps。

ZigBee无线网络共分为5层:物理层(PHY),介质访问控制层(MAC),网络层(NWK),应用程序支持子层(APS),应用层(APL)。

总体而言,ZigBee技术有如下特点:高可靠性,低成本,低功耗,高安全性,低数据速率Zigbee网络中的设备主要分为三种:1,协调器,协调器节点负责发起并维护一个无线网络,识别网络中的设备加入网络,一个ZigBee 网络只允许有一个ZigBee 协调器;2,路由器,路由器节点支撑网络链路结构,完成数据包的转发;。

ZigBee 网格或树型网络可以有多个ZigBee 路由器。

ZigBee 星型网络不支持ZigBee 路由器。

3,终端节点,负责数据采集和可执行的网络动作。

从功能上,zigbee节点应由微控制器模块、存储器、无线收发模块、电源模块和其它外设功能模块组成。

ZigBee/IEEE802.15.4定义了两种类型的设备:它们是全功能设备(FFD,Full Function Device)和精减功能设备(RFD,Reduced Function Device)。

FFD可以当作一个网络协调器或者一个普通的传感器节点,它可以和任何其他的设备通讯,传递由RFD发来的数据到其他设备,即充当了路由的功能。

而RFD只能是传感器节点,它只能和FFD进行通讯,经过FFD可以将自己测得数据传送出去。

在ZigBee网络中大多是这两种设备,网络中结点数理论上最多可达65,536个,可以组成三种类型网络:星型、网状型和树型。

星状网络由一个PAN 协调器和多个终端设备组成,只存在PAN 协调器与终端的通讯,终端设备间的通讯都需通过PAN 协调器的转发。

Zigbee深入浅出实战篇幻灯片资料

Zigbee深入浅出实战篇幻灯片资料
其中p2组只有5个io口低五位也对应p20p24后面的3位决定在配置为上下拉模式的时候组为上拉还是下拉0表示上拉1表示下拉pxinp寄存器在输入请的情况下每一位对应具体的io组中的相应的一个io决定它是上下拉模式还是三态表示三态
Zigbee深入浅出 实战篇
胜达电子老达
Zigbee深入浅出 实战篇
胜达网 www.sddz.xyz
第二小节、OSAL部分
2、操作系统是什么?能干什么事?为什么要在 Zigbee里面引入操作系统他和Zigbee是什么关系?
3、掌握操作系统的一些概念,如任务、事件、 事件处理、消息、调度等
4、协议栈中OSAL的工作原理 5、通过协议栈在操作系统OSAL下完成按键点灯 实验,进一步熟悉OSAL的工作原理,建立直观、 感性认识。 6、学会新建自己的工程。
SLEEPCMD SLEEPSTA CLKCONCMD CLKCONSTA
串口
CC2530具备2个串口;且每个串口都可以配置选择控制脚。
串口配置步骤:
1、指定串口的IO位置;
2、相应IO配置成偏上外设功能;
3、8个数据位、1个停止位、无流控、无校验确立。
4、波特率;
5、开CPU中断、对应串口接收中断;
PxSEL寄存器(x=0、1) 相应的一个IO,决定它 是普通IO口还是片上外设,0表示普通IO口,1表 示片上外设.
PxS 7 EL寄
6
5
4
3
2
1
0
存器 位
Px Px_ 组对 7 应 IO 口的 位
Px_ 6 Px_ 5 Px_ 4 Px_ 3 Px_ 2 Px_ 1 Px_ 0
P2SEL寄存器 同样也是0表示普通IO、1表示片上外 设 注意:其中P2组只有5个IO口,但是P2_1 P2_2 是用于下载程序用的,所以,这两个IO不需要配置, 因此P2SEL的低3位分别对应P2_0 P2_3 、P2_4.
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

其实也算不上什么解读拉,基本上是把官方的文档翻译了一下。

在Zigbee中,是分层结构的,这样做有很多的好处,每一层只负责自己的东西,数据传输更加透明和有效,好了闲话不说,我们开始解读MAC层API,当然是针对Z-Stack的,呵呵MAC API【802.15.4 MAC API _F8W-2005-1503_.pdf】常量和结构体typedef uint8 sAddrExt_t【8】;typedef struct{union{uint16 shortAddr;sAddrExt_t extAddr;} addr;uint8 addrMode;} sAddr_t;shortAddr - 16位MAC 短地址extAddr - 64位MAC 扩展地址addrMode - 地址模式SADDR_MODE_NONE - 地址不存在SADDR_MODE_SHORT - 使用16位短地址SADDR_MODE_EX T - 使用64位扩展地址状态值标准状态值MAC_SUCCESS 操作成功MAC_BEACON_LOSS 同步请求中丢失信标MAC_CHANNEL_ACCESS_F AILURE 由于通道活跃,数据请求失败MAC_COUNTER_ERROR 接收到的帧的发送源的帧计数器不可用MAC_DENIED MAC不能进入低功耗模式MAC_FRAME_TOO_LONG 接收到的帧或者操作产生的帧或数据请求太长MAC_IMPROPER_KEY_TYPE 接收到的帧的发送源的KEY不可用MAC_IMPROPER_SECURITY_LEVEL 接收到的帧的发送源安全等级和最低等级不匹配MAC_INVALID_ADDRESS 由于没有源地址或目的地址,数据请求失败MAC_INVALID_HANDLE 清除请求包含不可用的处理MAC_INVALID_PARAMETER API函数参数超出范围MAC_LIMIT_REACHED 由于P AN描述储存达到界限,扫描中止MAC_NO_ACK 由于没有收到应答,操作或数据请求失败MAC_NO_BEACON 由于没有收到信标,扫描请求失败MAC_NO_DAT A 由于没有收到关联应答,关联请求失败MAC_NO_SHORT_ADDRESS 开始请求的短地址错误MAC_P AN_ID_CONFLICT 检测到一个P AN ID冲突MAC_READ_ONLY 拥有只读标记的请求MAC_REALIGNMENT 接收到协调器重排列MAC_SCAN_IN_PROGRESS 扫描正在进行,新的扫描请求失败MAC_SECURITY_ERROR 接收到的安全帧密码处理失败MAC_SUPERFRAME_OVERLAP 信标开始时间超出协调器传输时间MAC_TRACKING_OFF 没有找到其协调器的信标,开始请求失败MAC_TRANSACTION_EX PIRED 关联应答,解关联请求,间接数据传输失败MAC_TRANSACTION_OVERFLOW 数据缓存溢出,操作失败MAC_UNAV AILABLE_KEY 安全密钥不可用MAC_UNSUPPORTED_ATTRIBUTE 由于不支持的特性指令或请求失败MAC_UNSUPPORTED_LEGACY 不支持的安全方式MAC_UNSUPPORTED_SECURITY 接收到的帧的安全方式不支持私有状态值MAC_UNSUPPORTED 当前配置不支持的操作MAC_BAD_ST ATE 当前状态不支持的操作MAC_NO_RESOURCES 内存资源不足MAC时间值aBaseSuperframeDuration 构成超帧的符号周期960 15.36ms(2.4G)aUnitBackoffPeriod 构成CSMA-CA算法的时间周期的符号周期20 320us(2.4G)初始化接口初始化接口函数都是直接执行函数void MAC_Init(void)初始化MAC子系统void MAC_InitDevice(void)初始化MAC关联到一个非信标网络,使用此函数初始化一个RFD设备,如果使用此函数,要在调用其它数据和管理API之前调用void MAC_InitCoord(void)初始化MAC能进行协调器的操作。

此函数用来初始化一个FFD设备,要在调用其它数据和管理API 之前调用void MAC_InitSecurity(void)使MAC能使用安全功能,要在调用其它数据和管理API之前调用void MAC_InitBeaconCoord(void)初始化MAC在信标网络中能进行协调器的操作。

此函数要在调用其它数据和管理API之前调用void MAC_InitBeaconDevice(void)初始化MAC能关联到一个信标网络,此函数要在调用其它数据和管理API之前调用提供一些ZigBee的配置事例,其他的网络配置请看TI的文档ZigBee节点设备ZigBee路由器ZigBee协调器MAC_InitDevice(); MAC_InitDevice(); MAC_InitCoord();MAC_InitCoord();数据接口MAC层用来发送和接收数据的API数据结构typedef struct{uint8 *p;uint8 len;} sData_t;p –指向数据len –数据的字节长度数据常量MAC_MAX_FRAME_SIZE 102 不包含安全域的最大数据长度MAC_DAT A_OFFSET 24 MAC头要求的数据偏移MAC_ENC_OFFSET 5 加密头要求的数据偏移MAC_MIC_32_LEN 4 32位认证代码要求的长度MAC_MIC_64_LEN 8 64位认证代码要求的长度MAC_MIC_128_LEN 16 128位认证代码要求的长度void MAC_McpsDataReq(macMcpsDataReq_t *pData)将应用数据发送到MAC。

若MAC拥堵或者不能接受数据请求则发送状态为MAC_TRANSACTION_OVERFLOW的MAC_MCPS_DAT A_CNF,最终MAC将变得不拥堵并且为一个缓存的请求发送MAC_MCPS_DAT A_CNF。

所以应用能在任何时候发送数据,只是数据将被队列。

应用必须分配一定字节的缓存,数目是:MAC_DAT A_OFFSET+MAC_ENC_OFFSET(如果使用加密安全)。

可用使用MAC_McpsDataAlloc()来方便准确的分配这个缓存。

最大的数据帧长度为MAC_MAX_FRAME_SIZE,如果使用加密安全,则还要减去MAC_ENC_OFFSET及其相关的加密代码区域:比如使用AES-MIC128,则最大的数据帧长度为:max = MAC_MAX_FRAME_SIZE - MAC_ENC_OFFSET – MAC_MIC_128_LEN;参数:typedef struct{sAddr_t dstAddr;uint16 dstPanId;uint8 srcAddrMode;uint8 mdsuHandle;uint8 txOptions;uint8 channel;uint8 power;} macDataReq_t;typedef struct{macEventHdr_t hdr;sData_t msdu;macTxIntData_t internal;macSec_t sec;macDataReq_t mac;} macMcpsDataReq_t;hdr和internal是内部使用的,mac.mdsuHandle是应用定义的关于数据请求的句柄值,mac.txOptions 为TX参数位掩码,有以下一些值,其他的都很好理解了。

MAC_TX OPTION_ACK 应答传输。

如果没有收到应答将重传MAC_TX OPTION_GTS GTS传输(unused).MAC_TX OPTION_INDIRECT 间接传输。

MAC将队列数据等待目标设备请求此数据。

只有协调器才可用这种方式MAC_TX OPTION_NO_RETRANS 无中继传输。

MAC_TX OPTION_NO_CNF 无确认。

这将阻止为此帧发送MAC_MCPS_DAT A_CNF事件MAC_TX OPTION_ALT_BE Use PIB value MAC_ALT_BE for the minimum backoff exponent. MAC_TX OPTION_PWR_CHAN 用macDataReq_t结构中的电源和通道值而不用PIB中的值来传输void MAC_McpsPurgeReq(uint8 msduHandle)从MAC数据队列中清空并丢弃数据请求,当完成操作后MAC发送MAC_MCPS_PURGE_CNF macMcpsDataReq_t *MAC_McpsDataAlloc(uint8 len, uint8 securityLevel, uint8 keyIdMode)如果用此函数分配了MAC_McpsDataReq()所需的数据缓存,在收到MAC_MCPS_DAT A_CNF后要通过osal_msg_deallocate(pBuffer)来释放。

若不使用安全则设置securityLevel和keyIdMode为MAC_SEC_LEVEL_NONE和MAC_KEY_ID_MODE_NONE回调函数事件这些回调函数由应用调用,用来将事件或者数据从MAC传到应用。

MAC_MCPS_DAT A_IND从MAC发送数据到应用。

这个事件的参数指向一个动态分配的缓存,当应用用完数据后必须调用osal_msg_deallocate(pData)来释放缓存。

MAC还能为应用定义的数据分配额外的空间,应用定义的数据的大小由MAC_MlmeSetReq()的属性MAC_DAT A_IND_OFFSET设置。

参数:typedef struct{sAddr_t srcAddr;sAddr_t dstAddr;uint32 timestamp;uint16 timestamp2;uint16 srcPanId;uint16 dstPanId;uint8 mpduLinkQuality;uint8 correlation;uint8 rssi;uint8 dsn;} macDataInd_t;typedef struct{macEventHdr_t hdr;sData_t msdu;macRxIntData_t internal;macSec_t sec;macDataInd_t mac;} macMcpsDataInd_t;mac.timestamp –接收到帧的时间,单位为aUnitBackoffPeriodmac.timestamp2 –接收到帧的时间,单位为内部MAC定时器单元mac.correlation – The raw correlation value of the received data frame. This value depends on the radio. See the chip data sheet for details.dsn –接收到的帧的数据序列MAC_MCPS_DAT A_CNF每当调用MAC_McpsDataReq()时就会向应用发送这个事件,这个事件返回数据请求的状态这个事件同样返回指向数据缓存的指针,应用能利用这个指针来释放空间。

相关文档
最新文档