802.15.4 WPAN协议-MAC帧结构

802.15.4 WPAN协议-MAC帧结构

一、超帧结构

IEEE 802.15.4 允许使用超帧结构。超帧的格式由协调器定义。
1、 不带GTS的超帧
如图 4a 所示,协调器发送的信标帧是超帧的分界线,且每个超帧被分为 16 个持续时间相等的时隙,时隙长度可选,一般为0.32ms。
如图 4b 所示,超帧由活跃期和(可选)非活跃期两部分组成。在非活跃期,协调器能进入低功耗模式。
信标帧位于超帧的第一个时隙,标志着一个新超帧结构的开始。如果协调器不想使用超帧结构,它可以不传输超帧。信标的作用是与附着设备同步、标识 PAN 网络以及描述超帧的结构。

图 超帧的结构

2、 带GTS的超帧

  1. CAP:竞争接入期:任何设备想在此时通信,必须采用CSMA-CA竞争机制;
  2. CFP:非竞争期:由GTS组成,这段时期内不需竞争;
  3. GTS:保证时隙:是活动超帧的一部分,为实现一些特殊应用开辟的。

任何设备想要在两个信标之间的竞争接入期(contention Access period,CAP)进行通信,就必须同其他设备采用时隙免冲突载波检测多路接入CSMA-CA机制进行竞争,所有的处理必须在下一个网络信标的到达之前完成。

有一些应用需要低延迟或者特定的数据带宽,PAN 协调器可以直接将超帧的一部分活跃期分配给该应用。这段时间叫做有保证的时隙(GTS)。

如下图所示,GTS 属于免竞争时期(CFP),总是出现在超帧有效期内的结尾,并将竞争访问时期(CAP)结束后的第一个时隙边界作为开始。协调器最多可以分配七个 GTS,且每个 GTS 可以占有多个时隙。

图 带有 GTS 的活跃期结构

3、 MAC帧结构

MAC帧结构如下图所示,第1个时隙是用来传输信标帧的,后面15个时隙是竞争接入期(CAP),这16个时隙组成超帧结构。而最后一个时隙也是传输信标帧,但是属于下一个超帧结构。具体帧结构由PAN协调器定义。

图 MAC帧结构

二、MAC帧类型

设计帧结构主要考虑两方面,其一是使帧结构尽可能简单,其二是保证在具有噪声的信道中传输时保持健壮性。每一层的协议都会在这个结构上添加本层相关的头部和尾部。802.15.4标准定义了四种帧结构:
 信标帧,协调器使用信标帧传输信标。
 数据帧,用于传输数据。
 确认帧,用于确认成功接收到到帧。
 MAC 命令帧,用于处理所有 MAC 对等的实体控制传输。
介质访问控制层(MAC)帧被称为MAC协议数据单元(MPDU),其长度不超过127个字节。
MAC 帧会传递给物理层,作为 PHY 服务数据单元(PSDU),成为物理层的负载。物理层协议数据单元PPDU如图 6 所示。

图 PPDU结构

1、 信标帧

信标帧MPDU由MAC子层产生。在信标网络中,协调器通过向网络中的所有从设备发送信标帧,以保证这些设备能够同协调器进行同步(同步工作和同步休眠),以达到网络功耗最低(非信标模式只允许ZE进行周期性休眠,ZC和所有ZR必须长期 处于工作状态)。其帧结构如下图所示。

