This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ISO1410: ISO1410

Part Number: ISO1410

Tool/software:

Hi there,

We are working on one of our projects where 2 Masters and 1 Slave are connected to the same RS485 bus lines, Now there is data collision is happening when both masters try to communicate with the same slave device.

Attached Block diagram for the same.

Now, Is there any solution to avoid the collision ?? how do i know the bus status of the RS485 bus line.?
do I need to implement/add any extra hardware circuits??

Please let me know if you need any more details on the same. 
Thanks.

Regards,

Shivam

  • Every shared bus requires the devices to use some protocol that avoids or handles collisions.

    One such protocol for RS-485 is Modbus-RTU; this would require additional software on all devices.

    If you want to minimize software changes, and you do not have very high bandwidth requirements, you could do something like Token Ring, and send messages between the two masters "now it's your turn". (This will break if one master fails.) Alternatively, make one master the primary master; it regularly sends a message to the second master "you can now send something for the next 100 ms".

    In any case, all your messages should have checksums so that you can detect (and maybe correct) corrupted data.

  • Hello Shivam, 

    There is typically a protocol/software implementation to RS-485 as Clemens said. The RS-485 bus status can be monitored using the RXD pin of the transceiver. No extra circuits are needed; however, it is up to your software to determine if the bus is idle and ready for transmission. 

    Best,
    Andrew