protocolo can controller area network - dca.ufrn.braffonso/dca0447/aulas/slide_can.pdf · –...

31
Protocolo CAN Protocolo CAN Controller Area Network Controller Area Network Carlo Frederico Campos Danielle Simone Prof. Luiz Affonso Universidade Federal do Rio Grande do Norte Programa de Pós-graduação em Engenharia Elétrica Maio / 2005

Upload: vananh

Post on 11-Nov-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Protocolo CANProtocolo CANController Area NetworkController Area Network

Carlo Frederico CamposDanielle SimoneProf. Luiz Affonso

Universidade Federal do Rio Grande do Norte

Programa de Pós-graduação em Engenharia Elétrica

Maio / 2005

17 de maio de 2005 CAN - Controller Area Network 2

SumárioSumárioIntrodução

– Áreas de aplicação do CANCaracterísticas do CANCamadas do protocolo CAN

– Camada Física– Camada de Enlace

Formato das mensagens CAN– Tipos de quadros

CodificaçãoTratamento de erros (detecção e sinalização)Filtragem/Validação das mensagensProtocolos de alto nívelImplementaçãoConclusões

17 de maio de 2005 CAN - Controller Area Network 3

IntroduçãoIntroduçãoO CAN Bus (Barramento Controller Area Network) foi desenvolvido pela empresa Alemã BOSCH e disponibilizado em meados dos anos 80.

Desenvolvido inicialmente para área automotiva mas devido à sua comprovada confiabilidade e robustez também está sendo adotado em aplicações industriais em sistemas que necessitam de controle distribuído em tempo real.

17 de maio de 2005 CAN - Controller Area Network 4

Áreas de Aplicação do CANÁreas de Aplicação do CAN

Veículos (marítmo, aéreo, terrestre) – carros de passeio, off-road,trens, sistema de semáforo (trens e carros), eletrônica marítma,

máquinas agrícolas, helicópteros, transporte público.

Sistema de Controle Industrial – controle de planta, de maquinário, robôs, sistema de supervisão.

Automação Predial – controle de elevadores, ar condicionado, iluminação.

Aplicações Específicas – sistemas médicos, telescópios, simuladores de vôo, satélites artificiais, entre outros.

17 de maio de 2005 CAN - Controller Area Network 5

Características do CANCaracterísticas do CANProtocolo Digital e Comunicação Serial SíncronoConceitos baseados na técnica CSMA/CD with NDA(Carrier Sense Multiple Access /Collision Detection)Priorização de MensagensGrande Flexibilidade de ConfiguraçãoRecepção MulticastGarantia de Consistência dos DadosDetecção/Sinalização de errosRetransmissão Automática de Mensagens Corrompidas

17 de maio de 2005 CAN - Controller Area Network 6

Camadas do CANCamadas do CAN

O CAN foi dividido em duas camadas, obedecendo o modelo OSI/ISO:– Data Link Layer

Logical Link Control (LLC)Medium Access Control (MAC)

– Physical Layer

17 de maio de 2005 CAN - Controller Area Network 7

Camadas do Protocolo CANCamadas do Protocolo CANModelo OSI/ISOModelo OSI/ISO

Camada Física - Physical Layer– Codificação / Decodificação dos Bits– Temporização dos Bits– Sincronização

17 de maio de 2005 CAN - Controller Area Network 8

Camadas do Protocolo CANCamadas do Protocolo CANCamada Física Camada Física –– Physical LayerPhysical Layer

Velocidade de Transmissão – Até 1Mbps

100005

670010

330020

130050

620100

530125

270250

130500

401000

Distância máxima (m)Taxa Kbit/s

Taxa de transmissão X distância para o barramento CAN

17 de maio de 2005 CAN - Controller Area Network 9

Camadas do Protocolo CANCamadas do Protocolo CANCamada Física Camada Física –– Physical LayerPhysical Layer

ISO11898– Alta Velocidade de Transmissão de dados –

