I'm at works of designing a system that has two separate circuits that have to be controlled by separate MCUs. This system should have a relatively high reliability and should occupy as small of a space as possible. Reliability involves the necessity to survive an MCU failure.
I have thought about three MCU voting system, but to control two circuits independently would require six MCUs, which is way too much of a space.
Using a three MCU voting system, where MCUs control both circuits at the same time would get too computationally heavy as well.
My current idea would be to have two MCUs and by default one MCU would be responsible for the one circuit and the other MCU would be responsible for the other circuit. If fault occurs and one MCU gets dead, then the other MCU takes on the responsibilities of the other MCU at reduced capacity.
To implement this, it would be required to have a pair of firmware images for an MCU, each image responsible for controlling a circuit. Then the I/Os of both MCUs would be connected to two multiplexers. Output of one mux is connected to one circuit, output of the other mux is connected to the other circuit.
There would be periodic resets,startup routine and some fault detection circuitry. At the startup, the fault detection circuitry would require a signal from each MCU. if both MCUs answer, the fault circuitry sets the channels of one mux to one MCU and the channels of the other mux to the other MCU. If one MCU does not respond, the fault circuitry sets both mux channels to the MCU that responded. There would be some indication to the MCU from the fault detection circuitry as well.
Does this makes sense??
What are the issues that Im not seeing?
Maybe there are some other alternatives that could help me solve this?
Thanks in advance!