嵌入式Linux的USB驱动设计
2011-05-21李丽宏郝志刚
李丽宏,郝志刚
(太原理工大学 信息工程学院,山西 太原 030024)
随着计算机外围硬件的扩展,各种外围设备使用不同的总线接口,导致计算机外部各种总线繁多,管理困难,USB总线可以解决这些问题,因此而诞生。USB总线提供统一的外没的接口方式,并且支持热插拔,方便了厂商开发设备和用户使用设备。USB(通用串行总线)是由Microsoft,Compad,Inter和NEC等推出的外围总线接口,目前已发展到2.0标准最高支持480 Mb/s的速率,最多可以支持127个外设。
嵌入式Linux是一款源代码完全免费的新兴操作系统,用户可以用户可以通过网络等其他途径免费获得,并可以任意修改其源代码,这是其他的操作系统做不到的。正是由于这一点,Linux得到了广泛的应用。
1 Linux中USB设备驱动程序框架及数据结构
1.1 USB的体系结构
USB接口标准支持外部设备和主机之间进行数据传送。在USB结构中主机预设各种类型外设使用的总线宽度。当外设和主机在运行时,USB总线允许使用,设置,添加和拆除外设。
在USB体系结构中一个USB系统可以分成USB设备、USB主机和USB互联3个部分。USB互联是USB设备和USB主机之间进行连接通信的操作[1],主要包括:
1)总线拓扑结构:USB主机和USB设备之间的连接方式;
2)数据流模式:描述USB通信系统数据如何从产生方传递到使用方;
3)USB调度:USB总线是一个共享连接,对可以使用的连按进行调度以支持同步数据传输,并避兔优先级判断的开销。

图1 USB体系拓扑结构图Fig.1 USB system topological structure
USB的物理连接是有层次的星型结构,如图1所示。从图中可以看出USB集线器在一个节点上连接多个设备,每条线段都是点点连接,每个USB集线器在星形的中心。……
