最近,项目经常反馈,说我们设计的机器RS485总线出现115200波特率通信异常的问题,但是,把波特率调小到9600通信就变正常了。
异常分不同的情况出现。有时候是同一种类型的设备,RS485通信偶尔就会出现通信异常。有时候是RS485总线上只挂一个设备,通信是正常的,但是同时挂了几个相同的设备在同一路RS485总线上后,通信就异常了。刚开始,以为是硬件电路设计错误,但是软件把波特率改成9600后,通信都变正常了。
我们测试了115200波特率的通信波形,发现波形出现了严重的失真,如下图所示。
可是,我们以前设计的机器没有这个问题。对比了以前的机器和现在的机器有什么不同。发现以前的机器和现在的机器RS485在硬件电路设计上有一点不同,就是RS485的收发模式切换方式不一样。
以前的机器RS485收发模式切换采用的是MCU IO口控制方式来实现切换,参考电路如下。
现在的机器RS485收发模式切换采用的是硬件自动切换方式,参考电路如下图所示。
我们测试了以前的机器,接相同的设备,同样是115200波特率,结果出来的波形是很正常的,没有失真,如下图所示。
声明: