微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB通信数据紧密连接位

USB通信数据紧密连接位

时间:10-12 来源:互联网 点击:
若要一个传输需要多个数据交易,该数据紧密连接(data toggle)位就能通过保持传输与接收设各同步化,来确保没有数据交易被遗漏掉。在稍前的数据封包有提及过,这个数据紧密连接位放在IN与OUT数据交易的令牌封包的PID字段中。其中,DA-TAO的低4位PID码是0011,以及DATA1的低4位PID码是1011,所以位3即是这个数据紧密连接的状态。一般在USB控制芯片中,其相关的状态寄存器里几乎都会有类似的位设置,以方便固件程序代码的编写。例如,在Cypress CY7C63系列的USB控制芯片中,USB端点0 TX配置缓存器的位6即是DATA 1/0位。

  由于传送器与接收器两者都要追踪数据紧密连接位。因此,为了怕弄混淆,一开始二者同时设置为DATA0。当接收器检测到刚进来的数据交易时,它就会比较所接收到数据紧密连接位与自己的数据紧密连接位的状态。若位符合,接收器就会连接切换其位,并且传回ACK封包给传送器。而这个ACK也会使得传送器去连接切换其位。

  此时,在传输中的下一个所接收到的封包将会包含DATA1的数据紧密连接位,而接收器再一次连接切换其位,并且回传ACK。若这个传输过程都无误,这个流程会一直持续着,DATA0→DATA1→DAYAO→……直到整个传输结束为止。

  而特殊例外的情形是,在全速等时传输时,主机总使用DATA0的数据紧密连接位。这是因为等时传输没有回传ACK或NAK来作握手的动作,也即是根本没有时间来重传数据。

  为了在一个微帧同时支持3组数据传输以进行高速同步传输,USB 2.0规范采用DATA2与MDATA两种规范全新的数据PID。高速中断传输能在DATA0与DA-TAI PID之间进行紧密连接(togglg),如图1所示。

  图1 高带宽的中断数据交易

  对于高速等时传输来说,数据紧密连接位应分为IN与OUT两种类型。在高速等时传输IN中,每一个微帧包含2或3个数据交易。因此,使用DATA0、DATA1、DA-TA2来表示数据交易在微帧的位置,如表1所列。如图2所示,显示了一个等时IN端点在每个微帧中同步进行3组数据传输的过程。而数据PID(DATAx)代表传输要求的数量以及微帧的数值(x)。

  表1 高速等时传输IN的数据紧密连接位

  图2 高带宽的等时IN数据交易

  对于高速等时OUT传输,最后数据PID(DATAx)代表在发生第x个微帧之前所进行的一个传输。先前的数据传输以MDATA PID方式进行数据传输。图3中显示了一个等时OUT端点能在每个微帧中同步完成3组数据传输的过程。如表2所列,在高速等时传输OUT中,每一个微帧包含2或3个数据交易。因此,使用DA-TAO、DATA1、MDATA来表示是否有更多的数据会跟随着在微帧中。

  图3 高带宽的等时OUT数据交易

  表2 高速等时传输OUT的数据紧密连接位

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top