IEEE 802.15.4协议完整中文版 - 5.1.1.2 - 5.1.1.4

本文探讨了无线个人局域网(PAN)中的超帧时序管理,包括接收和发送超帧的处理方式,帧间间隔IFS的概念及计算方法,以及CSMA/CA算法在竞争接入时期的使用细节。

5.1.1.2 接收超帧和发送超帧的时序

  在信标模式的 PAN 网络中,普通的协调器(非 PAN 协调器)会维护两个超帧时序:接收到的从其它协调器发送的超帧;自己发出的超帧。两者的相对时序由原语 MLME-START.request (参考 5.1.2.4 节)中的参数 StartTime 指定。图 9 描述了普通协调器发出和收到的超帧之间的关系。

这里写图片描述

图 9. 接收超帧和发送超帧的关系

  如果一个设备从它的协调器接收到一个协调器重组命令帧,且该帧的内容表示协调器将使用一个新的超帧配置,那么该设备必须确保它自己发出的信标不要把协调器发出的信标覆盖了。如果新的超帧配置导致接收到的超帧和发送出去的超帧被相互覆盖了,那么设备应当立即停止发送信标,并通过原语 MLME-SYNC-LOSS.indication (参考 6.2.13.2 节)向上层发出通知,且将该原语的参数 LossReason 设置为 SUPERFRAME_OVERLAP。

  在一个 PAN 网络中,信标命令和超帧命令是相同的。所有的设备只在超帧的活跃部分跟 PAN 互相作用。

5.1.1.3 帧间间隔 IFS

  MAC 子层需要一定的时间来处理由物理层接收到的数据。因此,如果一个设备向连续发送两帧数据,则在这两帧之间必须留有一个帧间间隔(IFS)。如果前一帧需要确认,则确认帧和后一帧之间也必须要有一个帧间间隔。帧间间隔的长度依赖于被传输的帧的长度。如果帧(即 MPDU)的长度小于等于 aMaxSIFSFrameSize,则帧间间隔为持续时间为 macSIFSPeriod 的短帧间间隔(SIFS);如果帧(即 MPDU)的长度大于 aMaxSIFSFrameSize,则帧间间隔为持续时间为 macLIFSPeriod 的长帧间间隔(LIFS)。如图 10 所示。

这里写图片描述

图 10. 帧间间隔

  在 CAP 中, CSMA-CA 算法应该将这些传输的具体要求考虑在内。确认帧(tack)的传输时序在 5.1.6.3 节和 5.1.6.4.2 节中定义。


  本节专有名词

简写英文全称中文全称
IFSinterframe spacing帧间间隔

