1、什么是USB?
USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。————百度百科
2、从windows系统识别usb设备的过程,来推理这个流程
1、一旦连接usb设备,则系统会提示发现了一个设备(一般会显示设备名称等),然后会提示安装驱动,那么既然驱动还没有安装,系统为什么就已经知道有设备连接,并且知道了名字等信息?
答:windows中已经有了,usb的总线驱动升序,连接设备后,该总线设备程序提示安装设备驱动程序。
2、所以层次分为两层,从上至下依次为app——设备驱动程序——总线驱动程序(usb主机控制器)——硬件。
3、usb总线驱动程序负责内容:①识别usb设备②给usb设备找到对应的驱动程序。
4、usb设备种类繁多,为什么一接入电脑,就会识别出来?
答:显然,这些设备和主机都遵守了同一种规范。
usb总线驱动会发出某些命令来获取设备信息——描述符。
usb设备必须返回——描述符——给主机
5、主机上有连接多个usb设备,如何区分?
答:usb2.0接口有4条线,分别为5V,D+,D-,GND。
接在usb总线上的每一个usb设备都有自己的编号——地址。总线分配。
如果主机需要访问某个usb设备,则发出的命令都有这个设备对应的编号——地址。
6、usb设备刚接入主机时,还没有分配编号,那么主机怎么把之后分配的编号告诉设备?
答:新接入的usb设备默认的编号都是0,未分配前,均使用0进行通讯。
7、为什么一接入usb设备,主机立刻就能知道有设备接入?
答:从主机的原理图可以看出,usb host的四条线。D+和D-都通过一个15k的下拉电阻接地。
usb设备里,D-和5v引脚通过一个1.5k上拉电阻相连。
插入usb设备后,四个引脚同名连接,但是由于usb设备里的上拉构造,导致主机的的D-被拉高到某个电压值。
注:如果是usb设备里D-和5v连接,则是全速设备,如果是D+连接,那么是高速设备。
3、usb其他概念
1、usb是主从结构,所有的usb传输,都是usb主机发起,usb设备并没有主动通知主机的能力。
例子:usb鼠标滑动一下立刻产生数据,但是其并没有能力通知主机来读数据