USB OTG

USB On-The-GoUSB OTG)是USB 2.0规格的补充标准,使支持的OTG设备(如手机、平板等)能够在USB设备模式与主机模式之间切换。在正常情况下,这些支持OTG的USB设备和USB主机(如台式机或者笔记本电脑),仍然作为USB周边设备使用。

设备在主机模式下可直接连接其他USB外设(如U盘、键盘、鼠标等)完成数据读取或控制操作,而无需连接PC。

典型应用场景:

  • USB 打印机无需PC,即可直接读取U盘文件进行打印。
  • 平板电脑可通过OTG 连接键盘、鼠标、USB存储设备扩展功能。

硬件接口

功能使用

设置USB工作模式

利用qusb命令设置USB工作模式,qusb支持的参数如下:

参数 描述
init 初始化USB配置(挂载configfs,创建设备节点,加载默认PID)
bind 绑定USB设备到配置(激活当前配置)
unbind 解绑USB设备(停止当前配置)
setpid <PID> 切换到指定PID的USB组合模式(如setpid 901D启用DIAG+ADB)
setpid -p <PID> 设置PID为默认模式(持久化到/etc/usb/usb_pid,重启后生效
showpid 显示所有支持的PID及其对应功能组合
persist <PID> 仅持久化PID(不立即切换)

USB模拟网卡配置

查看usb支持的所有功能

root@qcm6490-idp:/# qusb showpid
A4A1: NCM
4EE7: ADB
900E: DIAG
901C: DIAG,UAC2
901D: DIAG,ADB
9015: MASS_STORAGE,ADB
9024: RNDIS,ADB
902A: RNDIS,MASS_STORAGE
902B: RNDIS,ADB,MASS_STORAGE
902C: RNDIS,DIAG
902D: RNDIS,DIAG,ADB
902F: RNDIS,DIAG,MASS_STORAGE
908C: NCM,ADB
90CA: DIAG,UAC2,ADB
90CB: DIAG,UVC,ADB
90CC: DIAG,UAC2,UVC,ADB
90DF: DIAG,UVC
90E0: DIAG,UAC2,UVC
9135: DIAG,QDSS,ADB
9136: DIAG,QDSS
F000: MASS_STORAGE
F00E: RNDIS

配置步骤

  1. 切换USB模式(启用NCM,ADB

    qusb setpid 908C
    
  2. 将板卡Type-C口与PCUSB口连接(PC需为Linux系统)。

  3. 在设备shell中执行ifconfig -a,确认识别到usb0接口。

  4. 配置设备IP:

    ip addr add dev usb0 192.168.0.5/24
    
  5. 配置PC端IP(假设PC端识别的网卡为enp0s20f0u13):

    ip addr add dev enp0s20f0u13 192.168.0.6/24
    

    enp0s20f0u13需根据实际情况进行修改。

  6. 测试网络:在PCShell中执行ping 192.168.0.5# 可以观察到程序能ping通目的地址。