USB接口介绍

    USB设备系统分为两个部分,USB Host端和USB Device端,以USB接口的U盘为例子,U盘自身是一个USB Device,PC机的USB接口以及相关的控制电路为USB Host部分。

    每个部分由硬件部分和软件部分组成,硬件部分由USB主机控制器和USB接口芯片来组成,固件(软件)由两侧的驱动程序组成。

   

    为了规范不同厂商的USB设备,IEEE指定了相应的规范,只要不同端的设备都符合此规范,就能正常的通讯。

主机控制器协议

     主机控制器协议有 OHCI、EHCI、UHCI、xHCI。

     对于协议规范里面的特定功能,由硬件来实现还是由软件来实现,这取决于不同的应用场合和环境,因此,就出现了针对USB1.1协议的OHCI和UHCI主机控制器协议。

     OHCI把一些功能实现放在硬件上面,因此,软件方面就比较容易开发,常用于嵌入式系统

     UHCI则把一些功能的实现更多的放在软件上面,因此,硬件上面就可以做的较为简单,适用于大规模生产,常用于PC中

     为了解决USB1.1传输速度低下的问题,USB规范升级到USB2.0,对应的主机控制器规范升级为 EHCI。

     进一步升级USB规范到USB3.0,对于的主机控制器规范为xHCI。下图是不同USB主机控制器的区别。

clipboard

 

USB硬件接口

    USB的插头和插座,根据不同使用环境,分为三种类型,Type最大,Mini适中,Micro最小。每个类型中又分为A类和B类两个规格。

     clipboard[4]

     clipboard[6]

USB3.0的接口,USB3.0相比于USB2.0增加了4根线,不过在设计上,保持同USB2.0的兼容。

     image

下图是不同规范的协议对比:

clipboard[8]

 

编码方式

    USB中用NRZI(非归零反转码),电平翻转代表逻辑0,电平不变代表逻辑1.USB的每个数据包都以同步域开头(0000_0001),通过编码成为方波。为了防止发送同样的数据造成的传输误差,USB规定了强制插0的协议,即如果要传输的数据中有7个连续的1,发送前会在第六个1的后面强制插入一个0,强制反转发送信号,使得两侧的接受频率同步。

 

USB的分类

    USB只是一种接口形式,基于此接口,可以有多重多样的设备,为了便于统一管理,对于不同的设备,USB规范规定了不同的设备类型,详细的USB的Class分类参加此链接:

    http://www.xat.nl/en/riscos/sw/usb/class.htm

 

USB的枚举

    USB的枚举,USB Emulation,就是USB初始化的意思,简单的说,就是USB的Host和Device之间的对话。

 

USB的数据传输

    一次USB的传输,由不同事务(Transaction)组成,一个事务是由不同的包(Packet)组成,一个包是由不同的域组成。见下图:

    clipboard[12]

    数据传输分为两类:周期性的和非周期性的。

            周期性的有中断传输和等时传输。

            非周期性的有控制传输和批量传输

  参考链接:

USB设备简述:

http://blog.csdn.net/ljzcom/article/details/8574411

USB设备驱动开发:

http://blog.csdn.net/ljzcom/article/details/8574387

usb设备的probe过程:

http://blog.csdn.net/ljzcom/article/details/7419867

USB设备驱动开发之数据结构:

http://blog.csdn.net/ljzcom/article/details/7693209

http://blog.csdn.net/ljzcom/article/details/7693212

http://blog.csdn.net/ljzcom/article/details/7693219 

Technorati 标签: USB
posted @ 2015-03-04 16:24  浩天之家  阅读(6293)  评论(0编辑  收藏  举报