Mensagens
Existem quatro tipos de mensagem ou frames definidos pela MAc:
Data frame ; é a mensagem que contém informações a serem
transmitidas do emissor ao receptor, possui 7 campos; o bit de início de
frame , o campo de arbitração , o campo de controle , o campo de dados ,
o campo de CRC , o campo de acknowledgement (ou campo de
recebido), e o campo de final de frame .
O bit de início de frame tem o propósito de sincronizar o
barramento com o receptor, a transição do estado recessivo ( quando o
barramento não está sendo utilizado) para o estado dominante marca o
começo da transmissão serial dos bits de uma mensagem.
O campo de arbitração contém os códigos que permitem priorizar
mensagens, também chamado de identificação, na versão padrão
possui 12 bits; na versão estendida possui 32 bits. É importante notar
que o código de identificação não identifica o destinatário, mas informa
ao receptor (ou receptores) qual é o node emissor, isso simplifica a
estrutura da rede, todos os nodes recebem as mesmas mensagens,
mas realizam uma filtragem interna ao módulo CAN para decidir se
devem aceitar a mensagem e agir sobre a informação, como se todos
os nodes ouvissem, mas tivessem que decidir se vão prestar atenção.
O campo de controle é formado por 6 bits, 2 reservados para
identificar se o frame é do tipo padrão ou estendido, e 4 bits para
informar o tamanho do conteúdo dos dados. O tamanho do conteúdo
varia de 0 a 8 bytes.
O campo de dados possui a mensagem que os diferentes nodes
desejam transmitir, talvez por exemplo o controlador da temperatura do
óleo do motor deseja mandar a mensagem para o painel do carro, é no
campo de dados que essas informações em binário se encontram.
O campo de CRC possui o código de 16 bits gerado pela
computação do algoritmo de CRC, é anexado a todas as mensagens
transmitidas.
O campo de acknowledgement (ACK), possui dois bits, 1 para
espaçamento e outro para registrar que a mensagem foi recebida sem
erros, os receptores de uma mensagem sobrescrevem o valor recessivo
com um valor dominante.
O campo de final de frame, serve como delimitador e marca o final
de uma mensagem, possui 7 bits de valor recessivo.
Remote Frame: Na realidade é uma requisição de reenvio de mensagem, no campo de identificação o código é da mensagem que deve ser repetida, também na identificação um bit específico para marcar se o frame é um data frame ou remote frame, é alterado para recessivo ( a identificação de remote frames). Possui os mesmos campos que o data frame, exceto que o campo de dados deve ser enviado vazio.
Error Frame: é uma mensagem que serve para sinalizar a ocorrência de um erro ( ou vários), pode ser transmitida por qualquer node.
Overload Frame: é uma frame para sinalizar que o receptor de uma mensagem precisa de mais tempo, isso é realizado por aumentar o tempo de delay da transmissão do próximo data frame ou remote frame.
Universidade Federal do Rio de Janeiro - UFRJ
Departamento de Engenharia Eletrônica e de Computação - DEL
Autores: Marina Lacerda, Tamine Alves e Yan Nascimento