IEEE 802.15.4-2003 was the initial release of the IEEE 802.15.4 standard. It provided for two different PHYs - one for the lower frequency bands of $868$ and $9154$ MHz, and the other for $2.4$ GHz. – ZigBee version
The 2006 release of the IEEE 802.15.4-2006 standard provided for an increase in the data rate achievable on the lower frequency bands. This release of the standard updated the PHY for $868$ and $915$ MHz. It also defined four new modulation schemes that could be used - three for the lower frequency bands, and one for $2.4$ GHz.
Physical Layer Overview
The PHY is responsible for:
- Activation and deactivation of the radio transceiver;
EDwithin the current channel;LQIfor received packets;CCAtasks forCSMA-CA;- Channel frequency selection;
- Data transmission and reception.
The PHY Packet Fields
- Preamble ($32$ bits) - synchronization
- Start of packet Delimiter ($8$ bit)
- PHY Header ($8$ bits) –
PPDUlength - Data field($0$ to $1016$ bits) –
PPDU
Question - Preamble 是如何影响 synchronization 的?
Receiver Energy Detection (ED)
- Estimation of the received signal power within the bandwidth of an
IEEE 802.15.4channel - No attempt is made to identify or decode signals on the channel;
- The
EDtime should be equal to $8$ symbol periods; - The
EDresult shall be reported as an $8$ bit integer ranging from $0x00$ to $0xff$; - Intended for use by a network layer as part of channel selection algorithm.
How it takes for $1$ symbol period?
Symbol是802.15.4协议中规定的一种时间单位,IEEE 802.15.4在 $2.4$G、$915$M、$868$MHz 的Symbol Rate分別是 $62.5$(ksymbol/s)、$40$(ksymbol/s)、$20$(ksymbol/s). 数据速率分别是 $250$kb/s、$40$kb/s、$20$kb/s.- 速率 $250$ kbps, 换算成
Byte是 $31.25$ kBps, 换算成半字节就是一个symbol, 就是 $62.5$ ksymbol.
IEEE 802.15.4 中规定 $32$ chip = $1$ symbol = $4$ bit = $1/2$ byte. 最主要的换算就是 $32$ chip = $4$ bit. 某些 IEEE 802.15.4 芯片可以做到 $1$ chip = $1$ bit, 传输速率可以提高 $8$ 倍.
Link Quality Indication (LQI)
- Upon reception of a packet, the
PHYsends thePSDUlength,PSDUitself and link quality (LQ) in thePD-DATA.indicationprimitive; LQImeasurement is implemented using receiverED, a signal-to-noise ratio estimation, or a combination of these methods;- The use of
LQIresult is up to the network or application layers; - reported as an integer ranging from $0x00$ to $0xff$.
Question - How could
CC2420(Contiki-NG) get itsLQI?
Clear Channel Assessment (CCA)
CCAis performed according at least one of the following three methods:CCA Mode1: Energy above threshold.CCAshall report a busy medium upon detecting any energy above theEDthreshold;
CCA Mode 2: Carrier sense only.CCAshall report a busy medium only upon the detection of a signal with the modulation and spreading characteristics ofIEEE 802.15.4. This signal may be above or below theEDthreshold;
CCA Mode 3: Carrier sense with energy above threshold.CCAshall report a busy medium only upon the detection of a signal with the modulation and spreading characteristics ofIEEE 802.15.4with energy above theEDthreshold.
- For any of the
CCAmodes, if thePLME-CCA.requestprimitive is received by the PHY during reception ofPPDU,CCAshall report a busy medium. - The
PHYPIBattributephyCCAModeindicates the appropriate operation mode - The
CCAparameters are subject to the following criteria- The
EDthreshold should be at most $10$ dB above the specified receiver sensitivity; - The
CCAdetection time should be equal to $8$ symbol periods.
- The
Media Access Layer Overview
The MAC is responsible for:
- Supporting
PANassociation and disassociation. - Supporting device security communication.
- Employing the
CSMA-CAmechanism for channel access. - Handling and maintaining the
GTSmechanism. - Providing a reliable link between two peer
MACentities.
When the MAC protocol is Beacon Enabled:
- if the device is a coordinator:
- Generating network
beacons;
- Generating network
- else:
- Synchronizing to the
beacons.
- Synchronizing to the
Basic Concepts
There are $2$ types of devices in IEEE 802.15.4:
- Reduced function device (
RFD) - Full function device (
FFD)
FFD 与 RFD 的差别:
FFD有能力成为协调者并选取一个频道建立新的网络, 而RFD只能透过向协调者注册并连结后才能使用网络;- 并不是任何节点都有资格向协调者 (Coordinator) 提出
GTS使用申请, 此节点必须属于FFD才可向协调者 (Coordinator) 要求保证传输时槽 (Time Slot) 使用权.
There are $3$ roles in IEEE 802.15.4 communication:
- End device (
RFDorFFD)- 只具有简单的收发功能, 不能进行分组的转发;
- Coordinator (
FFD)- 通常通过发送信标实现与周围节点的同步, 且具有转发分组的功能;
- PAN Coordinator (
FFD)- 为整个网络的主控节点, 并且每个
IEEE 802.15.4网络只能有一个网络协调点.
- 为整个网络的主控节点, 并且每个
Notice - A coordinator must be able to act as both PAN coordinator and end device, even though it is neither. Coordinators can only exist in beacon enabled networks.
There are $2$ types of topologies:
- Star topology
- 只存在一个协调点即网络协调点, 其它节点均为普通节点
- Peer-to-peer topology
- 除了网络协调点和普通节点外, 还存在协调点, 任意两个在通信范围内的节点都可以相互通信.
There are $4$ types of frame structure. Notice that only the data frame has a close relationship with the upper layer.
- Beacon Frame
- 信标帧, 能够实现协调点与周围节点间的同步并对超帧结构进行相应的描述, 同时节点可以通过信标帧识别各个网络.
- Data Frame
- 数据帧,
MAC层数据协议单元MPDU的通用帧格式. 数据帧由高层(应用层)发起, 在ZigBee设备之问进行数据传输的时候, 要传输的数据由应用层生成, 经过逐层数据处理后发送给MAC层, 形成MAC层服务数据单元MSDU. 通过添加MAC层帧头信息和帧尾, 便形成了完整的MAC数据帧MPDU. 其帧结构如下图所示.
- 数据帧,
- Acknowledge Frame
- 确认帧, 最简单的
MAC帧,不包含任何Payload, 向发送设备表示已经正确的接收了相应的信息.ACK帧非常小,只有 $5$ 个字节.
- 确认帧, 最简单的
MACCommand Frame (Ver 2003)MAC命令帧是细化了通用MAC帧的帧载荷域, 是这几种帧格式中较为复杂的. 在IEEE 802.15.4网络中, 为了对设备的工作状态进行控制, 同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧.
There are $3$ types of communication methods:
- 普通节点到协调点
- 协调点到普通节点
- 对等节点间的业务传输
There are $3$ transmission methods:
- Direct Transmission methods
- Indirect Transmission methods
- 指当协调点要向节点传输数据或
MAC命令帧时, 将要传输的信息存储到信息列表中, 等待节点发出数据请求命令后才可发送的传输方式.
- 指当协调点要向节点传输数据或
- Guaranteed Time Slot Methods (
GTS)- 对于实时业务, 节点间的通信可在预留时隙内直接进行.
IEEE 802.15.4 Identity & Address
PANID
PanID唯一标识一个Pan, 同一个Pan中的所有device使用同一个PanID.PanID由两个字节组成, 其中0xFFFF表示广播地址. 当MAC帧首部的目的PanID字段为OxFFFF时, 表示这个帧是发给所有Pan的.- 在实际应用中,
PanID一般由Pan Coordinator选取.Pan Coordinator在发起一个Pan之前, 首先调用MAC层的scan原语, 执行passive scan和active scan, 获得了周围节点使用的PanID.Pan Coordinator据此选择一个与周围节点不同的PanID, 发起自己的Pan.
Address
节点的 长地址 长度为 $64$ bit, 用于唯一标识一个节点. 在实际应用中, 一般把它存放在节点的 ROM 中, 它不会随网络拓扑的改变而改变. 节点的 短地址 长度为 $16$ bit, 它通常是在节点加入网络时, 由父节点分配的.
合法的短地址范围是 $0x0000$—$0xFFFD$.
- $0xFFFE$ 表示节点已经加入了网络但没有从父节点处获得短地址, 这时节点只能用自己的长地址收发数据包, $0xFFFF$ 是广播地址, 节点加入网络时, 首先执行
passive scan或active scan, 收集周围Coordinator的信息. - 然后选择一个
Coordinator作为父节点, 并调用MAC层的MLME-ASSOCIATE.request原语加入网络. - 这时父节点可以根据地址分配算法为子节点分配一个 $16$ 位短地址($0x0000$—$0xFFFD$), 或不分配地址(返回$0xFFFE$).
- 当子节点获得了短地址之后,就可以使用短地址传输数据包了.
使用短地址的好处在于它可以减少 MAC 报文头部地址字段的数据开销; 同时, 短地址可以提供路由信息. 例如, ZigBee 的短地址是按照树状拓扑来分配的, 因此可以很容易的根据短地址计算出树状路由中 MAC 层的下一跳地址.
与长地址不同, 短地址会因为节点的失效, 退出, 重新加入等原因而改变.
IEEE 802.15.4 MAC Behavior
MAC 层协议支持两种运行模式:
- 信标使能网络 (
Beacon mode) - 信标不使能网络 (
Non-beacon mode)
信标使能模式下, 协议引入超帧的概念, 实现协调器和设备的时间同步、识别 PAN 及实现设备之间的通信.
PAN通过定义信标帧的内容来实现对超帧的控制, 并周期性的广播.- 网络采用严格的时间同步, 分时隙进行通信. 可以在
CAP(Contention Access Period)采用Slotted CSMA/CA协议进行通信, 在CFP(Contention Free Periods) 采用时隙GTS机制进行通信.
在信标不使能模式下, 协议较为简单, 并不采用超帧结构, 设备通过 Unslotted CSMA/CA 机制发送数据.
In Contiki-NG - CSMA is Unslotted CSMA/CA.
Superframe
只有在启动信标的网络中才存在有 superframe. 在 IEEE 802.15.4 中, 可以选用超帧为周期组织 LR-WPAN 网络内设备间的通信.
- 每个超帧都以网络协调器发出信标帧 (
beacon) 开始, 在信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息. - 网络中的普通设备接收到包含超帧结构的信标帧后, 就可以根据其中的配置信息安排自己的任务. 例如进入休眠状态直到这个超帧结束. 超帧将通信时间划分为活跃和不活跃两个部分.
- 超帧的不活跃期间内,
PAN网络中的设备不会相互通信, 从而可以进入休眠状态以节省能量.- 超帧的活跃期间划分为三个阶段:
- 信标帧发送阶段;
- 竞争访问阶段(contention access period,
CAP); - 非竞争访问阶段(contention-free access period,
CFP).
- 超帧的活跃部分被划分为 $16$ 个等长的时槽 (
slot), 每个时槽的长度, 竞争访问时段包含的时槽数等参数, 都由协调器决定, 并通过信标帧广播到整个网络.
- 超帧的活跃期间划分为三个阶段:
- 在竞争访问时段,
IEEE 802.15.4网络设备使用 带时槽的CSMA-CA机制, 并且任何通信都必须在竞争访问时段结束前完成. - 在非竞争时段, 协调器根据上一个超帧期间
PAN网络中设备申请GTS(Guaranteed Time Slots) 的情况, 将非竞争时段划分为若干个GTS. - 每个
GTS由若干个时槽组成, 时槽数目在设备申请GTS时指定. 如果申请成功, 申请设备就拥有了它指定的时槽数目.
GTS 是类似 TDMA 的技术
Beacon Order(BO)称信标级数, 它决定着信标的发送周期 Beacon Interval (BI)
$$
BI = aBaseSuperframeDuration \times 2^{BO}
$$
Superframe Order (SO) 称超帧级数, 它决定着超帧中活跃期持续的时间 Superframe Duration (SD)
$$
SD= aBaseSuperframeDuration \times 2^{SO}
$$
aBaseSuperframeDuration 为 MAC 协议 PIB 中的一个常量值, 它是当超帧级数为 $0$ 时形成一个超帧所占的符号数.
aBaseSuperframeDuration 被规定为 $960$ symbols;BO 的取值范围为 $0$ 到 $14$, 当 BO 为 $15$ 时, 表示不使用超帧结构;SO 的取值范围也是 $0$ 到 $14$, 但必须保证 SO 不大于 BO, 当 SO 等于 BO 时, 表示该超帧中不包含非活跃期.
Contention Access Period (CAP)
- CAP开始于beacon帧之后, 结束于CFP开始之前的时隙边界上.
- 如果CFP长度为0, CAP结束于超帧活动区末端.
- CAP长度至少为aMinCAPLength个符号长度, 可以通过调节CFP长度动态的增加或减小CAP长度.
- 除了确认帧和紧跟因数据请求而发送的确认帧之后的数据帧以外, 所有在CAP内传输的帧都必须使用CSMA/CA机制访问信道.
- 设备在CAP内发送数据必须保证该传输事务结束时距CAP结束至少还有一个帧间间隔(Interframe spacing), 以保证接收方有时间处理该帧. 如果不能满足此条件, 该设备就应在延迟到下一个超帧的CAP内发送.
Contention-free Access Period (CFP)
- CFP是为了保证某个设备的QoS而设置的. 它开始于CAP结束后的时隙边界上, 结束于超帧活动区域尾部.
- 如果PAN协调者分配了GTS, 这些GTS被放置在CFP内且占用连续的时隙.
- CFP扩大或减小取决于所有GTS的总长度.
- 在GTS内传输数据不需要使用CSMA/CA机制接入信道.
- 设备在CFP内发送数据必须保证该传输事务结束时距它的GTS结束至少有一个帧间间隔.
Tree Extension
- 在树状拓扑结构时, 为了确保父节点和子节点的超帧不互相冲突. 子节点的Beacon会在父节点的SD结束后再等待一段基本保护时间(Guard Time), 然后发Beacon, 进入到子节点的SD.
- 同时子节点的SD必须在父节点的SD开始基本保护时间前结束.
Interframe Spacing (IFS)
MAC 层需要一定的时间来接受处理来自物理层的报文, 所以帧和帧之间必须有一定的间距.
协议中一共定义了三种帧间距, 分别是 AIFS, SIFS, LIFS.
AIFS
当 DATA 帧或者 MAC Command 帧需要 ACK 时, ACK 在至少延时 AlFS ($12$~$32$ symbols) 后发送.
SIFS
当前一个 DATA 或者 MAC Command 帧的长度小于等于 aMaxSIFSFrameSize ($18$) 时, 后一个帧至少延时 SIFS 发送. SIFS 的典型值为 $12$ symbols.
LIFS
当前一个 DATA 或者 MAC Command 帧的长度大于 aMaxSlFSFrameSize ($18$) 时, 后一个帧至少延时 LIFS 发送. LIFS 的典型值为 $40$ symbols.
CSMA/CA退避算法
IEEE 802.15.4 协议规定, 除了 Beacon 帧, ACK 帧和 data request 后面的 data 帧, 其余的帧在 CAF 阶段发送前都要使用 CSMA/CA 退避算法.
- 在
Beacon模式下,CSMA/CA是有时隙的, 发送报文或者CCA都应该在时隙的边界上. - 在
No Beacon模式下,CSMA/CA是无时隙的. 时隙的典型值是 $20$symbols, 称为UnitBackoffPeriod.
这两种情况下, 算法都将在一个被称为 backoff 周期的时间单元内执行. 在非时隙模式的 CSMA/CA 中, 某一个结点的退避周期和 PAN 中任何其他的结点的退避周期没有关系.
CSMA/CA 算法将在数据帧发送或 CAP 中的 MAC 命令帧发送之前应用. 除非该帧可以快速的跟在数据请求命令的确认信息后发送.
Notice! CSMA/CA 不用于发送信标帧 Beacon、确认帧 ACK 或 CFP 中的数据帧.
NB(后退次数, Number Of Back)
记录的是已执行 back off 的次數, 每执行一次此值就会加 $1$. 如果遇到使用 CCA 去侦测频道为忙碌时, 就必须要重新去随机取一个 backoff, 而此时 NB 就会增加. NB 最大值为 $4$ 如果在这四次中侦测频道都为忙碌的话就放弃传送此资料, 其是为了避免系统有过大的负担.
CW(碰撞窗口的长度, Content Window Length)
其单位为 backoff period 在 IEEE 802.15.4 中的默认值为 $20$ 个 symbols. 其含义是必须执行几次侦测频道皆为闲置时才可将数据送出, 初始值为 $2$ 会随着侦测到频道闲置而递减.
BE(后退指数, Backoff Exponent)
是用來计算 Backoff 时间的一个参数. 其公式为:
$$
Backoff Time= 2^{BE} – 1.
$$
取值范围为 $0$~$5$, 协议推荐的默认值为 $3$, 最大值为 $5$. 当 BE 设为 $0$ 时, 则只进行一次碰撞检测.
Unslotted CSMA/CAStatues- 结点初始状态为
IDLE, 如果有包要发送则进人BACKOFF状态, 成功发送非广播包后设置等待ACK最大时间定时器, 进入WAITACK状态; - 如果结点等待
ACK超时, 但包重传次数未超过标准规定的最大值, 则重新发送同一包, 进入BACKOFF状态;如果结点等待ACK超时, 且包重传次数超过标准规定最大值, 则此包发送终止, 进入IDLE状态; - 如果结点在等待
ACK的最大时间内收到正确的ACK, 则此包发送过程结束, 进入IDLE状态.
- 结点初始状态为
- 非信标使能下数据由装置传送至协调器之模型
- 在非信标致能的网路中, 当装置有数据要传送给协调器时, 则须使用非时槽型的
CSMA/CA机制(unslotted CSMA/CA)竞争信道的使用权, 当装置取得信道后, 可将数据传送至协调器, 协调器成功接收到数据后, 可选择性的传送确认帧给该装置, 如此即完成数据传送的动作.
- 在非信标致能的网路中, 当装置有数据要传送给协调器时, 则须使用非时槽型的
- 在非信标使能下数据由协调器传送至装置的模型
- 在非信标致标致能网路中, 当协调器有数据要传送给装置时, 协调器会先将数据储存起來, 而且装置会使用非时槽型
CSMA/CA机制传送数据请求命令帧. - 当协调器成功接收数据请求命令帧后, 会回传一个确认帧告知装置是否有数据等候传送.
- 若有, 则协调器会使用非时槽型
CSMA/CA机制传送数据给装置. - 反之, 协调器则会传送零长度酬载 (zero-length payload) 的帧给装置.
- 当装置成功接收到数据后, 会回复一个确认帧给协调器, 如此一來便完成数据传送的动作.
- 在非信标致标致能网路中, 当协调器有数据要传送给装置时, 协调器会先将数据储存起來, 而且装置会使用非时槽型
Using CC2420 Auto_ACK to have a faster ACK reaction.
In the project-config.h,
1 | /* |
1 | /* |
1 | /* If hardware ACK, using the default value. */ |
1 | /* If hardware ACK, using the default value. */ |