USB总线学习心得及资料

来源:互联网 发布:网络信息收集方法 编辑:程序博客网 时间:2024/06/05 11:36

看了一下usb协议资料,对usb原理有了一个简单的了解。

usb总线和pci总线一样,总线的作用都是提供通道,各种设备利用总线通道来实现自己的功能。

  • usb总线的主要特点:是一个星形的共享性总线,总线控制器逐个的询问总线上的设备是否需要数据收发,如果有数据需要传输则赋予设备操作总线的令牌。

  • usb总线的星形拓扑结构:

这里写图片描述

  • usb设备的组织结构:星形总线上的每个usb设备都有一个自己的device address来标示自己,以区分出host是在和谁通讯。device内部进一步细分为多个端点(endpoint),usb通讯的基本单位就是端点,0号端点是控制用的,其他还有哪些端点是从0号端点中读出的配置信息知晓的。

  • usb设备的内部逻辑:一组端点(endpoint)可以组成一个接口(interface),每个接口需要一个配置一个(configuration),多个接口可能共一个配置,所以一个配置可以对应多个接口,每个设备有一个描述符(descriptor)。

  • usb的总线枚举和配置过程:usb host需要给总线上的设备分配不同的地址才不会冲突,usb的星形拓扑连接设备都是通过hub的端口连结到总线上的。总线初始化枚举设备时,usb设备的地址都是默认地址0,但是hub的端口都是关闭的所以并不产生设备冲突,host逐个打开hub的端口,逐个利用打开端口上设备的默认地址0来配置设备,给其分配新的地址,从endpoint 0中读出设备的配置并设置。在运行过程中usb设备的热插拔也是和这类似的。

  • usb的驱动结构层次:最底层是usb控制器驱动HCD(Host Controller Driver),负责操作usb host;中间一层是usb核心层,usb根据hcd提供的接口实现usb总线通用层,向下配置初始化设备,向上提供endpoint等级的操作接口;最上一层是usb功能性驱动,根据usb总线层提供的endpoint通讯能力,实现具体的业务,比如usb磁盘驱动、usb声卡驱动、usb网卡驱动等等。

这里写图片描述

  • usb的规格和速率:
USB 3.0 超高速SuperSpeed 5Gbps 约500MB/S(5000 Mbit/s) USB 2.0 高速Hi-Speed 480Mbps 约60MB/S(60,000KB/S) USB 1.1 全速Full Speed 12Mbps 约1.5MB/S(1,500KB/S) USB 1.0 低速Low Speed 1.5Mbps 187.5KB/S(192000Bytes/S)
  • usb host控制器分类:

usb1.0有两种控制器标准:OHCI康柏的开放主机控制器接口,UHCI Intel的通用主机控制器接口。它们的主要区别是UHCI更加依赖软件驱动,因此对CPU要求更高,但是自身的硬件会更廉价。
usb2.0只有一种控制器标准:EHCI。因为EHCI只支持高速传输,所以EHCI控制器包括四个虚拟的全速或者慢速控制器。

  • 参考资料:

附件: usb总线协议.rar
附件: usb总线控制器.rar
附件: usb网上相关资料.rar

原创粉丝点击