初入android驱动开发之usb(一)

这里主要收集了一些USB关于OTG、device、host相关的知识。

当设备检测到USB_ID信号为低时,表该设备应作为Host(主机,也称A设备)用。
当设备检测到USB_ID信号为高时,表示该设备作为Slave(外设,也称B设备)用。

因此,在主机侧的层次结构中,要实现的 USB 驱动包括两类:
USB 主机控制器驱动和 USB 设备驱动,前者控制插入其中的 USB 设备,后者控制USB 设备如何与主机通信。
在这棵树里,我们把树根比作主机控制器,树叶比作具体的 USB设备,树干和树枝就是 USB 总线。树叶本身与树枝通过 usb_driver 连接,而树叶本身的驱动(读写、控制)则需要通过其树叶设备本身所属类设备驱动来完成。树根和树叶之间的“通信”依靠在树干和树枝里“流淌”的 URB 来完成。
由此可见,usb_driver 本身只是起到了找到 USB 设备、管理 USB 设备连接和断开的作用

OTG 检测的原理是:
  USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。USB OTG技术可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,手机与手机之间可以直接传送数据等,从而拓展了USB技术的应用范围。在OTG中,初始主机设备称为A设备,外设称为B设备。也就是说,手机既可以做外设,又可以做主机来传送数据,可用电缆的连接方式来决定初始角色(由ID线的状态来决定)。
USB OTG接口中有5条线:   
2条用来传送数据(D+ 、D-);     
1条是电源线(VBUS);      
1条则是接地线(GND)、
1条是ID线。ID线---以用于识别不同的电缆端点,mini-A插头(即A外设)中的ID引脚接地,mini-B插头(即B外设)中的ID引脚浮空。当OTG设备检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮空的设备则认为是B设备(外设)。
只有而言支持USB OTG的设备(即可以做USB Host有可以做Slave的设备),USB_ID信号才有意义。 
当设备检测到USB_ID信号为低时,表该设备应作为Host(主机,也称A设备)用。
当设备检测到USB_ID信号为高时,表示该设备作为Slave(外设,也称B设备)用。
实际的USB连接线中,是没有USB_ID这根线的。 都是在接口部分直接拉死的的。
对于Host端,只需将连接线的USB_ID pin和地短接即可,
对于Slave端,USB连接线的USB_ID pin是悬空的。(设备内部上拉)。

你可能感兴趣的:(android框架之初研究,驱动开发,usb,android开发)