ESP-CSI 方案介绍
方案特点
ESP-CSI(Channel State Information)是乐鑫提供的一项技术,用于获取 Wi-Fi 信道的状态信息。它运用了 ESP 系列芯片的特性,通过解析 Wi-Fi 信道的细节指标,如相位、传播时延、信噪比、信道矩阵、数据速率等,来提供更精细和细致的无线信道信息。为多种高级应用和智能感知技术提供强有力的支持。带来更多的创新和应用可能性。
ESP-CSI 提供了比传统的信号强度(RSSI)更多的信息。RSSI 只是简单地测量信号的强度,而 CSI 则提供了更详细、更丰富的信道信息,包括信号的振幅、相位等。这些信息对于一些高级应用非常有用,比如:室内定位,环境监测,人体感知。
ESP-CSI 在物联网、智能家居、智能城市等领域有着广泛的应用前景,使得设备更智能、更精准地感知和响应周围环境的变化。
方案优势
无需额外硬件成本: ESP-CSI 方案基于 ESP 系列芯片自身的特性实现,无需额外的硬件成本,为开发者提供了经济高效的解决方案。
实时响应: ESP 系列芯片可以在设备本地实时处理和分析 CSI 数据,提供快速响应和高性能。
抗干扰性:CSI 的振幅实质上是一组信道的衰减系数。只要信道本身不发生变化,它对来自电源适配器和其他跳频器等的干扰非常稳健。
更细粒度:不使用综合值(如 RSSI)来测量信道,而是以通道中的子载波为单位采样频率响应,从而在频率域内对信道进行更细粒度的描述。
ESP-CSI 常见应用场景
入侵检测(Intruder Detection): 利用 ESP-CSI,可以选择高灵敏度的子载波组合和来自非直线传播路径方向的信号,在不同多径传播环境下,提高被动式人员检测的灵敏度并扩展检测范围。这样可以形成的入侵检测系统,为安全应用提供高效的入侵检测解决方案。
定位和测距(Positioning and Ranging): ESP-CSI 可以借鉴 RSSI 方法,并利用 CSI 作为更丰富的指纹信息(包括多个子载波上的信号振幅和相位信息),或者通过频率选择性衰减模型进行更准确的定位和测距。这有助于在室内或复杂环境中实现更精确的定位和距离测量。
人体活动检测与识别(Human Activity Detection and Recognition): 利用 ESP-CSI 的高灵敏度,可以识别人体的运动、手势、日常活动。这对于实现智能家居、健康监测和人体交互等应用非常有用。
芯片 CSI 性能排序
ESP32-C5 > ESP32-C6 > ESP32-C3 ≈ ESP32-S3 > ESP32
ESP-CSI 的实现方式
仅使用一个 ESP 芯片和路由器

ESP 芯片将构造的 Ping(Packet Internet Groper)数据包发送给路由器。Ping 是一种用于测试与目标设备之间的网络连接的协议,通常用于检测网络延迟和连接状态。在 Ping 数据包中,一般会包含源 IP 地址、目标 IP 地址、时间戳等信息。
路由器会回复携带一些关于 CSI 信息的 Ping 数据包。
ESP 芯片捕获到回复的数据包后,它对这些数据包进行解析,从中提取出 CSI 信息。解析 CSI 信息涉及到对数据包的结构和字段进行解析,以获取信道状态信息的各种参数,如振幅、相位等。
两个或多个 ESP 芯片之间相互交换 CSI 信息

