Você está na página 1de 24

Escola Superior de Tecnologia de Viseu

Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

O Protocolo CAN

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 1 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

Índice geral
1. Introdução...............................................................4

2. Utilização em Automóveis.................................................5

3. Aplicações Industriais...................................................5

4. Um Futuro Promissor......................................................6

5. Princípio de funcionamento da rede CAN...................................7

5.1. Princípios de Troca de Informação....................................7

5.2 Arbitragem Não Destrutiva dos Bits....................................7

5.3 Robustez..............................................................9

6. A Camada Física..........................................................9

6.1 Algoritmo de Codificação do Bit......................................10

6.2 Bus Físico...........................................................10

6.3 A ligação física do CAN..............................................10

6.4 ligadores CAN........................................................11

7. Formato das Tramas CAN..................................................12

7.1 Formato Standard 2.0A................................................12

7.2 Formato estendido 2.0B.................................................13

7.3 Compatibilidade entre 2.0A e 2.0B....................................14

8. Sincronização e Tempo de Bit na Rede CAN................................14

8.1 Tempo de Bit.........................................................14

8.2 Sincronização........................................................16

9. Erros...................................................................18

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 2 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

9.1. Detecção de Erros...................................................18

9.2. Confinamento de Erros...............................................19

10. Arquitectura dos Controladores CAN.....................................20

10.1 Controladores com Buffer Intermédio.................................21

10.2 Controladores com Armazenamento de Objectos........................22

10.3 Controladores com Funções I/O......................................22

10.4 Controladores com Periféricos Stand-Alone e Periféricos Integrados. .


22

Notas:.....................................................................24

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 3 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

1. Introdução

A rede CAN surgiu de modo a satisfazer a crescente necessidade de


segurança, conforto e comodidade existentes no mercado automóvel,
associada às, cada vez maiores, exigências governamentais no que
respeita à diminuição de poluição e consumo, aumento da segurança, etc.
Como tal, a indústria automóvel começou a desenvolver e a integrar cada
vez mais componentes electrónicos, como sejam o "Anti Blocking System",
controlo de tracção, o controlo do ar condicionado, fecho centralizado
de portas entre outros.

A complexidade destes sistemas de controlo e a necessidade de trocar


informação entre eles, significavam cada vez mais cablagem e linhas de
controlo dedicadas. Além do custo da cablagem necessária para ligar
todos os componentes, o tamanho físico do sistema e a complexidade que
daí advém tornam esta solução incomportável. Os custos exagerados e
o número crescente de ligações comprometia seriamente a confiança,
segurança e tolerância a falhas do sistema.

Sempre atentos aos novos problemas, a Bosch apresentou em meados de 80 a


sua solução para o problema, a rede CAN.

A Bosch desenvolveu o protocolo, que mais tarde se tornou em norma


internacional ISO 11898 e ISO 11519, e licenciou um certo número de
empresas de modo a permitir o desenho e produção de controladores,
microcontroladores e outros dispositivos, compatíveis com a norma CAN.

Ao adoptar o protocolo CAN, os controladores, sensores e actuadores


podem comunicar entre si em tempo real podendo atingir velocidades da
ordem de 1 MB/s, utilizando somente um par de condutores entrançados
como linha de dados série. Além disso o protocolo CAN tem mecanismos que
permitem o funcionamento em ambientes austeros. Sendo fácil de instalar
e modificar, efectua também a detecção automática de erros.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 4 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

2. Utilização em Automóveis

Num automóvel existem 4 aplicações principais que necessitam de


comunicação série, tendo cada uma delas diferentes requisitos e
objectivos: Controladores para o motor, transmissão, chassis e travões.

A taxa de transmissão de dados tem valores tipicamente de tempo real,


variando de 200kBit/s até 1Mbit/s. Os dispositivos de rede no chassis
tornam o veículo mais confortável.

Exemplos deste tipo de aplicação são, por exemplo, o controlo as luzes,


o controlo do ar condicionado, o fecho centralizado de portas, a
regulação eléctrica do assento e do espelho. Os valores típicos da taxa
de transmissão para estes dispositivos rondam os 50kBits/s.

Os dispositivos responsáveis pelo controlo dos travões e transmissão


