Descrição geral
Arquitetura "Master-Slave" com ligação ponto a ponto
Comunicação bidirecional full-duplex
Comunicação síncrona (relógio explícito do master)
Relógio é gerado pelo master que o disponibiliza para todos os slaves
Não é exigida precisão ao relógio - os bits vão sendo transferidos a cada transição de relógio. Isto permite utilizar um oscilador de baixo custo no master (não é necessário um cristal de quartzo)
Fácil de implementar por hardware ou por software
Não são necessários "line drivers" (ou "transceivers“) - circuitos de adaptação ao meio de transmissão
Arquitetura "Master-Slave"
O sistema só pode ter um master
O master é o único dispositivo no sistema que pode controlar o relógio
Um master pode estar ligado a vários slaves: para cada comunicação, apenas 1 slave é selecionado pelo master
O master inicia e controla a transferência de dados
Sinalização:
SCK - clock
Relógio gerado pelo master que sincroniza a transmissão/receção de dados
MOSI – Master Output Slave Input (SDO no master)
Linha do master para envio de dados para o slave
MISO – Master Input Slave Output (SDI no master)
Linha do slave para enviar dados para o master
SS – Slave Select
Linha do master que seleciona o slave com quem vai comunicar
Esquema de princípio
Transmissão "full-duplex" baseada em dois shift-registers (um no master e outro no slave)
Em cada ciclo de relógio:
O master coloca 1 bit na linha MOSI e o slave recebe-o
O slave coloca 1 bit na linha MISO e o master recebe-o
Ao fim de N ciclos de relógio o master enviou uma palavra de N bits e recebeu do slave uma palavra com a mesma dimensão – "Data Exchange"
Esta sequência é realizada mesmo quando é pretendida uma comunicação unidirecional
Sinalização
Dados:
MOSI – Master Output Slave Input (SDO – serial data out no master)
MISO – Master Input Slave Output (SDI – serial data in no master)
Controlo:
SS – Slave select (sinal ativado pelo master para selecionar o slave com quem vai comunicar)
SCK – serial clock
O sinal de relógio tem um "duty-cycle" de 50%
No exemplo da figura:
master e slave usam a transição negativa do relógio para colocarem 1 bit na linha (master na linha MOSI, slave na linha MISO)
Na transição positiva seguinte, o master armazena o valor presente na linha MISO e o slave armazena o valor que se encontra na linha MOSI
Last updated