乐鑫技术交流
直播中

贾飞世

7年用户 1776经验值
私信 关注
[问答]

如何为具有WIFI功能的ESP32开发固件呢?

我目前正在为具有 WIFI 功能的 ESP32 开发固件。
该模块应该能够在欧洲和美国使用,具有相同的固件。
为了遵守所有法律要求,我已将模块设置为“世界安全模式”并激活 IEEE 802.11d。
代码:
esp_wifi_set_country_code("01", true);
但是我不得不检测两个可能的问题
12+13 通道上的主动扫描:
与主动扫描的信息相反,我发现 ESP32 也在 12+13 通道上主动扫描(监控模式下的 Wireshark 和 wifi 接口)而不是被动扫描如以下所述:
“使用从 1 到 11 的主动扫描并使用从 12 到 14 的被动扫描。”
为避免这种情况,我现在只是被动地扫描所有频道,但多次扫描并合并结果。
FCC 和 IEEE 802.11d
第二个更大的问题是
根据注意事项 1 ESP32 仅面向当前连接的 AccesPoint。
'当 ieee80211d_enabled 时,使用站点连接到的 AP 的国家/地区信息。例如,如果配置的国家/地区是美国,而站点连接到的 AP 的国家/地区信息是 JP,则将使用的国家/地区信息是JP。如果电台与 AP 断开连接,国家/地区信息将自动设置回电台的国家/地区信息,例如美国。”
但是,根据FCC(在频道 12 和 13 中运行的 Wi-Fi 设备),来自多个 AP 的国家/地区信息必须在以下位置进行评估至少每小时。
“当设备打开并建立或更改连接时,设备必须至少每小时重新检查一次地理位置信息。”
“客户端设备必须从多个接入点接收国家信息协议,使用这种方法的特定协议必须得到 FCC 的预先批准。”

我还可以在 uBlox Nina-W15(基于 ESP32)的数据表中找到此实现:
如何处理这个问题以符合 FCC 的要求。

更多回帖

发帖
×
20
完善资料,
赚取积分