Arbitragem
Last updated
Last updated
Quando o barramento está livre ("idle") dois ou mais masters podem iniciar uma transferência; todos geram START resultando numa condição de START válida no barramento
Arbitragem é o procedimento que assegura que, se mais do que um master tentar, simultaneamente, controlar o barramento, apenas a um é permitido continuar, sem perturbação da comunicação iniciada pelo master vencedor
A arbitragem é feita por bit dominante / bit recessivo e processa-se bit a bit
Por cada novo bit enviado, quando a linha SCL está a '1' cada master lê a linha SDA e verifica se o seu valor coincide com o que enviou:
O processo de arbitragem é perdido por um master quando lê da linha nível lógico '0' (dominante) tendo enviado nível lógico '1' (recessivo)
O master que perde o processo de arbitragem
Retira-se, libertando a linha SDA (comuta de imediato para modo slave)
Tenta de novo quando o barramento passar ao estado "idle" (espera o aparecimento de uma condição STOP)
o master 1 e o master 2 iniciam uma transmissão (quando o barramento passa a "idle")
o master 1 perde a arbitragem na transmissão do 3º bit