125 Kbps a 1 Mpbs

ISO11519-2– Baixa Velocidade de Transmissão de dados –

10 Kbps a 125 Kbps

17 de maio de 2005 CAN - Controller Area Network 10

Camadas do Protocolo CANCamadas do Protocolo CANCamada Física Camada Física –– Physical LayerPhysical Layer

Meio de Transmissão Fios Elétricos

Formas de Constituição de um barramento CAN:

1 Fio - Fio de dados2 Fios - CAN_H,CAN_L4 Fios

– CAN_H– CAN_L– Vcc– GND

17 de maio de 2005 CAN - Controller Area Network 11

Camadas do Protocolo CANCamadas do Protocolo CANModelo OSI/ISOModelo OSI/ISO

Camada de Enlace - Data Link Layer– Logical Link Control (LLC)

RecepçãoFiltragemNotificação de OverloadGerenciamento de Recuperação

– Medium Accsses Control (MAC)Encapsulamento/ Desencapsulamento dos DadosCodificação dos QuadrosGerenciamento de Acesso ao MeioDetecção e Sinalização de ErrosReconhecimentoSerialização / Deserialização

17 de maio de 2005 CAN - Controller Area Network 12

Quadros CANQuadros CAN

O barramento CAN utiliza 4 tipos de quadros (Frames) para controlar a transferência de mensagens

– Quadro de Dados (Data Frame)– Quadro Remoto (Remote Frame)– Quadro de Erro (Error Frame)– Quadro de Sobrecarga (Overload Frame)

17 de maio de 2005 CAN - Controller Area Network 13

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens –– Tipos de QuadrosTipos de Quadros

Camada de EnlaceCamada de EnlaceQuadro de Dados– Composto por 7 (sete) diferentes campos de bits

17 de maio de 2005 CAN - Controller Area Network 14

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens –– Tipos de QuadrosTipos de Quadros

Camada de EnlaceCamada de Enlace

Quadro Padrão – CAN 2.0A– Identificador de 11 bits

É possível ter até 2048 mensagens em uma rede

Quadro Estendido – CAN 2.0B– Identificador de 29 bits

É possível ter até 537 milhões de mensagens em uma rede

17 de maio de 2005 CAN - Controller Area Network 15

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens -- Campo de ArbitragemCampo de Arbitragem

17 de maio de 2005 CAN - Controller Area Network 16

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens -- Campo de ControleCampo de Controle

dominante

17 de maio de 2005 CAN - Controller Area Network 17

Codificação de Tamanho para o Codificação de Tamanho para o Campo de DadosCampo de Dados

17 de maio de 2005 CAN - Controller Area Network 18

Mensagens do CANMensagens do CANFormato das MensagensFormato das Mensagens

Campo de Dados– Pode comportar de 0 (zero) a 8 (oito) bytes, de 8 bits

cada.

17 de maio de 2005 CAN - Controller Area Network 19

Mensagens do CANMensagens do CANFormato das MensagensFormato das Mensagens

Campo CRC (Cyclic Redundancy Check)– Composto por 15 (quinze) bits– CRC delimitador

Recessivo

17 de maio de 2005 CAN - Controller Area Network 20

Mensagens do CANMensagens do CANFormato das MensagensFormato das Mensagens

Campo de Reconhecimento (Ack Field)– Composto por 2 (dois) bits

ACK SlotACK delimiter

Fim de Quadro (End of Frame)– Composto por sete bits recessivos

17 de maio de 2005 CAN - Controller Area Network 21

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens –– Tipos de QuadrosTipos de Quadros

Quadro Remoto – Remote Frame– É enviado toda vez que um determinado nó, atuando como

receptor, necessita receber uma mensagem.– Mesma formação do Quadro de Dados, entretanto não possui o

Campo de Dados.– O Bit RTR nesse quadro é recessivo

RTR

Recessivo

