CAN

BUSCONTROLLER AREA NETWORK BUS 

By Igor Reis

"Thus Hard Synchronization forces the edge which has caused the Hard Synchronization to lie within the Synchronization Segment of the restarted bit time."


HISTÓRICO

O CAN Bus (ou Barramento Controller Area Network) foi desenvolvido pela empresa alemã Robert BOSCH e disponibilizado em meados dos anos 80. Sua aplicação inicial foi realizada em ônibus e caminhões. Atualmente, é utilizado na indústria, em veículos automotivos, navios e tratores, entre outros.


CONCEITUAÇÃO BÁSICA

O CAN é um protocolo de comunicação serial síncrono. O sincronismo entre os módulos conectados a rede é feito em relação ao início de cada mensagem lançada ao barramento (evento que ocorre em intervalos de tempo conhecidos e regulares). Trabalha baseado no conceito multi-mestre, onde todos os módulos podem se tornar mestre em determinado momento e escravo em outro, além de suas mensagens serem enviadas em regime multicast, caracterizado pelo envio de toda e qualquer mensagem para todos os módulos existentes na rede. Outro conceito bastante interessante é o NRZ (Non Return to Zero), onde cada bit (0 ou 1) é transmitido por um valor de tensão específico e constante.

Roteamento das Mensagens (os nodos do CAN não necessitam de nenhuma informação da configuração do sistema) então temos:

Prioridades:

Requisição Remota de Dado:

Estatísticas (dados da BOSCH):

Quantidade de Nodos:


A velocidade de transmissão dos dados é inversamente proporcional ao comprimento do barramento. A maior taxa de transmissão especificada é de 1Mbps considerando-se um barramento de 40 metros. A Figura 1 representa a relação entre o comprimento da rede (barramento) e a taxa de transmissão dos dados.

Figura 1

Considerando o CAN fundamentado em 3 fios, CAN_H, CAN_L, GND, dois quais apenas o GND não deve ser trançado. Os dados enviados através da rede devem ser interpretados pela análise da diferença de potencial entre os fios CAN_H e CAN_L. Por isso, o barramento CAN é classificado como Par Trançado Diferencial. Este conceito atenua fortemente os efeitos causados por interferências eletro-magnéticas, uma vez que qualquer ação sobre um dos fios será sentida também pelo outro, causando flutuação em ambos os sinais para o mesmo sentido e com a mesma intensidade. Como o que vale para os módulos que recebem as mensagens é a diferença de potencial entre os condutores CAN_H e CAN_L (e esta permanecerá inalterada), a comunicação não é prejudicada.

Figura 2

Como mencionado no início, todos os módulos podem ser mestre e enviar suas mensagens. Para tanto, o protocolo é suficientemente robusto para evitar a colisão entre mensagens, utilizando-se de uma arbitragem bit a bit não destrutiva. Podemos exemplificar esta situação, analisando o comportamento de dois módulos enviando, ao mesmo tempo, mensagens diferentes. Após enviar um bit, cada módulo analisa o barramento e verifica se outro módulo na rede o sobrescreveu (vale acrescentar que um bit Dominante sobrescreve eletricamente um Recessivo). Um módulo interromperá imediatamente sua transmissão, caso perceba que existe outro módulo transmitindo uma mensagem com prioridade maior (quando seu bit recessivo é sobrescrito por um dominante). Este módulo, com maior prioridade, continuará normalmente sua transmissão.

 

Formatos das Mensagens

Existem dois formatos de mensagens no protocolo CAN:

CAN 2.0A – Mensagens com identificador de 11 bits. É possível ter até 2048 mensagens em uma rede constituída sob este formato, o que pode caracterizar uma limitação em determinadas aplicações. A Figura 3 apresenta o quadro de mensagem do CAN 2.0A.

Figura 3

RTR bit - Remote Transmit Request: Dominante é Data Frame e Recessivo é Remote Frame;

IDE bit - Identifier Extension: Dominante é Standart Frame e Recessivo Extended;

DLC: Data Length Code

ACk: resposta do receiver - A resposta vem com sinal dominante, que se sobrepoe ao recessivo do Transmissor;

 

CAN 2.0B – Mensagens com identificador de 29 bits. É possível ter, aproximadamente, 537 milhões de mensagens em uma rede constituída sob este formato. Percebe-se que a limitação em virtude da quantidade de mensagens não mais existe. Por outro lado, o que pode ser observado em alguns casos é que, os 18 bits adicionais no identificador aumentam o tempo de transmissão de cada mensagem, o que pode caracterizar um problema em determinadas aplicações que trabalhem em tempo-real (problema conhecido como overhead). A Figura 4 apresenta o quadro de mensagem do formato CAN 2.0B.

Figura 4

SRR bit - Substitute Remote Request: Bit sempre recessivo, aparece apenas para se sobrepor ao bit RTR do padrão 2.0A.

 

ASPECTOS DE IMPLEMENTAÇÃO: EXEMPLO DE REDE

Toda rede CAN possui 2 Terminadores. Estes terminadores nada mais são que resistores com valores entre 120 e 124 ohms, conectados à rede para garantir a perfeita propagação dos sinais elétricos pelos fios da mesma. Estes resistores, um em cada ponta da rede, garantem que não haja reflexão dos sinais no barramento e o correto funcionamento da rede CAN.

Outra característica de determinadas aplicações fundamentadas no CAN é que estas poderão ter duas ou mais sub-redes trabalhando, cada qual, em uma velocidade diferente. Os dados são transferidos de uma sub-rede para a outra através de módulos que atuam nas duas sub-redes. Estes módulos são chamados de Gateways.

A Figura 5 ilustra a rede CAN de um sistema automotivo, com duas sub-redes e dois terminadores. O Gateway desta aplicação é o Painel de Instrumentos.

Figura 5


Detecção de Erros:


Norma CAN Oficial v.2 (Publicação da BOSCH) - Arquivo PDF

Links que colaboraram:

http://www.can-cia.de/can/

http://www.kvaser.se/can/protocol/index.htm

http://www.semiconductors.philips.com/buses/can/

http://focus.ti.com/lit/ds/symlink/sn65hvd232q.pdf (Texas Datasheet Sample)