最近用Arduino UNO做485通信的相关项目,芯片MAX485,总线上挂32个终端,考虑到一主多从模式主机负荷过大,且主机故障会导致整个网络瘫痪,所以打算做多主模式,即每个终端都可以监测总线状态后主动请求发送数据,遇到下面一些较痛疼的问题,希望能有大神给予指点。
1、Arduino UNO采用的是软串口(softwareserial),好像没有接收中断,只能用.available()函数监测是否收到数据。用这种方式监听总线状态时,觉得不够准确。
2、发送数据的同时接收数据,与自身发送的数据进行比较已判断是否发送过程中有总线冲突,试验过程中发现无法接收到自身发送的数据,所以也无法进行对比,RO引脚上是没有上拉电阻的,Arduino引脚的上拉电阻也没有激活。比较纠结的是后来在论坛上看到,用这种方式比较并不能判断总线是否冲突,何解?
3、如果2中的这种方式不能检测总线冲突,那这种多主通信方式的方案又该如何设计呢?
|