USB系统的软件结构
5 R2 m9 I7 x1 m) h
# v6 ~, I' h" L7 I) V# H
( Y8 ?' M& `$ j$ j8 m这里所讲的软件结构是针对主机系统而言的,USB设备也需有自己的软件。USB系统的软件是基于模块化、用面向对象方法设计的。USB软件一般由三个主要模块组成,如图10.27所示。位于最底层的是通用主控制器驱动程序(USB Host Controller Driver,UHCD),用来管理和控制USB主控制器。USB主控制器是一个可编程硬件接口,UHCD用来实现与主控制器通信以及对其控制的一些细节。位于中间的软件模块是IJSB驱动程序(USB Driver,USBD),用来实现USB总线的驱动、带宽的分配、管道建立和控制管道的管理等。通常操作系统已提供USBD支持。位于最上层的是USB设备驱动程序(又称客户驱动程序或客户软件),用来实现对特定USB设备的管理和驱动。USB设备驱动程序是USB系统软件和USB应用程序之间的接口。当设计一种新的USB设备时需要编写相应的设备驱动程序,在Windows 98或windows 2000环境下,可采用WDM(Windows Driver Model)来开发。
3 G" P" f. b4 u1 x* A8 S/ q6 K 当软件采用分层结构时,位于下一层的软件应为上一层提供服务,确切地说,应设置一些供上一层调用的函数。这些函数的集合一般称为软件层之间接口(Interfaee)。如图10.27所示,USBDI和HCDI便是这样的接口。