5 - DESENVOLVIMENTO

5.1) O Padrão CAN

É um sistema bus serial internacionalmente padronizado oferecendo funcionalidade da camada de enlace de dados do modelo de referência OSI/ISO, caracterizado por ser um protocolo de comunicação serial síncrono, em que 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. O Trabalho é 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 forem enviadas em regime multicast, caracterizado pelo envio de toda e qualquer mensagem para todos os módulos existentes na rede.

O protocolo de comunicação CAN é do tipo CSMA/CD+AMP [16] em que CSMA significa que cada unidade da rede deve aguardar um período de inatividade no barramento para enviar uma mensagem e CD+AMP significa que uma colisão será resolvida na arbitração de bit, baseado na pré-programação de prioridade da mensagem no campo identificador da mensagem. A mais alta prioridade identifica quem vencerá o acesso ao barramento.
A primeira versão do padrão CAN ISSO 11519 (low-speed CAN) é para aplicações de até 125kbps com o identificador padrão de 11-bit, já a segunda versão, ISO 11898 (1993), manteve os mesmos 11 bits identificadores e permite comunicações de 125kbps até 1Mbps enquanto a atualização mais recente (1995) introduziu o modo estendido de 29 bits.
A ISO 11898 com a versão de 11-bits é freqüentemente citada como Standard CAN Version 2.0A, enquanto a outra atualização é citada como Extend CAN Version 2.0B. O padrão CAN com identificador de 11-bits é apresentado na figura 2 com 211, ou 2048 mensagens diferentes, enquanto o Extended CAN 29-bit identifier na figura 3 com 229 ou 537 milhões de identificadores. Em suma, este protocolo fundamentado no conceito CSMA/CD with NDA (Carrier Sense Multiple Access / Collision Detection with Non-Destructive Arbitration), faz com que todos os módulos verifiquem o estado do barramento, analisando se outro módulo está ou não enviando mensagens com maior prioridade. Caso isto seja percebido, o módulo cuja mensagem tiver menor prioridade cessará sua transmissão e o de maior prioridade continuará enviando sua mensagem deste ponto, sem ter que reiniciá-la.

O CAN utiliza a sinalização de linha NRZ (Non Return to Zero) [17], onde cada bit (0 ou 1) é transmitido por um valor de tensão específico e constante. A velocidade de transmissão dos dados é inversamente proporcional ao comprimento do barramento e a maior taxa de transmissão especificada é de 1Mbps considerando-se um barramento de 40 metros. Considerando os fios elétricos como o meio de transmissão dos dados, existem três formas de se constituir um barramento CAN, dependentes diretamente da quantidade de fios utilizada. Existem redes baseadas em 1, 2 e 4 fios.

As redes com 2 ou 4 fios trabalham com os sinais de dados CAN_H (CAN High) e CAN_L (CAN Low). No caso dos barramentos com 4 fios, além dos sinais de dados, um fio com o VCC (alimentação) e outro com o GND (referência) fazem parte do barramento, levando a alimentação às duas terminações ativas da rede. As redes com apenas 1 fio têm este, o fio de dados, chamado exclusivamente de linha CAN.
Considerando o CAN fundamentado em 2 e 4 fios, seus condutores elétricos devem ser trançados e não blindados. 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. É muito comum classificar o barramento CAN Bus como Par Trançado Diferencial. Isso se deve ao fato da forte atenuação sobre os efeitos causados por interferências eletromagné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.




No barramento CAN Bus, os dados não são representados por bits em nível “0” ou nível “1”. São representados por bits Dominantes e bits Recessivos, criados em função da condição presente nos fios CAN_H e CAN_L. Como mencionado anteriormente, todos os módulos podem ser mestres 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.

Após estas abordagens conceituais podemos concluir que as CANs  trabalham com uma topologia da rede física em estrela e lógica em barramento, enviando suas mensagens em broadcast, baseada em 4 pilares:

1º Implementação de Hardware:
O meio de transmissão para as redes CAN influencia diretamente no funcionamento e no envio correto das mensagens, uma vez que estas precisam ser confiáveis e em alta velocidade. A topologia física da rede também precisa ser analisada com cuidado. O comprimento de cada ramo do "Chicote Elétrico" deve seguir a norma CAN, do contrário, a propagação das mensagens pode ser prejudicada.

2º Simples Transmissão:
As CANs devem funcionar mesmo caso haja falha no link, assim, uma CAN transmitindo por 2 pares de cabo é capaz de operar normalmente somente com 1 par.

3º Controle de Erro:
O controle de erro do protocolo CAN é o mais interessante e principal característica desse tipo de rede. Como as CANs são utilizadas em sistemas sensíveis a falha o controle de erro é feito pelos próprios dispositivos.
4º Ótimo confinamento de falhas:
A danificação de um dispositivo pode resultar no envio de mensagens de erro na rede, assim, prejudicando a largura de banda. Este mecanismo de controle de erros garante que as mensagens sinalizadoras de eventos críticos possam ser enviadas com sucesso garantindo a integridade do sistema. Apesar das mensagens serem enviadas em broadcast, as colisões não são destrutivas como nas redes Ethernet, sendo em todas as mensagens transmitidas com um bit recessivo e outro dominante ao qual tem prioridade na transmissão.
Quando duas mensagens são enviadas no meio, a mensagem com maior prioridade continua a ser transmitida enquanto a com o bit recessivo, de menor prioridade, é abortada a transmissão pelo dispositivo originador do sinal. As mensagens bloqueadas são retransmitidas pelo controlador central.