一、PC上的USB系统组成部分
硬件:完成物理上的接口和实体功能
软件:与操作系统配合管理硬件,完成数据流传输
由上图可知PC上的USB主机包含三个部分:
-
- USB主控制器/根Hub
- USB系统软件
- 用户软件
1).USB主控制器/根Hub
a.PC硬件,由USB主控制器芯片、USB Hub控制器芯片、USB端口连接件及控制器外围电路等组成;
b.USB主控制器
提供收发物理层
根据USB传输机制实现自动管理各个端点的存储与数据交换
提供与外围控制cpu的接口电路(在PC中USB主控制器是通过PCI总线和cpu进行通信)
c.根Hub
提供物理接口
一般的USB主控制器提供了根Hub。并且通过D+和D-两个数据线提供端口连接点
d.读数据过程:
USB主控制器收到PC软件和驱动程序发来了读事务要求,将此要求发给根Hub;
根Hub确定目标设备存在并且连接正常;
通过USB的数据管道发送读事务请求给目标USB设备;
目标USB设备在准确收到读事务请求后准备好数据,发送给根Hub;
USB主控制器将来自设备的串行数据转换为并行数据,通过PCI总线发送到PC系统的内存缓冲区,供驱动程序和软件使用;
e.写过程与读过程类似,数据方向相反,但是读写都是由主机发起
2).USB系统软件
a.主要指PC上操作系统提供的一系列软件和驱动程序,主要由USB核心驱动程序和USB主控制器驱动程序组成;
b.USB核心驱动程序被捆绑在操作系统中,解释USB类设备驱动程序发来的一系列命令,划分为一系列的USB事务,然后发给USB主控制器驱动程序,通过USB主控制器驱动程序间接与USB主控制器硬件打交道;
c.USB主控制器驱动程序负责最底层的驱动任务,控制和管理硬件底层,负责将USB事务发送给USB主控制器芯片,最终将数据串行发送到电缆上;
d.一般USB主控制器驱动程序和USB核心驱动程序由支持USB的操作系统提供,而USB设备类驱动程序由用户自己开发以实现特定的USB传输特点
3).用户软件和USB设备类驱动程序
a.USB设备类驱动程序也叫USB用户驱动程序,把用户要求的USB命令发送给USB主控制器硬件,初始化内存缓冲区,用于存储USB通信中的数据;
b.目前windows操作系统对于HID和Mass Storage类设备的支持比较完善,直接提供了USB设备类驱动程序;
c.用户软件,指用户与USB系统之间的一种界面,完成用户对于USB的控制,以及实时地进行一些数据的交互,在用户需要通过USB来进行数据传输并且完成一些特殊处理而操作系统无法胜任时需要开发用户软件
二、USB在PCI总线上的位置