17 de maio de 2005 CAN - Controller Area Network 22

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens –– Tipos de QuadrosTipos de Quadros

Quadro de Erros (Error Frame)

– Composto por dois campos:Flag de erro

– Error Active– Error Passive

Delimitador de quadro

Quadro de Sobrecarga(Overload Frame)

– Composto por dois campos:Flag de SobrecargaDelimitador de quadro

8 bits recessivos

6 bits dominantes 8 bits recessivos

17 de maio de 2005 CAN - Controller Area Network 23

Mensagens do CANMensagens do CANFormato das Mensagens Formato das Mensagens –– Tipos de QuadrosTipos de Quadros

Espaço Interquadros – Interframe Space

Intervalo3 bits recessivos

17 de maio de 2005 CAN - Controller Area Network 24

CodificaçãoCodificaçãoCampos Codificados

Bit StuffingQuadro de Dados / Remoto

– Inicio de Quadro – Campo de Arbitragem– Campo de Controle– Campo de Dados– CRC

Campos Não Codificados

(Formato Fixo)Quadro de Dados / Remoto

– Delimitador de CRC– Campo de

Reconhecimento– Fim de Quadro

Quadros de ErrosQuadro de Overload

17 de maio de 2005 CAN - Controller Area Network 25

Tratamento de ErrosTratamento de ErrosDetecção e SinalizaçãoDetecção e Sinalização

DetecçãoNível de Bit

Bit monitoringBit Stuffing

Nível de MensagemCRC ou Cyclic Redundancy CheckFrame CheckAcknowledgment Error Check

SinalizaçãoErro de CRC - O bit flag de erro é enviado após o bit Ack Delimiter

Outros tipos de erros - O bitflag de erro é enviado após a detecção

17 de maio de 2005 CAN - Controller Area Network 26

Tratamento de ErrosTratamento de ErrosMecanismo de Falhas Mecanismo de Falhas -- Fault ConfinentFault Confinent

Dois contadores - Nó do CANErros de Transmissão – 8 pontosErros de Recepção – 1 ponto

Estado dos Nós1 a 127 pontos – Error Active128 a 255 – Error PassiveAcima de 255 – Bus Off

17 de maio de 2005 CAN - Controller Area Network 27

Filtragem e Validação das Filtragem e Validação das MensagensMensagens

Filtragem Através de Máscaras e CódigosEx:Para um Quadro Padrão de 11 bits

110000000101000000

Validação das Mensagens– Transmissor

Após Último bit do Fim de Quadro– Receptor

Após Penúltimo bit do Fim de Quadro

17 de maio de 2005 CAN - Controller Area Network 28

Protocolos de Alto NívelProtocolos de Alto NívelHigh High Layer Layer ProtocolsProtocols –– Modelo OSIModelo OSI

Algumas Tarefas DesenvolvidasInicialização dos diversos componentes do sistemaDistribuição dos identificadores de mensagemInterpretação do conteúdo do Quadro de DadosGerenciamento do status do sistema

Exemplo de Protocolos de Alto Nível – HLP– CAN OPEN– DEVICENET– CAN Kingdom

17 de maio de 2005 CAN - Controller Area Network 29

ImplementaçãoImplementaçãoExemplo de RedeExemplo de Rede

17 de maio de 2005 CAN - Controller Area Network 30

ImplementaçãoImplementação(em laboratório)(em laboratório)

Montagem de uma Rede CANImplementação de projetos com comunicação CAN

Placa CANHub

Pontos de Rede CAN

Placa MicrocontroladaPIC 18F258

SupervisórioLabVIEW

Placa MicrocontroladaPIC 18F258

17 de maio de 2005 CAN - Controller Area Network 31

ConclusõesConclusões

Aspectos positivos do CAN– Flexibilidade do Sistema;– Roteamento de Mensagens;– Multicast e Multi-mestre;– Consistência dos Dados;– Bastante utilizado em aplicações embarcadas.