I am looking for a way to communicate without using a CPU on one side of the communication.
For more details, I have many cards that need to communicate with one main card on which there is a CPU. Right now, they are communicating without any protocols, just using analog signals. The problem is that it uses a lot of pins on my main card and I do not have that many available (this is not something I can change.)
The only solution I found to save some pins is to use a serial communication (I²C, RS-485, etc.) The problem is that I cannot use a CPU on the "slave cards" because of some safety reasons (it is also something that is specified so I cannot change it.) To be more precise, I cannot use anything that has memory.
Is there a communication protocol that does not need any kind of CPU (chips with memory) on the slave side to work? Can I use only analog circuitry to receive/send the data on the slave side? If there is not, do you have any other idea on how to save pins on the main card?
EDIT
I am adding details here because my first post was missing some.
The system is made of one backplane and the user can plug the cards they want into it. Obviously the CPU and the power card will always be plugged in.
The thing that makes this system a bit difficult to conceive is the safety aspect. Each card has a way to check that it is working properly.
Here is an example of how the system is working right now :
- CPU : I am sending to Input a specific signal on its inputs (short-circuit). I am doing this so I can check if there is a problem with the Input card.
- Input : I am processing the signal (by processing, I mean filtering and other analog stuff but nothing digital) and sending it back.
- CPU : The signal is correct so I can consider that what the Input is reading and sending me is correct.
- Do the same stuff with Output or cards with sensors ...
In this example, just for an input, we are using 4 different pins (IN+ & IN- that are being sent to CPU and IN+_Test & IN-_Test that are here to test the input card. So what I am trying to do is replace all those analog signals by a serial communication (half duplex or full duplex) to have more pins available on the CPU card.
I need to avoid memory stuff (every kind of memory) because there is always the possibility (even if small) that it remembers the specific signal that I am using to check if a card is correctly working. If that happens when there is a problem with a card, it could do something that was not intentional (the doors of a plane open but the plane is still flying for example). The CPU card is protected against this kind of problem but it costs a lot so I cannot do the same thing on the other cards.
Just for information : I know that things could be done on the software side but this is not what I want. I am only looking for hardware answers.
To be clear, for me what I am trying to do is impossible. I do not see how one can do serial communication without registers. But I am asking just to be sure.