Você está na página 1de 11

MESTRADO EM ENG.

ELECTROTCNICA E DE COMPUTADORES 2011/2012

Protocolo CAN
Sistemas Embebidos
Diego S Fernando Gomes 15-11-2011

ndice
Princpio de transferncia de dados.............................................................................................. 2 Arbitragem do barramento e prioridades ..................................................................................... 2 Formatos das mensagens .............................................................................................................. 3 Data Frames .............................................................................................................................. 4 Remote Frames ......................................................................................................................... 5 Error Frame ............................................................................................................................... 6 Overload Frame......................................................................................................................... 7 Caractersticas fsicas .................................................................................................................... 7 Configurao do bit ................................................................................................................... 8 Sinalizao do barramento........................................................................................................ 8 Taxas de transferncia .............................................................................................................. 9 Discusso ..................................................................................................................................... 10

Princpio de transferncia de dados


O protocolo CAN uma norma internacional definida na ISSO 11898. Relacionado tambm com o protocolo CAN, existe a norma ISO 16845 que garante a conformidade entre chips que implementam este protocolo. O mecanismo de funcionamento do protocolo CAN assenta numa comunicao por broadcasts de mensagens, no existindo a necessidade de se definir endereos para cada estao ligada ao barramento de rede. Cada mensagem possui o seu identificador, que nico em toda a rede, e tambm um valor de prioridade que bastante importante quando vrias estaes competem ao mesmo tempo pelo acesso rede. A recepo de cada mensagem feita pelas estaes que estiverem configuradas para as receber. Caso isso no acontea a mensagem ignorada. Pelo facto de ser uma comunicao baseada em mensagens, este protocolo permite um alto grau de flexibilidade na sua configurao. Caso se pretenda adicionar novas estaes ao barramento da rede, no necessrio fazer qualquer alterao de software ou hardware s j existentes, caso as novas estaes sejam apenas receptoras de mensagens. Este facto permite uma alta modularidade, facilidade de recepo de dados e sincronismo de processos distribudos. A transmisso de dados no depende da disponibilidade de nenhum tipo especfico de estao, o que facilita o upgrade rede.

Arbitragem do barramento e prioridades


A prioridade qual a mensagem transferida especificada pelo seu identificador. As prioridades das mensagens de um determinado sistema so estipuladas na altura do projecto sob a forma de valores binrios. O identificador com o valor binrio mais baixo possui a prioridade mais alta. Os conflitos de acesso ao barramento so resolvidos atravs da comparao bit a bit dos identificadores das mensagens que estiverem a tentar ser enviadas ao mesmo tempo. Quando um n detecta que determinado bit do identificador da mensagem que est a tentar enviar no dominante no barramento, este cancela o envio da mensagem e entra em modo de recepo. A seguir apresentado um exemplo de acesso ao barramento de quatro ns.

Figura 1 Conflito de acesso ao barramento CAN

No exemplo podemos verificar que os ns A, B e C comeam a enviar mensagens ao mesmo tempo fazendo com que o n D entre de imediato em modo recepo. Os identificadores das mensagens so os primeiros a serem enviados, sendo que at ao bit 6 no existe nenhuma diferena entre eles pelo que nenhum n se apercebe do conflito em curso. No bit 5, o n B detecta que no possui bit dominante, abortando o envio da mensagem e entrando em modo recepo. O mesmo acontece com o n A no bit 3 ficando o n C com o domnio do barramento, continuando a enviar a mensagem sem que este se aperceba do conflito.

Formatos das mensagens


As mensagens transmitidas pela rede CAN possuem duas verses bastante utilizadas atualmente. A verso 2.0 A onde o campo destinado para o identificador da mensagem possui 11 bits, e a verso 2.0 B onde o campo de identificao de mensagem possui 29 bits. Uma mensagem CAN pode ser encapsulada em quatro tipos bsico de datagramas, so eles: Data Frames; Remote Frames; Erro Frames; Overload frames.

A funo de cada um destes tipos de mensagens ser descrita a seguir.

Data Frames

