If a talking device sees a 1 on the bus when it intended to send a 0 then it will assume that it has been talked over bay a higher priority message
Normally it's the other way around with the 0 being dominant, but that's up to your hardware.
Any device with data to send will do so simultaneously,
There will be race conditions where two or more nodes test and send at the same time, the more nodes you have the more this is likely to occur. This should be trapped by testing for bit clashes though.
Your code will have to be very tightly written (depending on the bit rate you plan) as you can get phase errors that will not be detected by the transmitting nodes but still corrupt the waveform, possibly enough to cause a problem with the receiving node's reading of the data.
I'm probably being paranoid and I haven't tested this but to me it's always seemed to be a week link with such schemes. Someone else may know more about this.
everything is clear to send when the bus has been idle for some time.
Sounds reasonable and the only way I know to sync with a true binary waveform.
I suspect this will be harder than I am currently giving it credit for.
Probably ![]()
Rob