tornam a condução mais segura, robusta e fiável, exemplos deste tipo de
aplicações são o Anti Blocking System e o controlo de tracção
electrónico.

Os dispositivos de controlo situados no motor permitem obter um melhor


rendimento do motor, uma vez que está sujeito a um controlo mais
apertado, diminuindo assim, tanto o consumo, como o nível de poluição.

3. Aplicações Industriais

Uma comparação entre os requisitos e constrangimentos de um sistema em


rede de um automóvel e os requisitos necessários a qualquer rede de
sensores/actuadores de aplicação industrial, revela incríveis
semelhanças, nomeadamente: o baixo custo de instalação e manutenção, a
capacidade de operar em condições e ambientes adversos, as grandes
capacidades de tempo real e a facilidade de utilização.

A utilização standard do protocolo CAN em todos os automóveis da classe


"S" da Mercedes-Benz e a adopção do CAN pelos construtores Americanos de
veículos comerciais e todo-o-terreno fez com que os restantes
fabricantes lhe começassem a prestar a devida atenção. Não foram somente
os fabricantes de automóveis, maquinaria agrícola e náutica que
escolheram o CAN. Essa foi também a escolha dos fabricantes de aparelhos
médicos, de máquinas têxteis, controlo de elevadores e do campo da

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 5 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

maquinaria hidráulica.

A indústria têxtil foi uma das pioneiras do CAN, começando a primeira


fábrica a equipar os teares em 1990, o primeiro tear era composto por um
sistema de controlo modular que comunicava através de uma rede CAN em
tempo real. Entretanto muitos fabricantes de maquinaria têxtil uniram-se
formando o CAN Textile Users Group, que por sua vez faz parte do grupo
internacional de fabricantes, CAN in Automation.

Além da segurança e do alto débito do CAN, o baixo preço dos


dispositivos de ligação à rede foram sem dúvida um argumento decisivo a
favor do CAN. Em aplicações onde o preço é um factor crítico, é
essencial que exista no mercado disponível uma grande variedade de
chips. Mais uma vez, o tamanho, a robustez e o facto de serem bastante
compactos foram elementos de especial importância a favor do CAN.

4. Um Futuro Promissor

A utilização do CAN em muitos automóveis de passageiros e a posterior


adopção pela indústria automóvel Americana, garantem por si só a
existência e disponibilidade no mercado de chips e outros dispositivos
CAN nos próximos 10 anos. Outras área de mercado como o controlo
industrial e outras aplicações domésticas vão incrementar as vendas de
dispositivos CAN de tal modo que até à primavera de 1996 existiam mais
de 10 milhões de nós CAN instalados, e as expectativas para o ano
2000 são de mais de 122 milhões de nós a funcionarem.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 6 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

5. Princípio de funcionamento da rede CAN

5.1. Princípios de Troca de Informação

Quando são transmitidos dados no CAN, nenhuma estação é endereçada


directamente, sendo o conteúdo da mensagem (e.g. RPMi ou temperatura do
motor) definido por um identificador único em toda a rede que estabelece
a prioridade da mensagem, facto muito importante na arbitragem do acesso
ao bus quando mais do que uma estação tenta aceder ao mesmo tempo.

Se o CPU de uma determinada estação decide enviar uma mensagem a uma ou


mais estações, tudo o que tem que fazer é facultar ao seu chip CAN os
dados a serem transmitidos e os seus identificadores. Assim, a mensagem
é construída e enviada pelo chip CAN logo que o chip tenha a rede
alocada. Em seguida, todas as outras estações da rede tornam-se
receptoras da mensagem. Cada estação da rede depois de ter recebido a
mensagem correcta, efectua um teste de aceitação de modo a verificar se
os dados recebidos são relevantes para si. Se estes dados forem
relevantes para a estação, são processados, caso contrário, descartados.

Em função deste esquema de endereçamento orientado ao conteúdo consegue-


se uma maior flexibilidade, sendo bastante simples adicionar ou retirar
estações da rede sem qualquer alteração física ou conceptual.

5.2 Arbitragem Não Destrutiva dos Bits

Para se conseguir processar dados em tempo-real é necessário que a troca


