To prevent the bus locking up the main micro-controller, I'm using a smaller micro as a transceiver. If the bus locks up due to a short circuit or any other reason the main micro can still operate and cut power to the damaged transceiver channel. Even with this precaution it's still necessary to limit the short circuit current between the exposed i2c lines to prevent damage to the transceiver.
The simplest and most cost effective way to do this is to place a 100 ohm resistor on any exposed active lines. With a 3.3V supply, a short on any of these lines will be limited to a current of 33 mA, which is within spec of the transceiver micro. A short between two of the active lines will be limited to 16.5 mA.
The 100 ohm resistor on Vcc will cause the supply voltage of the sensor to slightly sag, but the current drawn by the sensor is so small that it doesn't really matter. Just to be sure I've prototyped the design on a breadboard and it works as expected.
To further protect the i2c bus, I intend to put diodes on the SDA and SCL line to clamp ESD spikes. For what I'm using it for these measures should adequately protect the bus.
|Current limited i2c bus interface|