USB协议中,键盘和鼠标分别是什么身份,ADB又是什么

📅 发布时间:2026/10/17 5:42:13
USB协议中,键盘和鼠标分别是什么身份,ADB又是什么
0. 常见的USB接口类型在USB协议架构中USB鼠标和键盘均属于“从设备”Slave Device而与之连接的电脑主机是“主设备”Master Device即Host1. USB设备角色划分主设备Host控制USB总线发起所有数据传输请求。典型代表电脑、嵌入式开发板运行Linux/Android等OS时作为Host。从设备Slave Device响应主设备的请求被动传输数据。典型代表鼠标、键盘、U盘、摄像头等外设。USB协议严格区分主从角色从设备无法主动发起通信需等待Host轮询或中断传输。2. 鼠标/键盘的USB设备类HID类设备Human Interface Device鼠标和键盘属于HID类专为人机交互设计。通信方式中断传输Interrupt TransferHost定期轮询设备如鼠标移动事件确保低延迟响应。数据格式遵循HID协议规范如键盘扫描码、鼠标位移报文。设备描述符通过USB枚举过程Host读取设备的VID/PID厂商ID/产品ID和类代码如HID类代码为0x03加载对应驱动。3. 嵌入式系统中的角色切换默认情况嵌入式开发板作为Host时外接的 鼠标/键盘 是从设备。特殊场景若开发板配置为USB OTGOn-The-Go模式可动态切换角色作为Host连接鼠标/键盘。作为Device模拟U盘或被电脑识别为HID设备如自定义开发板充当键盘输入。例子树莓派默认作为Host外接鼠标/键盘。通过修改内核配置启用CONFIG_USB_OTG后树莓派可切换为Device模式被电脑识别为虚拟键盘。4. 常见误区澄清无线鼠标/键盘仍遵循USB HID协议但通过2.4GHz无线接收器作为从设备与Host通信接收器内部可能集成USB转串口芯片。总结角色主设备Host从设备Slave Device典型代表电脑、嵌入式开发板Host模式鼠标、键盘、U盘、摄像头通信控制权主动发起请求被动响应请求鼠标/键盘非主设备属于从设备HID类在嵌入式开发中若需让开发板识别鼠标/键盘必须确保其USB控制器配置为Host模式并加载HID驱动。5. ADB又是什么ADBAndroid Debug Bridge在 USB 通信中的身份是运行在主机Host上的客户端 — 服务器工具而它所连接的 Android 设备如手机、开发板在 USB 协议层面通常作为从设备Slave Device。以下是详细解析5.1 ADB 的架构与角色ADB 由三部分组成客户端Client运行在开发者电脑Host上通过命令行或 IDE如 Android Studio发送指令如 adb devices、adb shell。服务器Server运行在 Host 的后台进程管理客户端与设备间的通信监听默认端口 5037。守护进程Adbd运行在 Android 设备上作为从设备监听 USB 或 TCP 连接执行 Host 发来的指令如文件传输、Shell 命令。小总结USB 协议层面Android 设备是物理从设备被动响应 Host 请求。ADB 协议层面ADB 实现了逻辑上的双向通信Host 主动Device 响应但底层仍依赖 USB 主从架构。5.2 USB 通信中的实际角色Android 设备如手机/开发板作为 USB 从设备通过 USB 枚举 向 Host 暴露身份如 VID/PID 标识为 Android 设备。默认使用 ADB 协议基于 USB 的自定义应用层协议或 MTP/PTP 协议用于文件传输。若启用 USB 网络调试设备可通过 rndis 或 ecm 驱动模拟网络接口但 USB 物理层仍是从设备。Host电脑/开发板作为 USB 主设备加载 usbfs 或 gadgetfs 驱动识别并管理连接的 Android 设备。通过 libusb 或内核的 USB 子系统与设备通信最终由 ADB 客户端封装指令。5.3 特殊场景嵌入式开发板作为 Host 或 Device场景 1开发板作为 Host 连接手机开发板运行 Linux/Android作为 USB 主设备通过 ADB 调试手机。角色开发板Host主设备 ADB 客户端/服务器。手机从设备被调试 运行 adbd 守护进程。场景 2开发板作为 Device 被电脑调试很常用开发板启用 USB OTG 并切换为 Device 模式模拟 Android 设备。角色开发板从设备被调试 运行 adbd 守护进程。电脑Host主设备 ADB 客户端/服务器。