注意

这是最新开发分支的文档,可能包含尚未在发布版本中提供的功能。如果您在寻找特定版本的文档,请使用左侧的下拉菜单选择。

USB Host 网卡配置指南#

功能概述#

K230 RT-Smart 使用 CherryUSB Host 驱动 USB 网卡,并将识别到的接口注册到 lwIP 和 RT-Thread netdev。当前支持的主要设备类型如下:

设备

USB 驱动

典型用途

RTL8152 及兼容网卡

RTL8152 专用驱动

USB 有线网卡

CH397

CDC ECM 或 CDC NCM

USB 有线网卡

LTE 模组

CDC ECM 或 CDC NCM

EC200、ML307 等模组的数据网口

USB 网卡按探测顺序使用第一个空闲名称,范围为 eth0eth9。接口名不与 芯片型号绑定;同时使用多个网络设备时,应先通过 ifconfig 确认实际名称。

备注

本文配置的是 USB Host 侧的网络接口。LTE 模组的 SIM 卡、APN、驻网和拨号参数 仍需按模组厂商文档配置,并确保模组当前 USB 组合模式会枚举出 ECM 或 NCM 接口。

公共配置#

先在 SDK 根目录加载目标板配置,再进入 RT-Smart 配置界面:

make <board>_defconfig
make rtsmart-menuconfig

进入以下路径:

Components Configuration
    -> Enable CherryUSB
        -> Enable CherryUSB Host

完成以下公共设置:

  1. 打开 Enable CherryUSB Host

  2. CherryUSB Host Use Device 中选择网卡实际连接的 USB 控制器。

  3. 打开 Enable CherryUSB Host Class Driver

  4. 打开 Enable USB Host for CanMV(Some USB Host Drivers)

最后一项不仅选择部分 CanMV USB 驱动,还会让 app_canmv 初始化 Host 控制器, 因此在非 OTG 配置中不能省略。该选项会自动选择 RTL8152 驱动,所以仅使用 ECM/NCM 设备时,在最终配置中看到 RTL8152 选项同时开启属于正常现象。

如果固件还启用了 USB Device,Host 与 Device 必须选择不同的控制器。开发板的 USB 接口、控制器编号和 VBUS 使能 GPIO 均与硬件设计有关,应保留目标板 defconfig 中已有的 CanMV USB Host Power Control GPIO 设置,不能直接套用其他 开发板的 GPIO 值。

img

选择网卡驱动#

RTL8152#

Enable CherryUSB Host Class Driver 下打开:

Enable net RTL8152
    -> Enable Link Down Check

Enable USB Host for CanMV(Some USB Host Drivers) 已自动选择 Enable net RTL8152。建议同时打开 Enable Link Down Check,使插拔网线后的 链路状态可以及时同步到 netdev。

对应的关键配置项为:

CONFIG_CHERRY_USB_HOST_ENABLE_CLASS_NET_RTL8152=y
CONFIG_CHERRY_USB_RTL8152_LINKCHECK=y

CH397#

CH397(USB VID/PID 1a86:5397)提供 Vendor、ECM 和 NCM 三套 USB configuration。Host 驱动会根据 CH397 Mode 选择其中一套,因此所选模式必须和 编译进固件的 CDC 驱动一致。

推荐优先使用 ECM:

Enable CherryUSB Host Class Driver
    -> Enable cdc ECM
    -> CH397 Mode
        -> ECM

对应配置为:

CONFIG_CHERRY_USB_HOST_ENABLE_CLASS_CDC_ECM=y
CONFIG_CHERRY_USB_HOST_CH397_MODE_ECM=y

如需使用 NCM,则打开 Enable cdc NCM,并在 CH397 Mode 中选择 NCM

CONFIG_CHERRY_USB_HOST_ENABLE_CLASS_CDC_NCM=y
CONFIG_CHERRY_USB_HOST_CH397_MODE_NCM=y

不能只切换 CH397 Mode 而不启用对应的 CDC ECM/NCM 驱动。ECM 与 NCM 驱动可以 同时编译,但 CH397 每次枚举只能选择其中一种模式。

img

LTE 模组#

先确认模组当前 USB 组合模式所提供的网络接口类型,然后启用对应驱动:

模组枚举接口

需要打开的选项

配置项

CDC ECM

Enable cdc ECM

