Ir para o conteúdo
ou

 Voltar a Blog
Tela cheia

Implementando o computador de bordo para o BRElétrico

20 de Agosto de 2019, 4:29 , por Rudi Henri van Els - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 13 vezes

O módulo de computador de borda do BRElétrica será construído a partir do Beagle Bone Black (BBB).

O BBB é um computador numa única placa e foi escolhido para ser o computador de bordo da BRElétrica por ter um microprocessador ARM, duas Programmable Real-time Unit (PRU), interface HDMI, porta ethernet, porta USB, duas controladoras CAN. Além disso, já vem com Linux embarcada e toda estrutura de software para habilita-lo como servidor com toda funcionalidade TCP-IP internet inerente do Linux. A figura 1 mostra o diagrama do bloco do computador de bordo com display, rede CAN e rede TCP-IP. O BBB funcionará como ponte entre as duas redes CAN e a rede TCP-IP. A partir da rede TCP-IP pode-se ter acesso ao BBB permitindo a sua monitoração remoto ou re-programação.

A primeira rede Can (Can0) estará ligado aos subsistemas críticos do veículo elétrica, fazendo o monitoramento do banco do bateria, o motor de tração e outros subsistemas que precisam comunicar entre se neste barramento mas rápido. 

A segunda rede (Can1) permitirá a comunicação entre o modulo de medição de velocidade e temperatura, o módulo de sinalização e luzes e demais módulos que não são críticos ao funcionamento do veículo. A comunicação destes útimo barramento pode ter uma velocidade menor que o primeiro.

 

Diagrama blocos bbb can 

Figura 1 - Diagrama de blocos do sistema

O sistema operacional Linux embarcada no BBB já vem com pacote SocketCan ou can-utils de ferramentas para trabalhar com a rede de comunicação CAN. Este pacote de ferramentas e utilitários permite visualizar, registrar e gerar tráfego de dados do barramento CAN, além de permitir acesso ao barramento CAN via IP sockets entre vários outros funcionalidades. https://github.com/linux-can/can-utils

Os utiltários candump do SocketCan permite visualizar os dados do barramento de comunicação, mas também é possível acessar a porta can a partir de programas desenvolvido em C/C++ ou Python.

Há uma vasta documentação técnica sobre o uso do SocketCan em sistemas operacionais Linux, mas a parte mais difícil até o presente momento tem sido a configuração do BBB para ativar os dois controladores CAN, habilitar o hardware de interfaceamento com os transcievers CAN e configurar a porta de comunicação no linux para conversar com os controladores.

A dificuldade consiste no fato de o BBB ter um sistemática de mapeamento de hardware no sistema operacional Linux específica, diferente dos computadores convencionais. O BBB é um computador numa única placa que usa o processador com arquitetura ARM. Por conta dos inúmeros sistemas baseados no arquitetura ARM que surgiram para sistemas embarcadas, houve uma modificação no Kernel do Linux para dar conta a especificidades destes sistemas.

No sistema operacional Linux  convencional as especificidades do hardware são de certa forma incorporadas no Kernel, mas este sistemática se mostrou impraticável com as placas ARM. Por isso foi introduzido a estrutura de Device Tree para que o computador (BBB) saiba qual hardware e periféricos estão fisicamente instalados na placa. Veja o artigo de Mateus Gagliardi: Introdução ao uso de Device Tree e Device Tree Overlay em Sistemas Linux Embarcado. 2015. 

No caso do BBB essa estrutura de Device Tree tem que dar conta para definir quais pinos serão usados do hardware, pois BBB tem portas genéricas para entrada e saída de dados (GPIO), uma porta analógica (ADC), PWM, UART, SPI e I2C pinos, e estes pinos podem ser configurados para diversos usos. No nosso caso específico, as duas controladoras CAN usam alguns dos pinos da UART e do I2C como entrada e saída dos sinais CAN. 

 

Veja artigo de Bruno Oliveira 2017 - Aplicação rede CAN com BBB e Python https://www.embarcados.com.br/can-com-beaglebone-black-e-python/ 

 

 


0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.