USB主机
USB主机在USB系统中处于中心地位。并且,对USB及其连接的设备有着特殊的责任。主机控制着所有对USB的访问一个外设。只有主机允许才有权力访问总线。主机同时也监测着USB的结构。USB主机包括三层:设备驱动程序,USB系统软件,USB主控制器(主机的总线接口)。另外,还有两个软件接口:USB驱动USBD接口,主机控制驱动(HCD)接口。
USB数据流
从逻辑上讲,USB数据的传输是通过管道进行的。USB系统软件通过缺省管道(与端点0相对应)管理设备。设备驱动程序通过其它的管道来管理设备的。功能接口实际的数据传输过程是这样的:设备驱动程序通过对USBD接口(USB driver interface)的调用,发出输入输出请求(IRPI/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.对于高速设备,允许数据包最大容量为81632或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.只能用于高速设备,允许数据包最大容量为81632或64字节
5.没有带宽的保证,只要有总线空闲就允许传输数据,优先级小于控制传输
6.具有数据传输,保证在必要时可以重试,以保证数据的准确性
[此贴子已经被作者于2006-3-10 10:55:42编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |