当前位置:首页 > 物联网 > 网络协议
[导读]   1.引言   USB3.0是一个高速,串行,源同步数据传输协议。但是数据经过传输线与原数据发生了很大的偏差。本文从USB3.0的角度分析了弹性缓冲机制,解释了与其他设计的不同,并采用

  1.引言

  USB3.0是一个高速,串行,源同步数据传输协议。但是数据经过传输线与原数据发生了很大的偏差。本文从USB3.0的角度分析了弹性缓冲机制,解释了与其他设计的不同,并采用指针控制与握手的设计方法实现。

  2.弹性缓冲作用

  2.1 USB3.0弹性缓冲作用域

  在USB3.0中数据传输采用双单工,因此物理层设计为接收、发送2组差分对传输部分。传输线是承载数据传输的载体。因此如何从传输线正确接收数据,并把它同步到系统内部时钟域,变的十分关键。

  USB3.0中规定的物理层接收部分结构图如下,它包括差分接收、时钟数据恢复、串并转换和8B10B译码。

  

 

  图 1USB3.0物理层接收部分结构

  整个数据流向自上而下,差分输入经过差分接收,从差分信号中提取出时钟,并用恢复出来的时钟来恢复出数据(CDR)。恢复出来的数据在接收时钟域进行串并转换为10bit位宽并行数据1,并检测USB3.0包起始标志符(K28.5)。一旦检测到起始标志符K28.5,使能符号有效(symbol lock),直至检测到结束符号,才结束符号有效。

  弹性缓冲从串并转换接收数据,所有的接收数据与控制都工作在接收时钟域(receive clock)。因此弹性缓冲要把数据与控制同步到系统时钟域(system clock)。把数据向下传递给8B10B译码模块,而后传递给系统内部。

  2.2 弹性缓冲容量

  USB3.0中,协议规定允许的时钟精度为-5300ppm到300ppm。而符号时钟频率为2ns即2000ps,最坏情况下每178个symbol添加或者删除一个SKP,也就是每356个symbol添加或者删除一个SKP对(SKP Order Sets)。USB3.0中包最长为1052字节,所以最差情况下,最多可以添加或删除8个SKP或者4个SKP对,所以弹性缓冲至少要能缓冲8个SKP。USB3.0协议规定每个SKP order sets为2个连续的SKP symbol。因此在10B8B译码前,SKP order set的游程(running disparity)应该是互补的。

  通过计算得知,弹性缓冲的缓冲容量为8。本文设计采用常半满2(normal half full)模式来设计弹性缓冲,所以弹性缓冲容量为16,在正常情况下里面应该有8个数据,剩下的8个为缓冲空间,因此叫常半满。常半满模式首先要向缓冲中写满8个symbol,达到半满,然后读使能才可以有效,因此大约有8个时钟的延迟。常半满模式只有在symbol队列中出现SKP对才能添加或者删除SKP对。下图为常半满输入输出时序图。

  

 

  图 2 常半满输入输出时序

  从上图可以看出,rx_valid_out有效要晚于rx_valid_in约8个时钟沿;而无效却晚于rx_valid_out约0至16个时钟沿(取决于时钟精度差)。因此常半满需要8个时钟延迟才能输出数据。

  2.3 弹性缓冲机制

  弹性缓冲本质上是读写同时受控的异步FIFO,常半满(normal half full)FIFO,其深度为16,首先要写满8个有效数据,并一直维持在半满的状态。因此在正常情况下,FIFO一直处于或接近半满状态,当读写时钟一样快慢的时候,FIFO中有8个有效数据。

  

 

  图 3 常半满读写同等速率

  当读时钟快于写时钟,读出的数据多于写入的数据,常半满模式可能导致FIFO中的数据数量少于8,甚至有可能被读空。如下图所示,在出现SKP窗口的时候,FIFO中的有效数据为4,比常态少4。所以此时,弹性缓冲应该添加4个SKP,使得FIFO维持半满,以此来调节时钟。此时读指针向前跳跃4个间隔,并且当读指针读到跳跃区间时,完成SKP添加。

  

 

  图 4 常半满模式读快于写

  当读时钟慢于写时钟,写入的数据多于读出的数据,常半满模式可能导致FIFO中的数据数量多于8,甚至有可能被写满。如下图所示,在出现SKP窗口的时候, FIFO中有效数据为10,比常态多2. 所以此时,弹性缓冲应该删除2个SKP,使得FIFO维持半满,以此来调节时钟。此时写指针应该暂停2个时钟周期,完成SKP删除。

  

 

  图 5 常半满写快于读

  

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

EIA-485(过去叫做RS-485或者RS485)是隶属于OSI模型物理层的电气特性规定为2线、半双工、平衡传输线多点通信的标准。是由电信行业协会(TIA)及电子工业联盟(EIA)联合发布的标准。

关键字: rs-485信号 OSI模型 物理层

使用适合的开放式RAN加速方法将直接提升网络设施的盈利机会

关键字: RAN芯片 内联加速 物理层

为增进大家对以太网的认识,本文将对以太网以及以太网高级物理层予以介绍。

关键字: 以太网 指数 物理层

根据硬件在声、光、热、电、磁、力、时间等这些物理层面的因素,而进行数据泄漏、计算机破坏就属于边信道攻击的范畴。刚接触的同学可能觉得装13或者吹牛的成分比较大,但今天要给大家看一个真实的例子,可能会震撼到大家。

关键字: 物理层 计算机 数据泄漏

随着网络技术的进步和各种网络产品的不断涌现,亟需解决不同系统互联的问题。1977年国际标准化组织ISO专门设立了一个委员会,提出了异种机系统互联的标准框架,即开放系统互联参考模型(OSI/RM)该模型把网络通信的工作分为...

关键字: OSI RM 物理层

网络传输是指用一系列的线路(光纤,双绞线等)经过电路的调整变化依据网络传输协议来进行通信的过程。其中网络传输需要介质,也就是网络中发送方与接收方之间的物理通路,它对网络的数据通信具有一定的影响。常用的传输介质有:双绞线、...

关键字: 网络传输 传输介质 物理层

集线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

关键字: 集线器 MAC 物理层

高级数据链路控制(HDLC,High-level Data Link Control)是一组用于在网络结点间传送数据的协议。在HDLC中,数据被组成一个个的单元(称为帧)通过网络发送,并由接收方确认收到。HDLC协议也管...

关键字: HDLC 网络地址 物理层

物理层(或称物理层,Physical Layer)是计算机网络OSI模型中最低的一层。

关键字: 物理层 网卡 光纤

你是一台电脑,你的名字叫 A 只要你知道另一位伙伴 B 的 IP 地址,且你们之间的网络是通的,无论多远,你都可以将一个数据包发送给你的伙伴 B 这就是物理层、数据链路层、网络层这三层所做的事情。

关键字: TCP 物理层 数据链路层
关闭
关闭