Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

RS-485 multimaster ring considerations

Status
Not open for further replies.

alexxx

Advanced Member level 4
Joined
Apr 17, 2011
Messages
1,013
Helped
273
Reputation
552
Reaction score
270
Trophy points
1,383
Location
Greece
Activity points
7,936
Hello.

I need to implemented an RS-485 network (because at least 400m are required without repeaters at 115200bps) with 100-120 nodes. The network must be open circuit tolerant, so this means that if a single cable cut takes place, the network should continue operating normally. So the obvious way to go is with a ring topology, where every node has two RS-485 ports, one connected to its “left” node and one to its “right” node. If the “left” node sends data that are not intended for my address, I will read it from the “left” RS-485 port and forward (retrasmit) the message to the “right” node through the “right” port, in order for the message to continue its “journey” on the ring. The network must be multi-master, because any node can send data to any node.

The tricky part is that there will be some alarm messages, so one of those nodes must be a network “manager”, checking that those critical messages will reach all destinations. If not, a fault condition should be indicated to the user, in order to inform that not all nodes took the message.

I did some digging and most references suggest a token ring topology, but I am not sure because if an alarm is initiated to a node, I need this node to instantly send this alarm to the network and not wait for the token to be cycled back to it. There are also plenty of other scenarios to be concerned about, like if an alarm condition takes place to multiple nodes at the same time, which they start transmitting it almost simultaneously. So this "network manager" issue troubles me even more and gives me doubts on which is the optimum way to go.

This is the scenario. I continue with my research, but if someone has implemented something similar, it would be great to hear his story or get a reference that I have not yet found, to point me to the right direction.

Thanks in advance.
 

What you are suggesting is quite complicated to implement and I'm not sure it is a fault tolerant as you say.
If you can overcome the drive current limitation at the sending device (they are only rated to drive 32 receivers) you could use 9-bit serial protocol where the extra bit is used to indicate whether the data following it is a slave address or data to an already selected slave. It gives you an addressing range of 256 devices wired in parallel.
If you could use RS422 it would probably be easier because being uni-directional on each path it is far easier to add repeaters and they are cheap and plentiful. You would only need one repeater IC for every 31 nodes.

Brian.
 

Hello Brian, thanks for the responce.

There won't be a problem with the number of tranceivers, because every node is actually a repeater. Maybe my explanation wasn't clear enough in the OP, but there is not a central ring where all the nodes connect to it. The ring actually passes through the nodes. Every node has 2 RS-485 ports, it receives from one port and transmits from the other port. Please see the image below. My topology will be the left one.

page175.gif

Another thought was to actually use the token ring after all. Because in 115200 speed, it would take under 1ms to transmit a token of let's say 10 bytes. I assume three. So for 100 nodes, the token will be cycled every 300ms. It is not so bad, I thing that the alarm messages will not be delayed that long.
 

I understand the concept and provided the 'in' and 'out' are directly linked it will send at full speed and over long distances. However, what happens when one of the nodes wants to write back the master? It would block the passage of 'through traffic'.

In a true token ring, empty data blocks are passed from one node to the next and if necessary, a node fills it as it passes through. That block is then passed in it's entirety along with other possibly empty blocks right round the loop. There could be quite a of data on the move at once.

Brian.
 
  • Like
Reactions: alexxx

    alexxx

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top