奏奏奏 发表于 2020-1-7 11:53:48

2块485接口芯片检测发送与接收的冲突?

我的使用场景是:
用一个设备作为转接CAN总线与485总线的转换,
虽然CAN总线可以进行同时接收与发送数据(CAN的仲裁机制与重发机制),但是485总线并不能保证同时接收与发送数据。
发送485数据时就接收不到485数据了。
我的解决思路是:
485总线上的A、B两条信号线接上2块485接口芯片,接入到同一个STM32的2个不同串口上,
如果专用与处理485总线接收数据的串口接收到“并非此时485发送串口发出的数据”时,则判断是这时候485总线上有别的设备在发送数据立即停止当前的485发送操作,并从485串口接收数据中解析出别的设备的发送数据。
问一下有处理过485通讯的大佬帮我看一下我这个解决思路是否可行,谢谢!

如果485总线的底层通讯原理上讲这个方案就不可用,那我就想过另一个解决思路来处理。
补充一下,接入第三方的485设备只有A、B两条信号线,不是4条线能够全双工通讯的情况。


mylovemcu 发表于 2020-1-7 13:06:51

没必要搞这么复杂吧
首先CAN总线也不可以同时接收和发送数据就是因为CAN不能同时收发所以才有仲裁和重发来保证数据线上不存在收发同时进行的情况这是通过硬件禁止收发数据同时到达总线知道这一点的话就好办了

485也是一样的485发送的数据用CAN接收当前CAN处于接收忙绿状态不会发送数据的485发送完成后立即切换到接收状态等待指令CAN接收完成以后才会开始发送数据此时485已经处于接收状态了可以接收数据了不需要怎么处理

奏奏奏 发表于 2020-1-8 11:06:12

如果没有进一步的意见的话,我还是自己搭环境测试一遍就知道可行性了。
页: [1]
查看完整版本: 2块485接口芯片检测发送与接收的冲突?