NT26 USB ECM 4G HTTP 下行测速示例

功能说明

本示例用于测试 NT26 模组通过 USB CDC ECM 网卡进行 4G HTTP 下载时的下行吞吐能力。

modem_usb_speed 不同,本示例只通过 USB AT 接口完成模组配置、驻网和信号查询;DNS、TCP 连接、HTTP 请求和数据接收全部使用 lwIP socket,经 USB ECM 数据面传输。

启动流程如下:

  1. 初始化 lwIP 和 CherryUSB Host

  2. 通过 NT26 USB AT 接口检查 usbnet=1nat=1

  3. 配置变化时执行 AT+CFUN=1,1,等待模组重新枚举

  4. 等待 SIM 卡就绪和蜂窝网络注册

  5. 通过 AT+QNETDEVCTL=3,1,1 启动 ECM 网络

  6. 等待 ECM netif 获取 DHCP 地址,并将其设为默认路由

  7. 通过 ECM 下载测试文件,打印实时速率、总大小、总耗时和平均速率

配置说明

prj.conf 参考 apps/snap-learn/net_4g.conf,启用了:

  • CherryUSB Host CDC ECM netif

  • NT26 USB AT 控制接口

  • USB ECM TCP 参数调优 CONFIG_LWIP_USB_ECM_TUNING

  • PSRAM RX pbuf CONFIG_CHERRYUSB_HOST_LWIP_RX_PSRAM

  • 8 KiB USB 串口接收缓存

示例是单网卡环境,因此在 DHCP 成功后由示例显式设置 ECM 默认路由,不依赖产品工程的多网卡管理器。

硬件连接与上电

  • 当前面向 HK626 V1 snap-learn 板载 NT26 模组

  • 示例启动时将 PB6 持续拉低以释放板级 RESET_N,并将 PB2 持续拉低保持模组唤醒

  • 外接 NT26 时,将模组 USB 口连接到开发板 USB_ARCS

  • USB 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)

注意事项

  1. 示例不会修改 APN,要求 NT26 的 cid=1 PDP 上下文已正确配置。

  2. 第一次运行如果需要切换 USB ECM/NAT 配置,模组会自动重启并重新枚举一次。

  3. 测速结果受运营商网络、信号强度、服务器出口带宽和测试文件缓存状态影响。

  4. 如果 DHCP 长时间未完成,请先确认 SIM 卡已注册网络,并检查 AT+QNETDEVCTL? 是否返回 3,1,1,1