3.3. Gestion des collisions

Le bus I²C est multi-maîtres. Dès que le bus est libre, plusieurs abonnés peuvent prendre la parole en même temps.

Au niveau électrique, il n'y a pas de risque de destruction de composant grâce à la structure drain ouvert.

Pour éviter la transmission de données erronées, le maître relit la donnée qu'il a placée sur le bus. Dès que la donnée lue est différente de la donnée écrite, un autre maître a pris la parole en même temps. Il perd l'arbitrage et arrête d'émettre.

Remarque

Deux maîtres prennent la parole en même temps. Ils émettent les données SDA1 et SDA2.

Tant qu'ils envoient la même donnée, rien ne se passe. On la retrouve sur la ligne SDA.

Lorsque les maîtres envoient une donnée différente, celui qui a placé un NL 1, lit sur la ligne SDA un NL 0. Il arrête d'émettre (SDA2 au NL 1) et l'autre maître continue la transmission.

Le maître perdant l'arbitrage devient aussitôt récepteur, pour détecter si l'adresse émise par le maitre gagnant est la sienne.