本文主要是介绍信号线多长算长呢——之上升沿与时延的爱恨情仇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
忆往昔岁月,看着PCB上弯弯曲曲的走线,看着书中所说的端接,想象着日后自己也可以这么牛逼,能够设计出这么复杂的电路。“过来焊板子啦”一句话又将我拉回了现实,哎,过来吸一会我们硬件攻城狮的精神鸦片——松香吧。
吸完后果然腰也疼了头也晕了连拿碗的手都开始抖了,我觉得我快要成仙了,然后带着我的一身仙气来到了老师傅面前露出我那谄媚的笑容,“老大,咱这板子上面为啥走线是弯弯曲曲的,为啥要做个端接”,“因为这是高速信号,需要控制时序,为了防止反射需要端接”,他好像回答了我的问题,但是我还是不懂啊,为了不暴露我的智商我只好回了一句“哦”。
正常人听到这个回答应该是先了解为啥信号要弯弯曲曲的,但我不是一般人啊,我吸松香都要成仙了,我必须的从后往前研究,先搞明白啥是端接,为啥要端接,啥时候需要端接,啥时候又不需要端接。
好啦,开始正题,一个信号的模型是由近端驱动器、阻抗可控的互联线,以及远端接收器组成(肯定有人说,我接收端啥也不接,哎我没有接收端,哈哈,是不是模型不成立了,啊哈哈,回复:接收端不接就是接了一个阻抗无穷大的电阻,哎,它也是接收器(打死你个键盘杠精龟孙,哼!))。那我们就按接收端啥也不接的情况来分析一下(哼!),就是当接收端开路时,驱动端发出的信号就会在驱动器和接收器之间来回的反弹,当互连线很长时,经过多次的反弹就会引起信号完整性的问题,如振铃现象,但是如果互联线足够的短,虽然也会发生反射,但是她会被上升沿或者时下降沿给掩盖了,可能就不会引起问题,想象一下你对着墙泼水,离得稍微远一点水是不是会溅起来啊(杠精,退!)当你离得足够近虽然也会溅起来但是被你泼的水给挡回去了,就如同你要下地铁结果被人流又给推回去了。那么究竟多长的互联线会产生信号完整性的问题呢,下图是信号时延是上升沿的40%、30%以及20%时接收端的信号波形。
上图是当传输的线长时延分别为信号上升沿的40%、30%以及20%时,无终端端接情况下在传输线远端观测到的100MHz时钟信号波形,可以看出当传输时延超过信号上升沿的20%时,振铃噪声可能会引起问题。
OK,我们就以上升沿是1ns来计算振铃不会对信号完整性产生影响的最大长度吧,上升沿是1ns,最大时延是20%×1ns=0.2ns,在FR4中信号的传输速度约为6in/ns,所以没有终端端接传输线的最大长度约为6in/s×0.2ns=1.2in。
因此,可以得到一个十分有用的经验法则,为了避免信号完整性问题,没有终端端接的传输线最大长度约为:
其中,Lenmax表示没有终端端接传输线的最大长度(单位in),RT表示信号上升沿(单位为ns)。
但是一般情况下我们我的只知道时钟的频率,要想看驱动器输出波形的上升沿还需要去翻看手册,作为一个硬件工程师,能够快速的计算出无需端接的最大长度,并且口算出来,那是多么的高光时刻啊,也能装逼于无形之中(得意doge,哈哈),那么怎么算呢,比如说,100MHz的时钟频率其周期是10ns我们安常规方法计算上升沿是周期的10%也就是1ns,那么100MHz的时钟最大长度就是1in也就是1000mil,那么同理1GHz的时钟其最大长度就是100mil喽,记着这两个数,同学们下次遇到机会千万不要放过装逼的机会,哈哈,但是注意实际上端接与否与时钟频率是没有强关联的,它只与信号的上升沿有关系,也就是说1MHz的上升沿如果很陡峭的话也是需要端接滴,但是我们是做工程的不是做学术研究的,能够在正确的方向上得出相对正确的答案比精确的答案更有意义。
好啦,给大家一个思考的问题,比如说0.1ns的上升沿,最大长度是0.1in,信号在FR4中速度为6in/ns那就是0.1in信号单程是0.016666667ns,再返回到源端总的需要的时间是0.016666667ns×2约为0.03333333,就是一个来回才占了整个上升沿的三分之一,大家想想为啥是三分之一而不是二分之一或者其他,如果是二分之一就是反射回来的信号刚好在上升沿的一半,同样可以掩盖返回的数据啊,除了通过仿真看波形图,从其他角度能不能解释的通呢,哈哈,提示一点可以看一个标准的振铃图来想哦。
这篇关于信号线多长算长呢——之上升沿与时延的爱恨情仇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!