I'm considering whether to use a polled vs multimaster I2C network to connect a main controller to a few subsystems (in the same box). I propose to use a standard interface such as I2C because I need the flexibility to mix and match (my custom-made) modules in various configurations. I also need to maximize throughput, and keep latency reasonable.
Am I better off polling, which costs some bandwidth for the poll messages, or am I better off making the low latency devices masters and transmitting when needed. How much does throughput suffer due to multiples masters contending for the bus? Also to manage latency, I assume I would have to keep all transmissions short since there is no way of interrupting a transfer.
Another question: Can anyone comment on the quality of the I2C (or SMBUS) hardware inplementation in Atmel and Cygnal microcontrollers? Any brands of microcontrollers to avoid?
Note: I've also considered the CAN protocol which is more suitable in some ways, but it seems like overkill to connect a few local devices, and further limits the choice of microcontrollers.
- Chris