de mensagens se faça rapidamente. Isto não requer somente uma
transferência de dados da ordem do 1Mbit/s, mas também que a alocação da
rede seja feita de uma forma rápida e eficaz, especialmente quando
existe mais do que uma estação a tentar enviar mensagens ao mesmo tempo.

No processamento em tempo real, a urgência das mensagens a serem


trocadas pode diferir grandemente, pois em qualquer sistema existem
parâmetros que variam mais rapidamente que outros, como por exemplo as
rotações por minuto (que variam muito mais rapidamente que a temperatura
do motor). Assim, é mais provável que os parâmetros que têm mais
oscilações sejam transmitidos com mais frequência. Como tal, é
imperativo que também tenham maior prioridade. As prioridades são

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 7 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

definidas durante a especificação do sistema e não podem ser alteradas


dinamicamente. São escritas sob a forma de valor binário, onde o menor
valor corresponde à maior prioridade.

Os conflitos no acesso à rede são resolvidos através da arbitragem bit a


bit dos identificadores das mensagens. Cada estação observa bit a bit a
rede utilizando o mecanismo "wired and", em que o estado dominante (0
lógico) se sobrepõe ao estado recessivo (1 lógico). A competição pela
alocação da rede é perdida por todas as estações que queiram enviar um
bit recessivo, em favor das que queiram transmitir um bit dominante.

De referir ainda que todas as estações perdedoras se tornam


imediatamente receptoras da mensagem com maior prioridade, e não fazem
mais nenhuma tentativa enquanto a rede não estiver livre. O método
utilizado na arbitragem é baseado no CSMA/CD, mas com a capacidade de
não destruir a mensagem a enviar sempre que se verifica uma colisão. Só
assim se consegue que o sistema tenha um comportamento determinístico, e
se atinjam velocidades que permitam atingir o tempo real.

Como conclusão pode-se dizer que o CAN implementa uma alocação da rede
dependente do tráfico que permite, através duma política de acesso não
destrutiva e de um controlo de acesso concebido de modo descentralizado,
para atingir grandes taxas de transmissão com a menor utilização
possível da rede. A eficiência do algoritmo de arbitragem aumenta pelo
facto da rede só ser utilizada por estações com mensagens pendentes.

Todas as mensagens são transmitidas seguindo a sua importância, o que se


torna bastante relevante em situações de sobrecarga do sistema. É ainda

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 8 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

possível garantir tempos individuais de latência bastante curtos em


sistemas de tempo-real.

5.3 Robustez

A rede CAN pode funcionar em condições extremamente adversas, e os


mecanismos de detecção de erros extremamente completos garantem que os
erros, por ínfimos que sejam, que ocorram durante a transmissão sejam
detectados. Assim a rede continua operacional mesmo nas seguintes
situações:

• Um dos os condutores partidos, uma vez que pode utilizar somente


um dos condutores para efectuar a comunicação, deixando no
entanto de fazer a verificação bit a bit.

• Um dos condutores curto-circuitado à fase, pode utilizar somente


um dos condutores, análogo à situação anterior.

• Um dos condutores curto-circuitado ao neutro, pode utilizar


somente um dos condutores, análogo a ambas as situações
anteriores.

• Os dois condutores curto-circuitados entre si, neste caso a rede


funciona parcialmente, uma vez que fica dividida (pelo curto
circuito) em duas sub-redes podendo somente as estações de uma
sub-rede comunicar com as estações dessa subrede.

6. A Camada Física

A camada física é responsável pela transferência de bits entre os


diferentes nós da rede, define os níveis eléctricos, o esquema de
sincronização a impedância do cabo e a codificação.

A velocidade máxima de uma rede CAN é de 1Mbit/segundo, com um cabo com


comprimento máximo de 40 metros, porque o esquema de arbitragem
necessita que a onda se propague até ao nó mais remoto e volte antes de
ser amostrada. Funciona de um modo quase estacionário, isto é, na
transmissão de cada bit é dado tempo suficiente ao sinal para
estabilizar antes de ser amostrado, amostragem essa feita quase em

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 9 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

simultâneo por todas as estações.

Outros valores máximos para o comprimento dos cabos são:

• 100 metros a 500 kbits/segundo

