接口/总线/驱动
1)控制传输
控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。第一阶段为从HOST到Device的SETUP事务传输,这个阶段指定了此次控制传输的请求类型;第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT传输表明请求是否成功完成。
控制传输对于最大包长度有固定的要求。对于高速设备该值为64Byte;对于低速设备该值为8;全速设备可以是8或16或32或64。
控制传输在访问总线时也受到一些限制,如:
1.高速端点的控制传输不能占用超过20%的微帧,全速和低速的则不能超过10%。
2.在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。
2)中断传输
中断传输是一种轮询的传输方式,是一种单向的传输,HOST通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。
中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。
对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8Bytes。高速中断传输不得占用超过80%的微帧时间,全速和低速不得超过90%。中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是1~255mS,低速端点为10~255mS,高速端点为(2interval-1)*125uS,其中interval取1到16之间的值。
除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达3072字节的数据。
3)批量传输
批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。
低速USB设备不支持批量传输,高速批量端点的最大包长度为512,全速批量端点的最大包长度可以为8、16、32、64。
批量传输在访问USB总线时,相对其他传输类型具有最低的优先级,USBHOST总是优先安排其他类型的传输,当总线带宽有富余时才安排批量传输。
高速的批量端点必须支持PING操作,向主机报告端点的状态,NYET表示否定应答,没有准备好接收下一个数据包,ACK表示肯定应答,已经准备好接收下一个数据包。
4)同步传输
同步传输是一种实时的、不可靠的传输,不支持错误重发机制。只有高速和全速端点支持同步传输,高速同步端点的最大包长度为1024,低速的为1023。
除高速高带宽同步端点外,一个微帧内仅允许一次同步事务传输,高速高带宽端点最多可以在一个微帧内进行三次同步事务传输,传输高达3072字节的数据。
全速同步传输不得占用超过80%的帧时间,高速同步传输不得占用超过90%的微帧时间。
全部0条评论
快来发表一下你的评论吧 !