首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

USB通信(三)

USB通信(三)

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编辑过]

一颗红心!
返回列表