______________|\/|(____\(___\|)(||(\/|())|||||(_____|(__//||||(_____)|__(||||)||(\\|(___)|/\____)||)___))(_______)\_______)|/\___/1.USB特性不同设备类型,统一接口支持热插拔灵活供电方式多级速率支持2.分类OHCI主要是非PC系统上的USB芯片和带有SiSheALi芯片组的PC主板UHCI主要是Intel和Via主板上的USB控制器芯片。UHCI的硬件电路比OHCI简单,成本也低,但驱动复杂。但是都是USB1.1规定的。EHCI由Intel等多家厂商开发,兼容OHCIUHCI。它遵循USB2.0规范。设置,比如USB耳机可以录音和播放,那么可以有三个配置界面:如上,分为录音界面和播放界面端点:比如播放界面会有两个端点,一个是左声道,一个是右声道端点,是通信的基本单位,方向是确定的。管道代表端点之间通信的能力。4.传输单元*Transaction:Transaction一般由令牌包、数据包(可选)、握手包组成。令牌数据包:用于启动事务,始终由主机发送。数据包:可以是主机到设备,也可以是设备到主机,方向由令牌包决定。握手包:通常,数据的接收方发送一个握手包(ACK或NAK)。一个事务一般由令牌包、数据包(可选)和握手包组成。USB协议规定了四种传输类型:控制传输、批量传输、同步传输和中断传输。USB设备需要控制管道。控制传递也分为三个阶段,分别是令牌阶段、数据传递阶段和握手阶段。中断传输:被中断的东西数据量很小,一般用来通知主机某个事件的到来,比如USB鼠标,鼠标移动或者鼠标点击等,都会向主机传输事件通过中断管道。也分为三个阶段,令牌阶段,数据传输阶段,握手阶段。同步传输:这是一种可以保证传输同步的事务。例如,在USB相机中传输视频数据时将使用这种事务。这种交易可以保证每秒固定的传输量。与Bulk传输的区别在于它允许一定的误码率。同步传输事务只有两个阶段,令牌阶段和数据阶段。因为不关心数据的正确性,所以没有握手阶段。批量传输:用于传输大量数据,保证不丢失数据,但不保证在特定时间内完成。U盘使用批量传输。5.命名sysfsUSBNaming2-1:1.0Device-Port:Configuration。Interfacethefirstportoftheseconddevice,usetheinterfaceofconfiguration016.DriverarchitectureUSBCoreUSBCore提供一些核心算法来驱动其他设备程序提供服务,提供访问和控制USB硬件的接口,与当前主机无关系统的控制器。USBCore、USBhostcontroller、USBdevicedriver的关系如下:Block层:Net层:Char层:------------------------------USB设备驱动程序------------------------------USBCore-------------------------USB主机控制器(HCD)------------------------------HardwareHCD提供hostcontrollerhardware抽象隐藏了硬件的细节,HCD只负责USBCore。这意味着我们在调用USBCore接口的基础上编写USB驱动程序。我们接下来的源码分析从HCD开始。
