USB的传输方式——笔记

每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三个部分,第一部分是USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,其方向主要看第一部分的命令是读还是写,第二部分有时候可以没有。第三部分是握手信号。以下针对这四种传输,分别进行讲解。
USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是

  • Bulk Transaction——Bulk传输事务
  • Control Transaction——控制传输事务
  • Interrupt Transaction——中断传输事务
  • Isochronous Transaction——同步传输事务
  1. Bulk传输事务

主要是大块的数据,传送这种事务的管道叫做Bulk管道。这种事务传输的时候分为三部分:
第一部分是Host端发出一个Bulk的令牌请求,如果令牌是IN请求则是从Device到Host的请求,如果是OUT令牌,则是从Host到Device端的请求。谁发谁请求。
第二部分是传送数据的阶段,根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。传输数据的时候用DATA0和DATA1令牌携带着数据交替传送。
第三部分是握手信号。如果数据是IN方向,握手信号应该是Host端发出,如果是OUT方向,握手信号应该是Device端发出。握手信号可以为ACK,表示正常响应,也可以是NAK表示没有正确传送。STALL表示出现主机不可预知的错误。接收方发握手信号。

在第二部分,即传输数据包的时候,数据传送由DATA0和DATA1数据包交替发送。
数据传输格式DATA1和DATA0,这两个是重复数据,确保在1数据丢失时0可以补上,不至于数据丢失。
  1. 控制传输事务
    控制传输是负责向USB设置一些控制信息,传送这种事务的管道是控制管道。在每个USB设备中都会有控制管道,也就是说控制管道在USB设备中是必须的。控制传输也分为三个阶段,即令牌阶段、数据传送阶段、握手阶段。

  2. 中断传输事务
    在USB设备中,有种处理机制类似于PCI中断的机制,这就是中断事务。中断事务的数据量很小,一般用于通知Host某个事件的来临,例如USB鼠标,鼠标移动或者鼠标单击等操作都会通过中断管道来向Host传送事件。在中断事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段,

  3. 同步传输事务
    USB设备中还有一种事务叫同步传输事务,这种事务能保证传输的同步性。例如,在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证每秒有固定的传输量,但与Bulk传输不同,它允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心数据的正确性,故没有握手阶段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值