过期罐头电脑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4035|回复: 0
收起左侧

Windows XP下USB整体结构

[复制链接]
shan 2011-5-22 10:10:36 | 显示全部楼层

这里主要讲的是Windows XP下USB驱动协议栈的整体结构,以及内部的一些重要数据结构。在写这些东西时,参考了大牛Tiamo的相关论坛贴子 ,内容很多雷同,说是转贴也不为过。

USB协议栈是由如下几个驱动文件构成的:

usbport.sys    USB主机控制器共用驱动代码库,供miniport驱动调用。
usbhub.sys    USB总线驱动,USB总线也是USB设备的一种。
usbehci.sys   USB EHCI主机控制器驱动,它是属于miniport驱动。
usbuhci.sys  USB UHCI主机控制器驱动,它是属于miniport驱动。
usbohci.sys  USB OHCI主机控制器驱动,它是属于miniport驱动。
usbd.sys       USB设备驱动共用代码库,供USB设备驱动和总线驱动调用。

usbccgp.sys  USB复合设备驱动。
usbstor.sys   USB存储设备驱动。
usbaudio.sys USB声音设备驱动。
usbvideo.sys USB视频设备驱动。
hidusb.sys    USB HID设备驱动。

主机控制器驱动是USB协议栈的最底层驱动,在它之上就是USB总线驱动,再之上是USB设备驱动。

USB设备驱动上面呢,一般还有其它的驱动。象usbstor上面还有存储设备class驱动,hidusb上面还有HIDclass驱动。不过这上面的驱动,就和USB的驱动协议栈没有多大的关系了。而设备驱动和具体的设备类有千丝万缕的关系,不是我们要讨论的重点。

这里重点要讨论的是控制器和总线,这是USB驱动协议栈的核心。

我们知道,USB2.0有EHCI控制器,USB1.1有UHCI和OHCI控制器。这样一共有三种控制器,它们之间有什么区别呢? 这要先说一说控制器的作用,USB协议栈并不是凭空而建立起来的,它下层就是PCI总线驱动(一般而言,也不一定非得是PCI总线),而控制器的作用就是和PCI总线打交道,将USB的功能和操作转变成PCI总线上的一系列操作,同时还兼任着usb总线的日常管理。

不同的硬件厂商都可以有它自己的一个控制器规范,这在USB协议出现早期尤为突出。但这样各自为政毕竟对整个规范的发展不利,于是大家便开始统一接口规范,这统一规范能满足大家的绝大部分需求,所以大家也就都用标准规范。USB 1.1时,就形成了OHCI和UHCI两大阵营,而USB2.0时,则只有EHCI了,显然,大家还是觉得标准越少麻烦越少。

对比一下UHCI和OHCI,两者都是提供对USB1.1协议的支持,只不过,UHCI硬件实现相对较少而成本相对较低,但软件驱动复杂度相对较高,所以,UHCI多用在PC上,OHCI多用在嵌入设备中。而 EHCI 则是伴随着USB 2.0规范一同出现(因为大家都受够了要同时支持两大规范的痛苦),它同时也向下兼容UHCI和OHCI。

好了,废话就说这么多,再具体的网上可查。下面,就说说控制器驱动的事儿。各大控制器规范和底层PCI总线的接口差别比较大,但它控制USB总线那一块的功能都基本上差不多 -- 都是完全符合USB本身规范的。所以,各大控制器的驱动底层接口部分是各自为政,而USB总线管理部分则被提炼出来,形成一个共同的代码库,名为usbport.sys。也就是说,usbport.sys并不是一个独立的驱动,而只是一个供别人调用的动态链接库。而这个动态链接库由于实现了控制器驱动的绝大多数功能,所以,我们习惯地将它当作控制器驱动的主体。

讲了usbport.sys是怎么回事,顺带讲讲usbd.sys。usbd.sys和usbport.sys角色定位类似,它也只是作为一个动态链接库供USB设备驱动和USB总线驱动使用。不过,由于usbd.sys实现的功能很有限,作用没有usbport.sys那么突出,所以就显得比较边缘化,在一般的讨论中将它忽略掉。

关于USB驱动栈的整体结构就讲到这里,后续会具体讲讲usbhub.sys和usbport.sys所实现的功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

一键重装系统|雨人系统下载|联系我们|网站地图|过期罐头电脑论坛

GMT+8, 2024-4-25 03:31 , Processed in 0.044428 second(s), 25 queries .

官方免责声明:本站内容来自网友和互联网.若侵犯到您的版权.请致信联系,我们将第一时间删除相关内容!

Powered by Discuz!

专注于win7_win10_win11系统下载装机

© 2010-2023 GQGTPC.Com

快速回复 返回顶部 返回列表