Professional Documents
Culture Documents
BOSCH
Especificação da CAN
Versão 2.0
Thi d t td ith FM k 4 0 4
Machine Translated by Google
setembro de 1991
Considerando
A aceitação e introdução da comunicação serial em mais e mais aplicações levou a exigências de que a
atribuição de identificadores de mensagem para funções de comunicação seja padronizada para certas
aplicações. Estas aplicações podem ser realizadas com CAN mais confortavelmente, se a faixa de endereço
originalmente definida por 11 bits de identificação for ampliada. Portanto, um segundo formato de mensagem
('formato estendido') é introduzido que fornece uma
faixa de endereço maior definida por 29 bits. Isso aliviará o projetista do sistema de compromissos com
relação à definição de esquemas de nomenclatura bem estruturados. Os usuários do CAN que não precisam
da faixa de identificadores oferecida pelo formato estendido, podem contar com a faixa de identificadores
convencional de 11 bits ('formato padrão') mais adiante. Neste caso podem utilizar as implementações CAN
já existentes no mercado, ou novos controladores que implementem ambos os formatos.
Para distinguir o formato padrão do estendido, é usado o primeiro bit reservado do formato de mensagem
CAN, conforme definido na Especificação CAN 1.2. Isso é feito de forma que o formato da mensagem na
Especificação CAN 1.2 seja equivalente ao formato padrão e, portanto, ainda seja válido. Além disso, o
formato estendido foi definido para que mensagens em formato padrão e formato estendido possam coexistir
na mesma rede.
• Parte A descrevendo o formato da mensagem CAN conforme definido na Especificação CAN 1.2;
Para ser compatível com esta Especificação CAN 2.0, é necessário que uma implementação CAN seja
compatível com a Parte A ou a Parte B.
Observação
As implementações CAN projetadas de acordo com a parte A desta ou de acordo com as Especificações
CAN anteriores e as implementações CAN projetadas de acordo com a parte B desta especificação podem
se comunicar entre si, desde que não seja feito uso do formato estendido.
PARTE A
Machine Translated by Google
setembro de 1991
BOSCH Conteúdo
Parte A - página 3
1 INTRODUÇÃO................................................. .............................4
5 CODIFICAÇÃO................................................. ......................................22
setembro de 1991
BOSCH Introdução
Parte A - página 4
1. INTRODUÇÃO
A Controller Area Network (CAN) é um protocolo de comunicação serial que suporta eficientemente o controle
distribuído em tempo real com um nível muito alto de segurança.
Seu domínio de aplicação varia de redes de alta velocidade a cabeamento multiplex de baixo custo.
Na eletrônica automotiva, unidades de controle do motor, sensores, sistemas antiderrapantes, etc. são
conectados usando CAN com taxas de bits de até 1 Mbit/s. Ao mesmo tempo, é rentável incorporar componentes
eletrônicos da carroceria do veículo, por exemplo, conjuntos de lâmpadas, vidros elétricos, etc., para substituir
o chicote de fiação necessário.
A intenção desta especificação é obter compatibilidade entre quaisquer duas implementações CAN. A
compatibilidade, no entanto, tem aspectos diferentes em relação, por exemplo, às características elétricas e à
interpretação dos dados a serem transferidos. Para obter transparência de projeto e flexibilidade de
implementação, o CAN foi subdividido em diferentes camadas.
• a camada física
• decidir quais mensagens recebidas pela camada de transferência serão realmente usadas,
O escopo da camada física é a transferência real dos bits entre os diferentes nós em relação a todas as
propriedades elétricas. Dentro de uma rede, a camada física, é claro, deve ser a mesma para todos os nós.
Pode haver, no entanto, muita liberdade na seleção de uma camada física.
O escopo desta especificação é definir a camada de transferência e as consequências do protocolo CAN nas
camadas vizinhas.
setembro de 1991
2 CONCEITOS BÁSICOS
CAN tem as seguintes propriedades
• priorização de mensagens
• flexibilidade de configuração
• multimestre
• retransmissão automática de mensagens corrompidas assim que o barramento estiver ocioso novamente
Camada de aplicação
Camada de objeto
- Filtragem de mensagens
- Tratamento de mensagens e status
Camada de transferência
- Confinamento de Falhas
- Detecção e Sinalização de Erros
- Validação de mensagem
- Reconhecimento
- Arbitragem
- Enquadramento de mensagens
- Taxa de transferência e tempo
Camada física
setembro de 1991
• A Camada Física define como os sinais são realmente transmitidos. Dentro disto
especificação a camada física não é definida de forma a permitir que as implementações do meio de transmissão
e nível de sinal sejam otimizadas para sua aplicação.
• A camada de objeto se preocupa com a filtragem de mensagens, bem como com o status e
tratamento de mensagens.
O escopo desta especificação é definir a camada de transferência e as consequências do protocolo CAN nas camadas
vizinhas.
Mensagens
As informações no barramento são enviadas em mensagens de formato fixo de tamanhos diferentes, mas limitados (consulte
a seção 3: Transferência de mensagens). Quando o barramento está livre, qualquer unidade conectada pode começar a
transmitir uma nova mensagem.
Roteamento de informações
Em sistemas CAN, um nó CAN não faz uso de nenhuma informação sobre a configuração do sistema (por exemplo,
endereços de estação). Isso tem várias consequências importantes.
Flexibilidade do sistema: Os nós podem ser adicionados à rede CAN sem a necessidade de qualquer alteração no
software ou hardware de qualquer nó e camada de aplicação.
Multicast: Como consequência do conceito de FILTRAGEM DE MENSAGENS, qualquer número de nós pode
receber e agir simultaneamente sobre a mesma mensagem.
Consistência de Dados: Dentro de uma rede CAN é garantido que uma mensagem seja aceita simultaneamente por
todos os nós ou por nenhum nó. Assim, a consistência dos dados de um sistema é alcançada pelos conceitos de
multicast e pelo tratamento de erros.
setembro de 1991
Taxa de
bits A velocidade do CAN pode ser diferente em diferentes sistemas. No entanto, em um determinado sistema, a taxa de bits é
uniforme e fixa.
Prioridades
Multimaster
Quando o barramento está livre qualquer unidade pode começar a transmitir uma mensagem. A unidade com a mensagem de maior
prioridade a ser transmitida ganha acesso ao barramento.
Arbitragem
Sempre que o barramento estiver livre, qualquer unidade pode começar a transmitir uma mensagem. Se 2 ou mais unidades
começarem a transmitir mensagens ao mesmo tempo, o conflito de acesso ao barramento é resolvido por arbitragem bit a bit usando
o IDENTIFICADOR. O mecanismo de arbitragem garante que nem informação nem tempo sejam perdidos. Se um DATA FRAME e
um REMOTE FRAME com o mesmo IDENTIFICADOR forem iniciados ao mesmo tempo, o DATA FRAME prevalecerá sobre o
REMOTE FRAME. Durante a arbitragem, cada transmissor compara o nível do bit transmitido com o nível monitorado no barramento.
Se esses níveis forem iguais, a unidade pode continuar a enviar. Quando um nível 'recessivo' é enviado e um nível 'dominante' é
monitorado (ver Valores do Barramento), a unidade perdeu a arbitragem e deve retirar sem enviar mais um bit.
Segurança
Para alcançar a máxima segurança na transferência de dados, medidas poderosas para detecção de erros, sinalização e
autoverificação são implementadas em cada nodo CAN.
Detecção de erro
Para detectar erros, foram tomadas as seguintes medidas:
- Monitoramento (os transmissores comparam os níveis de bits a serem transmitidos com os níveis de bits detectados no
barramento)
- Verificação de redundância Cíclica
- Recheio de Pedaços
setembro de 1991
Probabilidade de erro residual total para mensagens corrompidas não detectadas: menor que
*
taxa de erro de mensagem 4.7 * 10-11.
Os nós CAN de
confinamento de falhas são capazes de distinguir distúrbios curtos de falhas permanentes.
Os nós defeituosos são desligados.
Conexões O
link de comunicação serial CAN é um barramento ao qual várias unidades podem ser conectadas. Este número
não tem limite teórico. Praticamente o número total de unidades será limitado por tempos de atraso e/ou cargas
elétricas na linha de ônibus.
Canal Único O
barramento consiste em um único canal que transporta bits. A partir desses dados, as informações de
ressincronização podem ser derivadas. A forma como este canal é implementado não é fixa nesta especificação.
Por exemplo, fio único (mais terra), dois fios diferenciais, fibras ópticas, etc.
Valores do
barramento O barramento pode ter um de dois valores lógicos complementares: 'dominante' ou 'recessivo'.
Durante a transmissão simultânea de bits 'dominantes' e 'recessivos', o valor do barramento resultante será
'dominante'. Por exemplo, no caso de uma implementação com fio AND do barramento, o nível 'dominante' seria
representado por um '0' lógico e o nível 'recessivo' por um '1' lógico. Os estados físicos (por exemplo, tensão
elétrica, luz) que representam os níveis lógicos não são fornecidos nesta especificação.
setembro de 1991
Reconhecimento
Todos os receptores verificam a consistência da mensagem que está sendo recebida e confirmam uma
mensagem consistente e sinalizam uma mensagem inconsistente.
Modo de espera/despertar
Para reduzir o consumo de energia do sistema, um dispositivo CAN pode ser colocado no modo de
espera sem nenhuma atividade interna e com os drivers de barramento desconectados. O modo de
hibernação termina com um despertar por qualquer atividade do barramento ou por condições internas
do sistema. Ao acordar, a atividade interna é reiniciada, embora a camada de transferência esteja
esperando que o oscilador do sistema se estabilize e aguarde até que ele se sincronize com a atividade
do barramento (verificando onze bits 'recessivos' consecutivos), antes que os drivers do barramento
sejam ajustados para "on-bus" novamente.
Para acordar outros nós do sistema, que estão em modo de hibernação, pode ser usada uma mensagem
especial de despertar com o IDENTIFICADOR mais baixo possível (rrr rrrd rrrr; r = 'recessivo' d =
'dominante') .
setembro de 1991
3 TRANSFERÊNCIA DE MENSAGEM
DATA FRAMEs e REMOTE FRAMEs são separados dos quadros anteriores por um INTERFRAME SPACE.
Interquadro Interquadro
QUADRO DE DADOS
Espaço Espaço
ou
Sobrecarga
Quadro
início do quadro
Campo de Arbitragem
Campo de Controle
Campo de dados
Campo CRC
Campo ACK
Fim do Quadro
setembro de 1991
Uma estação só pode iniciar a transmissão quando o barramento estiver ocioso (consulte BUS IDLE). Todas as
estações devem sincronizar com a borda de ataque causada pelo INÍCIO DO QUADRO (consulte 'SINCRONIZAÇÃO
HARD') da estação que inicia a transmissão primeiro.
CAMPO DE ARBITRAGEM
O CAMPO DE ARBITRAGEM é composto pelo IDENTIFICADOR e pelo RTR-BIT.
bit RTR
identificador
IDENTIFICADOR
O comprimento do IDENTIFICADOR é de 11 bits. Esses bits são transmitidos na ordem de ID-10 a ID-0. O bit menos
significativo é ID-0. Os 7 bits mais significativos (ID-10 - ID-4) não devem ser todos 'recessivos'.
RTR BIT
BIT de solicitação de transmissão remota Em
DATA FRAMEs, o RTR BIT deve ser 'dominante'. Dentro de um REMOTE FRAME, o RTR BIT deve ser 'recessivo'.
CAMPO DE CONTROLE
O CAMPO DE CONTROLE consiste em seis bits. Inclui o DATA LENGTH CODE e dois bits reservados para
expansão futura. Os bits reservados devem ser enviados 'dominantes'.
Os receptores aceitam bits 'dominantes' e 'recessivos' em todas as combinações.
CÓDIGO DE COMPRIMENTO
DE DADOS O número de bytes no CAMPO DE DADOS é indicado pelo CÓDIGO DE COMPRIMENTO DE DADOS.
Este CÓDIGO DE COMPRIMENTO DE DADOS tem 4 bits de largura e é transmitido dentro do CAMPO DE CONTROLE.
setembro de 1991
ou
r1 r0 DLC3 DLC2 DLC1 DLC0 CRC
Campo
abreviaturas: d 'dominante' r
'recessivo'
bytes
DLC3 DLC2 DLC1 DLC0
0 d d d d
1 d d d r
2 d d r d
3 d d r r
4 d r d d
5 d r d r
6 d r r d
7 d r r r
8 r d d d
setembro de 1991
CAMPO DE
DADOS O CAMPO DE DADOS consiste nos dados a serem transferidos dentro de um QUADRO DE
DADOS. Pode conter de 0 a 8 bytes, cada um contendo 8 bits que são transferidos primeiro MSB.
CRC FIELD
contém a CRC SEQUENCE seguida por um CRC DELIMITER.
Ao controle
Campo
Delimitador CRC
Sequência CRC
SEQUÊNCIA CRC A
sequência de verificação de quadros é derivada de um código de redundância cíclica mais adequado para
quadros com contagens de bits menores que 127 bits (Código BCH).
Para realizar o cálculo do CRC, o polinômio a ser dividido é definido como o polinômio, cujos coeficientes
são dados pelo fluxo de bits descompactado que consiste em INÍCIO DO QUADRO, CAMPO DE
ARBITRAGEM, CAMPO DE CONTROLE, CAMPO DE DADOS (se presente) e, para os 15 coeficientes mais
baixos, por 0. Este polinômio é dividido (os coeficientes são calculados módulo-2) pelo polinômio gerador:
O restante desta divisão polinomial é a SEQUÊNCIA CRC transmitida pelo barramento. Para implementar
esta função, um registrador de deslocamento de 15 bits CRC_RG(14:0) pode ser usado. Se NXTBIT denota
o próximo bit do fluxo de bits, dado pela sequência de bits descarregada de START OF FRAME até o final
do DATA FIELD, a CRC SEQUENCE é calculada da seguinte forma:
setembro de 1991
SE CRCNXT ENTÃO
CRC_RG(14:0) = CRC_RG(14:0) EXOR (4599hex);
FIM SE
ATÉ (CRC SEQUENCE começa ou há uma condição de ERRO)
Após a transmissão/recepção do último bit do CAMPO DE DADOS, CRC_RG contém a sequência CRC.
DELIMITER CRC A
SEQUÊNCIA CRC é seguida pelo DELIMITER CRC, que consiste em um único bit 'recessivo'.
ACK FIELD O
ACK FIELD tem dois bits de comprimento e contém o ACK SLOT e o ACK DELIMITER.
No CAMPO ACK, a estação transmissora envia dois bits 'recessivos'.
Um RECEPTOR que recebeu uma mensagem válida corretamente, reporta isso ao TRANSMISSOR enviando
um bit 'dominante' durante o ACK SLOT (envia 'ACK').
Delimitador ACK
Slot ACK
ACK SLOT
Todas as estações que receberam a SEQUÊNCIA CRC correspondente relatam isso dentro do ACK SLOT
sobrescrevendo o bit 'recessivo' do TRANSMISSOR por um bit 'dominante'.
ACK DELIMITER O
ACK DELIMITER é o segundo bit do ACK FIELD e deve ser um bit 'recessivo'. Como consequência, o ACK
SLOT é cercado por dois bits 'recessivos' (CRC DELIMITER, ACK DELIMITER).
END OF FRAME
Cada DATA FRAME e REMOTE FRAME é delimitado por uma sequência de sinalizadores que consiste em
sete bits 'recessivos'.
setembro de 1991
Uma estação atuando como RECEPTOR para determinados dados pode iniciar a transmissão dos respectivos
dados por seu nó de origem enviando um REMOTE FRAME.
UM REMOTE FRAME é composto por seis campos de bits diferentes:
START OF FRAME, ARBITRATION FIELD, CONTROL FIELD, CRC FIELD, ACK FIELD, END OF FRAME.
Ao contrário dos DATA FRAMEs, o bit RTR dos REMOTE FRAMEs é 'recessivo'. Não há CAMPO DE
DADOS, independente dos valores do DATA LENGTH CODE que pode ser assinado qualquer valor dentro
da faixa admissível 0...8. O valor é o DATA LENGTH CODE do DATA FRAME correspondente.
ou
Sobrecarga
Quadro
início do quadro
Campo de Arbitragem
Campo de Controle
Campo CRC
Campo ACK
Fim do Quadro
A polaridade do bit RTR indica se um quadro transmitido é um DATA FRAME (bit RTR 'dominante') ou um
REMOTE FRAME (bit RTR 'recessivo').
setembro de 1991
O ERROR FRAME consiste em dois campos diferentes. O primeiro campo é dado pela superposição
de ERROR FLAGs provenientes de diferentes estações. O segundo campo seguinte é o DELIMITER
DE ERRO.
superposição de
Sinalizadores de erro Delimitador de erro
Para terminar um ERROR FRAME corretamente, um nó 'erro passivo' pode precisar que o barramento
esteja 'barramento ocioso' por pelo menos 3 tempos de bit (se houver um erro local em um receptor
'erro passivo'). Portanto, o barramento não deve ser carregado a 100%.
ERROR FLAG
Existem 2 formas de um ERROR FLAG: um ACTIVE ERROR FLAG e um PASSIVE ERROR FLAG.
2. O PASSIVE ERROR FLAG consiste em seis bits 'recessivos' consecutivos, a menos que
é substituído por bits 'dominantes' de outros nós.
Uma estação de 'erro ativo' que detecta uma condição de erro sinaliza isso pela transmissão de um
sinalizador de erro ativo. A forma do ERROR FLAG viola a lei do bit stuffing (ver CODING) aplicada a
todos os campos desde START OF FRAME até CRC DELIMITER ou destrói a forma fixa ACK FIELD
ou END OF FRAME field. Como consequência, todas as outras estações detectam uma condição de
erro e, por sua vez, iniciam a transmissão de um ERROR FLAG. Portanto, a sequência de bits
'dominantes' que podem ser monitorados no barramento resulta de uma superposição de diferentes
ERROR FLAGs transmitidos por estações individuais. O comprimento total desta sequência varia entre
um mínimo de seis e um máximo de doze bits.
Uma estação de 'erro passivo' detectando uma condição de erro tenta sinalizá-la pela transmissão de
um PASSIVE ERROR FLAG. A estação de 'erro passivo' espera por seis bits consecutivos
setembro de 1991
de polaridade igual, começando no início do PASSIVE ERROR FLAG. O PASSIVE ERROR FLAG é concluído
quando esses 6 bits iguais forem detectados.
DELIMITER DE ERRO O
DELIMITER DE ERRO consiste em oito bits 'recessivos'.
Após a transmissão de um ERROR FLAG, cada estação envia bits 'recessivos' e monitora o barramento até
detectar um bit 'recessivo'. Em seguida, ele começa a transmitir mais sete bits 'recessivos'.
O OVERLOAD FRAME contém os campos de dois bits OVERLOAD FLAG e OVERLOAD DELIMITER.
Existem dois tipos de condições de OVERLOAD, que levam à transmissão de um OVERLOAD FLAG:
O início de um OVERLOAD FRAME devido à condição OVERLOAD 1 só pode ser iniciado no primeiro tempo
de bit de uma INTERMISSÃO esperada, enquanto OVERLOAD FRAMEs devido à condição OVERLOAD 2
iniciam um bit após a detecção do bit 'dominante'.
Sobrecarga Sobrecarga
Bandeira Quadro
superposição de
Sinalizadores de sobrecarga Delimitador de sobrecarga
No máximo dois OVERLOAD FRAMEs podem ser gerados para atrasar o próximo DATA ou REMOTE FRAME.
setembro de 1991
OVERLOAD FLAG
consiste em seis bits 'dominantes'. A forma geral corresponde à do ACTIVE ERROR FLAG.
A forma do OVERLOAD FLAG destrói a forma fixa do campo INTERMISSÃO. Como consequência, todas
as outras estações também detectam uma condição de OVERLOAD e, por sua vez, iniciam a transmissão
de um OVERLOAD FLAG. (Caso haja um bit 'dominante' detectado durante o 3º bit de INTERMISSÃO
localmente em algum nó, os outros nós não interpretarão o OVERLOAD FLAG corretamente, mas
interpretarão o primeiro desses seis bits 'dominantes' como START OF FRAME. O sexto bit 'dominante'
viola a regra de preenchimento de bit causando uma condição de erro).
OVERLOAD DELIMITER
consiste em oito bits 'recessivos'.
DATA FRAMEs e REMOTE FRAMEs são separados dos frames anteriores, qualquer que seja seu tipo
(DATA FRAME, REMOTE FRAME, ERROR FRAME, OVERLOAD FRAME) por um campo de bit chamado
INTERFRAME SPACE. Em contraste, OVERLOAD FRAMEs e ERROR FRAMEs não são precedidos por
um INTERFRAME SPACE e múltiplos OVERLOAD FRAMEs não são separados por um INTERFRAME
SPACE.
O ESPAÇO INTERFRAME
contém os campos de bit INTERMISSÃO e BUS IDLE e, para estações 'erro passivo', que foram
TRANSMISSORES da mensagem anterior, SUSPENDER TRANSMISSÃO.
setembro de 1991
Para estações que não são 'erro passivo' ou foram RECEPTORES da mensagem anterior:
Ônibus ocioso
Suspender Transmissão
Intervalo
INTERMISSÃO
consiste em três bits 'recessivos'.
Durante o INTERMISSÃO, nenhuma estação pode iniciar a transmissão de um DATA FRAME ou REMOTE
FRAME. A única ação a ser tomada é sinalizar uma condição de SOBRECARGA.
BUS IDLE
O período de BUS IDLE pode ser de duração arbitrária. O barramento é reconhecido como livre e qualquer
estação que tenha algo a transmitir pode acessar o barramento. Uma mensagem, que está pendente para
transmissão durante a transmissão de outra mensagem, é iniciada no primeiro bit após a INTERMISSÃO.
SUSPENDER A TRANSMISSÃO
Após uma estação de 'erro passivo' ter transmitido uma mensagem, ela envia oito bits 'recessivos' após a
INTERMISSÃO, antes de começar a transmitir uma mensagem adicional ou reconhecer o barramento como
inativo. Se, entretanto, uma transmissão (causada por outra estação) começar, a estação se tornará receptora
desta mensagem.
setembro de 1991
BOSCH Transmissor-receptor
Parte A - página 20
TRANSMISSOR Uma
unidade que origina uma mensagem é denominada “TRANSMISSORA” dessa mensagem. A unidade permanece
TRANSMISSORA até que o barramento fique ocioso ou a unidade perca ARBITRAGEM.
RECEPTOR
Uma unidade é denominada “RECEPTORA” de uma mensagem, se não for EMISSORA dessa mensagem e o
barramento não estiver ocioso.
setembro de 1991
4 VALIDAÇÃO DA MENSAGEM
O ponto de tempo em que uma mensagem é considerada válida é diferente para o transmissor e para
os receptores da mensagem.
Transmissor:
A mensagem é válida para o transmissor, se não houver erro até o final de END OF FRAME. Se uma
mensagem for corrompida, a retransmissão seguirá automaticamente e de acordo com a priorização.
Para poder competir pelo acesso ao barramento com outras mensagens, a retransmissão deve
começar assim que o barramento estiver ocioso.
Receptores:
A mensagem é válida para os receptores, se não houver erro até o penúltimo bit de END OF FRAME.
setembro de 1991
BOSCH Codificação
Parte A - página 22
5 CODIFICAÇÃO
Os campos de bits restantes do DATA FRAME ou REMOTE FRAME (CRC DELIMITER, ACK FIELD e END
OF FRAME) são de forma fixa e não preenchidos. O ERROR FRAME e o OVERLOAD FRAME também
são de forma fixa e não codificados pelo método de preenchimento de bits.
O fluxo de bits em uma mensagem é codificado de acordo com o método Non-Return-to-Zero (NRZ). Isso
significa que durante o tempo total de bit, o nível de bit gerado é 'dominante' ou 'recessivo'.
setembro de 1991
6 TRATAMENTO DE ERROS
6.1 Detecção de Erros
• ERRO DE MATERIAL
Um STUFF ERROR deve ser detectado no tempo de bit do 6º nível de bit igual consecutivo em um
campo de mensagem que deve ser codificado pelo método de preenchimento de bit.
• CRC ERROR A
sequência CRC consiste no resultado do cálculo CRC pelo transmissor.
Os receptores calculam o CRC da mesma forma que o transmissor. Um ERRO CRC deve
ser detectado, se o resultado calculado não for o mesmo que o recebido na sequência CRC.
• ERRO DE FORMULÁRIO
Um ERRO DE FORMA deve ser detectado quando um campo de bit de forma fixa contém um
ou mais bits ilegais.
• ERRO DE RECONHECIMENTO
Um ACKNOWLEDGMENT ERROR deve ser detectado por um transmissor sempre que ele não
monitorar um bit 'dominante' durante o ACK SLOT.
setembro de 1991
7 CONFINAMENTO DE FALTA
Com relação ao confinamento de falta, uma unidade pode estar em um dos três estados:
• 'erro ativo'
• 'erro passivo'
• 'ônibus desligado'
Uma unidade 'error active' pode normalmente participar da comunicação de barramento e enviar um ACTIVE ERROR
FLAG quando um erro for detectado.
Uma unidade de 'erro passivo' não deve enviar um ACTIVE ERROR FLAG. Ele participa da comunicação do
barramento, mas quando um erro é detectado, apenas um PASSIVE ERROR FLAG é enviado. Também após uma
transmissão, uma unidade de 'erro passivo' aguardará antes de iniciar uma nova transmissão. (Veja SUSPENDER
TRANSMISSÃO)
Uma unidade 'bus off' não pode ter nenhuma influência no barramento. (Por exemplo, drivers de saída desligados.)
Para confinamento de falha, duas contagens são implementadas em cada unidade de barramento:
1. Quando um RECEIVER detecta um erro, o RECEIVE ERROR COUNT será aumentado em 1, exceto quando o
erro detectado for um BIT ERROR durante o envio de um ACTIVE ERROR FLAG ou OVERLOAD FLAG.
2. Quando um RECEPTOR detecta um bit 'dominante' como o primeiro bit após enviar um ERRO
FLAG o RECEIVE ERROR COUNT será aumentado em 8.
Exceção 1:
Se o TRANSMISSOR for 'erro passivo' e detectar um ACKNOWLEDGMENT
setembro de 1991
ERROR por não detectar um ACK 'dominante' e não detectar um bit 'dominante' ao enviar seu
PASSIVE ERROR FLAG.
Exceção 2: Se
o TRANSMISSOR enviar um ERROR FLAG porque ocorreu um STUFF ERROR durante a
ARBITRATION em que o STUFFBIT está localizado antes do bit RTR e deveria ter sido 'recessivo' e
foi enviado como 'recessivo', mas monitorado como 'dominante'.
6. Qualquer nó tolera até 7 bits 'dominantes' consecutivos após o envio de um sinalizador de erro ativo,
sinalizador de erro passivo ou sinalizador de sobrecarga. Após detectar o 14º bit 'dominante'
consecutivo (no caso de um ACTIVE ERROR FLAG ou OVERLOAD FLAG) ou após detectar o 8º bit
'dominante' consecutivo após um PASSIVE ERROR FLAG, e após cada sequência de oito bits
'dominantes' consecutivos adicionais cada TRANSMISSOR aumenta sua CONTAGEM DE ERROS
DE TRANSMISSÃO em 8 e cada RECEPTOR aumenta sua CONTAGEM DE ERROS DE
RECEBIMENTO em 8.
7. Após a transmissão bem-sucedida de uma mensagem (obtendo ACK e nenhum erro até que END OF
FRAME seja concluído), o TRANSMIT ERROR COUNT é reduzido em 1, a menos que já seja 0.
8. Após a recepção bem-sucedida de uma mensagem (recepção sem erro até o ACK SLOT e envio bem-
sucedido do bit ACK), o RECEIVE ERROR COUNT é diminuído em 1, se estiver entre 1 e 127. Se o
RECEIVE ERROR COUNT era 0, permanece 0 e, se for maior que 127, será definido para um valor
entre 119 e 127.
9. Um nó é 'erro passivo' quando o TRANSMIT ERROR COUNT é igual ou superior a 128, ou quando o
RECEIVE ERROR COUNT é igual ou superior a 128. Uma condição de erro que permite que um nó
se torne 'erro passivo' faz com que o nó envie um ACTIVE ERROR FLAG .
setembro de 1991
10. Um nó está com 'bus off' quando a CONTAGEM DE ERROS DE TRANSMISSÃO é maior ou igual a
256.
11. Um nó de 'erro passivo' torna-se 'erro ativo' novamente quando tanto o TRANSMIT ERROR COUNT
quanto o RECEIVE ERROR COUNT são menores ou iguais a 127.
12. Um nó que está 'bus off' tem permissão para se tornar 'error active' (não mais 'bus off') com seus
contadores de erro ambos definidos como 0 após 128 ocorrências de 11 bits 'recessivos' consecutivos
terem sido monitorados no barramento .
Nota:
Um valor de contagem de erros maior que cerca de 96 indica um barramento fortemente perturbado. Pode
ser vantajoso fornecer meios para testar esta condição.
Nota:
Start-up / Wake-up: Se
durante o start-up apenas 1 nodo estiver online, e se este nodo transmitir alguma mensagem, ele não
receberá reconhecimento, detectará um erro e repetirá a mensagem. Ele pode se tornar 'erro passivo',
mas não 'desligado' devido a esse motivo.
setembro de 1991
O tempo de bit nominal pode ser pensado como sendo dividido em segmentos de tempo separados e não sobrepostos.
Esses segmentos
Ponto de amostragem
SYNC SEG
Esta parte do tempo de bit é usada para sincronizar os vários nós no barramento. Espera-se que uma aresta esteja neste
segmento.
PROP SEG
Esta parte do tempo de bit é usada para compensar os tempos de atraso físicos dentro da rede.
setembro de 1991
É o dobro da soma do tempo de propagação do sinal na linha de barramento, o atraso do comparador de entrada e
o atraso do driver de saída.
SAMPLE POINT O
SAMPLE POINT é o ponto no tempo em que o nível do barramento é lido e interpretado como o valor do respectivo
bit. Sua localização é no final de PHASE_SEG1.
TEMPO DE PROCESSAMENTO DA
INFORMAÇÃO O TEMPO DE PROCESSAMENTO DA INFORMAÇÃO é o segmento de tempo que começa com o
PONTO DE AMOSTRA reservado para o cálculo do nível de bit subsequente.
TIME QUANTUM O
TIME QUANTUM é uma unidade fixa de tempo derivada do período do oscilador. Existe um prescaler programável,
com valores integrais, variando no mínimo de 1 a 32.
Começando com o QUANTUM DE TEMPO MÍNIMO, o QUANTUM DE TEMPO pode ter um comprimento de
*
TEMPO QUANTUM = m QUANTUM DE TEMPO MÍNIMO
O número total de TIME QUANTA em um tempo de bit deve ser programável no mínimo de 8 a 25.
setembro de 1991
SINCRONIZAÇÃO
As informações de clock podem ser derivadas de transições de um valor de bit para o outro.
A propriedade de apenas um número máximo fixo de bits sucessivos ter o mesmo valor fornece a
possibilidade de ressincronizar uma unidade de barramento para o fluxo de bits durante um quadro. O
comprimento máximo entre duas transições que podem ser usadas para ressincronização é de 29 tempos
de bit.
RESSINCRONIZAÇÃO O
efeito de uma RESSINCRONIZAÇÃO é o mesmo de uma HARD SINCRONIZAÇÃO, quando a magnitude
do ERRO DE FASE da borda que causa a RESSINCRONIZAÇÃO for menor ou igual ao valor programado
para a LARGURA DO SALTO DE RESSINCRONIZAÇÃO. Quando a magnitude do ERRO DE FASE for
maior que a LARGURA DO SALTO DE RESSINCRONIZAÇÃO,
setembro de 1991
REGRAS DE SINCRONIZAÇÃO
SINCRONIZAÇÃO HARD e RESSINCRONIZAÇÃO são as duas formas de SINCRONIZAÇÃO. Eles
obedecem as seguintes regras:
2. Uma borda será usada para SINCRONIZAÇÃO somente se o valor detectado no PONTO DE AMOSTRA
anterior (valor do barramento lido anterior) diferir do valor do barramento imediatamente após a borda.
3. HARD SINCRONIZAÇÃO é executada sempre que há uma borda 'recessiva' para 'dominante' durante
BUS IDLE.
4. Todas as outras arestas 'recessivas' para 'dominantes' (e opcionalmente 'dominantes' para 'recessivas'
no caso de baixas taxas de bits) que cumpram as regras 1 e 2 serão usadas para RESSINCRONIZAÇÃO
com exceção de que um nó transmitindo um dominante bit não executará uma RESSINCRONIZAÇÃO
como resultado de uma borda 'recessiva' para 'dominante' com um ERRO DE FASE positivo, se
apenas as bordas 'recessivas' para 'dominantes' forem usadas para ressincronização.
setembro de 1991
Para aumentar a tolerância máxima do oscilador de 0,5% atualmente possível para 1,5%, são necessárias as
seguintes modificações, que são compatíveis com a especificação CAN existente:
[1] Se um nodo CAN amostrar um bit dominante no terceiro bit de INTERMISSÃO, ele
interprete este bit como um bit START OF FRAME.
[2] Se um nodo CAN tiver uma mensagem aguardando transmissão e amostrar um bit dominante no terceiro
bit de INTERMISSÃO, ele interpretará isso como um bit START OF FRAME e, com o próximo bit, começará
a transmitir sua mensagem com o primeiro bit do IDENTIFICADOR sem primeiro transmitir um bit START
OF FRAME e sem se tornar um receptor.
[3] Se um nó CAN amostrar um bit dominante no oitavo bit (o último bit) de um DELIMITER DE ERRO ou
DELIMITER DE OVERLOAD, ele irá, no próximo bit, começar a transmitir um OVERLOAD FRAME (não
um ERROR FRAME). Os contadores de erros não serão incrementados.
[4] Somente bordas recessivas para dominantes serão usadas para sincronização.
[5] Todos os controladores CAN sincronizam no bit START OF FRAME com um hard
sincronização.
[6] Nenhum controlador CAN enviará um bit START OF FRAME até que tenha contado três
bits recessivos de INTERMISSÃO.
Essas modificações permitem uma tolerância máxima do oscilador de 1,58% e o uso de um ressonador
cerâmico a uma velocidade de barramento de até 125 Kbits/segundo. Para toda a faixa de velocidade de
barramento do protocolo CAN, ainda é necessário um oscilador de quartzo. A compatibilidade do protocolo
aprimorado com o existente é mantida, desde que:
[7] Os controladores CAN com os protocolos aprimorados e existentes, usados em uma e na mesma rede,
devem ser fornecidos com um oscilador de quartzo.
O chip com o maior requisito para a precisão do oscilador determina a precisão do oscilador exigida de todos
os outros nós. Os ressonadores cerâmicos só podem ser usados quando todos os nós da rede usam o
protocolo aprimorado.
PARTE B
Machine Translated by Google
setembro de 1991
BOSCH Contente
Parte B - página 33
1 INTRODUÇÃO................................................. .............................34
6 CODIFICAÇÃO................................................. .........................................58
setembro de 1991
BOSCH Introdução
Parte B - página 34
1. INTRODUÇÃO
A Controller Area Network (CAN) é um protocolo de comunicação serial que suporta eficientemente o
controle distribuído em tempo real com um nível muito alto de segurança.
Seu domínio de aplicação varia de redes de alta velocidade a cabeamento multiplex de baixo custo.
Na eletrônica automotiva, unidades de controle do motor, sensores, sistemas antiderrapantes, etc. são
conectados usando CAN com taxas de bits de até 1 Mbit/s. Ao mesmo tempo, é rentável incorporar
componentes eletrônicos da carroceria do veículo, por exemplo, conjuntos de lâmpadas, vidros elétricos,
etc., para substituir o chicote de fiação necessário.
A intenção desta especificação é obter compatibilidade entre quaisquer duas implementações CAN. A
compatibilidade, no entanto, tem aspectos diferentes em relação, por exemplo, às características
elétricas e à interpretação dos dados a serem transferidos. Para obter transparência de projeto e
flexibilidade de implementação, o CAN foi subdividido em diferentes camadas de acordo com o Modelo
de Referência ISO/OSI:
• a Camada Física
Observe que nas versões anteriores da especificação CAN, os serviços e funções das subcamadas LLC
e MAC da camada de enlace de dados foram descritos em camadas denominadas 'camada de objeto' e
'camada de transferência'. O escopo da subcamada LLC é
• decidir quais mensagens recebidas pela subcamada LLC serão realmente aceitas,
O escopo da camada física é a transferência real dos bits entre os diferentes nós em relação a todas as
propriedades elétricas. Dentro de uma rede, a camada física, de
setembro de 1991
BOSCH Introdução
Parte B - página 35
Claro, tem que ser o mesmo para todos os nós. Pode haver, no entanto, muita liberdade na seleção de
uma camada física.
O escopo desta especificação é definir a subcamada MAC e uma pequena parte da subcamada LLC
da camada de enlace de dados e descrever as consequências do protocolo CAN nas camadas vizinhas.
setembro de 1991
2 CONCEITOS BÁSICOS
CAN tem as seguintes propriedades
• priorização de mensagens
• flexibilidade de configuração
• multimestre
• retransmissão automática de mensagens corrompidas assim que o barramento estiver ocioso novamente
• A Camada Física define como os sinais são realmente transmitidos e, portanto, lida com a descrição de
Sincronização de Bits, Codificação de Bits e Sincronização. Dentro desta especificação as
Características do Driver/Receptor da Camada Física não são definidas de forma a permitir que as
implementações do meio de transmissão e nível de sinal sejam otimizadas para sua aplicação.
• A subcamada MAC representa o kernel do protocolo CAN. Apresenta mensagens recebidas da subcamada
LLC e aceita mensagens a serem transmitidas à subcamada LLC. A subcamada MAC é responsável pelo
Enquadramento de Mensagens, Arbitragem, Reconhecimento, Detecção de Erros e Sinalização. A
subcamada MAC é supervisionada por uma entidade de gerenciamento chamada Fault Confinement, que é
um mecanismo de autoverificação para distinguir distúrbios curtos de falhas permanentes.
setembro de 1991
LLC
Filtragem de aceitação
Supervisor
Notificação de sobrecarga
Gerenciamento de Recuperação
MAC
Encapsulamento de dados
/Desencapsulamento
Codificação de quadros
Camada física
Codificação/Decodificação de bits
Falha de barramento
Sincronização de bits
Sincronização Gerenciamento
Características do driver/receptor
setembro de 1991
O escopo desta especificação é definir a Camada de Enlace de Dados e as consequências do protocolo CAN nas camadas
vizinhas.
Mensagens
As informações no barramento são enviadas em mensagens de formato fixo de tamanhos diferentes, mas limitados (consulte
a seção 3: Transferência de mensagens). Quando o barramento está livre, qualquer unidade conectada pode começar a
transmitir uma nova mensagem.
Roteamento de informações
Em sistemas CAN, um nó CAN não faz uso de nenhuma informação sobre a configuração do sistema (por exemplo, endereços
de estação). Isso tem várias consequências importantes.
Flexibilidade do sistema: Os nós podem ser adicionados à rede CAN sem a necessidade de qualquer alteração no
software ou hardware de qualquer nó e camada de aplicação.
Multicast: Como consequência do conceito de Filtragem de Mensagens, qualquer número de nós pode receber e
agir simultaneamente sobre a mesma mensagem.
Consistência de Dados: Dentro de uma rede CAN é garantido que uma mensagem seja aceita simultaneamente por
todos os nós ou por nenhum nó. Assim, a consistência dos dados de um sistema é alcançada pelos conceitos de
multicast e pelo tratamento de erros.
Taxa de
bits A velocidade do CAN pode ser diferente em diferentes sistemas. No entanto, em um determinado sistema, a taxa de bits
é uniforme e fixa.
Prioridades
O IDENTIFICADOR define uma prioridade de mensagem estática durante o acesso ao barramento.
setembro de 1991
Multimaster
Quando o barramento está livre qualquer unidade pode começar a transmitir uma mensagem. A unidade com a mensagem de maior
prioridade a ser transmitida ganha acesso ao barramento.
Arbitragem
Sempre que o barramento estiver livre, qualquer unidade pode começar a transmitir uma mensagem. Se 2 ou mais unidades começarem
a transmitir mensagens ao mesmo tempo, o conflito de acesso ao barramento é resolvido por arbitragem bit a bit usando o
IDENTIFICADOR. O mecanismo de arbitragem garante que nem informação nem tempo sejam perdidos. Se um DATA FRAME e um
REMOTE FRAME com o mesmo IDENTIFICADOR forem iniciados ao mesmo tempo, o DATA FRAME prevalecerá sobre o REMOTE
FRAME. Durante a arbitragem, cada transmissor compara o nível do bit transmitido com o nível monitorado no barramento. Se esses
níveis forem iguais, a unidade pode continuar a enviar. Quando um nível 'recessivo' é enviado e um nível 'dominante' é monitorado (ver
Valores do Barramento), a unidade perdeu a arbitragem e deve retirar sem enviar mais um bit.
Segurança
Para alcançar a máxima segurança na transferência de dados, medidas poderosas para detecção de erros, sinalização e autoverificação
são implementadas em cada nodo CAN.
Detecção de erro
Para detectar erros, foram tomadas as seguintes medidas:
- Monitoramento (os transmissores comparam os níveis de bits a serem transmitidos com os níveis de bits detectados no
barramento)
- Verificação de redundância Cíclica
- Recheio de Pedaços
mecanismos de detecção de erros têm as seguintes propriedades: - todos os erros globais são
detectados. - todos os erros locais nos
transmissores são detectados. - são detectados até 5 erros
setembro de 1991
Probabilidade de erro residual total para mensagens corrompidas não detectadas: menor que
*
taxa de erro de mensagem 4.7 * 10-11.
Os nós CAN de
confinamento de falhas são capazes de distinguir distúrbios curtos de falhas permanentes.
Os nós defeituosos são desligados.
Conexões O
link de comunicação serial CAN é um barramento ao qual várias unidades podem ser conectadas. Este número
não tem limite teórico. Praticamente o número total de unidades será limitado por tempos de atraso e/ou cargas
elétricas na linha de ônibus.
Canal Único O
barramento consiste em um único canal que transporta bits. A partir desses dados, as informações de
ressincronização podem ser derivadas. A forma como este canal é implementado não é fixa nesta especificação.
Por exemplo, fio único (mais terra), dois fios diferenciais, fibras ópticas, etc.
Valores do
barramento O barramento pode ter um de dois valores lógicos complementares: 'dominante' ou 'recessivo'.
Durante a transmissão simultânea de bits 'dominantes' e 'recessivos', o valor do barramento resultante será
'dominante'. Por exemplo, no caso de uma implementação com fio AND do barramento, o nível 'dominante' seria
representado por um '0' lógico e o nível 'recessivo' por um '1' lógico. Os estados físicos (por exemplo, tensão
elétrica, luz) que representam os níveis lógicos não são fornecidos nesta especificação.
Reconhecimento
Todos os receptores verificam a consistência da mensagem que está sendo recebida e confirmam uma
mensagem consistente e sinalizam uma mensagem inconsistente.
Modo de espera/despertar
Para reduzir o consumo de energia do sistema, um dispositivo CAN pode ser colocado no modo de hibernação
setembro de 1991
sem nenhuma atividade interna e com motoristas de ônibus desconectados. O modo de hibernação termina com um
despertar por qualquer atividade do barramento ou por condições internas do sistema. Ao acordar, a atividade
interna é reiniciada, embora a subcamada MAC esteja esperando que o oscilador do sistema se estabilize e aguarde
até que ele se sincronize com a atividade do barramento (verificando onze bits 'recessivos' consecutivos), antes que
os drivers do barramento sejam ajustados para "on-bus" novamente.
tolerância do oscilador
Os requisitos de temporização de bits permitem que os ressonadores cerâmicos sejam usados em aplicações com
taxas de transmissão de até 125 kbit/s como regra geral; para uma avaliação mais precisa, consulte
Dias, S; Chapman, M;
“Impacto da representação de bits na capacidade de transporte e no relógio
Precisão em fluxos de dados seriais”,
Documento Técnico SAE Série 890532, Multiplexação em Automóveis SP-773
março de 1989
Para toda a faixa de velocidade de barramento do protocolo CAN, é necessário um oscilador de quartzo.
setembro de 1991
3 TRANSFERÊNCIA DE MENSAGEM
Existem dois formatos diferentes que diferem no tamanho do campo IDENTIFIER: Quadros com o número de 11 bits
do IDENTIFIER são denominados Quadros Padrão. Em contraste, os quadros contendo IDENTIFICADOR de 29 bits
são denominados Quadros Estendidos.
DATA FRAMEs e REMOTE FRAMEs podem ser usados tanto no formato de quadro padrão quanto no formato de
quadro estendido ; eles são separados dos quadros anteriores por um INTERFRAME SPACE.
setembro de 1991
BOSCH Quadro de dados
Parte B - página 43
Interquadro Interquadro
QUADRO DE DADOS
Espaço Espaço
ou
Sobrecarga
Quadro
início do quadro
Campo de Arbitragem
Campo de Controle
Campo de dados
Campo CRC
Campo ACK
Fim do Quadro
O START OF FRAME (SOF) marca o início dos DATA FRAMES e REMOTE FRAMEs. Consiste em um único
bit 'dominante'.
Uma estação só pode iniciar a transmissão quando o barramento estiver ocioso (consulte 'Espaçamento
INTERFRAME'). Todas as estações devem sincronizar com a borda de ataque causada pelo INÍCIO DO
QUADRO (consulte 'SINCRONIZAÇÃO HARD') da estação que inicia a transmissão primeiro.
CAMPO DE ARBITRAGEM
O formato do CAMPO DE ARBITRAGEM é diferente para Quadros de Formato Padrão e Formato Estendido .
setembro de 1991
Para distinguir entre Formato Padrão e Formato Estendido, o bit reservado r1 nas especificações
CAN anteriores versão 1.0-1.2 agora é denotado como Bit IDE.
Formato padrão
Ao controle
Campo de Arbitragem Campo
Campo de dados
S R EU
Formato Estendido
Ao controle
Campo de dados
Campo de Arbitragem Campo
S S R
EU
r
O IDENTIFICADOR de 11 bits R D IDENTIFICADOR de 18 bits T DLC
1 r0
F R E R
IDENTIFICADOR IDENTIFICADOR
- Formato Padrão O comprimento do IDENTIFICADOR é de 11 bits e corresponde ao ID Base
em Formato Estendido. Esses bits são transmitidos na ordem de ID-28 a ID-18. O bit menos
significativo é ID-18. Os 7 bits mais significativos (ID-28 - ID-22) não devem ser todos 'recessivos'.
IDENTIFICADOR - Formato
Estendido Ao contrário do Formato Padrão, o Formato Estendido consiste em 29 bits. O
formato compreende duas seções:
setembro de 1991
Base ID
A Base ID consiste em 11 bits. É transmitido na ordem de ID-28 a ID-18. É equivalente ao formato do
Identificador Padrão. A Base ID define a prioridade base do Extended Frame .
ID Estendido O
ID Estendido consiste em 18 bits. É transmitido na ordem de ID-17 a ID-0.
Em um quadro estendido, o ID de base é transmitido primeiro, seguido pelo bit IDE e pelo bit SRR. O Extended
ID é transmitido após o bit SRR.
Portanto, as colisões de um Quadro Padrão e um Quadro Estendido, cujo ID Base (veja 'IDENTIFICADOR
Estendido' abaixo) é o mesmo que o Identificador do Quadro Padrão, são resolvidas de tal forma que o Quadro
Padrão prevalece sobre o Quadro Estendido.
setembro de 1991
acima) e o bit reservado r0. Os quadros no formato estendido incluem o DATA LENGTH CODE e
dois bits reservados r1 e r0. Os bits reservados devem ser enviados 'dominantes', mas os receptores
aceitam bits 'dominantes' e 'recessivos' em todas as combinações.
ou
IDE/r1 r0 DLC3 DLC2 DLC1 DLC0 CRC
Campo
bytes
DLC3 DLC2 DLC1 DLC0
0 d d d d
1 d d d r
2 d d r d
3 d d r r
4 d r d d
5 d r d r
6 d r r d
7 d r r r
8 r d d d
setembro de 1991
Ao controle
Campo
Delimitador CRC
Sequência CRC
A sequência de verificação de quadros é derivada de um código de redundância cíclica mais adequado para
quadros com contagens de bits menores que 127 bits (Código BCH).
Para realizar o cálculo do CRC, o polinômio a ser dividido é definido como o polinômio, cujos coeficientes são
dados pelo fluxo de bits descompactado que consiste em INÍCIO DO QUADRO, CAMPO DE ARBITRAGEM,
CAMPO DE CONTROLE, CAMPO DE DADOS (se presente) e, para os 15 coeficientes mais baixos, por 0.
Este polinômio é dividido (os coeficientes são calculados módulo-2) pelo polinômio gerador:
O restante desta divisão polinomial é a SEQUÊNCIA CRC transmitida pelo barramento. Para implementar
esta função, um registrador de deslocamento de 15 bits CRC_RG(14:0) pode ser usado. Se NXTBIT denota
o próximo bit do fluxo de bits, dado pela sequência de bits descarregada de START OF FRAME até o final
do DATA FIELD, a CRC SEQUENCE é calculada da seguinte forma:
setembro de 1991
REPITA
CRCNXT = NXTBIT EXOR CRC_RG(14);
CRC_RG(14:1) = CRC_RG(13:0); // desloca para a
CRC_RG(0) = 0; esquerda // 1 posição
SE CRCNXT ENTÃO
CRC_RG(14:0) = CRC_RG(14:0) EXOR (4599hex);
FIM SE
ATÉ (CRC SEQUENCE começa ou há uma condição de ERRO)
Após a transmissão/recepção do último bit do CAMPO DE DADOS, CRC_RG contém a sequência CRC.
Delimitador ACK
Slot ACK
ACK SLOT
Todas as estações que receberam a SEQUÊNCIA CRC correspondente relatam isso dentro do ACK SLOT
sobrescrevendo o bit 'recessivo' do TRANSMISSOR por um bit 'dominante'.
ACK DELIMITER O
ACK DELIMITER é o segundo bit do ACK FIELD e deve ser um bit 'recessivo'. Como consequência, o ACK
SLOT é cercado por dois bits 'recessivos' (CRC DELIMITER, ACK DELIMITER).
setembro de 1991
Cada DATA FRAME e REMOTE FRAME é delimitado por uma sequência de sinalizadores que consiste em
sete bits 'recessivos'.
Uma estação atuando como RECEPTOR para determinados dados pode iniciar a transmissão dos respectivos
dados por seu nó de origem enviando um REMOTE FRAME.
Um REMOTE FRAME existe tanto no formato padrão quanto no formato estendido. Em ambos os casos é
composto por seis campos de bits diferentes: START
OF FRAME, ARBITRATION FIELD, CONTROL FIELD, CRC FIELD, ACK FIELD, END OF FRAME.
Ao contrário dos DATA FRAMEs, o bit RTR dos REMOTE FRAMEs é 'recessivo'. Não há CAMPO DE
DADOS, independente dos valores do DATA LENGTH CODE que pode ser assinado qualquer valor dentro
da faixa admissível 0...8. O valor é o DATA LENGTH CODE do DATA FRAME correspondente.
ou
Sobrecarga
Quadro
início do quadro
Campo de Arbitragem
Campo de Controle
Campo CRC
Campo ACK
Fim do Quadro
setembro de 1991
A polaridade do bit RTR indica se um quadro transmitido é um DATA FRAME (bit RTR 'dominante') ou
um REMOTE FRAME (bit RTR 'recessivo').
O ERROR FRAME consiste em dois campos diferentes. O primeiro campo é dado pela superposição
de ERROR FLAGs provenientes de diferentes estações. O segundo campo seguinte é o DELIMITER
DE ERRO.
superposição de
Sinalizadores de erro Delimitador de erro
Para terminar um ERROR FRAME corretamente, um nó 'erro passivo' pode precisar que o barramento
esteja 'barramento ocioso' por pelo menos 3 tempos de bit (se houver um erro local em um receptor
'erro passivo'). Portanto, o barramento não deve ser carregado a 100%.
ERROR FLAG
Existem 2 formas de um ERROR FLAG: um ACTIVE ERROR FLAG e um PASSIVE ERROR FLAG.
2. O PASSIVE ERROR FLAG consiste em seis bits 'recessivos' consecutivos, a menos que
é substituído por bits 'dominantes' de outros nós.
Uma estação de 'erro ativo' que detecta uma condição de erro sinaliza isso pela transmissão de um
sinalizador de erro ativo. A forma do ERROR FLAG viola a lei do bit stuffing (ver CODING) aplicada a
todos os campos desde START OF FRAME até CRC DELIMITER ou destrói a forma fixa ACK FIELD
ou END OF FRAME field. Como consequência, todas as outras estações detectam uma condição de
erro e, por sua vez, iniciam a transmissão de um ERRO
setembro de 1991
BANDEIRA. Portanto, a sequência de bits 'dominantes' que podem ser monitorados no barramento resulta de
uma superposição de diferentes ERROR FLAGs transmitidos por estações individuais. O comprimento total
desta sequência varia entre um mínimo de seis e um máximo de doze bits.
Uma estação de 'erro passivo' detectando uma condição de erro tenta sinalizá-la pela transmissão de um
PASSIVE ERROR FLAG. A estação de 'erro passivo' espera por seis bits consecutivos de igual polaridade,
começando no início do PASSIVE ERROR FLAG. O PASSIVE ERROR FLAG é concluído quando esses 6 bits
iguais forem detectados.
DELIMITER DE ERRO O
DELIMITER DE ERRO consiste em oito bits 'recessivos'.
Após a transmissão de um ERROR FLAG, cada estação envia bits 'recessivos' e monitora o barramento até
detectar um bit 'recessivo'. Em seguida, ele começa a transmitir mais sete bits 'recessivos'.
O OVERLOAD FRAME contém os campos de dois bits OVERLOAD FLAG e OVERLOAD DELIMITER.
Existem dois tipos de condições de OVERLOAD, que levam à transmissão de um OVERLOAD FLAG:
3. Se um nó CAN amostrar um bit dominante no oitavo bit (o último bit) de um DELIMITER DE ERRO ou
DELIMITER DE OVERLOAD, ele começará a transmitir um OVERLOAD FRAME (não um ERROR
FRAME). Os contadores de erros não serão incrementados.
O início de um OVERLOAD FRAME devido à condição OVERLOAD 1 só pode ser iniciado no primeiro tempo
de bit de uma INTERMISSÃO esperada, enquanto OVERLOAD FRAMEs devido à condição OVERLOAD 2 e
condição 3 iniciam um bit após a detecção do bit 'dominante'.
setembro de 1991
No máximo dois OVERLOAD FRAMEs podem ser gerados para atrasar o próximo DATA ou REMOTE
FRAME.
Sobrecarga Sobrecarga
Bandeira Quadro
superposição de
Sinalizadores de sobrecarga Delimitador de sobrecarga
OVERLOAD FLAG
consiste em seis bits 'dominantes'. A forma geral corresponde à do ACTIVE ERROR FLAG.
A forma do OVERLOAD FLAG destrói a forma fixa do campo INTERMISSÃO. Como consequência, todas
as outras estações também detectam uma condição de OVERLOAD e, por sua vez, iniciam a transmissão
de um OVERLOAD FLAG. Caso haja um bit 'dominante' detectado durante o 3º bit de INTERMISSÃO
então ele interpretará este bit como START OF FRAME.
Observação:
Os controladores baseados na especificação CAN versão 1.0 e 1.1 têm outra interpretação do 3º
bit se INTERMISSÃO: Se um bit 'dominante' foi detectado localmente em algum nó, os outros nós
não interpretarão o OVERLOAD FLAG corretamente, mas interpretarão o primeiro deles seis bits
'dominantes' como START OF FRAME; o sexto bit 'dominante' viola a regra de preenchimento de
bit, causando uma condição de erro.
OVERLOAD DELIMITER
consiste em oito bits 'recessivos'.
setembro de 1991
DATA FRAMEs e REMOTE FRAMEs são separados dos frames anteriores, qualquer que seja seu tipo (DATA
FRAME, REMOTE FRAME, ERROR FRAME, OVERLOAD FRAME) por um campo de bit chamado
INTERFRAME SPACE. Em contraste, OVERLOAD FRAMEs e ERROR FRAMEs não são precedidos por um
INTERFRAME SPACE e múltiplos OVERLOAD FRAMEs não são separados por um INTERFRAME SPACE.
O ESPAÇO INTERFRAME
contém os campos de bit INTERMISSÃO e BUS IDLE e, para estações 'erro passivo', que foram
TRANSMISSORES da mensagem anterior, SUSPENDER TRANSMISSÃO.
Para estações que não são 'erro passivo' ou foram RECEPTORES da mensagem anterior:
Ônibus ocioso
Suspender Transmissão
Intervalo
INTERMISSÃO
consiste em três bits 'recessivos'.
Durante o INTERMISSÃO, a única ação a ser tomada é sinalizar uma condição de OVERLOAD e nenhuma
estação pode iniciar ativamente a transmissão de um DATA FRAME ou REMOTE FRAME.
setembro de 1991
Observação:
Se um nodo CAN tiver uma mensagem aguardando transmissão e amostrar um bit dominante no
terceiro bit de INTERMISSÃO, ele interpretará isso como um bit START OF FRAME e, com o próximo
bit, começará a transmitir sua mensagem com o primeiro bit de seu IDENTIFICADOR sem primeiro
transmitir um bit START OF FRAME e sem se tornar receptor.
BUS IDLE
O período de BUS IDLE pode ser de duração arbitrária. O barramento é reconhecido como livre e qualquer
estação que tenha algo a transmitir pode acessar o barramento. Uma mensagem, que está pendente para
transmissão durante a transmissão de outra mensagem, é iniciada no primeiro bit após a INTERMISSÃO.
SUSPENDER A TRANSMISSÃO
Após uma estação de 'erro passivo' ter transmitido uma mensagem, ela envia oito bits 'recessivos' após a
INTERMISSÃO, antes de começar a transmitir uma mensagem adicional ou reconhecer o barramento como
inativo. Se, entretanto, uma transmissão (causada por outra estação) começar, a estação se tornará receptora
desta mensagem.
setembro de 1991
O formato padrão é equivalente ao formato de quadro de dados/remoto, conforme descrito na especificação CAN
1.2. Em contraste, o formato estendido é um novo recurso do protocolo CAN. Para permitir o design de controladores
relativamente simples, a implementação do Formato Estendido em sua extensão total não é necessária (por
exemplo, enviar mensagens ou aceitar dados de mensagens no Formato Estendido), enquanto o Formato Padrão
deve ser suportado sem restrições.
Novos controladores são considerados em conformidade com esta Especificação CAN, se tiverem pelo menos as
seguintes propriedades com relação aos Formatos de Frame definidos em 3.1 e 3.2:
TRANSMISSOR
Uma unidade que origina uma mensagem é denominada “TRANSMISSORA” dessa mensagem. A unidade
permanece TRANSMISSORA até que o barramento fique ocioso ou a unidade perca ARBITRAGEM.
RECEPTOR
Uma unidade é denominada “RECEPTORA” de uma mensagem, se não for EMISSORA dessa mensagem e o
barramento não estiver ocioso.
setembro de 1991
4 FILTRAGEM DE MENSAGENS
A filtragem de mensagens é baseada em todo o identificador. Registradores de máscara opcionais que permitem que
qualquer bit identificador seja definido como 'não importa' para filtragem de mensagens, podem ser usados para
selecionar grupos de identificadores a serem mapeados nos buffers de recebimento anexados.
Se os registradores de máscara forem implementados, cada bit dos registradores de máscara deve ser programável,
ou seja, eles podem ser ativados ou desativados para filtragem de mensagens. O comprimento do registro de máscara
pode abranger todo o IDENTIFICADOR ou apenas parte dele.
setembro de 1991
5 VALIDAÇÃO DA MENSAGEM
O ponto de tempo em que uma mensagem é considerada válida é diferente para o transmissor e para
os receptores da mensagem.
Transmissor:
A mensagem é válida para o transmissor, se não houver erro até o final de END OF FRAME. Se uma
mensagem for corrompida, a retransmissão seguirá automaticamente e de acordo com a priorização.
Para poder competir pelo acesso ao barramento com outras mensagens, a retransmissão deve
começar assim que o barramento estiver ocioso.
Receptores:
A mensagem é válida para os receptores, se não houver erro até o penúltimo bit de END OF FRAME.
O valor do último bit de END OF FRAME é tratado como 'não importa', um valor dominante não leva
a um ERRO DE FORMA (cf. seção 7.1).
setembro de 1991
BOSCH Codificação
Parte B - página 58
6 CODIFICAÇÃO
Os campos de bits restantes do DATA FRAME ou REMOTE FRAME (CRC DELIMITER, ACK FIELD e END
OF FRAME) são de forma fixa e não preenchidos. O ERROR FRAME e o OVERLOAD FRAME também
são de forma fixa e não codificados pelo método de preenchimento de bits.
O fluxo de bits em uma mensagem é codificado de acordo com o método Non-Return-to-Zero (NRZ). Isso
significa que durante o tempo total de bit, o nível de bit gerado é 'dominante' ou 'recessivo'.
setembro de 1991
7 TRATAMENTO DE ERROS
• ERRO DE MATERIAL
Um STUFF ERROR deve ser detectado no tempo de bit do 6º nível de bit igual consecutivo em um
campo de mensagem que deve ser codificado pelo método de preenchimento de bit.
• CRC ERROR A
sequência CRC consiste no resultado do cálculo CRC pelo transmissor.
Os receptores calculam o CRC da mesma forma que o transmissor. Um ERRO CRC deve
ser detectado, se o resultado calculado não for o mesmo que o recebido na sequência CRC.
• ERRO DE FORMULÁRIO
Um ERRO DE FORMA deve ser detectado quando um campo de bit de forma fixa contém um
ou mais bits ilegais. (Observe que, para um Receptor, um bit dominante durante o último bit de END
OR FRAME não é tratado como FORM ERROR).
• ERRO DE RECONHECIMENTO
Um ACKNOWLEDGMENT ERROR deve ser detectado por um transmissor sempre que ele não
monitorar um bit 'dominante' durante o ACK SLOT.
setembro de 1991
Uma estação detectando uma condição de erro sinaliza isso transmitindo um ERROR FLAG. Para um
nó 'error active' é um ACTIVE ERROR FLAG, para um nó 'error passive' é um PASSIVE ERROR FLAG.
Sempre que um BIT ERROR, um STUFF ERROR, um FORM ERROR ou um ACKNOWLEDGMENT
ERROR é detectado por qualquer estação, a transmissão de um ERROR FLAG é iniciada na respectiva
estação no próximo bit.
Sempre que um CRC ERROR for detectado, a transmissão de um ERROR FLAG inicia no bit seguinte
ao ACK DELIMITER, a menos que um ERROR FLAG para outra condição já tenha sido iniciado.
setembro de 1991
8 CONFINAMENTO DE FALTA
Com relação ao confinamento de falta, uma unidade pode estar em um dos três estados:
• 'erro ativo'
• 'erro passivo'
• 'ônibus desligado'
Uma unidade 'error active' pode normalmente participar da comunicação de barramento e enviar um ACTIVE ERROR
FLAG quando um erro for detectado.
Uma unidade de 'erro passivo' não deve enviar um ACTIVE ERROR FLAG. Ele participa da comunicação do
barramento, mas quando um erro é detectado, apenas um PASSIVE ERROR FLAG é enviado. Também após uma
transmissão, uma unidade de 'erro passivo' aguardará antes de iniciar uma nova transmissão. (Veja SUSPENDER
TRANSMISSÃO)
Uma unidade 'bus off' não pode ter nenhuma influência no barramento. (Por exemplo, drivers de saída desligados.)
Para confinamento de falha, duas contagens são implementadas em cada unidade de barramento:
1. Quando um RECEIVER detecta um erro, o RECEIVE ERROR COUNT será aumentado em 1, exceto quando o
erro detectado for um BIT ERROR durante o envio de um ACTIVE ERROR FLAG ou OVERLOAD FLAG.
2. Quando um RECEPTOR detecta um bit 'dominante' como o primeiro bit após enviar um ERRO
FLAG o RECEIVE ERROR COUNT será aumentado em 8.
setembro de 1991
Exceção 1: Se
o TRANSMISSOR for 'erro passivo' e detectar um ACKNOWLEDGMENT ERROR por não detectar
um ACK 'dominante' e não detectar um bit 'dominante' ao enviar seu PASSIVE ERROR FLAG.
Exceção 2: Se
a TRANSMISSORA enviar um ERROR FLAG porque ocorreu um STUFF ERROR durante a
ARBITRATION, e deveria ter sido 'recessivo', e foi enviado como 'recessivo' mas monitorado como
'dominante'.
6. Qualquer nó tolera até 7 bits 'dominantes' consecutivos após o envio de um sinalizador de erro ativo,
sinalizador de erro passivo ou sinalizador de sobrecarga. Após detectar o 14º bit 'dominante'
consecutivo (no caso de um ACTIVE ERROR FLAG ou OVERLOAD FLAG) ou após detectar o 8º bit
'dominante' consecutivo após um PASSIVE ERROR FLAG, e após cada sequência de oito bits
'dominantes' consecutivos adicionais cada TRANSMISSOR aumenta sua CONTAGEM DE ERROS
DE TRANSMISSÃO em 8 e cada RECEPTOR aumenta sua CONTAGEM DE ERROS DE
RECEBIMENTO em 8.
7. Após a transmissão bem-sucedida de uma mensagem (obtendo ACK e nenhum erro até que END OF
FRAME seja concluído), o TRANSMIT ERROR COUNT é reduzido em 1, a menos que já seja 0.
8. Após a recepção bem-sucedida de uma mensagem (recepção sem erro até o ACK SLOT e envio bem-
sucedido do bit ACK), o RECEIVE ERROR COUNT é diminuído em 1, se estiver entre 1 e 127. Se o
RECEIVE ERROR COUNT era 0, permanece 0 e, se for maior que 127, será definido para um valor
entre 119 e 127.
9. Um nó é 'erro passivo' quando o TRANSMIT ERROR COUNT é igual ou superior a 128, ou quando o
RECEIVE ERROR COUNT é igual ou superior a 128. Uma condição de erro que permite que um nó
se torne 'erro passivo' faz com que o nó envie um ACTIVE ERROR FLAG .
setembro de 1991
10. Um nó está com 'bus off' quando a CONTAGEM DE ERROS DE TRANSMISSÃO é maior ou igual a
256.
11. Um nó de 'erro passivo' torna-se 'erro ativo' novamente quando tanto o TRANSMIT ERROR COUNT
quanto o RECEIVE ERROR COUNT são menores ou iguais a 127.
12. Um nó que está 'bus off' tem permissão para se tornar 'error active' (não mais 'bus off') com seus
contadores de erro ambos definidos como 0 após 128 ocorrências de 11 bits 'recessivos' consecutivos
terem sido monitorados no barramento .
Nota:
Um valor de contagem de erros maior que cerca de 96 indica um barramento fortemente perturbado. Pode
ser vantajoso fornecer meios para testar esta condição.
Nota:
Start-up / Wake-up: Se
durante o start-up apenas 1 nodo estiver online, e se este nodo transmitir alguma mensagem, ele não
receberá reconhecimento, detectará um erro e repetirá a mensagem. Ele pode se tornar 'erro passivo',
mas não 'desligado' devido a esse motivo.
setembro de 1991
9 TOLERÂNCIA DO OSCILADOR
Uma tolerância máxima do oscilador de 1,58% é fornecida e, portanto, o uso de um ressonador cerâmico em uma
velocidade de barramento de até 125 Kbits/s como regra geral; para uma avaliação mais precisa, consulte
Dias, S; Chapman, M;
“Impacto da representação de bits na capacidade de transporte e no relógio
Precisão em fluxos de dados seriais”,
Documento Técnico SAE Série 890532, Multiplexação em Automóveis SP-773
março de 1989
Para toda a faixa de velocidade de barramento do protocolo CAN, é necessário um oscilador de quartzo.
O chip da rede CAN com o maior requisito para a precisão do oscilador determina a precisão do oscilador exigida
de todos os outros nós.
Nota:
Os controladores Can que seguem esta Especificação CAN e os controladores que seguem as versões anteriores
1.0 e 1.1, usados em uma e na mesma rede, devem estar todos equipados com um oscilador de quartzo. Isso
significa que os ressonadores cerâmicos só podem ser usados em uma rede com todos os nós da rede seguindo a
especificação do protocolo CAN versões 1.2 ou posterior.
setembro de 1991
O tempo de bit nominal pode ser pensado como sendo dividido em segmentos de tempo separados e não sobrepostos.
Esses segmentos
Ponto de amostragem
SYNC SEG
Esta parte do tempo de bit é usada para sincronizar os vários nós no barramento. Espera-se que uma aresta esteja neste
segmento.
setembro de 1991
PROP SEG
Esta parte do tempo de bit é usada para compensar os tempos de atraso físicos dentro da rede. É o dobro da soma
do tempo de propagação do sinal na linha de barramento, o atraso do comparador de entrada e o atraso do driver de
saída.
SAMPLE POINT O
SAMPLE POINT é o ponto no tempo em que o nível do barramento é lido e interpretado como o valor do respectivo
bit. Sua localização é no final de PHASE_SEG1.
TEMPO DE PROCESSAMENTO DA
INFORMAÇÃO O TEMPO DE PROCESSAMENTO DA INFORMAÇÃO é o segmento de tempo que começa com o
PONTO DE AMOSTRA reservado para o cálculo do nível de bit subsequente.
TIME QUANTUM O
TIME QUANTUM é uma unidade fixa de tempo derivada do período do oscilador. Existe um prescaler programável,
com valores integrais, variando no mínimo de 1 a 32.
Começando com o QUANTUM DE TEMPO MÍNIMO, o QUANTUM DE TEMPO pode ter um comprimento de
*
TEMPO QUANTUM = m QUANTUM DE TEMPO MÍNIMO
setembro de 1991
O número total de TIME QUANTA em um tempo de bit deve ser programável no mínimo de 8 a 25.
Nota:
Muitas vezes, pretende-se que as unidades de controle não façam uso de diferentes osciladores para a CPU local e seu
dispositivo de comunicação. Portanto, a frequência do oscilador de um dispositivo CAN tende a ser a da CPU local e é
determinada pelos requisitos da unidade de controle. Para derivar a taxa de bits desejada, a programação do bittiming é
necessária.
No caso de implementações CAN projetadas para uso sem uma CPU local, o bittiming não pode ser programável. Por outro
lado, esses dispositivos permitem escolher um oscilador externo de forma que o dispositivo seja ajustado à taxa de bits
apropriada para que a programabilidade seja dispensável para tais componentes.
A posição do ponto amostral, entretanto, deve ser selecionada em comum para todos os nós.
Portanto, o tempo de bit dos dispositivos SLIO deve ser compatível com a seguinte definição de tempo de bit:
1 bit de tempo
10 Quanta de Tempo
As informações de clock podem ser derivadas de transições de um valor de bit para o outro.
A propriedade de apenas um número máximo fixo de bits sucessivos ter o mesmo valor fornece a possibilidade de
ressincronizar uma unidade de barramento para o fluxo de bits durante um quadro. O comprimento máximo entre duas
transições que podem ser usadas para ressincronização é de 29 tempos de bit.
setembro de 1991
RESSINCRONIZAÇÃO O
efeito de uma RESSINCRONIZAÇÃO é o mesmo de uma HARD SINCRONIZAÇÃO, quando a magnitude
do ERRO DE FASE da borda que causa a RESSINCRONIZAÇÃO for menor ou igual ao valor programado
para a LARGURA DO SALTO DE RESSINCRONIZAÇÃO. Quando a magnitude do ERRO DE FASE for
maior que a LARGURA DO SALTO DE RESSINCRONIZAÇÃO,
REGRAS DE SINCRONIZAÇÃO
SINCRONIZAÇÃO HARD e RESSINCRONIZAÇÃO são as duas formas de SINCRONIZAÇÃO. Eles
obedecem as seguintes regras:
2. Uma borda será usada para SINCRONIZAÇÃO somente se o valor detectado no PONTO DE AMOSTRA
anterior (valor do barramento lido anterior) diferir do valor do barramento imediatamente após a borda.
3. HARD SINCRONIZAÇÃO é executada sempre que há uma borda 'recessiva' para 'dominante' durante
BUS IDLE.
4. Todas as outras arestas 'recessivas' para 'dominantes' que cumpram as regras 1 e 2 serão usadas para
RESSINCRONIZAÇÃO, com exceção de que um nó transmitindo um bit dominante não executará uma
RESSINCRONIZAÇÃO como resultado de um 'recessivo' para 'dominante' borda com um ERRO DE
FASE positivo, se apenas bordas 'recessivas' para 'dominantes' forem usadas para ressincronização.
Diferenças
página B-41:*
Nota para a tolerância do oscilador incluída
página B-43:
A numeração dos bits do identificador foi alterada.
página B-51:*
De acordo com a tolerância do oscilador, foi introduzida uma terceira condição para a geração de um quadro
de sobrecarga.
página B-52:*
Uma nota foi adicionada porque a interpretação da última parte do intervalo foi alterada.
página B-54:*
Uma nota foi introduzida devido a outra interpretação de Start of Frame.
página B-55:
Seção 3.3 “Conformidade com relação aos formatos de quadro”.
página B-56:
Capítulo 4 “Filtragem de Mensagens” foi introduzido recentemente.
página B-64:*
Observe a compatibilidade do protocolo modificado de acordo com as tolerâncias do oscilador.
página B-67:
Nota para o bittiming de implementações para ECUs sem CPU local.