Figura 2 Estrutura dos quadros de dados.

O campo de incio de quadro (Start of Frame SOF) composto por apenas um bit dominante, sendo este bit responsvel por informar o barramento que uma mensagem vai ser transmitida. O campo de arbitragem (Arbitration Field) na verso 2.0 A possui um campo de 11 bits chamado de Identificador da mensagem, e um campo de requisio de retransmisso de dados (RTR Remote Transmission Request). O campo identificador de mensagens responsvel por informar ao barramento a prioridade da mensagem. E o campo RTR composto por apenas um bit, se este bit for dominante, responsvel por informar aos componentes que um remote frame deve ser enviado aps a recepo desta mensagem.

Figura 3 Campos de arbitragem e controle de mensagens no formato CAN 2.0 A.

Na verso 2.0 B, o campo de arbitragem um pouco maior, possuindo 29 bits no campo de identificao dividido em um campo de 11 bits, e um de 18 bits. Os campos que dividem o campo de identificao so um campo RTR recessivo denominado de SRR (Subistitute Remote Request), e o campo IDE (Identifier Extension), presente tambm no campo de controlo, este bit, se recessivo, informa se o prximo campo a extenso do identificador ou apenas o campo de controlo.

Figura 4 Campos de arbitragem e controle de mensagens no formato CAN 2.0 B.

O campo de controlo composto por um (verso 2.0 A) ou dois (verso 2.0 B) bits reservados e um campo de 4 bits informando o comprimento da mensagem (DLC Data Lenght Code). Em seguida, apresentada a mensagem propriamente dita. O campo da mensagem pode ser composto de 0 a 8 bytes. Aps o campo da mensagem transmitido um campo de verificao de redundncia cclica, ou checksum, de 2 bytes. Este campo usado para verificar a integridade da mensagem. Se o CRC enviado no for igual ao calculado, a aplicao definir o que deve ser feito. Em seguida, o campo de confirmao de recebimento (ACK) dominante somente se a mensagem enviada foi recebida corretamente pelo receptor. E finalmente o campo de fim de transmisso (EOF End Of Frame) enviado. Este campo de 7 bits informa o fim do pacote e caso tenha apresentado algum erro, este campo pode informar sobre esses erros. O espao entre mensagens (Interframe Space) composto por 3 bits recessivos e somente um espao definido entre duas mensagens. O IFS s enviado aps data frames e remote frames.

Remote Frames
Um remote frame gerado por um n que pretende obter dados a partir de outro n. O n que pretende obter dados deve gerar um remote frame com o identificador corrector de modo a ser lido pelo n de destino. Ao detectar o pedido, o n de destino envia um data frame com os dados pedidos e com um identificador igual ao do remote frame.

Figura 5 Estrutura de um remote frame

Num remote frame, o bit RTR no dominante logo, caso um remote frame e um data frame, ambos com o mesmo identificador, estejam a ser enviados ao mesmo tempo, o data frame ganha o acesso ao barramento sem que haja perda de tempo. O remote frame no contm dados logo o campo de dados no existe.

Error Frame
Um error frame gerado por qualquer n da rede que detecte um erro no barramento. Este tipo de frame composto por dois campos: um campo Error Flag, seguido pelo campo Error Delimiter. O campo Error Delimiter composto por 8 bits no dominantes e obriga os ns a reiniciar as comunicaes se m erros aps o erro. A composio do campo Error Flag depende do error status do n que detecta o erro. Se for um n do tipo error active a detectar o erro, esse n interrompe a transmisso enviando um Error Flag de 6 bits dominantes consecutivos violando desta forma o bit de sincronismo. Quando essa violao detectada pelos restantes ns, estes geram tambm error frames. Desta forma, o campo Error Flag composto entre 6 a 12 bits dominantes, gerados por um ou mais ns.O campo Error Delimiter completa o error frame. Aps a finalizao do error frame, a actividade do barramento volta ao normal e o n cuja comunicao foi interrompida tenta enviar de novo a mensagem.

Figura 6 Error frame do tipo error active

