日期:2014-05-16  浏览次数:20675 次

Linux下的USB总线驱动(一)

版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127

 

一.USB理论

1.      USB概念概述

USB1.0版本速度1.5Mbps(低速USB USB1.1版本速度12Mbps(全速USB  USB2.0版本速度480Mbps(高速USB

USB驱动由USB主机控制器驱动和USB设备驱动组成。USB主机控制器是用来控制USB设备和CPU之间通信的,USB主机控制器驱动主要用来驱动芯片上的主机控制器硬件。USB设备驱动主要是指具体的例如USB鼠标,USB键盘灯设备的驱动。

一般的通用的Linux设备,如U盘、USB鼠标、USB键盘,都不需要工程师再编写驱动,需要编写的是特定厂商、特定芯片的驱动,而且往往也可以参考内核中已经提供的驱动模板。USB只是一个总线,真正的USB设备驱动的主体工作仍然是USB设备本身所属类型的驱动,如字符设备、tty设备、块设备、输入设备等。

 

2.      USB主机控制器

USB主机控制器属于南桥芯片的一部分,通过PCI总线和处理器通信。USB主机控制器分为UHCI(英特尔提出)、OHCI(康柏和微软提出)、 EHCI。其中OHCI驱动程序用来为非PC系统上以及带有SiSALi芯片组的PC主办上的USB芯片提供支持。UHCI驱动程序多用来为大多数其他PC主板(包括IntelVia)上的USB芯片提供支持。ENCI兼容