• 200 metros a 250 kbits/segundo

• 500 metros a 125 kbits/segundo

• 6 quilómetros a 10 kbits/segundo

6.1 Algoritmo de Codificação do Bit

A rede CAN utiliza na comunicação de dados o algoritmo de codificação


"Non Return to Zero-(NRZ)" com "bit-stuffing", de modo a conseguir
mensagens mais compactas com um número mínimo de transições. É utilizado
um mecanismo chamado "bit-stuffing" que proporciona mudanças de estado
adicionais com o propósito de sincronização. Sempre que ocorrem 5 bits
seguidos com o mesmo estado, é um bit extra que produz uma transição.

6.2 Bus Físico

O bus é composto por dois cabos, habitualmente utilizado par entrançado,


mas também podendo ser utilizado o par liso (fio de telefone), apesar de
gerar mais ruído e ser mais susceptível a fontes externas de ruído.

6.3 A ligação física do CAN

De modo a atingir ritmos da ordem de 1Mbits/seg. é necessário que a


transição entre os níveis lógicos "0" e "1" seja quase vertical, o que
só pode ser conseguido usando dispositivos com alguma potência. Várias
combinações de dispositivos são possíveis, no entanto, os fabricantes do
grupo CiA e a norma ISO 11898 aconselham a seguinte especificação.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 10 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

6.4 ligadores CAN

Não existe qualquer norma que classifique os ligadores CAN, assim fica a
cargo das camadas mais altas do protocolo escolher o mais apropriado de
acordo com as suas especificações. Os ligadores mais usados são:

SUB D de 9 pinos, proposto pela CiA

Mini-C de 5-pinos, usado pela DeviceNet e

pelo ligador alemão SDS de 6-pinos, proposto pelo CANHUG

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 11 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

7. Formato das Tramas CAN

O CAN utiliza pequenas mensagens (tramas) com um máximo de dados de 94


bits. Não tem qualquer endereço explícito nas mensagens, sendo através
do seu conteúdo que a estação receptora reconhece a mensagem. Este
mecanismo denomina-se de endereçamento orientado ao conteúdo.

O Can suporta dois tipos de tramas de Mensagens:

• O formato standard (versão 2.0A)

• O formato estendido (versão 2.0B)

Quase todos os controladores transmitem e recebem somente mensagens do


tipo 2.0A, no entanto existem alguns (conhecidos como 2.0B passivo) que
recebem mensagens 2.0B e se limitam a ignorá-las. Todos os controladores
2.0B podem receber e enviar mensagens 2.0A e 2.0B.

7.1 Formato Standard 2.0A

O formato da trama de mensagens standard é composto por sete campos


principais. Uma mensagem do tipo standard começa com o campo início de
trama, um bit dominante (0 lógico) que identifica o início da trama
seguido pelo campo de arbitragem que contém o identificador de 11 bits e
o bit RTR (pedido de transmissão remota), que indica se é uma trama
de dados (se o bit for dominante), ou uma trama de pedido (trama remota,
se o bit for recessivo). Uma trama remota é emitida sempre que um nó
necessita de informação de outro, não contendo qualquer informação no
campo de dados.

O campo de controlo contém o bit IDE (identificador de extensão), que


indica se a trama tem o formato standard (dominante), ou o formato
estendido (recessivo), seguido de um bit reservado para futuras
extensões do formato. Os últimos 4 bits, DLC(tamanho do dados), indicam
o número de bytes no campo de dados.

O campo de dados contém a informação propriamente dita e varia de

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 12 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

tamanho entre 0 e 8 bytes, é seguido pelo campo de CRC. Este campo tem
um tamanho de 15 bits e é usado par detecção de erros. O campo ACK é
constituído por dois bits. O primeiro bit é transmitido com o valor
recessivo, e o subsequentemente com o valor dominante por todos os nós
que receberam a mensagem correctamente, independentemente do resultado
do teste de aceitação. O fim da mensagem é indicado pelo campo EOF que
consiste em sete bits recessivos.

No final de cada trama são enviados 3 bits recessivos, designados


intermissão, de modo a separar duas tramas consecutivas, se nenhuma
estação quiser aceder à rede,ela fica inactiva.

