2.3 USB主机
USB主机在USB系统中处于中心地位,并且对USB及其连接的设备有着特殊的责任。主机控制着所有对USB的访问,一个外设只有主机允许才有访问总线的权利。主机同时也检测着USB的结构。
USB主机包括三层:设备驱动程序,USB系统软件,USB主控制器(主机的总线接口)。另外,还有两个软件接口:USB驱动(USBD)接口,主机控制驱动(HCD)接口。
图2.4 主机的层次结构2.4 USB数据流
论文网http://www.youerw.com/
图2.5 USB数据流过程
从逻辑上讲,USB数据的传输是通过管道进行的。USB系统软件通过缺省管道(与端点0相对应)管道设备,设备驱动程序通过其它的管道来管理设备的功能接口。实际的数据传输过程是这样的:设备驱动程序通过对USBD接口(USB driver interface)的调用发出输入输出请求(IRP, I/O Request Packet);USB驱动程序接到请求后,调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输;然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是:所有的数据传输都是由主机开始的,任何外设都无权开始一个传输。
IRP是由操作系统定义的,而USB传输与总线操作是USB规范定义的。为了进一步说明USB传输,这里引出帧(frame)的概念。
帧:USB总线将1ms定义为一帧,每帧以一个SOF包为开始,在这1ms里USB进行一系列的总线操作。引入帧的概念主要是为了支持与时间有关的总线操作。
为了满足不同外设和用户的要求,USB提供了四中传输方式:控制传输;同步传输;中断传输;批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征:
控制传输(Control Transfer)本文来自优.文~论^文·网原文请找腾讯32'49114
1. 通常用于配置、命令、状态等情形;
2. 其中的设置操作(setup)和状态操作(status)的数据包具有USB定义的结构,因此控制传输只能通过消息管道进行;
3. 支持双向传输;
4. 对与高速设备,允许数据包最大容量为8,16,32或64字节,对于低速设备只有8字节一种选择;
5. 端点不能指定总线访问的频率和占用总线的时间,USB系统软件会做出限制;
6. 具有数据传输保证,在必要时可以重试。
同步传输(Isochronous Transfer)
1. 是一种周期的、连续的传输方式,通常用于与时间有密切关系的信息的传输;
2. 数据没有USB定义的结构(数据流管道);
3. 单向传输,如果一个外设需要双向传输,则必须使用另一个端点;
4. 只能用于高速设备,数据包的最大容量可以从0到1023个字节;
5. 具有带宽保证,并且保持数据传输的速率恒定(每个同步管道每帧传输一个数据包);
6. 没有数据重发机制,要求具有一定的容错性;
7. 与中断方式一起,占用总线的时间不得超过一帧的90%。
中断传输(Interrupt Transfer)
1. 用于非周期的、自然发生的、数据量很小的信息的传输,如键盘、鼠标等。
2. 数据没有USB定义的结构(数据流管道);
3. 只有输入这一种传输方式(即外设到主机);
4. 对于高速设备,允许数据包最大容量为小于或等于64字节,对于低速设备只能小于或等于8字节;
5. 具有最大服务周期保证,即在规定时间内保证有一次数据传输;
6. 与同步方式一起,占用总线的时间不得超过一帧的90%;
7. 具有数据传输保证,在不要时可以重试。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
USB通信程序开发+程序实现与调试 第4页下载如图片无法显示或论文不完整,请联系qq752018766