Pular para o conteúdo

Jefferson Wilhelm Meyer Soares

ATV 10 — Da UART para a rede CAN

Seções A mensagem de falha e o filtro
  1. 1A leitura por UART
  2. 2Do fio ao barramento CAN
  3. 3O quadro CAN
  4. 4A leitura do DHT11 dentro do quadro
  5. 5A mensagem de falha e o filtro
  6. 6Erros no barramento
Anexos (1)

A mensagem de falha e o filtro

Cada mensagem diferente ganha seu próprio identificador. Quando a leitura do DHT11 falha, o transmissor manda um quadro com o identificador ID_FALHA e nenhum byte de dados, DLC 0: o identificador sozinho já diz o que aconteceu.

Como o identificador é a prioridade, a escolha do número tem consequência. Se a falha e a leitura de outro nó disputarem o barramento no mesmo instante, passa primeiro a de menor identificador, e a outra espera e tenta de novo logo em seguida.

O controlador CAN do receptor pode ter um filtro de aceitação: ele compara o identificador de cada quadro com o filtro e descarta, no próprio hardware, o que não interessa, sem o programa ver. Com FILTRO_ID = 0, o receptor aceita tudo; com um identificador em FILTRO_ID, só aceita aquele.

Questão 15 de 20 Escolha uma

Resolvemos juntos. Dois nós começam a transmitir no mesmo instante, um com o identificador 0x080 e outro com 0x100. Em binário, de 11 bits, eles são 000 1000 0000 e 001 0000 0000. Qual quadro passa?

  1. No protocolo.h, dê um identificador à falha em ID_FALHA, decidindo se ele fica maior ou menor que o da leitura.
  2. Grave transmissor-can e receptor-can e desconecte o fio de dados do DHT11.
  3. Reconecte o DHT11. No protocolo.h, faça FILTRO_ID = ID_LEITURA e grave só o receptor-can.
  4. Desconecte de novo o fio de dados do DHT11 e veja o que o receptor mostra.
Questão 16 de 20 Preencha a tabela

O que o monitor serial do receptor mostra.

Receptor sem filtroReceptor com filtro
DHT11 ligado
DHT11 desconectado
Questão 17 de 20 Resposta escrita

Qual identificador vocês escolheram para a falha, e por que ele faz sentido em relação ao da leitura? Por que, com o filtro, os quadros de falha não aparecem no receptor?

Questão 18 de 20 Escolha uma

Agora é com você. O receptor está com FILTRO_ID = ID_FALHA, a falha em 0x080 e a leitura em 0x100, e o DHT11 está ligado e lendo bem. O que o monitor serial do receptor mostra?