7.2 Formato estendido 2.0B

O formato de tramas estendido proporciona identificadores de 29 bits em


oposição aos 11 bits do formato standard. Este novo identificador é
constituído pelos 11 bits já existentes (identificador base), seguido de
uma extensão de 18 bits (extensão do identificador), permitindo assim, o
protocolo CAN com a coexistência dos dois formatos.

A distinção entre os dois formatos é conseguida usando o bit IDE que é


transmitido dominante no caso da trama ter o formato standard e
recessivo se a trama for do tipo estendida. O bit RTR é substituído pelo
bit SRR, sempre transmitido com o valor recessivo de modo a assegurar a
prioridade das tramas standard no caso da arbitragem entre duas
tramas de formato diferente e com o mesmo identificador base.

Ao contrário da versão 2.0A, na versão 2.0B o bit IDE é seguido pelo


identificador de extensão de 18 bits, pelo bit RTR e por um bit
reservado r1. Todos os campos seguintes são idênticos aos do da versão
2.0A.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 13 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

7.3 Compatibilidade entre 2.0A e 2.0B

O Protocolo CAN existe em duas versões, CAN 1.0 e CAN 2.0, O CAN 2.0 é
completamente compatível com a versão 1.0. A versão 2.0 tem duas
variantes, a 2.0A (standard) e a 2.0B (extensão). Tanto na versão 1.0
como na 2.0A os identificadores têm 11 bits de comprimento, e na versão
2.0B podem ter tanto identificadores de 11 bits como identificadores de
29 bits. Por forma a manter a compatibilidade com as versões anteriores,
o 2.0B pode ser tanto do tipo passivo como activo.

A versão 2.0B passiva ignora todas as tramas do tipo estendido (com 29


bits de identificador ). Se for activa, permite o envio e recepção de
qualquer mensagem estendida, existindo algumas regras de
compatibilidade:

• Os controladores CAN do tipo 2.0B activo podem enviar e receber


tanto tramas com o formato standard como com o formato
estendido.

• Os controladores CAN 2.0B passivos enviam e recebem tramas


standard, ignorando as estendidas.

• Os controladores CAN 1.0 geram erros sempre que recebam uma


trama com formato estendido.

8. Sincronização e Tempo de Bit na Rede CAN

8.1 Tempo de Bit

Definido na norma ISO 11898, o tempo nominal de cada bit de uma mensagem
é composto por 4 segmentos de tempo não sobrepostos, como o apresentado

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 14 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

na figura abaixo.

Segmentos do tempo de bit

Sync-seg é o segmento usado para fazer a sincronização dos nós da rede.


É esperada uma transição de recessivo para dominante durante este
segmento. O Prop-seg é um período de tempo usado para compensar o atraso
resultante do meio físico da rede. O Phase-seg1 é um segmento buffer
que pode ser alongado durante a re-sincronização, de modo a compensar o
impulso do oscilador e a diferença de fase positiva entre os osciladores
do transmissor e do receptor.

O Phase-seg2 é outro segmento de buffer que pode ser encurtado durante a


resincronização de modo a compensar os erros de fase negativa e o
impulso do oscilador.

O ponto de amostragem (sample) é ocorre sempre no final do segmento


phase-seg1, sendo neste momento lida rede e interpretado o valor do bit
corrente.

Quer seja a transmitir ou a receber, todos os nós têm o mesmo tempo de


bit nominal, o tempo de cada bit é programado em cada nó da rede e é
calculado em função do oscilador local de cada nó (valor que é
introduzido no registo BRP do controlador de cada nó) e do número de
"time quanta" por bit.

O registo BRP é um dos requisitos da norma ISO 11898, e tem que ser
programado pelo utilizador com um valor inteiro entre 1 e 32.

Ao programarmos registos BRP individuais e o "time quanta" por bit com


os valores correctos, podemos ter nós com osciladores a operar com
frequências diferentes, a funcionarem todos com o mesmo tempo de bit
nominal.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 15 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

Cada um dos 4 segmentos de tempo de um bit tem comprimento de um, ou


mais "time quanta|, pois a especificação da Bosch CAN2 refere:

• Sync-seg é sempre programado com um "time quanta".

