【发布时间】:2012-10-19 12:15:09
【问题描述】:
我想知道,系统的哪个部分负责检测USB端口中的插入设备
它可能是 USB 主机端口,因此插入的设备将被视为 USB 客户端(因此端口所有者是主机),
或者它可能是 USB 客户端端口,因此插入的设备将被视为 USB 主机(因此端口所有者是客户端)
我感兴趣的是当系统实际检测到(可能通过改变电阻)插入某些东西时,以及基于信号来自哪个端口(主机端口或客户端端口),主机已部署端口驱动程序或客户端端口驱动程序
我想知道,系统如何根据“插入”事件选择这个或那个驱动程序
我应该在哪里寻找?可能在 USB 内核中?
【问题讨论】:
-
“它可能是一个 USB 主机端口……或者它可能是一个 USB 客户端端口” - USB 要么是主机端口要么是设备(又名小工具) ) 港口。端口被硬连线为只有一种。您无法选择如何使用 USB 端口。具有这两种 USB 端口的系统很少见,例如在 SoC 评估板上。您可能会在 SoC 上找到主机和设备 USB 端口,但是当安装在实际产品的板上时,通常只有一种类型的 USB 端口实际上是可用的。
-
是的,很抱歉造成混淆,我的意思是“系统上可能有一个 USB 主机端口或一个 USB 小工具端口或两者兼有”,我不是这个意思他们可能会改变他们的主机-客户角色
-
具有主机功能的 Android 设备通常通过连接的微型/迷你 USB 电缆上的额外引脚的状态来确定其模式。通常,要将此类设备用作主机,您需要一根适配器电缆,其针脚在 mini/micro 端接地,另一端有一个 USB“A”插座,可以连接普通 USB 设备电缆。如前所述,这与在任一模式下的存在检测一起,都将在它到达 Android API 或固定模式驱动程序之前通过 Linux 内核,尽管某些内置功能(如充电)可能超出了内核的范围。
标签: android linux linux-kernel usb linux-device-driver