Controller Area NetworkWalter Fetter [email protected]
Universidade Federal do Rio Grande do Sul
Escola de Engenharia
Departamento de Engenharia Elétrica
Programa de Pós-Graduação em Engenharia Elétrica
ELE00002 Sistemas de Automação
Copyright (c) Walter Fetter Lages – p.1
Controller Area Network
Copyright (c) Walter Fetter Lages – p.2
Introdução
• Desenvolvido pela Bosch para automóveis• Padronizado pela ISO 11898
• Camada física• Camada de enlace
• Comunicação serial até 1Mbps e até 1km.• Sinalização diferencial em par trançado• Mensagens pequenas (até 8 bytes) com CRC• Sem endereçamento -> broadcast apenas• Mensagens priorizadas
Copyright (c) Walter Fetter Lages – p.3
Características
• Recepção multicast com sincronização• Detecção e sinalização de erro
• Recuperação em até 29 bit times• Multimaster• Tempos de Latência garantidos• Sleep mode/wake-up• Reconhecimento• Controle totalmente distribuído
Copyright (c) Walter Fetter Lages – p.4
Camadas
• Camada física• Camada de transferência
• Enquadramento• Arbitragem• Detecção e sinalização de erro
• Camada de objeto• Prioriza mensagens a serem transmitidas• Seleciona mensagens recebidas• Interface para a aplicação
Copyright (c) Walter Fetter Lages – p.5
Camada Física
• Codificação NRZ• Bits dominantes (0) ou recessivos (1) -> C. A.
• Bit-stuffing• Bit complementar inserido após a transmissão
de cinco bits identicos consecutivos• Diversas implementações de camada física
podem ser utilizadas, inclusive proprietárias• Não existe um conector padrão. DB9 e mini-DIN
são usuais.
Copyright (c) Walter Fetter Lages – p.6
Sinais CAN
Copyright (c) Walter Fetter Lages – p.7
Camada de Transferência
• Quatro tipos de quadros• Dados• Remoto• Erro• Overload
• Mensagem de Wake-up• rrr rrrd rrrr
Copyright (c) Walter Fetter Lages – p.8
Quadro de Dados
• Início de quadro• Um único bit dominante
• Campo de arbitragem• Identificador - 11 bits (29 bits, CAN2.0B)• RTR bit (remote transmision request bit)
• Campo de controle• 4-bit DLC (data length code)• 2 bits reservados
Copyright (c) Walter Fetter Lages – p.9
Quadro de Dados
Copyright (c) Walter Fetter Lages – p.10
Quadro de Dados
• Campo de dados• Até 8 bytes, MSB primeiro
• Campo de CRC• x
15 + x14 + x
10 + x8 + x
7 + x4 + x
3 + 1
• Delimitador de CRC = bit recessivo• Slot de ACK
• Bit dominante para indicar reconhecimento• Delimitador de ACK = bit recessivo
• Fim de quadro• 7 bits recessivos
Copyright (c) Walter Fetter Lages – p.11
Quadro Remoto
Copyright (c) Walter Fetter Lages – p.12
Quadro Remoto
• Usado para solicitar dados• Possui os mesmo campos do quadro de dados,
exceto o campo de dados• Identificado por um bit RTR recessivo
Copyright (c) Walter Fetter Lages – p.13
Quadro de Erro
Copyright (c) Walter Fetter Lages – p.14
Quadro de Erro
• Flag de erro• Flag de erro ativo
• Seis bits dominantes• Flag de erro passivo
• Seis bits recessivos• Delimitador de erro
• 8 bits recessivos• Não é utilizado bit-stuffing
Copyright (c) Walter Fetter Lages – p.15
Detecção de Erros
• Detecção de erro• Monitoramento dos níveis de bits• CRC• Bit-stuffing• Formato do quadro de mensagem
• Erros detectados• Erros globais e erros locais no transmissor• Até 5 erros aleatórios na mensagem• Erros de burst de comprimento até 15• Probabilidade de erro não detectado
= 4.7 × 10−11
Copyright (c) Walter Fetter Lages – p.16
Quadro de Overload
Copyright (c) Walter Fetter Lages – p.17
Quadro de Overload
• Flag de overload• 6 bits dominantes
• Delimitador de overload• 8 bits recessivos
• Não é utilizado bit-stuffing• Quadro idêntico ao quadro de erro ativo• Gerado por condições internas ou ao detectar um
bit dominante durante um intermission
Copyright (c) Walter Fetter Lages – p.18
Espaçamento Interframe
• Espaçamento entre quadros de dados e/ouquadros remotos
• Intermission bits (3 bits recessivos)• Nenhuma estação pode transmitir
• Bus idle bits• Detecção de um bit dominante é interpretado
como um início de quadro
Copyright (c) Walter Fetter Lages – p.19
Espaçamento Interframe
Copyright (c) Walter Fetter Lages – p.20
Confinamento de Faltas
• Estado do dispositivo• Ativo em erro - estado inicial• Passivo em erro• Bus off
• Dois contadores de erro (Tx e Rx)• Um dos contadores≥ 128
• Dispositivo passa para Passivo em erro.• Contador de erro de TX≥ 256
• Dispositivo passa para bus off
Copyright (c) Walter Fetter Lages – p.21
Contador de Erros de Tx
• Incrementado em 8 ao enviar um flag de erro• Incrementado em 8 ao detectar um erro de bit ao
transmitir um flag de erro ativo ou um flag deoverload
• Decrementado em 1 (a não ser que já seja 0) aotransmitir uma mensagem com sucesso
Copyright (c) Walter Fetter Lages – p.22
Contador de Erros de Rx
• Incrementado em 1 ao detectar um erro derecepção
• Incrementado em 8 ao detectar um bit dominanteimediatamente após enviar um flag de erro.
• Incrementado em 8 ao detectar um erro de bit aoenviar um flag de erro ativo ou um flag deoverload
• Decrementado em 1 ao receber uma mensagemcom sucesso
Copyright (c) Walter Fetter Lages – p.23
Bit Timing
• Bit time dividido em quatro segmentos• Sincronização (1 quantum)• Propagação (1 a 8 quanta)• Fase 1 (1 a 8 quanta)• Fase 2 (máx Fase 1, tempo de processamento)• Tempo de processamento≤ 2 quanta
Copyright (c) Walter Fetter Lages – p.24
Sincronização de Clock
• Hard synchronization• Ocorre na borda de recessivo para dominante
do start bit. O bit-time é reinicializado• Resynchronization
• Ocorre quando a borda de 1 bit não ocorredentro do segmento de sincronização.aumentada ou a fase 2 é encurtada
Copyright (c) Walter Fetter Lages – p.25
Referências
[1] R. Bosch. CAN. Specification Version 2.0, RoberBosch GmbH, Stuttgart, September 1991.
[2] CiA. CANopen application layer andcommunication profile, version 4.0. DraftStandard 301, CAN in Automation e. V.,Erlangen, 1999.
Copyright (c) Walter Fetter Lages – p.26
Top Related