I plan on creating a system with multiple microcontrollers which need to communicate with one another.
All the microcontrollers will be placed inside a single enclosure, so no need for long distance solutions.
What I am looking for is full-duplex communication between a master device and multiple slaves. I call the communication full-duplex because I want the slaves to be able to send data to the master without a request from the master (the slaves should send data independently).
The number of microcontrollers I wish to connect is one master device and at least 16 slaves.
Ideally, I would like a robust solution which utilizes some kind of bus to connect to all the microcontrollers.
Among the potential solutions I found, the most applicable was the ICSC protocol along with an RS-485 bus, but I did not find any useful documentation on RS-485 with full duplex.
Do you have any recommendations? Is ISCS with RS-485 a good approach or should I resort to another solution?
EDIT
Further details to my question:
The slaves will be microcontrollers handling a subsystem. The subsystem is basically a physical input device with a feedback display which provides the user with the current state of the input.
Slaves send asynchronously data to the master whenever the user operates the input device. Slaves rarely send data at the same time.
The master can send data to the slaves at any time, changing a value in the subsystem controlled by the slave.
The functionalities to be implemented will be of the following type:
- Master -> Slave void setValue(uint8_t value)
- Slave -> Master uint8_t valueChanged() (returns new value)
All I need is a simple way, with as few wires as possible (and as few pins as possible on the master), which allows me to implement the functionalities above as efficiently as possible (with no unnecessary messages and requests on the communication lines).