5.1.1.4 CSMA/CA 算法

  在竞争接入时期内,设备想要传输数据帧或者 MAC 命令帧(确认帧后面可以被快速传输的帧除外,参考 5.1.6.3 的时序需求),需要使用 CSMA/CA 算法访问信道。确认帧、免竞争阶段的数据帧、信标模式 PAN 网络中的信标帧都不需要使用 CSMA/CA 算法。

  在一个 PAN 网络中,MAC 子层在竞争接入时期访问信道有两种 CSMA/CA 算法:时隙版 CSMA/CA 和非时隙版 CSMA/CA。如果 PAN 中使用周期性信标,则采用时序版 CSMA/CA 算法;相反,如果 PAN 中没有使用周期性信标或者周期性信标不能被定位,则采用非时隙版的 CSMA/CA 算法。这两种算法都使用一个叫做退避周期的时间单位实现。一个退避周期等于 aUnitBackoffPeriod

  在时隙版 CSMA/CA 中,退避周期的边界应该与 PAN 协调器的超帧时隙边界对齐,即退避时间的开始时间与信标帧的开始时间对齐。在时隙版 CSMA/CA 中,MAC 子层必须确保物理层在退避时间的起始边界开始传输数据。在非时隙版 CSMA/CA 中,设备的退避周期与该 PAN 网络中的其它设备的退避周期不相关。

  设备在进行传输时会维护三个变量:NB(Number of Backoff),CW(Content Window)和 BE(BAckoff Exponent)。NB 表示的是当前退避的次数,首次调用 CSMA/CA 机制发送报文时,该值会初始化为 0,随着信道接入的失败,该值会增 1 后重试接入信道发送报文。在超过系统预定义的门限 macMaxCSMABackoffs 时, CSMA/CA 机制宣告报文发送失败并丢弃此报文。CW 定义的是竞争窗口大小,表示 CSMA/CA 机制要求接入信道发送报文前需要信道连续空闲的检测次数。CW 初始化为 2,当信道忙闲检测为忙时,CW 将被重新初始化为2,当信道忙闲检测为闲时,该值自减 1, 直至为 0 时,开始报文发送。CW 只用于时隙版 CSMA/CA 算法。BE 定义的是退避指数,表征着节点竞争信道时随机退避范围的上限值。在非时隙系统、或者 BLE 字段被置为 0 的时隙系统中,该值被初始化为 2 和 macMinBE 中的最小值。如果 macMinBE 被设为 0,CSMA/CA 算法在进行第一次迭代时就不使用冲突避免。

  尽管在 CSMA/CA 算法进行信道忙闲检测时, 设备的接收器是打开的, 但是设备会丢弃这段时间内接收的所有帧。

  图 11 描述了 CSMA/CA 算法的流程。如果该算法的最终结果是“Success”,那么 MAC 层就可以开始传输帧。否则,该算法认为访问信道失败。

这里写图片描述

图 11. CSMA/CA 算法

### MYSQL 函数概述 在 MySQL 数据库管理系统中,函数是一类重要的工具,可以用来执行各种计算、转换和其他操作。这些函数分为内置函数和自定义函数两大类。以下是常见的 MySQL 内置函数分类及其具体用法。 --- #### **1. 字符函数** 字符函数主要用于处理字符型数据,支持拼接、截取、替换等功能。 - **`CONCAT(str1, str2, ...)`**: 将多个字符串连接成一个字符串。 ```sql SELECT CONCAT('Hello', ' ', 'World'); -- 返回 "Hello World" ``` - **`SUBSTRING(str, pos, len)`**: 提取子字符串,从 `pos` 开始提取长度为 `len` 的部分。 ```sql SELECT SUBSTRING('MySQL Function', 7, 8); -- 返回 "Function" ``` - **`REPLACE(str, from_str, to_str)`**: 替换字符串中的部分内容。 ```sql SELECT REPLACE('Database Management System', 'Management', 'Admin'); -- 返回 "Database Admin System" ``` - **`UPPER(str)` 和 `LOWER(str)`**: 转换字符串大小写。 ```sql SELECT UPPER('mysql'), LOWER('MYSQL'); -- 返回 "MYSQL", "mysql" ``` 以上内容来源于常见字符函数介绍[^2]。 --- #### **2. 日期时间函数** 日期时间函数用于处理与时间和日期相关的数据。 - **`NOW()`**: 获取当前的日期和时间。 ```sql SELECT NOW(); -- 返回类似于 "2023-10-05 14:30:00" ``` - **`DATE(date_time_expr)`**: 提取日期部分。 ```sql SELECT DATE('2023-10-05 14:30:00'); -- 返回 "2023-10-05" ``` - **`DATE_FORMAT(date, format)`**: 根据指定格式化模板返回日期/时间字符串。 ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 自定义格式输出 ``` 相关内容可参见日期函数说明[^2]。 --- #### **3. 数学函数** 数学函数提供了基本的数值运算能力。 - **`ABS(num)`**: 计算绝对值。 ```sql SELECT ABS(-10); -- 返回 10 ``` - **`ROUND(num, decimals)`**: 对数字四舍五入到指定位数的小数。 ```sql SELECT ROUND(123.456, 2); -- 返回 123.46
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值