• Prop-seg é programado com um valor entre 1 e 8.

• Phase-seg1 é programado com um valor entre 1 e 8.

• Phase-seg2 é programado com o valor máximo entre Phase-seg1 e o


tempo de processamento da informação.

8.2 Sincronização

Quando um qualquer nó recebe uma trama de dados, é necessário que o


receptor se sincronize com o emissor. Como não existe nenhum impulso de
clock explícito que o CAN possa usar como referência, são utilizados
dois mecanismos para manter a sincronização:

Sincronização Dura - Ocorre dentro de cada controlador quando este está


em modo de recepção (e é detectada uma transição, de recessivo para
dominante - falha no campo de SOF).

Re-sincronização - de modo a compensar o impulso do oscilador e as


diferenças de fase entre o transmissor e o receptor, a re-sincronização
aumenta ou diminui automaticamente o tamanho do tempo de bit, dependendo
de onde ocorre a transição recessivo-dominante. O tamanho máximo que o
tempo de bit pode ser alargado ou encurtado é definido pelo "time
quanta", também conhecido como largura do salto de sincronização - SJW.

Se a transição ocorrer tardiamente, isto é, se ocorrer depois do Sync-


seg e antes do ponto de amostragem, então o Phase -seg1 do bit é
alargado tal como demonstrado na figura seguinte.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 16 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

Alargamento do tempo de bit

Se a transição ocorrer demasiado cedo, isto é, se ocorrer durante o


Phase-seg2 do bit, o phase-seg2 do bit corrente passa a ser encurtado
tal como se demonstra na figura seguinte.

Encurtamento do tempo de bit

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 17 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

9. Erros

9.1. Detecção de Erros

O tratamento dos erros foi implementado dentro do protocolo CAN e é de


grande importância para a performance final da rede. O objectivo do
tratamento dos erros é simplesmente a detecção de erros possíveis de
ocorrer nas mensagens que aparecem na rede, de modo a que o nó
transmissor possa retransmitir a mensagem corrigida. Qualquer
controlador presente na rede tenta encontrar erros na mensagem. Se for
descoberto algum erro, o nó que o encontrou começa a transmitir uma
trama de erro, destruindo o tráfego existente na rede. Os outros nós,
por sua vez, vão detectar o erro causado pela trama de erro e tomam a
acção correcta, isto é, ignoram a mensagem corrente.

A rede CAN tem 5 mecanismos de detecção de erros, 3 ao nível das


mensagens e 2 ao nível do bit.

• Teste de redundância cíclico (CRC) - o CRC protege a informação


da trama acrescentando-lhe bits redundantes no final da
transmissão, exactamente 15 bits.

• Teste de Trama - existem certos bits com valores pré-definidos


que têm que ser transmitidos em certos pontos de uma mensagem
CAN. Este mecanismo verifica se a estrutura da trama a ser
transmitida está correcta, efectuando comparações entre os
campos da trama e o formato fixo das mensagens CAN. Este tipo de
erros são designados de erros de formato.

• Erros de confirmação - O protocolo CAN não utiliza mensagens de


confirmação. Em vez disso, assinala os erros que ocorrem. Assim,
as tramas recebidas correctamente são confirmadas por todos os
nós que as receberam através de uma confirmação positiva.
Nenhuma estação modifica o valor recessivo do bit de ACK. No
caso de o transmissor não receber nenhuma confirmação, é gerado
um erro que pode ser devido a: os nós receptores terem
identificado um erro, ao campo ACK ter sido corrompido, ou ao
facto de não existirem quaisquer outras estações na rede.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 18 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

• Erros de monitorização - A capacidade do transmissor detectar


erros é baseada na monitorização da rede. Cada nó ao transmitir
um bit observa também o nível da rede de modo a detectar
diferenças entre o valor emitido e o valor recebido. Isto
permite uma detecção segura de todos os erros globais e locais
ao transmissor.

• Erros de bit stuffing - A codificação individual dos bit é


testada ao nível do bit. A representação escolhida pelo CAN
(codificação NRZ) garante a máxima eficiência na codificação dos
bits, sendo as transições de sincronização geradas através da
introdução de um bit suplementar, a seguir a 5 bits consecutivos
(todos do mesmo valor) com o valor complementar ao do conjunto
dos bits.

