一.现实工作中USB实际例子
现象:把USB设备比如Android手机接到PC
- 右下角弹出"发现android phone"
- 跳出一个对话框,提示你安装驱动程序
问1:USB设备插到电脑上去,接触到的对方设备是什么?
答1:是USB控制器,是USB控制器内嵌的root hub.
问2. 既然还没有"驱动程序",为何能知道是"android phone"
答2. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"
提示你安装的是"设备驱动程序"。 USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序。
问3. 为什么一接入USB设备,PC机就能发现它?
答3. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平
USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;它一接入PC,就会把PC USB口的D-或D+拉高,从硬件的角度通知PC有新设备接入。
问4. USB设备种类非常多,为什么一接入电脑,就能识别出来它的种类?
答4. PC和USB设备都得遵守一些规范。比如:USB设备接入电脑后,PC机会发出"你是什么"?USB设备就必须回答"我是xxx",
并且回答的格式是固定的。USB总线驱动程序会发出某些命令想获取设备信息(描述符),USB设备必须返回"描述符"给PC。
问5. PC机上接有非常多的USB设备,怎么分辨它们?
答5. 每一个USB设备接入PC时,USB总线驱动程序都会给它分配一个编号。PC机想访问某个USB设备时,发出的命令都含有对应的编号(地址)。
问6. USB设备刚接入PC时,还没有编号;那么PC怎么把"分配的编号"告诉它?
答6. 新接入的USB设备的默认编号是0,在未分配新编号前,PC使用0编号和它通信。
二.USB系统硬件框架和软件框架
硬件框架:
在USB系统中,有2个硬件概念:
USB Host:它跟处理器相连,处理器通过USB Host跟各类USB设备通信。USB Host中集成有一个root hub
USB Device:这分为两类设备
Hub:用来扩展USB接口
Function:就是普通的USB设备,比如U盘、声卡等。。
软件框架:
APP可以通过USB设备驱动程序访问USB设备,
也可以绕过USB设备驱动,直接通过USB控制器驱动访问USB设备。
三.USB电器属性
USB连接涉及Hub Port和USB设备,硬件连接如下:
USB电子信号
USB连接线有4条:5V、D+、D-、GND。数据线D+、D-,只能表示4种状态。USB协议中,很巧妙地使用这两条线路实现了空闲(Idle)、开始(SOP)、传输数据(Data)、结束(EOP)等功能。
低速/全速信号电平 :
高速信号电平: