值得注意的是,在同步电路中,如果要得到稳定的逻辑状态,对于采样时钟和信号间的时序关系是有要求的。比如,如果时钟的有效边沿正好对应到数据的跳变区域附近,可能会采样到不可靠的逻辑状态。数字电路要得到稳定的逻辑状态,通常都要求在采样时钟有效边沿到来时被采信号已经提前建立一个新的逻辑状态,这个提前的时间通常称为建立时间(SetupTime);同样,在采样时钟的有效边沿到来后,被采信号还需要保持这个逻辑状态一定时间以保证采样数据的稳定,这个时间通常称为保持时间(HoldTime)。如图1.6所示是一个典型的D触发器对建立和保持时间的要求。Data信号在CLK信号的有效边沿到来t、前必须建立稳定的逻辑状态,在CLK有效边沿到来后还要保持当前逻辑状态至少tn这么久,否则有可能造成数据采样的错误。数字信号的眼图分析(Eye Diagram Analysis);湖南数字信号测试眼图测试
很多经典的处理器采用了并行的总线架构。比如大家熟知的51单片机就采用了8根并行数据线和16根地址线;CPU的鼻祖——Intel公司的8086微处理器——**初推出时具有16根并行数据线和16根地址线;
现在很多嵌入式系统中多使用的ARM处理器则大部分使用32根数据线以及若干根地址线。并行总线的比较大好处是总线的逻辑时序比较简单,电路实现起来比较容易;但是缺点也是非常明显的,比如并行总线的信号线数量非常多,会占用大量的引脚和布线空间,因此芯片和PCB的尺寸很难实现小型化,特别是如果要用电缆进行远距离传输时,由于信号线的数量非常多,使得电缆变得非常昂贵和笨重。 湖南数字信号测试眼图测试数字信号抖动的成因(Root Cause of Jitter);
为了提高串行数据传输的可靠性,现在很多更高速率的数字接口采用对数据进行编码后再做并/串转换的方式。编码的方式有很多,如8b/9b编码、8b/10b编码、64b/66b编码、128b/130b编码等,下面以当下流行的ANSI8b/10b编码为例进行介绍。
在ANSI8b/10b编码方式中,8bit的数据先通过相应的编码规则转换成10bit的数据,再进行并/串转换;接收端收到信号后先把串行数据进行串/并转换得到10bit的数据,再通过10bit到8bit的解码得到原始传输的8bit数据。因此,如果发送端并行侧的数据速率是8bit×100Mbps,通过8b/10b编码和并/串转换后的串行侧的数据速率就是1bit×1Gbps。8b/10b编码方法早由IBM发明,后来成为ANSI标准的一部分(ANSIX3.230-1994,clause11),并在通信和计算机总线上广泛应用。表1.1是ANSI8b/10b编码表的一部分,以数据0x00为例,
基本上可以看到数字信号的频域分量大部分集中在1/7U,这个频率以下,我们可以将这个频率称之为信号的带宽,工程上可以近似为0.35/0,当对设计要求严格的时候,也可近似为0.5/rro
也就是说,叠加信号带宽(0.35/。)以下的频率分量基本上可以复现边沿时间是tr的数字时;域波形信号。这个频率通常也叫作转折频率或截止频率(Fknee或cutofffrequency)
*信号的能量大部分集中在信号带宽以下,意味着我们在考虑这个信号的传输效应时,主要关注比较高频率可以到信号的带宽。
所以,假如在数字信号的传输过程中可以保证在信号的带宽(0.35亿)以下的频率分量(模拟信号)经过互连路径的质量,则我们可以保证接收到比较完整的数字信号。
然而,我们会在下面看到在考虑信号完整性问题时由于传输路径阻抗不连续对信号的反射,损耗随频率的增加而增加的特性等因素,这些频率分量在传输时会有畸变,从而造成接收到的各个频率的分量叠加在时并不能完全保证复现原有的时域的数字信号。 数字信号处理系统的性能取决于3个因素:采样频率、架构、字长。
数字信号的时域和频域
数字信号的频率分量可以通过从时域到频域的转换中得到。首先我们要知道时域是真实世界,频域是更好的用于做信号分析的一种数学手段,时域的数字信号可以通过傅里叶变换转变为一个个频率点的正弦波的。这些正弦波就是对应的数字信号的频率分量。假如定义理想方波的边沿时间为0,占空比50%的周期信号,其在傅里叶变换后各频率分量振幅。
可见对于理想方波,其振幅频谱对应的正弦波频率是基频的奇数倍频(在50%的占空比下)。奇次谐波的幅度是按1"下降的(/是频率),也就是-20dB/dec(-20分贝每十倍频)。 数字信号可通过分时将大量信号合成为一个信号(称复用信号),通过某个处理器处理后,再将信号解复用;湖南数字信号测试眼图测试
模拟信号和数字信号的差异;湖南数字信号测试眼图测试
数字信号测试串行总线的8b/10b编码(8b/10bEncoding)
前面我们介绍过,使用串行比并行总线可以节省更多的布线空间,芯片、电缆等的尺寸可以做得更小,同时传输速率更高。但是我们知道,在很多数字系统如CPU、DSP、FPGA等内部,进行数据处理的小单位都是Byte,即8bit,把一个或多个Byte的数据通过串行总线可靠地传输出去是需要对数据做些特殊处理的。将并行数据转换成串行信号传输的简单的方法如图1.19所示。比如发送端的数据宽度是8bit,时钟速率是100MHz,我们可以通过Mux(复用器)芯片把8bit的数据时分复用到1bit的数据线上,相应的数据速率提高到800Mbps(在有些LVDS的视频信号传输中比较常用的是把并行的7bit数据时分复用到1bit数据线上)。信号到达接收端以后,再通过Demux(解复用器)芯片把串行的信号分成8路低速的数据。 湖南数字信号测试眼图测试