USB通信程序设计 第4页

USB通信程序设计 第4页
图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)
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. 具有数据传输保证,在不要时可以重试。
批传输(Bulk Transfer)
1. 用于大量的、对时间没有要求的数据传输;
2. 数据没有USB定义的结构(数据流管道);
3. 单向传输,如果一个外设需要双向传输,则必须使用另一个端点;
4. 只能用于高速设备,允许数据包最大容量为8,16,32或64字节;
5. 没有带宽的保证,只要有总线空闲,就允许传输数据(优先级小于控制传输);
6. 具有数据传输保证,在必要时可以重试,以保证数据的准确性。
 图2.6 USB数据传输
2.5 USB的端点
端点是USB中一个独特的概念,它是一个可以与USB Host交换数据的硬件单元。USB
Host与USB设备之间都是通过端点来传输数据的,端点是桥梁和纽带,不同的端点其传输数据的能力不同,适于不同的应用场合。
PDIUSBD12的端点适用于不同类型的设备,例如图像打印机、海量存储器和通信设备。
端点可通过Set Mode命令配置为4种不同的模式,分别为:
1. 模式0 Non-ISO 模式:非同步传输
2. 模式1 ISO-OUT 模式:同步输出传输
3. 模式2 ISO-IN 模式:同步输入传输
4. 模式3 ISO-IO 模式:同步输入输出传输
这几种模式下可得到的端点情况如下表2.1:
表2.1 端点模式
端点2(主端点)是进行吞吐大量数据的主要端点。主端点执行主机的特性以减轻传输大数据的任务,包括:
1. 双缓冲。允许USB与本地CPU之间的并行读写操作,增加了数据的吞吐量。缓冲区切换是自动处理的,导致了透明的缓冲区操作。
2. 支持DMA(直接存储器访问)操作,可以和对其他端点的正常I/O操作交进行。
3. DMA操作中的自动指针处理,在跨过缓冲区边界时不需要本地CPU的干预。
4. 可配置为同步传输或非同步(批量和中断)传输。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有