原创 光耦隔离CAN总线设计——延迟带来的故障

2011-8-18 00:04 8534 5 6 分类: 工业电子

最近做了一个项目,是一个CAN总线和1553B总线的网关,其中CAN总线设计中出了一点小故障,拿出来分享一下。

CAN总线采用光耦隔离,电路采用传统的光耦隔离电路,基本上如下图:

20110816220339310.jpg

只是我是用的是2812自带的ECAN模块,为了保护芯片管脚,TX端并没有直接驱动光耦,而是经过了一个PNP三极管,TX通过电阻连接到PNP三极管的基极,三极管的集电极连接6N137发光二极管的阴极。板子做好以后用ZLG的USB-CAN进行调试,工作一切正常,在1Mbps的速率下可以正常通信。

但是和其它产品通讯时,却发现无论如何也通讯不上,于是用示波器观察CAN总线上的波形,发现CAN总线上密密麻麻的全都是数据,经过解析后发现基本上全是重发数据,再进一步观察波形,发现在CAN帧的应答场位置,没有出现正常的应答位,或者应答位滞后,出现在了帧结束的位置。由此初步判断是传输延迟造成的。

将通讯速率降为500kbps,通讯正常,从而基本可以认为是传输延迟过长,导致高速时无法在规定时间产生应答位,造成发送方一直重试,无法通讯。

最初怀疑是选用光耦隔离的结果,但仔细检查电路图后发现,TX到PNP晶体管基极的电阻取值过大,导致PNP晶体管开关速度较慢,在高速通讯时出现了故障,随即将基极电阻减小,故障消失。

在此次调试中,总结出了如下两点:

1.光耦的传输延迟虽然较大,但仍可以适应CAN总线1Mbps的通讯,由于光耦的传输延迟随温度变化也会改变,我又将产品放入高低温箱中进行了试验,结果表明产品在-40度到70度范围均可正常传输。

2.6N137的输出是集电极开路,需要加上拉电阻,在一般的设计中,上拉电阻一般取1k~10k,取值越大功耗越低,但在这个设计中,上拉电阻取值为390欧,是为了让上升沿变得更陡,减小传输延迟,事实证明,这么做是正确的,因为当上拉电阻变成1k以后,在1Mbps速率下便无法正常通讯。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户993350 2012-12-12 15:20

拜读,谢谢分享!
相关推荐阅读
用户1567471 2011-09-22 09:41
Apache:Could not reliably determine the server's..
最近在自己的电脑上试着搭建PHP环境,遇到了一个奇怪的问题,修改Apache的httpd.conf文件,将PHP模块加入进去以后,发现仍然无法运行PHP网页,貌似httpd.conf没起到作用,于是在...
用户1567471 2011-08-25 22:49
功率管开关速度与电磁干扰
我经常做一些电机驱动的项目,功率从几十瓦到十千瓦,功率管的驱动电路基本上千篇一律,也没做过过多的考虑。一般功率管的驱动使用最经典的驱动方式,包括门极电阻,门极稳压管,吸收电容。 后来遇到一个项目,做一...
用户1567471 2011-08-18 20:47
dsPIC33F单片机间通讯问题及解决办法
刚刚做完一个PIC单片机的项目,使用的是dsPIC33FGP706,其中涉及两个单片机之间的数据传输。为了减少连线,采用串行口,最初设计的是使用SPI进行通讯,一个作为Master,另一个作为Slav...
用户1567471 2011-08-18 00:02
电流检测中AD采样值处理的高效方法
在电机控制软件的编写过程中,经常要处理由AD采样回来的电流值。由于电流有正有负,电流传感器输出地电压也是以0为中点,而一般AD的输入只能为正电压,所以电流传感器出来的电压量需要通过加减运算电路加上一个...
我要评论
1
5
关闭 站长推荐上一条 /3 下一条