两个 ESP 芯片分别构造自己的 Ping 请求数据包。Ping 请求数据包中包含了源 IP 地址、目标 IP 地址、时间戳等信息。这些 Ping 请求数据包将被发送给路由器。它们之间并不直接通信,而是通过路由器作为中继来实现间接通信。
路由器收到两个 ESP 芯片 发送的 Ping 请求数据包后,根据目标 IP 地址来判断应该将数据包转发给哪个设备。
ESP 芯片 B 接收到来自 ESP 芯片 A 的 Ping 请求后,根据请求中的信息,生成一个 Ping 回复数据包,并携带所需的CSI信息。在生成回复时,ESP 芯片 B 记录下发送时间戳,以便后续计算往返时间(RTT)
ESP 芯片 B 通过 Wi-Fi 模块将生成的 Ping 回复数据包发送回路由器。然后路由器将 ESP 芯片 B 发送的 Ping 回复数据包转发给 ESP 芯片 A。
ESP 芯片 A 捕获到回复的数据包后,它对这些数据包进行解析,从中提取出 CSI 信息。解析 CSI 信息涉及到对数据包的结构和字段进行解析,以获取信道状态信息的各种参数,如振幅、相位等。
通过专用的数据包发射设备获取 CSI 信息

数据包发送设备会连续地在不同的无线信道上发送广播数据包。每次发送广播数据包时,它会切换到一个新的无线信道,这样可以覆盖整个频谱带宽。
所有 ESP 设备都会接收到数据包发送设备发送的广播数据包。由于它们都在监测模式下工作,所以可以同时捕获来自数据包发送设备的广播数据包。
每个 ESP 设备在接收到广播数据包后,需要解析这些数据包,并从中提取所需的 CSI 信息。解析广播数据包涉及到对数据包的结构和字段进行解析,以获取信道状态信息的各种参数,如振幅、相位等。
备注
只有在 Wi-Fi 包速率为 802.11 a/g/n 的条件下才能获得 CSI 数据。
ESP-CSI 参考资料
共晶振多天线方案
目前算法部署的场景中使用的 CSI 研究的网卡多为多天线网卡,我们设计将两个芯片的共晶振,可以实现类似的效果。esp-crab 提供一种 Wifi-CSI 的射频相位同步解决方案, 该方案包含两种工作模式:1、自发自收模式;2、单发双收模式
自发自收模式:在该模式下,两片 ESP32-C5 芯片分别发送和接收信号,通过计算接收 Wi-Fi CSI 信号中的相位信息,可以毫米级地感知射频信号路径中的扰动。同时,通过安装铜片控制射频信号的传输路径,也可以调节感知范围,从而为高精度的近距离 Wi-Fi 感知提供技术支持。这种模式使得 Wi-Fi 信号感知更加精细,适用于近距离和复杂环境中的精确感知应用。
单发双收模式:此模式下,一片 ESP32-C5 芯片负责发送信号,而 esp-crab 的两片 ESP32-C5 芯片则负责接收信号。通过分散部署发送端和接收端,可以在大范围空间内实现 Wi-Fi 感知。esp-crab 获取的共晶振 Wi-Fi CSI 信息能够满足前沿研究中的 Wi-Fi 感知性能需求,并且可以直接对接成熟的高级算法,进一步提升无线感知系统的精度和应用价值。该模式为大范围、复杂环境下的无线感知和定位提供了强大的技术支撑。
运动检测算法
我们设计了一个多天线共晶振开发板,用于采集和实时处理 CSI 数据。该板搭载了一块 ESP32-C3 和一块 ESP32-S3。ESP32-C3 通过天线开关连接到三个板载定向天线,而 ESP32-S3 连接到一个天线插座,以提供更灵活的天线类型和信号传输路径选择。在操作过程中,ESP32-C3 持续发送空中数据包(例如 ESP-NOW),而 ESP32-S3 负责从经环境反射的 ESP32-C3 发送的空中数据包中获取 CSI。两颗芯片间通过时钟缓冲器连接,以消除由两颗芯片间时钟不同步引起的相对频率偏移。这样,运行在 ESP32-S3 上的检测算法可以进一步利用 CSI 数据中的相位信息进行检测。动作检测算法的计算结果和阈值将实时显示在屏幕上,并用红色突出显示动作检测结果。
