你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

USB的四种传输类型

[复制链接]
gaosmile 发布时间:2020-10-30 19:46

USB的四种传输类型

1.  控制传输:% p! ]$ L1 x3 l. r2 H- h& t
      控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。第一阶段为从HOST到Device的SETUP事务传输,这个阶段指定了此次控制传输的请求类型;
2 m- r! [3 x! p/ ^      第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。
' w$ F2 v0 g! I; s1 f! ^      控制传输通过控制管道在应用软件和 Device 的控制端点之间进行,控制传输过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的数据含义。
: c: p6 a; n! o5 C8 e      其他三种传输类型都没有格式定义。% _' J: T, _; r. u3 R
      控制传输对于最大包长度有固定的要求。对于高速设备该值为 64Byte;对于低速设备该值为 8;全速设备可以是 8或 16或 32或 64。2 F5 O& |) b, u  u+ {: {' G1 e
      最大包长度 表征了一个端点单次接收/发送数据的能力,实际上反应的是该端点对应的Buffer 的大小。Buffer 越大,单次可接收/发送的数据包越大,反之亦反。/ G2 \+ U! y5 n5 z5 ~6 U7 w9 ^, H
      当通过一个端点进行数据传输时,  若数据的大小超过该端点的最大包长度时,需要将数据分成若干个数据包传输,并且要求除最后一个包外,所有的包长度均等于该最大包长度。% P- ^* B7 {0 G* L0 T3 k  q
      这也就是说如果一个端点收到/发送了一个长度小于最大包长度的包,即意味着数据传输结束。
$ T# k4 c; b+ t- C7 k8 K      控制传输在访问总线时也受到一些限制,如:4 h9 k/ H  r/ }) I' H; m' g* ?
        a. 高速端点的控制传输不能占用超过 20%的微帧,全速和低速的则不能超过 10%。
! S: ~9 m6 c; U, G& y; w        b. 在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。
1 D9 l: g8 x2 T2 e$ t- U: o1 a) H) o" P
2.  中断传输:" Q- t$ E) A9 w/ {1 z1 t9 K$ |, A
      中断传输是一种轮询的传输方式,是一种单向的传输,HOST通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。
: |; Q# r5 S1 z9 c  S! n+ X5 Y- w      中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。 7 H6 x# o( X/ f# n4 z9 L
      对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8 Bytes。- K1 B& i  p+ c7 }: F
      高速中断传输不得占用超过 80%的微帧时间,全速和低速不得超过 90%。( p  i: h% E, ~1 C
      中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是1~255mS,低速端点为10~255mS,高速端点为(2interval-1)*125uS,其中 interval取 1到 16之间的值。
2 P/ w% W1 K3 f- t! h. m      除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达 3072 字节的数据。
# K5 e$ Y4 E! u/ H/ q, }2 m8 n+ Z0 @      所谓单向传输,并不是说该传输只支持一个方向的传输,而是指在某个端点上该传输仅支持一个方向,或输出,或输入。如果需要在两个方向上进行某种单向传输,需要占用两个端点,
, O" `% w% T$ w4 E' A2 q& t3 x; j      分别配置成不同的方向,可以拥有相同的端点编号。


6 w. p) _; e( s. ^9 s7 C$ d6 u- F5 r/ _3.  批量传输:  s0 R7 ~( L3 E9 `2 L
      批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。" z/ X, \: E5 U, m# r
      低速 USB 设备不支持批量传输,高速批量端点的最大包长度为 512,全速批量端点的最大包长度可以为 8、16、32、64。
4 O1 _- ^, q4 a1 R8 a2 K2 R! T& B      批量传输在访问 USB 总线时,相对其他传输类型具有最低的优先级,USB HOST 总是优先安排其他类型的传输,当总线带宽有富余时才安排批量传输。
4 I( L" H$ N4 {' r& m2 q  r. M/ R      高速的批量端点必须支持PING 操作,向主机报告端点的状态,NYET 表示否定应答,没有准备好接收下一个数据包,ACK 表示肯定应答,已经准备好接收下一个数据包。


0 E" W; y1 H) [4 r: B4.  同步传输:8 T+ E( [: t% `' F2 I) j7 b' g5 d
      同步传输是一种实时的、不可靠的传输,不支持错误重发机制。只有高速和全速端点支持同步传输,高速同步端点的最大包长度为 1024,低速的为 1023。
1 K8 c& B+ q& S( D1 y. h. V$ l      除高速高带宽同步端点外,一个微帧内仅允许一次同步事务传输,高速高带宽端点最多可以在一个微帧内进行三次同步事务传输,传输高达 3072 字节的数据。
; r* \0 A) x/ L2 Z- q      全速同步传输不得占用超过 80%的帧时间,高速同步传输不得占用超过 90%的微帧时间。同步端点的访问也和中断端点一样,有固定的时间间隔限制。# [2 j: f6 {0 x0 u, I" r
      在主机控制器和 USB  HUB 之间还有另外一种传输——分离传输(Split  Transaction),它仅在主机控制器和 HUB之间执行,通过分离传输,可以允许全速/低速设备连接到高速主机。
9 k2 H0 w, @+ D2 n' B% x      分离传输对于USB 设备来说是透明的、不可见的。+ `" [8 L. S' Z9 ?
      分离传输:顾名思义就是把一次完整的事务传输分成两个事务传输来完成。其出发点是高速传输和全速/低速传输的速度不相等,如果使用一次完整的事务来传输,势必会造成比较长的等待时间,
2 I( |* P7 m' j# v- n0 @      从而降低了高速 USB 总线的利用率。通过将一次传输分成两此,将令牌(和数据)的传输与响应数据(和握手)的传输分开,这样就可以在中间插入其他高速传输,从而提高总线的利用率。

1 w! R8 B6 M/ ~8 q. M$ F/ @. t
赞 收藏 2 评论0 发布时间:2020-10-30 19:46

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版