CHERRY_USB_HOST_ENABLE_CLASS_CDC_ECM

CDC NCM

Enable cdc NCM

CHERRY_USB_HOST_ENABLE_CLASS_CDC_NCM

EC200、ML307 等模组常见配置使用 ECM,但同一系列不同固件或 USB 组合模式可能 不同,应以实际 USB 描述符和厂商手册为准。CH397 Mode 只对 VID/PID 为 1a86:5397 的 CH397 生效,不会改变 LTE 模组的模式。

若还需要通过 AT 口设置 APN、查询驻网状态或切换 USB 组合模式,可同时打开:

Enable CherryUSB Host Class Driver
    -> Enable SERIAL
        -> Enable serial EC200M/A7680C or Other Compatible

兼容的 Vendor Serial 端口通常注册为 /dev/ttyUSBx。如果模组提供标准 CDC ACM 端口,则还需打开 Enable cdc ACM,设备通常注册为 /dev/ttyACMx。串口驱动与 ECM/NCM 网络驱动相互独立;打开串口驱动本身不会建立蜂窝数据连接。

img

网络栈配置#

USB 网卡依赖 lwIP 和 netdev。确认配置中已经启用:

CONFIG_RT_USING_LWIP=y
CONFIG_RT_LWIP_DHCP=y
CONFIG_RT_USING_NETDEV=y
CONFIG_NETDEV_USING_IFCONFIG=y

RT_USING_NETDEV 通常由 SAL 自动选择,DHCP 和 ifconfig 默认开启。需要手动 检查时,可在 menuconfig 中搜索上述配置项。

保存配置后重新编译并烧录固件。若要把修改固化到目标板 defconfig,再按 SDK 的板级配置维护流程执行 make savedefconfig

运行验证#

插入设备后先检查 USB 枚举日志。成功绑定时会出现 RTL8152、CDC ECM 或 CDC NCM 类驱动的注册信息,随后出现类似日志:

registered LAN interface as eth0

执行以下命令查看链路、地址、网关和 DNS:

ifconfig

启用 RT_LWIP_DHCP 后,接口注册时会启动 DHCP。若链路建立后仍没有地址,可按 ifconfig 显示的实际接口名重新触发 DHCP:

ifconfig eth0 dhcp

也可以临时配置静态 IPv4 地址:

ifconfig eth0 <ip-address> <gateway-address> <netmask>

最后验证网关和外部地址:

ping <gateway-address>
ping <external-ip-address>

多网卡环境中,ifconfig 标记为 Default 的接口承担默认路由。不要假定 USB 网卡始终为 eth0 或默认接口;应用可通过 NetMgmt 的 RT_NET_DEV_LAN 查询 LAN 接口。

故障排查#

  1. USB 设备完全没有枚举:确认选择了实际连接的 Host 控制器,检查 VBUS 供电、线缆以及板级 CANMV_USB_PWR_PIN 配置。

  2. 有 USB VID/PID,但没有 ethN:确认打开了与设备描述符匹配的 RTL8152、 CDC ECM 或 CDC NCM 驱动,以及 Enable USB Host for CanMV

  3. CH397 枚举后没有绑定网络驱动:检查 CH397 Mode 与启用的 ECM/NCM 驱动 是否一致。枚举日志中的 The device selects config 1 表示 ECM,config 2 表示 NCM。

  4. LTE 模组只有串口、没有网卡:模组当前 USB 组合模式未提供 ECM/NCM,或 蜂窝数据会话尚未建立。先通过 AT 口核对 USB 模式、SIM、APN 和驻网状态。

  5. 接口有链路但没有 IPv4 地址:确认 DHCP 已启用,执行 ifconfig ethN dhcp,并检查上游路由器或 LTE 模组是否提供 DHCP 服务。

  6. 插拔网线后状态不更新:RTL8152 打开 Enable Link Down Check;ECM/NCM 设备还需确认其 USB notification 正确上报网络连接状态。

源码位置#

  • USB Host 配置:src/rtsmart/rtsmart/kernel/bsp/maix3/components/Kconfig

  • RT-Smart 网卡适配:src/rtsmart/rtsmart/kernel/bsp/maix3/components/canmv_usb/

  • CherryUSB Class 驱动:src/rtsmart/rtsmart/kernel/bsp/maix3/components/CherryUSB/class/

评论列表
条评论
登录