mirror of
https://github.com/espressif/esp-idf.git
synced 2026-05-19 23:45:28 +02:00
docs(wifi/espnow): Update the description for ESP-NOW frame
This commit is contained in:
@@ -13,37 +13,53 @@ CTR 与 CBC-MAC 协议 (CCMP) 可用来保护动作帧的安全。ESP-NOW 广泛
|
||||
帧格式
|
||||
------------
|
||||
|
||||
ESP-NOW 使用各个供应商的动作帧传输数据,默认比特率为 1 Mbps。各个供应商的动作帧格式为:
|
||||
ESP-NOW 使用供应商的动作帧传输数据,默认比特率为 1 Mbps。目前 ESP-NOW 支持两个版本: v1.0 和 v2.0。
|
||||
|
||||
v2.0 的设备支持的最大数据包长度为 ESP_NOW_MAX_DATA_LEN_V2 bytes; v1.0 的设备支持的最大数据包长度为 ESP_NOW_MAX_DATA_LEN bytes。
|
||||
v2.0 设备可以接收来自 v2.0 和 v1.0 设备的数据包。v1.0 设备能接收来自 v1.0 的数据包。v1.0 设备可以接收长度不超过 ESP_NOW_MAX_IE_DATA_LEN 的 v2.0 数据包,而对于长度超过 ESP_NOW_MAX_IE_DATA_LEN 的数据包,它要么只接收前 ESP_NOW_MAX_IE_DATA_LEN 字节,要么丢弃数据包。具体行为请参考对应 IDF 版本中的文档。
|
||||
|
||||
供应商的动作帧格式为:
|
||||
|
||||
.. highlight:: none
|
||||
|
||||
::
|
||||
|
||||
-----------------------------------------------------------------------------------------
|
||||
-----------------------------------------------------------------------------
|
||||
| MAC 报头 | 分类代码 | 组织标识符 | 随机值 | 供应商特定内容 | FCS |
|
||||
-----------------------------------------------------------------------------------------
|
||||
24 字节 1 字节 3 字节 4 字节 7-257 字节 4 字节
|
||||
-----------------------------------------------------------------------------
|
||||
24 字节 1 字节 3 字节 4 字节 7-x 字节 4 字节
|
||||
|
||||
- 分类代码:分类代码字段可用于指示各个供应商的类别(比如 127)。
|
||||
- 组织标识符:组织标识符包含一个唯一标识符(比如 0x18fe34),为乐鑫指定的 MAC 地址的前三个字节。
|
||||
- 随机值:防止重放攻击。
|
||||
- 供应商特定内容:供应商特定内容包含供应商特定字段,如下所示:
|
||||
- 供应商特定内容:供应商特定内容包含若干个(大于等于1)特定供应商元素字段,对于 v2.0 版本,x = 1532(1490+6*7);对于 v1.0 版本,x = 257(250+7)。
|
||||
|
||||
特定供应商元素的帧格式为:
|
||||
|
||||
.. highlight:: none
|
||||
|
||||
::
|
||||
|
||||
----------------------------------------------------------------------------------------
|
||||
| 元素 ID | 长度 | 组织标识符 | 类型 | 版本 | 正文 |
|
||||
----------------------------------------------------------------------------------------
|
||||
1 字节 1 字节 3 字节 1 字节 1 字节 0-250 字节
|
||||
ESP-NOW v1.0:
|
||||
---------------------------------------------------------------------------
|
||||
| 元素 ID | 长度 | 组织标识符 | 类型 | 保留 | 版本 | 正文 |
|
||||
---------------------------------------------------------------------------
|
||||
7~4 比特| 3~0 比特
|
||||
1 字节 1 字节 3 字节 1 字节 1 字节 0-250 字节
|
||||
|
||||
ESP-NOW v2.0:
|
||||
-------------------------------------------------------------------------------------
|
||||
| 元素 ID | 长度 | 组织标识符 | 类型 | 保留 |更多数据 | 版本 | 正文 |
|
||||
-------------------------------------------------------------------------------------
|
||||
7~5 比特 | 1 比特 | 3~0 比特
|
||||
1 字节 1 字节 3 字节 1 字节 1 字节 0-250 字节
|
||||
|
||||
- 元素 ID:元素 ID 字段可用于指示特定于供应商的元素。
|
||||
- 长度:长度是组织标识符、类型、版本和正文的总长度。
|
||||
- 长度:长度是组织标识符、类型、版本和正文的总长度,最大值为 255。
|
||||
- 组织标识符:组织标识符包含一个唯一标识符(比如 0x18fe34),为乐鑫指定的 MAC 地址的前三个字节。
|
||||
- 类型:类型字段设置为 4,代表 ESP-NOW。
|
||||
- 版本:版本字段设置为 ESP-NOW 的版本。
|
||||
- 正文:正文包含 ESP-NOW 数据。
|
||||
- 正文:正文包含实际要发送的 ESP-NOW 数据。
|
||||
|
||||
由于 ESP-NOW 是无连接的,因此 MAC 报头与标准帧略有不同。FrameControl 字段的 FromDS 和 ToDS 位均为 0。第一个地址字段用于配置目标地址。第二个地址字段用于配置源地址。第三个地址字段用于配置广播地址 (0xff:0xff:0xff:0xff:0xff:0xff)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user