原创 USB总线上数据传输

2008-11-30 11:48 3289 4 4 分类: MCU/ 嵌入式

USB总线上数据传输
    1.传输类型
    为了满足不同设备的需要,即既要满足数据传输量大的设备,又要满足数据传输量小但要求反应快的设备,USB规范规定了四种传输类型,即控制传输、等时(Isochronous)传输、中断传输和数据块(Bulk)传输。
    控制传输用于主机与设备之间的控制、状态、配置等信息的传输。为主机与设备之间提供一个控制通道。例如,设备接入时,主机将通过控制传输对设备进行配置。
    等时传输用于有周期性和传输速率不变的数据传输。它要求在USB的带宽中预先分配一定的量。该类传输没有差错校验,因而不能保证传输的正确性。音频系统、计算机一电话集成系统等采用这种传输类型。
    中断传输用于数据传输量小,无周期性,但对响应时间敏感且要求马上响应的数据传输。采用中断传输的典型的例子是鼠标、键盘、游戏棒等人机输入设备。
    数据块传输支持像打印机、扫描仪、数码相机等设备。这些设备与主机问传输的数据量很大。这种传输具有采用硬件方法的错误检测,并能重试传输,以保证传输的可靠性。此外,块传输所占的带宽是可以变化的,取决于总线上其他传输的情况。
    2.基于时间片的传输
    在USB总线上数据的传送是以帧(Frame)为单位进行的,即发送方需要按照一定的格式对要传送的数据进行组织,加上一些附加信息组织成帧;接收方按照同样的格式来接收和理解帧。帧的传送时间与选定的数据传输速率有关:对于全速和低速,一帧为1 ms,而对于高速,一帧为125μs(称为微帧)。
    一帧中能实现的最大数据传输量,即所能传输的最大字节数称为带宽。USB采用共享带宽分配方案,如图10.30所示。









USB允许等时和中断传输占用高达90%的带宽,剩下的10%的带宽用于控制传输,块传输仅在带宽满足要求的情况下才会出现。由此可见,USB的数据传输是基于时间片的。显然,某一类型的传输在一帧中所能传输的数据是有限的。为此,在USB系统中引入了传输、事务(Transaction)和事务处理的概念。所谓传输,就是要传输的通常具有某种实际意义的一批数据,例如,要打印的一页数据。所谓事务,是指在一帧中所能传输的部分,例如,对于块传输,一个事务最多只能容纳64个字节。因此,一个超出事务传输能力的传输需要分解成若干个事务。在一帧中,一个事务是通过一次事务处理来实现的。通常,一次事务处理由三个阶段组成:令牌包阶段、数据包阶段和握手包阶段。这里又提出了包(Packet)的概念,包是帧的基本成分。这里的三种包被用于事务处理,或者说包是事务处理的构成单位。还有其他类型的包,比如,表示帧开始的SOF包。每一种包都有自己特定的格式。例如,在事务处理中真正完成数据传输的数据包由包标识PID、要传送的数据和CRC校验码三部分组成。
    图10.31所示较形象地表示了USB传输所涉及到的层次。

点击看大图


文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条