I'm going to start a project in my University in a few week. Since it is a collaboration between my University and a very important company I cannot say too much about the project itself. So I try to give here just the needed amount of information, that describes the problem. Hopefully I can describe it well enough to make it understandle for you.

Problem: A microcontroller sends data trough a bus (it can be RS485 or CAN. This is not yet specified) to up 12 devices:

Bild 1

There was a little bit of disappointment about this design, because somebody involved in the project dislikes the presented solution (some people want to cable directly the microcontroller with each device) because of redundancy. The reason behind this design is that we can write and implement a protocoll to transmit data to every device. Thats nice and extremely efficient, since I can send data through package of informations.

Some of my colleges dislike this solution because of the lack of redundancy. If for any reason the bus it going to be interrupted (one wire breaks up, mechanical movement on the cable, etc...) some device could not get their information (which is vital for the life of the system) and really a lot of damage can happen. The worst case is when the connection breaks between the master and the first device. Then all devices are lost. This case should be avoided at any cost.

I want to avoid this. So I was thinking about a solution where there are at least two bus for communication to let communicate the devices in case one bus doesn't work anymore. So I have in my mind the following design:

Bild 2

But I have a problem: I want to send over each line the same information. The device should be able to read only one. So both line should merge into one channel before being read by the device.


  1. Is this form of redundancy acceptable? Or should I rethink my design?
  2. Does make sense to merge both lines into one before going into the device? Or should have the device at least two separate RS485 or CAN ports and then merge the information by software?

2 Answers 2


This is a very broad topic, known as "fault tree analysis" — probably too broad to address here in our Q and A format.

The question about your serial bus needs to be evaluated in the context of the larger system. You need to consider what kinds of faults are likely and the cost to mitigate each kind of fault. You need to consider both electrical faults within the master and slave devices themselves, as well as physical faults with the wiring and connectors.

Sometimes redundancy is the right answer; other times, having a subsystem make a transition to a "safe state" (until repairs can be made) when a fault is detected is sufficient.


There are various industrial approaches to do redundant systems, usualy everything is doubled including main CPU module, the distributed IO and of course two buses, the application then consists to verify or falsify the broken system. Many companies have their own proietary solution. You can look an example for Siemnens redundant system, just for info: https://www.youtube.com/watch?v=K3AXkW2Dp3M

But I would like to inform you that there are two types of this complicated systems: fail safe and redundant. Fail safe is a system that safely brings the machine/plant to stop, while redundant makes the machine/plant to continue working if fault is detected. Obviously fails safe is much easier and less expensive. You should analyse what you realy want, since redundant systems are used for realy serious plants like nuclear power plant, or vessel sytems,..etc


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.