值得注意的是,在同步电路中,如果要得到稳定的逻辑状态,对于采样时钟和信号间的时序关系是有要求的。比如,如果时钟的有效边沿正好对应到数据的跳变区域附近,可能会采样到不可靠的逻辑状态。数字电路要得到稳定的逻辑状态,通常都要求在采样时钟有效边沿到来时被采信号已经提前建立一个新的逻辑状态,这个提前的时间通常称为建立时间(SetupTime);同样,在采样时钟的有效边沿到来后,被采信号还需要保持这个逻辑状态一定时间以保证采样数据的稳定,这个时间通常称为保持时间(HoldTime)。如图1.6所示是一个典型的D触发器对建立和保持时间的要求。Data信号在CLK信号的有效边沿到来t、前必须建立稳定的逻辑状态,在CLK有效边沿到来后还要保持当前逻辑状态至少tn这么久,否则有可能造成数据采样的错误。数字总线采用的时钟 分配方式大体上可以分为3类,即并行时钟、嵌入式时钟、前向时钟,各有各的应用领域。贵州数字信号测试代理商
数字信号的时钟分配(ClockDistribution)
前面讲过,对于数字电路来说,目前绝大部分的场合都是采用同步逻辑电路,而同步逻辑电路中必不可少的就是时钟。数字信号的可靠传输依赖于准确的时钟采样,一般情况下发送端和接收端都需要使用相同频率的工作时钟才可以保证数据不会丢失(有些特殊的应用中收发端可以采用大致相同频率工作时钟,但需要在数据格式或协议层面做些特殊处理)。为了把发送端的时钟信息传递到接收端以进行正确的信号采样,数字总线采用的时钟分配方式大体上可以分为3类,即并行时钟、嵌入式时钟、前向时钟,各有各的应用领域。 贵州数字信号测试代理商数字信号的时钟分配(Clock Distribution);
通常情况下预加重技术使用在信号的发送端,通过预先对信号的高频分量进行增强来 补偿传输通道的损耗。预加重技术由于实现起来相对简单,所以在很多数据速率超过 1Gbps 的总线中使用,比如PCle,SATA 、USB3 .0 、Displayport等总线中都有使用。当 信号速率进一步提高以后,传输通道的高频损耗更加严重,靠发送端的预加重已经不太 够用,所以很多高速总线除了对预加重的阶数进一步提高以外,还会在接收端采用复杂的均 衡技术,比如PCle3.0 、SATA Gen3 、USB3.0 、Displayport HBR2 、10GBase-KR等总线中都 在接收端采用了均衡技术。采用了这些技术后,FR-4等传统廉价的电路板材料也可以应用 于高速的数字信号传输中,从而节约了系统实现的成本。
要把并行的信号通过串行总线传输,一般需要对数据进行并/串转换。为了进一步减少传输线的数量和提高传输距离,很多高速数据总线采用嵌入式时钟和8b/10b的数据编码方式。8b/10b编码由于直流平衡、支持AC耦合、可嵌入时钟信息、抗共模干扰能力强、编解码结构相对简单等优点,在很多高速的数字总线如FiberChannel、PCIe、SATA、USB3.0、DisplayPort、XAUI、RapidIO等接口上得到广泛应用。图1.20是一路串行的2.5Gbps的8b/10b编码后的数据流以及相应的解码结果,从中可以明显看到解出的K28.5等控制码以及相应的数据信息。数字信号的抖动(Jitter);
采用这种时钟恢复方式后,由于CDR能跟踪数据中的 一 部分低频抖动,所以数据传输 中增加的低频抖动对于接收端采样影响不大,因此更适于长距离传输。(不过由于受到环路 滤波器带宽的限制,数据线上的高频抖动仍然会对接收端采样产生比较大的影响。)
采用嵌入式时钟的缺点在于电路的复杂度增加,而且由于数据编码需要一些额外开销,降低了总线效率。
随着技术的发展,一些对总线效率要求更高的应用中开始采用另一种时钟分配方式,即前向时钟(ForwardClocking)。前向时钟的实现得益于DLL(DelayLockedLoop)电路的成熟。DLL电路比较大的好处是可以很方便地用成熟的CMOS工艺大量集成,而且不会增加抖动。
一个前向时钟的典型应用,总线仍然有单独的时钟传输通路,而与传统并行总线所不同的是接收端每条信号路径上都有一个DLL电路。电路开始工作时可以有一个训练的过程,接收端的DLL在训练过程中可以根据每条链路的时延情况调整时延,从而保证每条数据线都有充足的建立/保持时间。 模拟信号和数字信号的差异;贵州数字信号测试代理商
数字 信号处理系统的基本组成;贵州数字信号测试代理商
采用AC耦合方式的另一个好处是收发端在做互连时不用太考虑直流偏置点的互相影响, 互连变得非常简单,对于热插拔的支持能力也更好。
(3)有利于信号校验。很多高速信号在进行传输时为了保证传输的可靠性,要对接收 到的信号进行检查以确认收到的信号是否正确。在8b/10bit编码表中,原始的8bit数据总 共有256个组合,即使考虑到每个Byte有正负两个10bit编码,也只需要用到512个10bit 的组合。而10bit的数据总共可以有1024个组合,因此有大约一半的10bit组合是无效的 数据,接收端一旦收到这样的无效组合就可以判决数据无效。另外,前面介绍过数据在传输 过程中要保证直流平衡, 一旦接收端收到的数据中发现违反直流平衡的规则,也可以判决数 据无效。因此采用8b/10b编码以后数据本身就可以提供一定的信号校验功能。需要注意的是,这种校验不是足够可靠,因为理论上还是可能会有几个bit在传输中发生了错误,但 是结果仍然符合8b/10b编码规则和直流平衡原则。因此,很多使用8b/10b编码的总线还 会在上层协议上再做相应的CRC校验(循环冗余校验)。 贵州数字信号测试代理商
可以插入控制字符。在10bit数据可以表示的1024个组合中,除了512个组合用 于对应原始的8bit数据以及一些不太好的组合(这样信号里有太长的 连续0或者1,而且明显0、1的数量不平衡)以外,还有一些很特殊的组合。这些特殊的组 合可以用来在数据传输过程中作为控制字符插入。这些控制字符不对应特定的 8bit数据,但是在有些总线应用里可以一些特殊的含义。比如K28.5码型,其特殊的 码型组合可以帮助接收端更容易判别接收到的连续的10bit数据流的符号边界,所以在一 些总线的初始化阶段或数据包的包头都会进行发送。还有一些特殊的符号用于进行链路训 练、标记不同的数据包类型、进行收发端的时钟速率匹配...