[EASY-EAl-Nano-TB性能测试]WI-FI性能测试操作流程

📅 2026/6/17 23:07:43
[EASY-EAl-Nano-TB性能测试]WI-FI性能测试操作流程
1.SDIOSDIOSecure Digital Input Output是一种用于连接输入输出设备的接口标准最初被设计为SD卡的一种扩展允许设备通过SD卡插槽连接额外的外设。SDIO总线和USB总线类似SDIO总线也有两端其中一端是【主机HOST端】另一端是【设备端DEVICE】采用HOST- DEVICE这样的设计是为了简化DEVICE的设计所有的通信都是由HOST端发出命令开始的。在DEVICE端只要能解析HOST的命令就可以同HOST进行通信了SDIO的HOST可以连接多个DEVICE。市面上常见的WI-FI模组通常也会支持SDIO或USB协议。但本文仅介绍采用SDIO协议的WI-FI模组1.1硬件简介SDIO的信号传输模式有【SPI】、【1-bit模式】、【4-bit模式】三种。SDIO的每个脚位在不同信号模式下的定义如下图在SPI模式中第8脚位被当成中断信号。其它脚位的功能和通信协定与SD记忆卡的标准规范一样。在SDIO总线定义中DAT1信号线复用为中断线。在SDIO的1-BIT模式下DAT0用来传输数据DAT1用作中断线在SDIO的4BIT模式下DAT0-DAT3用来传输数据其中DAT1复用作中断线。SD总线协议按版本划分目前分为SDIO2.0和SDIO3.0。1.2SDIO2.0SDIO2.0按照速度可以划分为低速模式(Low-Speed)、全速模式(Full-Speed)、高速模式(High-Speed)。1.2.1 低速模式(Low-Speed)支持模式SPI、1-bit SD模式时钟频率范围0~400kHz理论上限带宽1(bit)*400k(Hz)400kbit/s50kByte/s1.2.2 全速模式(Full-Speed)支持模式SPI、1-bit SD模式、4-bit SD模式时钟频率范围0~25MHz理论上限带宽4(bit)*25M(Hz)100Mbit/s12.5MByte/s1.2.3 高速模式(High-Speed)支持模式SPI、1-bit SD模式、4-bit SD模式时钟频率范围0~50MHz理论上限带宽4(bit)*50M(Hz)200Mbit/s25MByte/s1.3SDIO3.0SDIO3.0支持的模式上完全兼容SDIO2.0协议标准但值得注意的是SDIO3.0采用的电平是1.8V。而在通信速度方面又在SDIO2.0的高速模式(High-Speed)基础上做了进一步的提升叫做Ultra-High-Speed缩写UHS。那么这个UHS目前也发展了3代标准规范它们分别为UHS-I、UHS-II、UHS-III。在UHS-I的规范里也向下兼容了SDIO2.0中的某些模式比如UHS-SDR12和UHS-SDR25。SDR12就是SDIO2.0的全速模式12代表着12.5MByte/sSDR25就是SDIO2.0的高速模式25代表着25MByte/s以下是UHS-I规范里所有的标准* SDR(Single Data Rate)单倍数据速率指时钟的每个周期传输一次数据。* DDR(Double Data Rate)双倍数据速率指时钟的每个周期传输两次次数据。SDR理论上限带宽计算公式以SDR104为例1*4(bit)*208M(Hz)832Mbit/s104MByte/sDDR理论上限带宽计算公式以DDR50为例2*4(bit)*50M(Hz)400Mbit/s50MByte/s若要启用主控芯片的SDIO3.0协议在【设备树配置】的过程中有以下要点需要注意一下1.4协议特性有关Linux系统的SDIO驱动对于支持SDIO协议外部设备采取的是【自动协商速率】的管理策略。因此对应某一路SDIO的工作速率是多少应当【以最终协商出来的速率为准】。需采取下方命令进行查看核实cat /sys/kernel/debug/mmcX/iosX要改成具体需要查看的SDIO资源如mmc0、mmc2等根据公式可以确认该路SDIO工作速率为1*4*198Mbit/s 792Mbit/s 99MByte/s2.WIFI性能评估2.1测试工具及关键指标2.1.1 测试工具常用的wifi测试工具有iperf3、iw安装命令如下sudo apt-get update sudo apt-get install iperf3 iw -y2.1.2 关键指标一般要确认关键指标有频段、信号强度、wifi协议版本、wifi协商速率【频段】2.4G频段、5G频段【信号强度】屏蔽房信号强度rssi一般在-35dBm以上办公室环境-52dBm【wifi协议版本】对应如下表【wifi协商速率】分上行/下行。下行是rx上行是tx。这个速度与协议标准如802.11ax、信道数量单信道-20MHz2信道-40MHz…8信道-160MHz、Symbol、GI以及空间流的数量1/2/3空间流有关系。比如采用了802.11ax标准双信道单空间流GI为800ns的理论速率为286.7Mbps。具体可以通过这个网站去查询表格https://mcsindex.com如果想【快速知道】wifi模组的理论速率可【直接】查模组规格书。2.22.4G频段WI-FI2.2.1 确认SDIO总线速率在【开发板】上执行下方命令cat /sys/kernel/debug/mmc2/ios计算结果1*4*50Mbit/s 200Mbit/s 12.5MByte/s。也就是说明接在该路SDIO总线上的WI-FI模组吞吐量不可能超过200Mbit/s。2.2.2 确认WI-FI关键指标在【开发板】上执行下方命令iw wlan0 linkfreq(频段)2472即工作在2.4GHz频段signal(信号强度)-41dBmtx bitrate(下行自协商速率)114.7Mbit/s一般要跑过iperf3打流才会有这个协商速度自协商速率要等于规格书里的那个理论值才算正常。2.2.3 吞吐量测试操作在PC最好是直接的Linux系统不是虚拟机上运行一个iperf3服务端命令如下所示iperf3 -s然后在【开发板】上用以下命令运行一个客户端进行吞吐量测试iperf3 -c 192.168.3.52 -u -b 0 -i 1 -t 0参数解析-b nn0表示采用极限速率测试n1000m表示每秒以1000m的数据量去发包。-i nn1表示发送间隔为1s一次。-t nn0表示测试总时间为无穷大(CtrlC停止)n为具体值表示总共测试n秒。最后在【服务端】查看实际吞吐量和丢包率*注在办公室环境测试同在2.4GHz频段的干扰设备较多丢包率会相对较高。若要降低丢包率建议把设备放入信号屏蔽房进行测试。2.35G频段WI-FI2.3.1 确认SDIO总线速率在【开发板】上执行下方命令cat /sys/kernel/debug/mmc2/ios计算结果1*4*198Mbit/s 792Mbit/s 99MByte/s。也就是说明接在该路SDIO总线上的WI-FI模组吞吐量不可能超过792Mbit/s。2.3.2 确认WI-FI关键指标在【开发板】上执行下方命令iw wlan0 linkfreq(频段)5220即工作在5GHz频段signal(信号强度)-54dBmHE-xxx(Wi-Fi版本)Wi-Fi 6对应协议标准802.11axrx bitrate(下行自协商速率)243.7Mbit/s一般要跑过iperf3打流才会有这个协商速度自协商速率要等于规格书里的那个理论值才算正常。tx bitrate(下行自协商速率)154.8Mbit/s一般要跑过iperf3打流才会有这个协商速度自协商速率要等于规格书里的那个理论值才算正常。2.3.3 吞吐量测试操作在PC最好是直接的Linux系统不是虚拟机上运行一个iperf3服务端命令如下所示iperf3 -s然后在【开发板】上用以下命令运行一个客户端进行吞吐量测试iperf3 -c 192.168.3.52 -u -b 0 -i 1 -t 0参数解析-b nn0表示采用极限速率测试n1000m表示每秒以1000m的数据量去发包。-i nn1表示发送间隔为1s一次。-t nn0表示测试总时间为无穷大(CtrlC停止)n为具体值表示总共测试n秒。如果要用多线程进行测试也可以再在命令末尾增加-P参数如iperf3 -c 192.168.3.52 -u -b 0 -i 1 -t 0 -P 8 ##8线程运行最后在【服务端】查看实际吞吐量和丢包率