位置:51电子网 » 技术资料 » 接口电路

主机的驱动程序

发布时间:2008/12/23 0:00:00 访问次数:849

  usb接口不像rs-232串行接口那么简单,可以直接使用系统所提供的com端口直接沟通,可移植性也较高。相对地,usb是一个 相当复杂的标准接口,同时需要主机侧与设备侧的诸多软件的支持。此外,大部分主机侧的连接接口,或多或少都可在microsoft操 作系统下工作。但须注意的是,usb并无法在dos、windows 3.x,或是windows nt操作系统下工作。而windows ac较新的修订版(oem 软件的修订版2.1)也提供了若干usb驱动程序的支持。

  若要操作与设计usb的外围设备,windows 98修订第工版则已提供了大部分驱动程序。因此,本书所有的范例与实习都是在这基 本的操作系统下延伸的。当然,也建议读者尽可能在windows 98修订第二版下开发与设计。而相对地,windows 2000同样也有具备了 这样的基本支持能力。

  因此,虽然usb驱动程序是个非常沉重的负担,但幸好在windows下,已经提供了许多驱动程序(如表1所列),可以让用户来处 理一般常用的外围设各。

  microsoft对于windows 98以及以后的版本,对于驱动程序的规划,都是基于win 32 driver model(wdm)下,将不同部分的通 信过程加以分层规划为一个驱动程序的堆栈,也即是如图1所示的wdm堆栈。应用程序代码(通过windows api来调用的)可以通过wdm 下的群组或自定义驱动程序来作相互通信。

图1 windows usb wdm模式

  而在wdm堆栈本身,数据的传输则是通过低阶的irp(i/o要求封包),而不是调用api函数。

  较低阶的usb总线驱动程序管理了usb设备电源、设备列举,以及不同的usb数据交易。而下面的主机控制器驱动程序则是直接采用pc 上的usb硬件。若使用目前windows版本所提供的所有的驱动程序,将可使用户无须重写或修改它们。

  usb设备驱动程序(如人工接口设各驱动程序是提供给鼠标、键盘以及摇杆使用的)、usb驱动程序堆栈与usb驱动程序接口是usb驱 动接口的组成单元。在windows 98中,usb驱动接口是基于wdm内的。如图2所示,是windows98的usb驱动程序架构,可以细分为下 列的各种模块:

图2 usb驱动程序架构

  ①usbhub.sys:是usb hub驱动程序,负责列举所有接上的外围设备。

  ②usbd.sys:是usb群组驱动程序。

  ③uhcd.sys:是usb host控制器的驱动程序(通用式主机控制器,universalhost controller driver)。

  ④ohcd.sys:也是usb host控制器的驱动程序(开放式主机控制器,open hostcontroller driver)。

  此外,hidclass.sys是wdm的输人群组驱动程序,负责迷你驱动程序(minidrivˉer)中,读取或是传送hid相关数据。而 hidusb.sys是hid设各驱动程序,是专门应用于人工接口设备上的,可以将鼠标或键盘等外围设各的信号通过usb接口传给pc主机。稍 后的章节中,会详述这部分的细节。

  在外围设备驱动程序和usb驱动程序堆栈之间存在着usb驱动程序接口(usbdl),每当新设备加人时,i/o要求封包(ijo request packet)即被传送到usbdi,进人usb驱动程序堆栈,如图3所示。

