Arbitragem

Linha SDA

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)

Exemplo

  1. o master 1 e o master 2 iniciam uma transmissão (quando o barramento passa a "idle")

  2. o master 1 perde a arbitragem na transmissão do 3º bit

Last updated