分享

USB传输类型

 zsok 2016-07-11
USB传输类型
USB中有四种类型的端点,也就对应四种不同的传输方式,分别是控制传输、中断传输、同步传输和块传输。

1
控制传输

控制传输的读写时序如下


控制传输总共三个阶段,setup阶段、数据阶段和状态阶段,其中数据阶段是可选的,而每个阶段都包含三个过程,即令牌过程、数据过程和握手过程。每个USB设备都必须具有控制传输功能,控制传输用于主机同设备的控制端点进行通信,通过读取设备的配置信息来完成对设备的枚举和配置。

setup阶段


setup阶段首先是setup令牌,然后是数据过程,最后是状态过程,对于数据过程只能使用DATA0包,设备在接收到setup数据包之后,需要返回ACK信号,如果接收数据错误,设备是不会返回握手包。setup数据呢就是主机往设备发送的请求数据包,设备根据这个请求数据包来做相应的动作,例如:返回设备描述符或者直接进入状态阶段返回一个0长度的数据包。SETUP传输呢有点类似于OUT传输,只不过OUT传输发送的是OUT令牌,SETUP传输发送的是SETUP令牌。


数据阶段
如果是OUT传输呢,那么首先发送的是OUT令牌,如果IN传输呢,则发送的是IN令牌,然后是数据过程,数据过程必须以DATA1包开始,然后在DATA0和DATA1之间交替,注意数据过程的方向必须是同一个方向,即要么都是IN传输,要么都是OUT传输。

状态阶段

状态阶段的传输方向同数据阶段的传输方向刚好相反,即数据阶段是IN传输呢,状态阶段就是OUT传输,数据阶段是OUT传输呢,状态阶段就是IN传输。如果没有数据阶段呢,那就是只能是IN传输。状态阶段的响应信息如图所示:



状态阶段的数据过程呢使用的DATA1包,如果是控制写,设备在正确收到数据包之后将返回一个0长度的数据包。注意这个0长度数据和没有数据概念是不一样的,0长度数据有数据的包头,只是后面没有数据罢了。对于控制读,主机在接收数据之后,将返回ACK握手信息。
 
2
中断传输

中断传输呢分为IN和OUT传输,如果是IN传输,设备返回数据或者NAK、STALL握手信息。如果端点没有新的中断信息返回,在数据过程中设备返回的是NAK握手信息,如果此时端点已经被设置为暂停了,设备返回的是STALL握手信息,如果设备返回的是中断信息数据包,主机必须返回一个ACK握手信息给设备,如果数据数据接收错误,将不会返回握手信息。IN、OUT传输过程如图所示



中断传输一般用于这种具有固定速率、数据量少的数据传输,例如USB鼠标、键盘就是采用的中断传输。
 
3
同步传输

同步传输也叫做等时传输,也分为IN和OUT传输,但是注意没有握手过程,所以说它并不保证数据传输是否正确性,但是要保证数据传输的实时性,所以这种传输方式一般用于音频和视频流的数据传输,例如你的USB摄像头就是采用的这种传输方式,传输过程如下



4
块传输

块传输也叫做批量传输,块传输并不追求数据传输的时间,但是必须保证数据传输的正确性,例如U盘就是采用的这种传输方式,传输过程如下



为了保证数据传输的正确性,USB采用的是错误检测机制和重试机制来确保数据传输正确,当然它也分三个过程,令牌过程、数据过程和握手过程,其中PING令牌和NYET令牌只用于高速设备。


特 别 推 荐



 
芯片的诞生全过程 复杂漫长的旅程 



 如何优雅地进行PCB布线? 



 一大批动图让你真正了解电机 



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多