阅读:2785回复:27
总线驱动电路设计求助 50分两个设备间进行并行数据传输,速度为2.5M,信号包括1个时钟,1个字同步,3位地址,8位数据。 发送设备为74ALS244(总线驱动器),接收设备也是74ALS244,中间使用约80CM长双绞线电缆连接。 接收设备所使用的74ALS244同时用作总线驱动器,直接驱动8片CPLD(EMP7128S)。 接收设备电路板上,总线布线长度约16CM,线间距50mil。 信号流为: CPLD-->74ALS244-->80CM双绞线-->74ALS244-->总线(8*CPLD负载) 现出现如下情况,请高手指点: 一、接收设备的74ALS244输入端(双绞线接入点)没加阻抗匹配,总线终端无阻抗匹配,总线上最远端焊有一个插座,插入一片CPLD设备,该设备数据接收完全正常。 二、接收设备的74ALS244输入端(双绞线接入点)没加阻抗匹配,总线终端无阻抗匹配,总线上8个插座全焊上,但只在总线最远端插入一片CPLD设备,数据接收出现部分误码。 三、接收设备的74ALS244输入端(双绞线接入点)没加阻抗匹配,总线终端无阻抗匹配,总线上8个插座全焊上,插入4片CPLD设备,所有数据接收出现严重误码 四、接收设备的74ALS244输入端(双绞线接入点)加上由150欧电阻和500p电容组成的阻抗匹配,总线终端无阻抗匹配,总线上8个插座全焊上,在任意位置插入1片CPLD设备,数据接收出现严重误码。 交任务的时间就快到了,求各位大哥帮帮忙吧!不然饭碗就保不住了!!!! |
|
|
沙发#
发布于:2003-03-22 17:25
CPLD基本上是容性负载,对驱动电流要求很低。
但是一个Driver对8个负载,反射问题会很严重,尤其是 时钟信号, 我提供两种方案,仅供参考: 1。 时钟用时钟驱动芯片分出8路。 其他线加上驱动芯片。 2。 所有Driver型的信号有一个接点分出,且通过一个33欧的电阻 串联再出去,这样能有效抑制反射。 |
|
板凳#
发布于:2003-03-12 00:42
如果使用CPLD来接收数据并直接驱动总线,利用IO慢输出特性,就真的可以避免干扰了吗?
不信就试试,又不破坏板子 |
|
地板#
发布于:2003-03-11 18:24
版主大人:
数据建立和保持时间应该没有问题,每个时钟的上升沿用于锁存数据,而数据是在时钟的下降沿建立。实际上,时钟的下降沿的时候,从FIFO里读出数据,而FIFO的数据建立时间仅仅10NS,距离下一个时钟上升沿还有几百NS。 关于我考虑使用的逐级驱动的方式,看起来的确是笨了点儿,但只要管用,不妨可以暂作权益之计,先交了差再说。下面有空了,我还是要搞清楚问题的根源的。格物致至,这才是科学精神嘛! |
|
|
地下室#
发布于:2003-03-11 15:46
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2003-03-11 15:41
为什么不用LVDS???????????
|
|
|
6楼#
发布于:2003-03-11 14:09
建议lvhaow尝试一下这种思路:如果输出数据是在时钟上升沿的时候跳变,建议所有的接收设备在时钟的下降沿锁存数据,这样有助于保证充分的数据建立时间.
|
|
|
7楼#
发布于:2003-03-11 13:24
唉,我又搞错了!HC244的边沿时间最大值为6NS,对于具有8个分散负载而且长达16CM的总线而言,仍然解决不了反射问题。看来只能重新设计总线电路板了。
大家给点建议好吗?长线接入端肯定是需要一个器件来接收数据,再驱动总线,ALS,LS,HC系列的通用器件都试过了,直接驱动都无法避免反射干扰,只有加终端匹配,但加什么样的匹配,取值多少,要么计算,要么一点一点实验 ------ 太可怕了。 如果使用CPLD来接收数据并直接驱动总线,利用IO慢输出特性,就真的可以避免干扰了吗? 现在时间有限,不允许我再出错了,所以我考虑使用一种笨笨的办法,进行逐级驱动。使用244或245,长线接入端的244只驱动一个CPLD设备卡,同时驱动下一级的244,直到8个设备卡。目前我不要求这8个设备的数据接收一定要同步,而且只是单向的数据传递。 如果用这种办法,相信反射问题将不会再存在,但我担心会带来另一个问题,那就是8级LS244,每一级都会产生一定的时延,因而在初始信号的边沿,器件本身产生的干扰也会随时延而持续存在并有可能迭加,这会不会带来其它意想不到的结果呢? |
|
|
8楼#
发布于:2003-03-11 10:57
不知道lvhow的问题解决了没有?看了以上各位的发言,我受益匪浅,我也正在设计一个高速的板子,内部总线是25m的,我以前只搞过低速的东东,这次老板非让我来担任主设计,一方面我感到荣幸,但另一方面很没有把握,现在项目刚刚开始,还没出现什么大问题,到时候我想请各位多多帮忙。我肯定会表示感谢的。 :P
|
|
9楼#
发布于:2003-03-09 09:23
本人帮你提的几点就是解决振铃,线间串扰和地线干扰.
CPLD的钳位二极管能有效地吸收振铃,CPLD的慢输出是专门为解决振铃问题而设. |
|
10楼#
发布于:2003-03-09 00:06
我不是要你在每根线上套辞环,而是像打印机并口线那样,所有线一起在一个大磁环上绕几圈。
|
|
11楼#
发布于:2003-03-08 18:22
llhai兄:
每个插座有十几条线,全套磁环不太现实。原设计中,只在电源线上加了磁环。 接收电路是独立的电路板,做成插卡的,已经定型,改不了了! |
|
|
12楼#
发布于:2003-03-08 18:18
版主大人都来了,在下十分感动。
我一直认为2M的速度不应该出什么问题,可是问题偏偏还是出了。 现在有一个新发现,长线接入端的后来安装了匹配电阻100欧和电容500P,结果没起到什么作用,于是就将电阻又拆了,但那十几个电容还在板子上,电容一端接地,另一端悬空,结果,原本只插入一个CPLD接收板时还算正常的,现在也出现了大量数据错误,但将那些电容再拆除,情况又恢复好转。 分析可能是那些电容产生了额外的寄生振荡,通过地线干扰了正常的数据传输。但是,干扰这么明显,却也是超出意料的。 关于总线出错,想来想去只有反射这个原因了。以前认为2M速度不应考虑反射的影响,也许这种认识是错误的了。反射只和驱动电路的信号边沿速度以及线路延时有关,而我用的74ALS244的边沿时间最小只有2NS,而总线长度有18CM,并且是分散负载,延时可能远大于2NS。所以,我想换个驱动电路再试试,改用74HC244,以获得更大的边沿转换时间。也许这样可以消除反射的影响。 |
|
|
13楼#
发布于:2003-03-08 13:37
通常时钟线的布局是星形拓扑,较长的时钟必须在源端串联电阻,同时必须考虑线路分布电容和接收端的等效电容,通常用于时钟驱动的芯片都会提供最高的驱动电容参数,如果驱动的接收端电容总和超过限制,则必须增加时钟驱动芯片,高速电路设计一般严格保证时钟驱动和接收端的一一对应,甚至要保证时钟线的长度一致,但似乎在2M的时钟下不应当有这么严重的问题.
|
|
|
14楼#
发布于:2003-03-08 11:10
波形稳定的话,建议你这样试试:
1。在每个插座的总线上,套一个磁环,以消除可能的高频干扰。 2。在接收电路的时钟线上,串联一个史密特触发器对时钟进行处理。可以在74系列里面选择。 goog luck |
|
15楼#
发布于:2003-03-07 15:56
不到万不得已的时间,我还不想破坏电路。
中午试着在时钟输出端加了一个75欧电阻,可是情况并没有什么改变!如果问题不在时钟上,我实在想不到还会在什么地方出问题。 此外,用示波器查看时钟输出端和线路终端的信号,没发现有异常,波型又漂亮又稳定。不过,我那台示波器是老掉牙的货色,就算有问题也不一定能看得到! |
|
|
16楼#
发布于:2003-03-07 11:38
用户被禁言,该主题自动屏蔽! |
|
17楼#
发布于:2003-03-07 11:22
zoujie兄:
布线前我还真没想太多,总以为2M多一点的速度,不会有大问题! 此外,受设备空间的限制,主板不可能做的更大,无论是星型还是菊花链式的拓扑,都很难布通线,所以...... 我考虑的加串联阻抗匹配的方式可行吗?我觉得您比我有经验多了! |
|
|
18楼#
发布于:2003-03-07 10:56
用户被禁言,该主题自动屏蔽! |
|
19楼#
发布于:2003-03-07 10:41
zoujie兄:
不好意思,我没看明白您拓扑示意图,板上总线就和ISA差不多,一根传输线上存在8个分支,接8个设备。 llhai兄: 我很同意您的看法,正在往这方面考虑解决办法,谢谢。电源不该有问题,我使用的是通过主板集中给子板供电,5V/3.3V双电压,子板插座的电源位置附近加有完整的滤波,去耦电路。 |
|
|
上一页
下一页