其中MHR是MAC层帧头;MSDU是MAC层服务数据单元,表示MAC层载荷;MFR是MAC层帧尾。这三部分共同构成了MAC层协议数据单元(MPDU)。MFR中包含16位帧校验序列(FCS)。当MAC层协议数据单元(MPDU)被发送到物理层(PHY)时,它便成为了物理层服务数据单元(PSDU)。如果在PSDU前面加上一个物理层帧头(PHR)便可构成物理层协议数据单元(PPDU)。如果再加上一个同步帧头(SHR),则这个数据包便成为最终在空气中传播的数据包。

 MSDU = 超帧域+ 示处理数据地址域 + 地址列表域 + 信标净荷域

 MHR = 帧控制域+ 信标序列号 + 寻址信息域

 MFR = 16bit的帧校验序列FCS

 MPDU = MHR + MSDU + MFR

 MAC协议数据单元= MAC帧头 + MAC服务数据单元 + MAC帧尾

 PPDU = PHR + PSDU + PFR

 物理层协议数据单元 = 物理层帧头 + 物理层数据单元 + 物理层帧尾

 空气中最终传播的数据包= PPDU + 同步帧头SHR

2、 数据帧

数据帧由高层(应用层)发起,在ZigBee设备之问进行数据传输的时候,要传输的数据由应用层生成,经过逐层数据处理后发送给MAC层,形成MAC层服务数据单元(MSDU)。通过添加MAC层帧头信息和帧尾,便形成了完整的MAC数据帧MPDU,其帧结构如下图所示。

应用层生成要传输的数据------>逐层数据处理------>MSDU------>添加MHR、MFR------>MPDU------>PSDU------>添加SHR、PHR------>PPDU

 SHR = 前导码序列 + SFD域

 PHR = PSDU长度值

3、 应答帧

应答帧由MAC子层发起。为了保证设备之问通信的可靠性,发送设备通常要求接收设各在接收到正确的帧信息后返回一个应答帧,向发送设备表示已经正确的接收了相应的信息。其帧结构如下图所示。MAC子层应答帧由MHR和MFR组成。MHR包括MAC帧控制域和数据序列号;MFR由16bit的FCS组形成。

同样,MPDU传到物理层就形成物理应答帧的净载荷,即PSDU。在PSDU前面加上SHR和PHR就形成PPDU。其中SHR由前导码序列和SFD域构成;PHR由PSDU的长度值域构成

4、 命令帧

MAC命令帧由MAC子层发起。在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧。其帧结构如下图所示。

 MSDU = 命令类型域 + 数据域(命令净载荷)

 MHR = MAC帧控制域 + 数据序列号 + 寻址信息域

 MFR = 16bitFCS

 MPDU = MHR + MSDU + MFR

同样,MPDU传到物理层就形成物理层命令帧的净载荷,即PSDU。在PSDU前面加上SHR和PHR就形成PPDU。其中中SHR由前导码序列(保证接收机和符号同步)和SFD域构成;PHR由PSDU的长度值域构成。

相关推荐
YoungHong19927 小时前
Claude Code & 智谱GLM-5.1 环境配置指南 (Windows/macOS/Ubuntu)
windows·ubuntu·macos
全栈攻略7 小时前
老版本Docker Desktop for Mac 历史版本下载大全(macOS 10.15/11/12)
macos·docker·容器
YoungHong19927 小时前
【图文】Codex接入Kimi K2/GLM-5.1 环境配置指南 (Windows/macOS/Ubuntu)
windows·ubuntu·macos
leluckys7 小时前
Jenkins CI/CD 持续集成专题九 -Mac服务器上配置Jenkins实现iOS项目自动打包
macos·ci/cd·jenkins
和沐阳学逆向16 小时前
iOS逆向_古法逆向_Instagram最新版抓包
macos·ios·cocoa
自学AI的鲨鱼儿1 天前
mac npm 安装 codex 报错 npm ENOTEMPTY
macos·npm·codex
Sephiroth.Ma1 天前
Mac 提示“Docker 已损坏,无法打开”?我这样排查后 10 分钟修好
macos·docker·容器
量子炒饭大师1 天前
【OpenClaw修炼宝典】—— 【macOS安装篇】想玩《爪子船长》复刻版却卡在安装?OpenClaw 从零环境搭建与编译全攻略 (小白避坑指南)
macos·openclaw·小龙虾·龙虾
不才小强1 天前
macOS 屏幕录制开发完全指南:ScreenCaptureKit与音频采集实战
macos·音视频