新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > USB通信数据紧密连接位

USB通信数据紧密连接位

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



评论


相关推荐

技术专区

关闭