Caso um erro no barramento seja detectado por um n do tipo error passive, o campo Error Flag passa a ser composto por 6 bits no dominantes consecutivos e, por isso, o error frame passa a ser composto por 14 bits no dominantes. Assim, o envio de um error frame por parte de um n do tipo error passive e que no fosse o transmissor, no afecta nenhum outro n na rede. Caso fosse transmissor, o envio de um error frame do tipo error passive obrigaria os restantes ns a gerar error frames devido violao do bit de sincronismo.

Figura 7 Error frame do tipo error passive

Overload Frame
O overload frame tem o mesmo formato de um error frame do tipo error active. No entanto, um overload frame s pode ser gerado no espao entre frames ao contrrio dos error frames que podem ser gerados durante uma transmisso. Um overload frame pode ser gerado por um n que, devido a condies internas, no capaz de receber a prxima mensagem. Um n pode gerar at um mximo de dois overload frames consecutivos para atrasar o envio da prxima mensagem.

Caractersticas fsicas
Existem 3 tipos de configurao possveis para a camada fsica do protocolo CAN, sendo os mais usualmente usados os de 2 e 4 fios. Ambos trabalham com os sinais de dados CAN_H (CAN High) e CAN_L (CAN Low). Nos barramentos a 4 fios, alm dos sinais de dados, existe um condutor com uma tenso de alimentao (Vcc) e outro de referncia (GND).

Figura 8 Camada fsica do protocolo CAN

Num barramento CAN deve-se ter em conta que os condutores elctricos devem ser tranados. Os dados enviados atravs da rede devem ser interpretados pela diferena de potencial entre os sinais CAN_H e CAN_L, sendo este tipo de barramento classificado como par tranado diferencial. Este conceito atenua significativamente os efeitos causados pelas interferncias electromagnticas, uma vez que a existncia de rudo influencia de igual modo ambos os sinais para o mesmo sentido e com a mesma intensidade.

Configurao do bit
Num barramento CAN, os dados no so representados por bits em nvel 0 ou nvel 1. So representados por bits dominantes e bits recessivos, criados em funo da condio presente em cada um dos condutores CAN_H e CAN_L. Na figura seguinte so ilustrados os nveis de tenso numa rede CAN, assim como os bits dominantes e recessivos.

Figura 9 Configurao dos bits num barramento CAN

Nos bits recessivos a diferena de tenso entre CAN_H e CAN_L nula, enquanto que nos bits dominantes a diferena de tenso de 2 volt.

Sinalizao do barramento
Apenas cinco bits consecutivos podem ter o mesmo valor (dominante ou recessivo). Caso seja necessrio transmitir sequencialmente seis ou mais bits de mesmo valor, o mdulo transmissor insere, imediatamente aps cada grupo de cinco bits consecutivos iguais, um bit de valor contrrio.

Figura 10 Bit stuffing no protocolo CAN

O mdulo receptor, durante a leitura, retira este bit, chamado de stuff bit. Caso uma mensagem seja recebida com pelo menos seis bits consecutivos iguais, ser gerado um error frame.

Taxas de transferncia
Numa comunicao CAN possvel ter taxas de transferncia at 1Mbit/s para comprimentos de rede abaixo de 40 metros.

Figura 11 Taxa de transferncia vs. Comprimento do barramento CAN

Baixando a taxa de transferncia possvel obter distncias maiores, por exemplo, 500 metros usando uma taxa de 125kbit/s.

Discusso
O protocolo CAN surgiu da necessidade de se definir uma forma de comunicao entre sistemas que tm necessidades de controlo e troca de mensagens entre eles, como o caso dos sistemas constituintes de um automvel. Este protocolo veio a mostrar-se muito robusto em termos de tratamento de erros e fiabilidade na comunicao, factores que levaram a que o protocolo CAN fosse implementado tambm em redes de comunicao industriais. A existncia de controladores CAN de baixo custo permite tambm a proliferao deste protocolo de comunicao em vrios outros tipos de sistemas, como sendo, por exemplo, a robtica

10