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:
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:
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.
- Is this form of redundancy acceptable? Or should I rethink my design?
- 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?