Se um, ou mais, erros forem descobertos por pelo menos uma estação
usando os mecanismos acima descritos, a transmissão actual é abortada e
é enviada uma "error flag". Isto impede que outras estações aceitem uma
mensagem errada e garante a consistência dos dados ao longo de toda a
rede.

Depois da transmissão de uma mensagem errada ter sido abortada, o


emissor tenta re-transmitir automaticamente a mensagem. No entanto, pode
haver competição pela alocação da rede. Como regra geral, a emissão
começa 23 períodos de bit depois da detecção.

Os mecanismos atrás descritos apesar de eficientes e correctos, podem no


entanto, no caso de uma estação se encontrar avariada, levar à
degradação do sistema, abortando mensagens correctas e bloqueando o
funcionamento da rede. Assim foram implementados novos mecanismos que
permitem distinguir entre erros esporádicos e erros permanentes, e a
localização da estação avariada (confinamento de erros). Isto é
conseguido com base em avaliações estatísticas da situação das várias
estações

9.2. Confinamento de Erros

O confinamento de erros é um mecanismo, até agora unicamente utilizado


no CAN, que permite discriminar erros temporários dos erros permanentes.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 19 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

Os erros temporários podem ser causados por exemplo por fontes de tensão
externas e picos de corrente. Os erros permanentes têm causa mais
provável nas más ligações, nos cabos partidos, e nos transmissores
ou receptores deficientes.

Cada nó mantém 2 contadores de erros: o contador de erros ocorridos


durante uma transmissão e o contador de erros ocorridos durante uma
recepção. Por cada erro ocorrido durante a recepção é incrementada uma
unidade ao contador de erros de recepção, no entanto para os erros
ocorridos durante a transmissão, são incrementadas 8 unidades ao
contador de erros de transmissão, isto porque é mais provável ocorrer um
erro na estação que transmite a mensagem do que nas estações receptoras.

Os nós funcionam num modo habitualmente conhecido como "error active".


Nestas condições, os nós estão completamente funcionais, situando-se o
valor de qualquer um dos contadores, obrigatoriamente abaixo das 128
unidades.

Se qualquer um dos contadores exceder as 127 unidades, entra no modo


"error passive" - estado de alerta. Os nós no modo "error passive" podem
ainda transmitir e receber mensagens, sendo, no entanto restringido o
modo como estas fazem a sinalização dos erros que detectam, uma vez que
também é possível que sejam elas próprias a origem do problema. Se
mensagens correctas subsequentes fizerem o contador baixar das 128
unidades, o nó passa de novo para o modo "error active".

Se uma condição de erro persistir de modo a que o contador de erros de


transmissão atinja o valor de 255 unidades, a estação entra no modo "bus
off", isto é, o dispositivo cessa voluntariamente a sua actividade,
sendo mantido o restante sistema em funcionamento, embora com alguma
degradação decorrente da indisponibilidade do nó.

10. Arquitectura dos Controladores CAN

A comunicação é igual em qualquer implementação do protocolo CAN, não


havendo problemas de compatibilidade. No entanto, pode ser feita uma
classificação no que diz respeito à capacidade que cada controlador tem
de lidar com a recepção e envio de mensagens, sem intervenção do
microcontrolador. Todos os controladores CAN têm uma estrutura comum,

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 20 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

consistindo principalmente num módulo que implementa o protocolo CAN e


noutro que consiste num bloco de memória com funções de buffer.

O controlador CAN é responsável por tratar todas as mensagens que recebe


da rede. Isto inclui tarefas como sincronização, tratamento de erros,
arbitragem, e conversões série/paralelo e paralelo/série.

O buffer fica situado entre o controlador CAN e o microcontrolador


contém um segmento de controlo e um segmento de mensagens. No segmento
de controlo são trocados sinais entre o CPU e o controlador CAN (como
sejam o estado actual, o controlo e o comando). O segmento de mensagens
contém um filtro de aceitação programável de modo a poder ser programado
qual o tipo de mensagens que devem ser aceites. A grande diferença entre
as várias implementações de controladores CAN reside na quantidade dos
buffers e na complexidade dos filtros de aceitação.

