I'm trying to review the serial protocol we're using to connect multiple boards in our device. The device is made of 5 boards, 1 master and 4 slaves, connected through a RS422 serial link. Regarding the OSI layer 1 protocol, we're already using some scheme with a CRC that ensures that the data are transmitted correctly between any slave and the master. I'm looking for some tested protocol to govern the communication, which is now done round robin, with a fixed time window for each slave. If the slave doesn't respond for some fixed time after being messaged, then the device halts, since it really needs to make sure that everything is working perfectly. These fixed windows have given us more than one headaches in the past, since they need to be calculated based on the maximum length of a message to be transmitted, so every time one needed to add some message, then she needed to recalculate each window. Moreover, the kind of messages that are passed are tightly packed, with a starting configuration word that has a bit signalling the presence of each message in the following data, plus a bit that adds a second level, to accomodate more messages. This way of working is problematic, too, because each message needs to be allotted its own configuration bit.
Are there any tested and standard "scheduling" algorithms we could/should use, and are there any clearly defined, standard and easy to implement protocols that are widely used?
Thanks for any link/help!