图3 当usb外围设备加入windows 98系统时,会产生irp

  在第5章有群组的概念,而wind°ws与usb规范将驱动程序分类成所谓的“群组”,当然也就是为了在同一群组下,可以共享类 似的接口。而在群组下,定义了一组兼容的特性与规范,所有位于此群组的设各都需要兼容的软件来加以支持。

  当然,最常用的群组不外乎是之前常引用为范例的人工接口群组(hid),其支持的设备包含了如鼠标、摇杆与键盘等接口设备 。另一个范例是监视器群组,用来控制影像的位置、太小,以及校准视频信号的显示。而windows 98在安装时,即同时包含了具有完 整的hid群组驱动程序。如此,如果用户的外围需要类似hid设备支持,就可直接使用内建的驱动程序,就无须撰写任何主机应用程序 代码。

  目前大部分的群组驱动程序的规范,可以在usb官方网站(http://wvzw.usb.org/)中查询得到,而windows所支持的群组驱 动程序也可在microsoft网站内查询,但是这些驱动程序还是有一些限制的.

  如图1所示,用户可以了解到自定义驱动程序是群组驱动程序的另一个选择。而自定义驱动程序利用了usb缆线的尾端(设备端 )的usb微控制器硬件功能.这其实就是前一章的端点的fifo缓冲区,用来作进一步的设计与应用。如果用户要设计一个新的usb设各,作为快速的数据采集与控制, 在没有类似的驱动程序的支持下,就必须编写自己的驱动程序。同样地,如果用户的设各超过了标准群组所能支持的范围,用户也必 须编写自定

  usb接口不像rs-232串行接口那么简单,可以直接使用系统所提供的com端口直接沟通,可移植性也较高。相对地,usb是一个 相当复杂的标准接口,同时需要主机侧与设备侧的诸多软件的支持。此外,大部分主机侧的连接接口,或多或少都可在microsoft操 作系统下工作。但须注意的是,usb并无法在dos、windows 3.x,或是windows nt操作系统下工作。而windows ac较新的修订版(oem 软件的修订版2.1)也提供了若干usb驱动程序的支持。

  若要操作与设计usb的外围设备,windows 98修订第工版则已提供了大部分驱动程序。因此,本书所有的范例与实习都是在这基 本的操作系统下延伸的。当然,也建议读者尽可能在windows 98修订第二版下开发与设计。而相对地,windows 2000同样也有具备了 这样的基本支持能力。

  因此,虽然usb驱动程序是个非常沉重的负担,但幸好在windows下,已经提供了许多驱动程序(如表1所列),可以让用户来处 理一般常用的外围设各。

  microsoft对于windows 98以及以后的版本,对于驱动程序的规划,都是基于win 32 driver model(wdm)下,将不同部分的通 信过程加以分层规划为一个驱动程序的堆栈,也即是如图1所示的wdm堆栈。应用程序代码(通过windows api来调用的)可以通过wdm 下的群组或自定义驱动程序来作相互通信。

图1 windows usb wdm模式

  而在wdm堆栈本身,数据的传输则是通过低阶的irp(i/o要求封包),而不是调用api函数。

  较低阶的usb总线驱动程序管理了usb设备电源、设备列举,以及不同的usb数据交易。而下面的主机控制器驱动程序则是直接采用pc 上的usb硬件。若使用目前windows版本所提供的所有的驱动程序,将可使用户无须重写或修改它们。

  usb设备驱动程序(如人工接口设各驱动程序是提供给鼠标、键盘以及摇杆使用的)、usb驱动程序堆栈与usb驱动程序接口是usb驱 动接口的组成单元。在windows 98中,usb驱动接口是基于wdm内的。如图2所示,是windows98的usb驱动程序架构,可以细分为下 列的各种模块:

图2 usb驱动程序架构

  ①usbhub.sys:是usb hub驱动程序,负责列举所有接上的外围设备。

  ②usbd.sys:是usb群组驱动程序。

  ③uhcd.sys:是usb host控制器的驱动程序(通用式主机控制器,universalhost controller driver)。

  ④ohcd.sys:也是usb host控制器的驱动程序(开放式主机控制器,open hostcontroller driver)。

  此外,hidclass.sys是wdm的输人群组驱动程序,负责迷你驱动程序(minidrivˉer)中,读取或是传送hid相关数据。而 hidusb.sys是hid设各驱动程序,是专门应用于人工接口设备上的,可以将鼠标或键盘等外围设各的信号通过usb接口传给pc主机。稍 后的章节中,会详述这部分的细节。

  在外围设备驱动程序和usb驱动程序堆栈之间存在着usb驱动程序接口(usbdl),每当新设备加人时,i/o要求封包(ijo request packet)即被传送到usbdi,进人usb驱动程序堆栈,如图3所示。

图3 当usb外围设备加入windows 98系统时,会产生irp

  在第5章有群组的概念,而wind°ws与usb规范将驱动程序分类成所谓的“群组”,当然也就是为了在同一群组下,可以共享类 似的接口。而在群组下,定义了一组兼容的特性与规范,所有位于此群组的设各都需要兼容的软件来加以支持。

  当然,最常用的群组不外乎是之前常引用为范例的人工接口群组(hid),其支持的设备包含了如鼠标、摇杆与键盘等接口设备 。另一个范例是监视器群组,用来控制影像的位置、太小,以及校准视频信号的显示。而windows 98在安装时,即同时包含了具有完 整的hid群组驱动程序。如此,如果用户的外围需要类似hid设备支持,就可直接使用内建的驱动程序,就无须撰写任何主机应用程序 代码。

  目前大部分的群组驱动程序的规范,可以在usb官方网站(http://wvzw.usb.org/)中查询得到,而windows所支持的群组驱 动程序也可在microsoft网站内查询,但是这些驱动程序还是有一些限制的.

  如图1所示,用户可以了解到自定义驱动程序是群组驱动程序的另一个选择。而自定义驱动程序利用了usb缆线的尾端(设备端 )的usb微控制器硬件功能.这其实就是前一章的端点的fifo缓冲区,用来作进一步的设计与应用。如果用户要设计一个新的usb设各,作为快速的数据采集与控制, 在没有类似的驱动程序的支持下,就必须编写自己的驱动程序。同样地,如果用户的设各超过了标准群组所能支持的范围,用户也必 须编写自定

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!