10.1 Controladores com Buffer Intermédio

Os controladores CAN com buffer intermédio (anteriormente conhecidos


como chips BasicCAN) têm implementado em hardware a lógica necessária
para criar e verificar um fluxo de dados de acordo com o protocolo CAN.
No entanto, a gestão dos conjuntos de dados a serem enviados e a
filtragem dos dados é feita de um modo muito limitado pelo controlador
CAN, deixando algumas das funções para o CPU.

Tipicamente os controladores têm 2 buffers de recepção e um de


transmissão. Um código de 8 bits e registos máscara permitem efectuar
uma filtragem de aceitação bastante limitada. Se forem necessários mais
do que 8 bits para diferenciar as mensagens, então o microcontrolador
que segue o controlador CAN no circuito deve fazer uma nova filtragem de
aceitação por software.

Os controladores CAN com buffer intermédio podem sobrecarregar o


microcontrolador com a filtragem de aceitação, mas necessitam de uma
área muito menor, podendo por isso ser produzidos em grande escala e a
baixo custo.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 21 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

10.2 Controladores com Armazenamento de Objectos

Os objectos do CAN consistem principalmente em 3 componentes:


identificador, comprimento dos dados e os dados propriamente ditos.

Os controladores CAN com armazenamento de objectos (anteriormente


conhecidos como FullCAN) funcionam como os controladores com buffer
intermédio, podendo no entanto fazer a gestão de certos objectos. Em
situações em que existem vários pedidos em simultâneo, eles decidem qual
o primeiro objecto a ser transmitido, fazendo também a filtragem de
aceitação dos objectos recebidos.

A interface com o microcontrolador faz-se através de um bloco RAM, Os


dados a serem transmitidos são escritos na zona de memória
correspondente, e os dados a serem recebidos são lidos da zona de
memória respectiva, tendo o microcontrolador que fazer a gestão de
somente alguns bits.

Os controladores CAN com armazenamento de objectos foram desenhados de


modo a tirarem o máximo de carga possível do microcontrolador, ficando
este livre para outras funções. No entanto o tamanho destes chips é
maior, ficando por isso também mais caros.

10.3 Controladores com Funções I/O

Tal como existem controladores CAN que suportam todas as funcionalidades


do protocolo CAN, existem também chips que não necessitam de um
microcontrolador, este tipo de chips chama-se SLIO (Serial Link I/O) e
são escravos CAN, tendo por isso que ser gerido por um mestre CAN.

10.4 Controladores com Periféricos Stand-Alone e Periféricos


Integrados

Existem algumas trocas entre os periféricos stand-alone e os periféricos


integrados. Os periféricos integrados são mais baratos e mais pequenos.
Apesar do custo de desenvolvimento de software ser idêntico em qualquer

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 22 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

uma das soluções, a capacidade de reutilização do software pode diferir.

Os periféricos Stand-Alone foram desenhados de modo a poderem interagir


com diferentes CPUs, permitindo assim que o software desenvolvido para
um sistema possa ser reutilizado noutro. O software desenvolvido para um
periférico integrado pode não funcionar noutro sistema.

Os periféricos integrados sobrecarregam menos o CPU que os stand-alone.


O factor mais crítico é a quantidade de tempo despendido em operações de
leitura e escrita com os periféricos CAN. No caso dos controladores
integrados, os registos do CAN são endereçados usando endereçamento
interno, desenhado para acesso a grande velocidade. No caso dos
controladores stand-alone, o CPU utiliza o endereçamento externo ou a
porta série (o que é evidentemente mais lento). A sobrecarga de um
periférico integrado sobre o CPU é aproximadamente metade da de um
periférico stand-alone.

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 23 -
Escola Superior de Tecnologia de Viseu
Departa me n t o de Engenh a ria Electrotécnica

Sebenta de Redes Locais Para Aplicações Industriais


O Protocolo CAN
Licenciatu r a Bietá pic a em Engen h a ri a Electrotécnica

Notas:

Engº Bruno Filipe Marques, Dezembro 2004 - bmarq@elect.estv.ipv.pt


- 24 -

Você também pode gostar