usb pipe

Pipe
USB的pipe的两端分别指的是USB host端的内存区域,和设备端的endpoint。
pipe分为两类,一类是stream pipe, 另一类是message pipe。
两类的主要区别是,message pipe发送的数据,都是usb协议里规定好的结构,而steam pipe发送的数据则没有什么要求。
还有一个重要的概念就是,message pipe要求IN和OUT,而且必须是一个endpoint支持IN,OUT,也就是要求全双工。所以endpoint 0的control transfer就总是message pipe。但是只能是endpoint 0可以使用control transfer么?其实不是,除了endpoint 0之外,其实还可以有其他endpoint支持全双工,这就根据设备的支持了,一般这么用的比较少。下面介绍control transfer的时候会介绍到。

Transfer
USB协议规定了4种transfer,分别为control transfer, isochronous transfer, bulk transfer, interrupt transfer.
一个transfer由多个transaction组成,一个transaction由多个packet组成。

control transfer
一个control transfer由SETUP, DATA, STATUS三种transaction组成,其中SETUP是由host -> device, STATUS是由device -> host。DATA是可有可无的,DATA的传输方向也是由SETUP里去指定的。
control trnasfer属于message pipe, 里面传输的数据都是定义好了的结构体,比如set configuration之类。
一个device必须有一个control transfer,也就是使用的endpoint0,但是device不见得只有一个control transfer,也可以有其他的全双工的endpoint去运作附加的control transfer。

SETUP transaction的数据都是USB协议定义好的结构体,这个结构体允许vendor指定自己的专门设备的一些command。DATA transaction如果有的话,就跟在SETUP后面,其也有一个USB定义好的结构体,除非传输的是vedor指定的信息。最后是STATUS transaction,这个也是有USB协议规定好的。

基于control transfer的endpoint决定了最大的packet大小,full-speed的设备为8, 16, 32, 64个bytes, high-speed设备支持64 bytes, low-speed为8bytes.这个包的最大size决定于wMaxPacketSize。这个wMaxPacketSize是在device descriptor里,所以正确的读取顺序为,先读8个bytes,解析后得到wMaxPacketSize后,再去用真实的size继续操作。

还有一点,这个wMaxPacketSize,也就是max packet大小,指的是DATA transaction里的真实data filed的size。像SETUP,STATUS这些transaction,都是USB定义好的,所以size也是固定的,所以就跟这个最大size没有关系了。如果传输的数据大于packet的max size里,那就分多个packet。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
USB3管道协议是USB (Universal Serial Bus,通用串行总线)3.0标准的一部分。USB3.0是当前用于连接计算机和外部设备的高速数据传输接口标准之一。 USB3管道协议是指USB3.0中定义的一种通信协议,在数据传输过程中起到了关键作用。该协议规定了USB3.0设备之间进行数据交换的方式和规则,确保数据的快速、稳定和可靠传输。 USB3管道协议允许在USB3.0接口上同时进行多个数据传输。具体而言,它定义了多个管道(pipe),每个管道都有独立的传输方向和传输属性。例如,一个管道可以用于输入数据,另一个管道可以用于输出数据。每个管道都有自己的传输速率、传输模式和传输类型。 USB3管道协议在传输过程中采用了一种称为“超级速度传输技术”的新型数据传输机制,能够提供更高的传输速率和更低的延迟。这项技术基于PCI Express技术,通过在数据线上同时使用多个数据通道来实现更高的传输效率。 通过USB3管道协议,USB3.0设备能够实现高达5Gbps的数据传输速率,比之前的USB2.0标准快10倍。这种高速传输能力使得USB3.0接口在高速存储设备、高清视频设备、图像设备等领域得到了广泛应用。同时,USB3管道协议的设计也提高了数据传输的稳定性和可靠性,确保了数据的准确传输。 总之,USB3管道协议是USB3.0标准中的一部分,定义了USB3.0设备之间的数据传输方式和规则。它支持多个独立的数据管道,采用高速传输技术,实现了更高的传输速率和更低的延迟。这项协议为USB3.0接口在数据传输领域提供了更好的性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值