USB OTG

USB On-The-Go通常缩写为USB OTG,是USB 2.0规格的补充标准。它可使USB设备,例如播放器或手机,从USB周边设备变为USB主机,与其他USB设备连接通信。在正常情况下,这些支持OTG的USB设备和USB主机(如台式机或者笔记本电脑),仍然作为USB周边设备使用。

支持OTG的设备,如USB打印机,可以不连接电脑的情况下直接接入U盘来读取设备内文件进行打印;或平板电脑可以直接接入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
    
  • 切换USB模式:qusb setpid 908C# 启用NCM+ADB,此时中设备的shell里执行ifconfig -a可以查看到usb0接口
  • 将板卡的Type-C口与PCUSB口连接[PC的系统是linux]
  • 为板卡的usb0接口设置IP地址:ip addr add dev usb0 192.168.0.5/24
  • PC上新识别出来的USB网卡设置地址:ip addr add dev enp0s20f0u13 192.168.0.6/24# 这里的enp0s20f0u13需要根据实际情况进行修改
  • 测试网络:在PCSHELL中执行ping 192.168.0.5# 可以观察到程序能ping通目的地址