IEEE 802.15.4-2003
was the initial release of the IEEE 802.15.4
standard. It provided for two different PHY
s - 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;
ED
within the current channel;LQI
for received packets;CCA
tasks 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) –
PPDU
length - 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.4
channel - No attempt is made to identify or decode signals on the channel;
- The
ED
time should be equal to $8$ symbol periods; - The
ED
result 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
PHY
sends thePSDU
length,PSDU
itself and link quality (LQ
) in thePD-DATA.indication
primitive; LQI
measurement is implemented using receiverED
, a signal-to-noise ratio estimation, or a combination of these methods;- The use of
LQI
result 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
)
CCA
is performed according at least one of the following three methods:CCA Mode1: Energy above threshold.
CCA
shall report a busy medium upon detecting any energy above theED
threshold;
CCA Mode 2: Carrier sense only.
CCA
shall 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 theED
threshold;
CCA Mode 3: Carrier sense with energy above threshold.
CCA
shall report a busy medium only upon the detection of a signal with the modulation and spreading characteristics ofIEEE 802.15.4
with energy above theED
threshold.
- For any of the
CCA
modes, if thePLME-CCA.request
primitive is received by the PHY during reception ofPPDU
,CCA
shall report a busy medium. - The
PHY
PIB
attributephyCCAMode
indicates the appropriate operation mode - The
CCA
parameters are subject to the following criteria- The
ED
threshold should be at most $10$ dB above the specified receiver sensitivity; - The
CCA
detection time should be equal to $8$ symbol periods.
- The
Media Access Layer Overview
The MAC
is responsible for:
- Supporting
PAN
association and disassociation. - Supporting device security communication.
- Employing the
CSMA-CA
mechanism for channel access. - Handling and maintaining the
GTS
mechanism. - Providing a reliable link between two peer
MAC
entities.
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 (
RFD
orFFD
)- 只具有简单的收发功能, 不能进行分组的转发;
- 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$ 个字节.
- 确认帧, 最简单的
MAC
Command 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/CA
Statues- 结点初始状态为
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. */ |