Resumo do TCC do Rafael Rodrigues da Silva (MODELAGEM E ANÁLISE DE REDES AUTOMOTIVAS EM AMBIENTE VIRTUAL) - lucasavelino/TCC GitHub Wiki
Introdução
Os sistemas eletroeletrônicos automotivos são constituídos por sensores, dispositivos auxiliares, atuadores e unidades de controle eletrônico (ECU). E a quantidade média de ECU's presentes nos veículos mais que dobrou nos últimos 10 anos.
Uma rede de comunicação veicular conecta todas as ECU's no mesmo barramento e segue requisitos físicos e de software que possibilitam a troca de informações e a garantia do funcionamento dos sistemas automotivos.
Para o desenvolvimento e implementação de redes automotivas surgiram as ferramentas de simulação que abordam requisitos de hardware e software de um modelo real. Permitindo que o desenvolvedor analise o comportamento da rede baseando-se em parâmetros de desempenho, possibilitando o correto dimensionamento da rede, além da minimização e correção de erros que surgiriam na implementação do sistema físico.
Objetivo
O trabalho objetiva modelar e analisar através de ferramentas de simulação sistemas de redes automotivas baseados no protocolo CAN (Controller Area Network) e observar o seu comportamento com base nas métricas de desempenho.
Revisão bibliográfica
Com o avanço da tecnologia presente nos veículos há também o aumento da quantidade de ECU's presentes no sistema automotivo. Com o passar dos anos diversos componentes mecânicos dos automóveis foram sendo substituídos por dispositivos controlados eletrônicamente. Ao passo em que os veículos possuem mais e mais subsistemas integrados, maior o número de unidades de controle e maior tem que ser a capacidade de comunicação da rede.
Como a quantidade de ECU's em um automóvel pode ser muito grande, é inviável que estas estejam interligadas através de conexões ponto-a-ponto. Diante deste cenário surgem as redes de comunicação veicular, no qual existem canais, denominados barramentos, em que diversas ECUs podem estar conectadas mutuamente para transmitir e obter informações necessárias para suas rotinas de funcionamento.
Redes Automotivas
Através das redes automotivas cada ECU conectada ao barramento tem acesso as informações que permitem executar suas tarefas. As redes automotivas são divididas em 3 categorias de acordo com a taxa de transmissão e funcionalidades, pela Sociedade de Engenheiros Automotivos (SAE):
Classe | Velocidade | Aplicação | Principais Protocolos |
---|---|---|---|
A | menor que 10 kb/s | Áudio, ajuste dos espelhos retrovisores, travamento das portas e etc | ACP, BEAN, CCD, LIN |
B | entre 10kb/s e 125kb/s | Dados de sensores, informações do painel e etc. | VAN, J1850, ISO11519-2 |
C | acima de 125 kb/s | Dados em tempo real, dinâmica do veículo, brake by wire e etc. | CAN, J1939, FlexRay |
Modelo OSI para Redes
Camada | Função |
---|---|
Aplicação | Camada mais próxima do usuário, onde o usuário pode requisitar serviços das camadas inferiores. |
Apresentação | Obtém os dados da aplicação e os traduz para a linguagem comum á rede. |
Seção | Estabelece a comunicação entre emissor e receptor a fim de iniciar, gerenciar e detectar erros durante a transmissão de mensagens. |
Transporte | Recebe os pacotes de camadas superiores e os transmite para a camada de rede, oferecendo métodos para entrega de dados ponto-a-ponto como controle do tamanho dos pacotes e do fluxo de dados. |
Rede | Realiza o roteamento dos pacotes e define os endereços de origem e destino. |
Enlace | Encapsula os dados em quadros (frames) e é responsável por detecção de erros durante a transmissão bit-a-bit. |
Física | Define os meios físicos para transmissão e recepção dos bits e especifica alguns parâmetros da rede como tempo de transmissão, cabos, conectores, etc. |
Rede CAN
O protocolo CAN Controller Area Network foi criado na década de 80 por Robert Bosh GmbH visando a comunicação entre dispositivo de controle de automóveis. Estima-se que aproximadamente 720 milhões de ECU's baseadas no protocolo CAN sejam comercializadas por ano.
O protocolo CAN especifica apenas as camadas física e enlace do modelo OSI/ISO. A utilização das camadas superiores ficam a cargo do desenvolvedor para ser projetados segundo a necessidade de cada aplicação.
O barramento CAN é composto por dois condutores, geralmente do tipo cabo de par trançado que proporciona a redução de ruídos. Os cabos são denominados CAN_H e CAN_L e podem assumir dois níveis lógicos de tensão dominante (0) ou recessivo (1).
A dominância de bit é um conceito muito importante da utilizado no protocolo CAN e se assemelha a dominância genética onde a presença de um gene dominante inibe o efeito do gene recessivo. O estado do barramento pode ser dominante ou recessivo e é definido pela diferença entre os níveis de tensão dos dois fios. A referência elétrica é de 2.5V que indica o estado recessivo. O estado dominante é representado pelo nível elétrico do fio CAN_H para 3.5V e o nível reduzido de tensão para 1.5V do fio CAN_L gerando uma diferença de potencial de 2V que corresponde ao estado dominante.
No protocolo CAN o método para arbitragem em casos de conflitos de transmissão simultânea se baseia no conceito de CSMA/CD (Carrier Sensing Multiple Access with Collisiion Detection). Se um nó da rede transmite um bit dominante (0) ao mesmo tempo em que outro nó transmite um bit recessivo (1), o bit dominante vence. Isso significa que não existe atraso para as mensagens de mais alta prioridade.
As mensagens no protocolo CAN são encapsuladas em quadros (frames). Os frames são uma sequência de bits delimitados por campos que designam significados para cada bit em determinada posição e juntos constituem a mensagem. Estes quadros podem ser de quatro tipos diferentes:
- Frame de dados - Encapsula mensagem com dados
- Frame de requisição - Encapsula uma requisição de informação proveniente de outra unidade.
- Frame de erro - É transmitido por uma ECU quando erros são detectados.
- Frame de sobrecarga - É gerado para inserir um tempo a mais entre a transmissão de dois frames consecutivos, a fim de evitar que alguma ECU não esteja pronta pra emitir ou receber os frames enviados.
O frame de dados no protocolo CAN é composto por sete campos principais, sendo que as duas implementações do protocolo CAN se diferem apenas na quantidade de bits do campo de identificação.
- Início do frame - Consiste em um bit dominante que tem a função de marcar o início da transmissão do quadro. E através dele, todos os nós da rede podem se sincronizar pelo método hard synchronization.
- Campo de Arbitragem - Para o formato 2.0A este é composto por 11 bits de identificação seguidos por 1 bit RTR (Remote Transmission Request bit) que indica se o frame é de dados ou requisição, de forma que o bit dominante indica frame de dados, e recessivo frame de requisição. No formato 2.0B este campo contém 29 bits, isto é, após os 11 bits iniciais de identificação há também o bit SRR (Substitute Remote Request bit) que é sempre recessivo para garantir a prioridade para as mensagens no formato padrão em detrimento do formato estendido, o bit IDE (Identifier Extension bit) para determinar o formato do quadro, sendo dominante o frame padrão, mais dezoito bits de identificação e por fim o bit RTR.
- Campo de Controle - Composto por 6 bits, sendo os dois primeiros indefinidos e os quatro últimos guardam o tamanho em bytes do campo de dados.
- Campo de Dados - Contém os valores de magnitude dos parâmetros transmitidos (velocidade, rotação do motor, etc). O tamanho deste campo pode variar de 0 a 8 bytes.
- Campo CRC (Cyclic Redundancy Check) - Composto por 15 bits para a verificação de redundância cíclica que é responsável pela identificação de erros na transmissão do frame, além de um bit recessivo para indicar o término do campo.
- Campo ACK (Acknowledgment Error Check) - Composto por 2 bits, ACK slot e ACK delimiter onde o primeiro atua no momento da recepção de uma mensagem onde para indicar transmissão sem erros o receptor inverte o bit recessivo por um dominante e o segundo é um bit que deve ser sempre recessivo.
- Campo de Fim de Frame - Sequência de 7 bits recessivos que indicam fim de frame.
O protocolo CAN possui 5 métodos para verificar e corrigir erros de transmissão ou construção de mensagem:
- Monitoramento de bit - A ECU que emitir um bit dominante verifica após a transmissão o estado do barramento e se indicar bit recessivo, houve uma falha na transmissão.
- Bit Stuffing - Após a transmissão de 5 bits consecutivos idênticos o dispositivo emisso obrigatoriamente envia um bit complementar (stuff bit) e cabe ao receptor remover esse bit do frame recebido.
- CRC - Aplica o Cyclic Redundancy Check para detectar erros de consistência dos dados transmitidos.
- ACK - O campo ACK é utilizado para indicar sucesso ou falha na consistência dos dados transmitidos.
SAE J1939
O padrão define J1939 define as outras camadas do modelo OSI que não são implementadas pelo protocolo CAN. São práticas recomendadas para padronizar a interconexão entre ECU's em veículos comerciais, como ônibus, camninhões etc.
Algumas características em destaque do padrão são:
- Protocolo CAN na camada física
- Identificador estendido de 29 bits
- Taxa de transmissão de 250 kbits/s
- Comunicação peer-to-peer ou broadcast
Existem uma série de documentos que descrevem a implementação de cada uma das camadas do modelo OSI para o padrão SAE J1939.
O modelo das mensagens no padrão é baseado no CAN 2.0B, e as mensagens também são dividas em quadros. O campo identificador é composto por PGN (número de grupo de parâmetros), endereço da ECU transmissora e prioridade do frame.
Os grupos de parâmetros PG é o mecanismo que permite reunir parâmetros distintos em um mesmo grupo e transmiti-los em um mesmo quadro. Estes grupos são identificados pelo PGN.
No padrão os 3 primeiros são os mais significativos da mensagem e definem a prioridade do quadros entre os PGNs descritos pela J1939, não substituindo o mecanismo de prioridade do protocolo CAN. O Campo seguinte guarda o PGN e identifica o conteúdo do quadro. O campo Data Page expande o número de PG's representadas. Os campos PDU format e Specific possuem dois cenários:
- PDU format >= 240 - Mensagem broadcast, PDU Specific se refere a extensão do grupo destinatário.
- PDU format < 239 - Mensagem peer-to-peer, PDU Specific contém o endereço da ECU destinatária.
O último campo Source Address identifica a ECU transmissora.
O SAE J1939/71 é o documento que especifica a camada de aplicação do padrão. Este documento contém informações para implementação da rede como PGNs, taxas de transmissão, etc. Os parâmetros nos quadros são identificados por um SPN Suspect Parameter Number que é um conjunto de especificações do parâmetro.
Parâmetros importantes de configuração de Redes CAN
Nome | Descrição |
---|---|
Formato do frame | Formato padrão (CAN2.0A) ou Formato estendido (CAN2.0B) |
Número de mensagens | Número total de mensagens de dados que trafegam pela rede |
Tipo de mensagem | Periódica ou aperiódica |
Taxa de transmissão | Valor da taxa de transmissão de dados pelo barramento |
Período ou tempo de amostragem | Intervalo de tempo entre transmissões consecutivas de uma mensagem |
Esquema de prioridade | Prioridade de acesso das mensagens que trafegam pelo barramento |
Tamanho do campo de dados das mensagens | Quantidade de bits de dados (campo de dados) de uma dada mensagem |
Parâmetros importantes de desempenho de Redes CAN
Nome | Descrição |
---|---|
Tempo de transmissão | Tempo entre o início da transmissão de uma mensagem e o recebimento da mesma |
Tempo de resposta total | Tempo total de leitura ou transmissão de mensagens de todos os dispositivos da rede |
Taxa de utilização | Porcentagem utilizada pela comunicação de dados em relação à capacidade total de uma rede |
Número de mensagens enviadas e recebidas | Relação entre os números de mensagens enviadas e recebidas pelos nós da rede |
Cumprimento de deadline | Verifica-se o cumprimento do requisito de tempo de cada mensagem |
Número de mensagens no buffer | Monitoramento do número de mensagens nos buffers de recepção e transmissão de cada ECU da rede |
Benefícios da Simulação de redes automotivas
A simulação de redes automotivas traz benefícios que impactam na redução de custos tanto no desenvolvimento quanto na fase de avaliação de sistemas de comunicação veicular. Dentre esses benefícios, estão:
- Permite simular a comunicação entre múltiplas ECUs e em diferentes protocolos (CAN, LIN, etc).
- Avaliação dos canais de comunicação, verificando integridade dos sinais.
- Análise dos parâmetros de desempenho de uma rede.
- Permite avaliar o carregamento no barramento.
- Adquire-se conhecimento de situações críticas de carregamento, e com esses dados possibilita que seja projetado um contorno para essas situações.
- Reutilização de mecanismos abordados em simulações posteriores
- Integração total ou parcial entre nós reais e virtuais.
- Possibilita correção de falhas na implementação e cumprimento dos requisitos pelas ECUs.
Desafios na simulação de redes automotivas
- Necessidade de hardwares específicos e seus respectivos drivers para integração de ECUs reais à simulação.
- Dificuldade na simulação de funções que envolvem controle como ABS, ESP, controle de tração e etc.
Ferramentas de simulação de redes automotivas
Existem diversas ferramentas. Estas permite simular o comportamento de uma rede veicular real com diversas ECUs, controlar a rede de forma a analisar o comportamento da rede para eventos específicos como acelerar, frear, etc. Além de permitirem uma análise de desempenho da rede.
CANoe
É uma ferramenta proprietária criada pela companhia alemã Vector. Tem por objetivo o desenvolvimento, teste e análise de redes automotivas e ECUs individuais através da simulação.
Bus Master
É uma ferramenta desenvolvida em conjunto por ETAS e Robert Bosch Engineering and Business Solutions (RBEI) que permite projeto, monitoramento, análise e simulação de redes automotivas. É um software de código aberto, livre para contribuições de pesquisadores, estudantes, indústrias entre outros que tenham interesse em adicionar ou gerenciar funcionalidades a esta aplicação que é desenvolvida em uma arquitetura modular. Suas principais funcionalidades são:
- Integração de hardwares conectados ao computador para simulação e monitoramento da rede.
- Compatível com diversos tipos de protocolo: CAN 2.0A e 2.0B, FlexRay, LIN, etc.
- Mensagens em formato decimal ou hexadecimal.
- Monitoramento de erros ocorridos ao longo da transmissão.
- Filtros para exibição de frames específicos para o usuário.
- Mensagens podem ser destacadas e analisadas individualmente utilizando o timestamp.
- Definição de cores específicas para frames por IDs.
- Atende parcialmente as métricas de desempenho.