zigbee协议栈

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

IEEE802.15.4
IEEE 802.15.4网络共定义了四种类型的帧:信标帧,数据 帧,确认帧和MAC命令帧
1)信标帧 信标帧的负载数据单元由四部分组成:超帧描述字段、GTS分配字段、 待转发数据目标地址字段和信标帧负载数据 2)数据帧 数据帧用来传输上层发到MAC子层的数据,它的负载字段包含了上层 需要传送的数据 3)确认帧 如果设备收到请求位被置1,设备需要回应一个确认帧,确认帧的序列 号应该与被确认帧的序列号相同,并且负载长度应该为零 4)命令帧 MAC命令帧用于组建PAN网络,传输同步数据等,主要完成三方面的 功能:把设备关联到PAN网络,与协调器交换数据,分配GTS
NetBEUI:是一种短小精悍、通信效率高的广播型协议,不 需要进行设置,适合于在“网络邻居”传送数据
IPX/SPX协议:联机的游戏都支持IPX/SPX协议,这些游戏 通过IPX/SPX协议更省事,因为根本不需要任何设置(比 TCP/IP省事)
网络协议
网络协议的层次结构如下:{此为ISO(国际标准化组织)制 定的OSI网络协议七层模型}
通过osalInitTasks( )函数创建OSAL任 务,其中TaskID为每个任务的唯一标 识号
任何OSAL任务必须分为两步:
一是进行任务初始化 二是处理任务事件
zigbee
一、任务初始化主要步骤如下:
(1)初始化应用服务变量。 const pTaskEventHandlerFn tasksArr[ ]数组定义系统提供的应用服务和用户 服务变量
物理层 数据链路层 网络层 传输层 会话层
表示层 应用层
物理连接,电缆,网卡,串口并口
以帧为单位传输数据,主要任务是建立数据封装及链接 网络网络之间的通信问题,提供路由,即最佳路径 解决传输数据质量问题,提供可靠的端到端的数据传输 会话连接到传输连接的映射,数据传送,会画连接的恢复和释放,会 画管理,令牌管理和活动管理 数据语法转换,语法表示,数据压缩和数据加密
IEEE802.15.4
IEEE 802.15.4的协议栈架构
应用程序通过它和协议层进 行交互来实现MCPS/MLME 的请求和确认,消息的标识 和回应
应用程序通过板卡API和传感 器板或者控制器板访问板卡 上的设备
硬件层产生各种中断通过中断 句柄将其转发给各个软件模块 协议层和更底层的硬件 以及寄存器进行交互
术语API:实现应用程序与操作系统之间通信,告诉操作系统要执行的任务的 接口。API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而 又无需访问源码(个人理解为类似于子函数)
整个Z-stack的主要工作流程,大致分为系统启动,驱动初始化,OSAL初 始化和启动,进入任务轮循几个阶段
zigbee
IEEE802.15.4
定义
IEEE 802.15.4描述了低速率无线个人局 域网的物理层和媒体接入控制协议
两个名词: 个人区域网络(personal area network, PAN) 无线个人区域网络(wireless personal area network, WPAN)
IEEE 802.15.4标准定义的LR-WPAN网络具有如下特点: (1)不同的载波频率下实现了20、40、250kbps三种不同的传输速 率
定义
Zigbee是IEEE 802.15.4协议的代名词,根据这个 协议规定的一种短距离、低功耗的无线通信技术
Zigbee协议栈
TI公司开发的Z-Stack是ZigBee协议栈,并且经过了ZigBee联盟的认 可而为全球众多开发商所广泛采用(下面我们重点讨论Z-Stack ,我 们没必要弄懂zigbee协议栈所有源代码,所谓开发或应用主要是对主 函数及操作系统的修改应用,许多库函数据项目要求而做修改即可)
zigbee
(4)注册相应的OSAL或者HAL系统服务 在协议栈中,Z-stack提供键盘响应和串口活动响应两种系统服务,但是任何ZStask任务均不自行注册系统服务,两者均需要由用户应用程序注册
点对点网络的形成
任意两设备只要能彼此收到对方的无线信号,就可以进行直接通信,不 需要其他设备的转发 但点对点网络中仍然需要一个网络协调器,不过该协调器的功能不再是 为其他设备转发数据,而是完成设备注册和访问控制等基本的网络管理 功能。由点对点传输方式构成以帧为单位 传输数据
Z-stack流程图
zigbee
主函数
协议栈已经放在了库文件当中,是通用文件 main函数存在于Zmain函数当中,先是从main函数开始运行的,main函数实现 的功能是,初始化硬件、初始化网络(加入/创建网络)、初始化任务列表、进 入任务处理循环
int main( )主函数实现硬件的初始化其中包括 关总中断osal_int_disable( INTS_ALL ) 初始化板上硬件设置HAL_BOARD_INIT( ) 初始化I/O口InitBoard( OB_COLD ) 初始化HAL层驱动HalDriverInit( ) 初始化非易失性存储器sal_nv_init( NULL ) 初始化MAC层ZMacInit( ) 分配64位地址zmain_ext_addr( ) 初始化操作系统osal_init_system( )等
除64位IEEE MAC 地址外,还须分配一个16位的短地址
例如Zigbee技术选择2.4GHz
设备以Co-ordinator的模式启动,然后就开放请求应答 有可以利用的Co-ordinator,设备就可以申请加入网络
设备被Co-ordinator接受,将获得短地址作为标识,便可 传输数据
zigbee
(2)分配任务ID和分配堆栈内存 void osalInitTasks( void )主要功能是通过调用osal_mem_alloc( )函数给各个 任务分配内存空间,和给各个已定义任务指定唯一的标识号
(3)在AF层注册应用对象 通过填入endPointDesc_t数据格式的EndPoint变量,调用 afRegister( )在AF 层注册EndPoint应用对象。 通过在AF层注册应用对象的信息,告知系统 afAddrType_t地址类型数据包的路由端点
中心系统一旦损坏,整个系统便趋于瘫痪
网络拓扑结构
环型拓扑结构(这种结构消除了端用户通信时对中心
系统的依赖性):
abcde五个节点组成的环型结构,数据由a到d时 路径为a->b->c->d->e->a d接收到数据后,在数据上做一个标记,传给e,再传给a, a则知道d接收到了数据
可靠性低,一个节点故障,将会造成全网瘫痪
IEEE 802.15.4标准只定义了PHY层和数据链路层的MAC子层
(数据链路层进一步划分为MAC和LLC两个子层,MAC子层使用物理 层提供的服务实现设备之间的数据帧传输)
PHY层由射频收发器以及底层的控制模块构成 MAC子层为高层访问物理信道提供点到点通信的服务接口
MAC子层
MAC层帧结构的设计目标是用最低复杂度实现数据可靠传输 每个 MAC子层的帧都由帧头、负载和帧尾三部分组成 # 帧头由帧控制信息、帧序列号和地址信息组成 # 负载(数据)具有可变长度,具体内容由帧类型决定 # 帧尾是帧头和负载数据的16位CRC校验序列
硬件初始化需要根据HAL文件夹中的hal_board_cfg.h(头文件)文件 配置寄存器8051的寄存器(比如说哪些I/O口与什么硬件相连)
zigbee
OSAL系统
顺利完成上述初始化后,开中断执行osal_start_system( )函数开始运行 OSAL系统
该任务调度函数按照优先级检测各个任务是否就绪,如果存在就绪的任务则 调用tasksArr[ ]中相对应的任务处理函数去处理该事件,直到执行完所有就绪 的任务
只要一段线路发生故障,整个网络会瘫痪(现在不怎么用了)
网络拓扑结构
星型拓扑结构(现在最流行的):网络有中央节点,其他
节点(工作站、服务器)都与中央节点直接相连
中央节点(中央节点相当复杂,负担比各节点重)执行集中式通信控制 策略,在星型网中任何两个节点要进行通信都必须经过中央节点控制 中央节点的主要功能有三项: 1检查是否有空闲的通路,从而建立双方的物理连接 2能维持通信通道 3能拆除通信通道
TI公司的Z-Stack协议栈装载在一个基于IAR开发环境的工程里
Z-Stack采用操作系统的思想来构建,采用事件轮循机制,当各层初始化之
后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件, 结束后继续进入低功耗模式 如果同时有几个事件发生,判断优先级,逐次处理事件 这种软件构架可以极大地降级系统的功耗
应用程序通过API和芯片上集 成的外围设备(如AD,DA, Timers...)进行交互
IEEE802.15.4
IEEE802.15.4网络的建立过程
首先,每个设备的协议栈必须要对其PHY和MAC层初始化
每个网络必须有一个也只能有一个PAN Co-ordinator PAN ID作为网络标识,可以被人为的预定义
浅谈zigbee技术
蒋佳君
contents
• 网络协议及网络拓扑结构 • IEEE802.15.4及Zigbee • zigbee芯片及模块
网络协议
定义
网络协议是指为了实现计算机间的通信而设计的一 组规则, 它规定了通信时信息必须采用的格式和这 些格式的意义
一个网络协议至少包括三要素: 语法 用来规定信息格式;数据及控制信息的格式、编码及信号电平等
网络拓扑结构分为3种:总线型,星型,环型
总线型
星型
环型
网络拓扑结构
总线型拓扑结构:所有计算机连接在一根总线上
每个节点网络接口板硬件均具有收、发功能 接收器接收总线上串行信息并转换成并行信息送到PC工作站 发送器是将并行信息转换成串行信息后广播发送到总线上 总线上发送的目的地址与某节点的接口地址相符时,该节点的接收器便接 收信息
由点对点传输方式构成了网状网拓扑结构设备发送数据给协调器协调器发送数据给设备对等设备之间的数据传输星型拓扑网络中只存在前两种数据传输方式因为数据只在协调器和设备之间交换而在点对点拓扑网络中三种数据传输方式都存在前面提到ieee802154支持星型和点对点两种网络拓扑结构ieee802154标准只定义了phy层和数据链路层的mac子层数据链路层进一步划分为mac和llc两个子层mac子层使用物理层提供的服务实现设备之间的数据帧传输phy层由射频收发器以及底层的控制模块构成mac子层为高层访问物理信道提供点到点通信的服务接口mac层帧结构的设计目标是用最低复杂度实现数据可靠传输每个mac子层的帧都由帧头负载和帧尾三部分组成帧头由帧控制信息帧序列号和地址信息组成负载数据具有可变长度具体内容由帧类型决定帧尾是帧头和负载数据的16位crc校验序列mac子层以帧为单位传输数据ieee802154网络共定义了四种类型的帧信标帧数据帧确认帧和mac命令帧1信标帧信标帧的负载数据单元由四部分组成超帧描述字段gts分配字段待转发数据目标地址字段和信标帧负载数据2数据帧数据帧用来传输上层发到mac子层的数据它的负载字段包含了上层需要传送的数据3确认帧如果设备收到请求位被置1设备需要回应一个确认帧确认帧的序列号应该与被确认帧的序列号相同并且负载长度应该为零4命令帧mac命令帧用于组建pan网络传输同步数据等主要完成三方面的功能把设备关联到pan网络与协调器交换数据分配gtsieee802154的协议栈架构行交互来实现mcpsmlme的请求和确认消息的标识和回应应用程序通过它和协议层进协议层和更底层的硬件以及寄存器进行交互应用程序通过api和芯片上集成的外围设备如addatimers
(2)支持星型和点对点两种网络拓扑结构 (3)有16位和64位两种地址格式 (4)支持冲突避免的载波多路侦听技术( CSMA-CA) (5)支持确认(ACK)机制,保证传输可靠性
IEEE802.15.4
前面提到IEEE802.15.4支持星型和点对点两种网络拓扑结构
设备发送数据给协调器、协调器发送数据给设备、对等设备之间的数据 传输(星型拓扑网络中只存在前两种数据传输方式,因为数据只在协调 器和设备之间交换;而在点对点拓扑网络中,三种数据传输方式都存在)
语义 用来说明通信双方应当怎么做;用于协调与差错处理的控制信息
定时 (时序)定义了何时进行通信,先讲什么,后讲什么,讲话的速
度等。比如是采用同步传输还是异步传输
网络协议
常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议
TCP/IP协议:IP协议、TCP协议名称的组合 通过局域网访问互联网,就要详细设置IP地址,网关,子网 掩码,DNS服务器等参数
直接面对用户的具体应用,包含用户应用程序执行通信任务所需要的 协议和功能
网络协议

