485通信的奇怪问题,请各位同仁帮助分析一下
如图所示,为485电路,应用此电路的产品与计算机间通过485转232模块连接时,用4800bps通信是正常的,但是两个用此电路的产品间互联通信,发送同样的内容,同样的速率,通信却4到5次才成功的1次,485通信线均采用普通0.2线,人工双绞,长度不到1米,此问题是怎么回事呢?后我将AB线上的上下拉电阻阻值改小到560欧,通信速率降低到1200bps等手段,均没有用,甚至将现成的232转485模块中的485芯片SP485替代现在用的sn65hvd3082,也是不行。到底是什么问题导致的呢?
下位机程序的问题,接收部分有问题吧 通信速率降低到1200bps已经无需考虑干扰的问题了,用示波器看一下RX和TX应该就能找到问题了。 先不要用串口模式来测试,把TX脚用软件方式输出一个方波,用示波器看看接收端AB之间的波形,如果波形正常,再看看接收端RX脚的波形,一步一步查找问题 PC817光耦速度慢,延时长,如果为了成本非要用它,建议限流电阻560耦减小到330耦。
20耦电阻大了,但只有2个对连也不会出问题,但线长了、数量多了就会出问题。 先去电485部分,看看是否能正常工作,排除软件问题,一般都是单片机程序错误造成的比较多。如果程序没问题了,换成高速光耦试试。 R20 R21有必要吗?串20也太大了吧?
比较同意sjnh的说法,把你那些TVS都去了,一步一步查。 PC817最高只能应付9600bps的波特率,再高就要换高速光耦了,另外注意总线上要有终端电阻,短距下至少用一个,收发切换后要延时适当时间再发起通讯。 应该是线路设计的问题,将波特率设置低一些试一下 试试把R17换小点哈!
用示波器看看光耦前后的波形差异你就明白了!!
我遇到过这样的问题!
网上的电阻一般都是5K,10K
但是我的电路中R2和R17只有几百欧姆!
不然波形就相差有点大! 感谢各位回复,前段时间确实调了好多天,确实是光耦两端上下拉电阻设置不合适,通过调整电阻阻值,问题解决,另485通信线上串20欧太大吗?现在4800bps用1.5mm2线做模拟,到6km没问题。感谢chunyang的回复,确实为了稳定性,切换后需要加一定的延时,这个看情况而定。 将两组RS485接到一起。一个发一个收。232也一样。慢慢确定问题 SMBJ系列TVS二极管,市场上比较水货的东西会引入误码的。
硬件只有2个问题经常会发生,一个是TVS的结电容过大,导致误码。一个是反射导致误码。 另外要非常注意一点,偶发现现在几乎所有用485的人和书上都没有提这个问题。
485虽然是差分两线传输,但是耐共模电压只有7V,这个可以看器件的手册查到,
所以实际应用的时候,还是要各个通讯设备间引入第三条线,也就是公共地线,否则会因为共模电压差太大造成通讯失败,甚至损坏器件。
页:
[1]