NT26 USB ECM 4G HTTP 下行测速示例
源码位置: samples/network/modem_usb_ecm_speed 查看源码
功能说明
本示例用于测试 NT26 模组通过 USB CDC ECM 网卡进行 4G HTTP 下载时的下行吞吐能力。
与 modem_usb_speed 不同,本示例只通过 USB AT 接口完成模组配置、驻网和信号查询;DNS、TCP 连接、HTTP 请求和数据接收全部使用 lwIP socket,经 USB ECM 数据面传输。
启动流程如下:
初始化 lwIP 和 CherryUSB Host
通过 NT26 USB AT 接口检查
usbnet=1、nat=1配置变化时执行
AT+CFUN=1,1,等待模组重新枚举等待 SIM 卡就绪和蜂窝网络注册
通过
AT+QNETDEVCTL=3,1,1启动 ECM 网络等待 ECM netif 获取 DHCP 地址,并将其设为默认路由
通过 ECM 下载测试文件,打印实时速率、总大小、总耗时和平均速率
配置说明
prj.conf 参考 apps/snap-learn/net_4g.conf,启用了:
CherryUSB Host CDC ECM netif
NT26 USB AT 控制接口
USB ECM TCP 参数调优
CONFIG_LWIP_USB_ECM_TUNINGPSRAM RX pbuf
CONFIG_CHERRYUSB_HOST_LWIP_RX_PSRAM8 KiB USB 串口接收缓存
示例是单网卡环境,因此在 DHCP 成功后由示例显式设置 ECM 默认路由,不依赖产品工程的多网卡管理器。
硬件连接与上电
当前面向 HK626 V1 snap-learn 板载 NT26 模组
示例启动时将 PB6 持续拉低以释放板级
RESET_N,并将 PB2 持续拉低保持模组唤醒外接 NT26 时,将模组 USB 口连接到开发板
USB_ARCSUSB Host 端必须能够向模组提供稳定的 5 V VBUS,线材必须支持数据通信
当前匹配的 USB 设备为
VID:PID=0x3505:0x0003,AT 接口为intf=3
测试地址
默认下载地址定义在 src/main.c:
#define SPEEDTEST_URL_CUSTOMER \
"http://test-qiniu-oss1.phone580.net/fzs-box/rk3308ota/music/yiqiannianyihou.mp3"
当前示例仅支持 http:// URL。更换地址时应使用返回 200 OK 的直链,避免重定向影响结果。
编译
在仓库根目录执行:
./build.sh -C \
-S arcs-sdk/samples/network/modem_usb_ecm_speed \
-B build/modem_usb_ecm_speed \
-DBOARD=arcs_evb
预期输出
[I/4g.ecm.speed] NT26 USB ECM 4G HTTP downlink speed test
[I/4g.ecm.speed] lwIP core initialized
[I/4g.ecm.backend] NT26 registered on cellular network (stat=1)
[I/4g.ecm.backend] QNETDEVCTL type=3 cid=1 urc=1 state=1
[I/4g.ecm.backend] NT26 ECM ready: IPv4=x.x.x.x gateway=x.x.x.x
[I/4g.ecm.speed] start customer over USB ECM: http://...
[I/4g.ecm.speed] customer progress: total=... bytes interval=... KiB/s
[I/4g.ecm.speed] customer result:
[I/4g.ecm.speed] total size: ... bytes (... MiB)
[I/4g.ecm.speed] total time: ... ms (... s)
[I/4g.ecm.speed] average speed: ... KiB/s (... Mbps)
注意事项
示例不会修改 APN,要求 NT26 的
cid=1PDP 上下文已正确配置。第一次运行如果需要切换 USB ECM/NAT 配置,模组会自动重启并重新枚举一次。
测速结果受运营商网络、信号强度、服务器出口带宽和测试文件缓存状态影响。
如果 DHCP 长时间未完成,请先确认 SIM 卡已注册网络,并检查
AT+QNETDEVCTL?是否返回3,1,1,1。