TCP/IP结构对应OSI结构
TCP/IP
OSI
应用层
应用层 表示层 会话层
主机到主机层(TCP) 网络层(IP)
网络接口层
传输层 网络层 数据链路层 物理层
网络拓扑结构
定义
在计算机网络中指设备和线路的安排或布局在地理 网络中指网络要素之间的连接(即计算机是以何种 方式连接在一起的)
zigbee
Z-Stack实际上是帮助程序员方便开发ZigBee的一套系统
整个Z-Stack采用分层的软件结构 硬件抽象层(HAL)提供各种硬件模块的驱动,包括定时器Timer,通用I/O口 GPIO,通用异步收发传输器UART,模数转换ADC的应用程序接口API,提 供各种服务的扩展集 操作系统抽象层OSAL实现了一个易用的操作系统平台,通过时间片轮转函数 实现任务调度,提供多任务处理机制。用户可以调用OSAL提供的相关API进 行多任务编程,将自己的应用程序作为一个独立的任务来实现
如果任务列表中没有就绪的任务,则可以使处理器进入睡眠状态实现低功耗 osal_start_system( )一旦执行,则不再返回Main( )函数
zigbee
OSAL程序流程图
OSAL是协议栈的核心
Z-stack的任何一个子系统都作为 OSAL的一个任务,因此在开发应用层 的时候,必须通过创建OSAL任务来运 行应用程序
相关文档
最新文档