Índice:
- Etapa 1: O que é CANBUS
- Etapa 2: Sobre Comunicações CAN
- Etapa 3: Frames
- Etapa 4: Velocidade e distância
- Etapa 5: Hardware
- Etapa 6: Conexão
- Etapa 7: Código
- Etapa 8: Mostrar
Vídeo: Um tutorial simples para CANBUS: 8 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Estou estudando o CAN há três semanas e agora concluí algumas inscrições para validar meus resultados de aprendizagem. Neste tutorial, você aprenderá como usar o Arduino para implementar a comunicação CANBUS. Se você tiver alguma sugestão, seja bem-vindo para deixar uma mensagem.
Suprimentos:
Hardware:
- Maduino Zero CANBUS
- Módulo de Temperatura e Umidade DHT11
- 1.3 "I2C OLED 128x64- Azul
- Cabo DB9 para DB9 (fêmea para fêmea)
- Linha DuPont
Programas:
IDE Arduino
Etapa 1: O que é CANBUS
Sobre CAN
CAN (Controller Area Network) é uma rede de comunicação serial que pode realizar controle distribuído em tempo real. Ele foi desenvolvido para a indústria automotiva para substituir o complexo chicote elétrico por um barramento de dois fios.
O protocolo CAN define a camada de enlace de dados e parte da camada física no modelo OSI.
O protocolo CAN é padronizado ISO com ISO11898 e ISO11519. ISO11898 é o padrão de comunicação CAN de alta velocidade com velocidade de comunicação de 125kbps-1Mbps. ISO11519 é o padrão de comunicação CAN de baixa velocidade com uma velocidade de comunicação inferior a 125 kbps.
Aqui, nos concentramos em CAN de alta velocidade.
ISO-11898 descreve como as informações são passadas entre dispositivos em uma rede e está em conformidade com o modelo de Interconexão de Sistemas Abertos (OSI) que é definido em termos de camadas. A comunicação real entre os dispositivos conectados pelo meio físico é definida pela camada física do modelo
- Cada unidade CAN conectada ao barramento pode ser chamada de nó. Todas as unidades CAN são conectadas a um barramento terminado em cada extremidade com resistores de 120 Ω para formar uma rede. O ônibus consiste nas linhas CAN_H e CAN_L. O controlador CAN determina o nível do barramento com base na diferença no nível de potência em ambos os fios. Os níveis de ônibus são divididos em níveis dominantes e recessivos, que devem ser um deles. O remetente envia a mensagem ao receptor fazendo uma alteração no nível do barramento. Quando a linha lógica "e" é executada no barramento, o nível dominante é "0" e o nível recessivo é "1".
- No estado dominante, a tensão de CAN_H é de cerca de 3,5 V e a tensão de CAN_L é de cerca de 1,5 V. No estado recessivo, a tensão de ambas as linhas está em torno de 2,5V.
- O sinal é diferencial, por isso o CAN deriva sua robusta imunidade a ruídos e tolerância a falhas. O sinal diferencial balanceado reduz o acoplamento de ruído e permite altas taxas de sinalização em cabos de par trançado. A corrente em cada linha de sinal é igual, mas na direção oposta, resultando em um efeito de cancelamento de campo que é fundamental para baixas emissões de ruído. O uso de receptores diferenciais balanceados e cabeamento de par trançado aumenta a rejeição do modo comum e a alta imunidade a ruído de um barramento CAN.
CAN Transceiver
O CAN Transceiver é responsável pela conversão entre o nível lógico e o sinal físico. Converta um sinal lógico em um nível diferencial ou um sinal físico em um nível lógico.
Controlador CAN
O controlador CAN é o componente central do CAN, que realiza todas as funções da camada de enlace de dados no protocolo CAN e pode resolver automaticamente o protocolo CAN.
MCU
O MCU é responsável pelo controle do circuito de função e do controlador CAN. Por exemplo, os parâmetros do controlador CAN são inicializados quando o nó é iniciado, o quadro CAN é lido e enviado através do controlador CAN, etc.
Etapa 2: Sobre Comunicações CAN
Quando o barramento está ocioso, todos os nós podem começar a enviar mensagens (controle multi-master). O nó que primeiro acessa o barramento obtém o direito de enviar (modo CSMA / CA). Quando vários nós começam a enviar ao mesmo tempo, o nó que envia a mensagem de ID de alta prioridade obtém o direito de enviar.
No protocolo CAN, todas as mensagens são enviadas em formato fixo. Quando o barramento está ocioso, todas as unidades conectadas a ele podem começar a enviar novas mensagens. Quando mais de duas células começam a enviar mensagens ao mesmo tempo, a prioridade é determinada com base no identificador. O ID não representa o endereço de destino do envio, mas sim a prioridade da mensagem de acesso ao barramento. Quando mais de duas células começam a enviar mensagens ao mesmo tempo, cada bit do ID sem juros é arbitrado um por um. A unidade que vence a arbitragem pode continuar enviando mensagens, e a unidade que perde a arbitragem para imediatamente de enviar e recebe o trabalho.
O barramento CAN é um tipo de barramento de broadcast. Isso significa que todos os nós podem "ouvir" todas as transmissões. todos os nós invariavelmente captam todo o tráfego. O hardware CAN fornece filtragem local para que cada nó possa reagir apenas às mensagens interessantes.
Etapa 3: Frames
Os dispositivos CAN enviam dados pela rede CAN em pacotes chamados frames. O CAN tem quatro tipos de quadro:
- Quadro de dados: um quadro contendo dados do nó para transmissão
- Frame remoto: um frame solicitando a transmissão de um identificador específico
- Frame de erro: um frame transmitido por qualquer nó detectando um erro
- Quadro de sobrecarga: um quadro para injetar um atraso entre os dados ou quadro remoto
Quadro de dados
Existem dois tipos de quadros de dados, padrão e estendido.
O significado dos campos de bits da Figura são:
- SOF – O bit de início de quadro (SOF) dominante único marca o início da mensagem e é usado para sincronizar os nós em um barramento após ficarem ociosos.
- Identificador - O identificador padrão CAN de 11 bits estabelece a prioridade da mensagem. Quanto menor for o valor binário, maior será sua prioridade.
- RTR - O bit único de solicitação de transmissão remota (RTR)
- IDE - Um bit de extensão de identificador único (IDE) dominante significa que um identificador CAN padrão sem extensão está sendo transmitido.
- R0 - Bit reservado (para possível uso em futuras correções padrão).
- DLC - O código de comprimento de dados de 4 bits (DLC) contém o número de bytes de dados sendo transmitidos.
- Dados - até 64 bits de dados de aplicativo podem ser transmitidos.
- CRC - A verificação de redundância cíclica (CRC) de 16 bits (15 bits mais o delimitador) contém a soma de verificação (número de bits transmitidos) dos dados do aplicativo anterior para detecção de erro.
- ACK – ACK tem 2 bits, um é o bit de confirmação e o segundo é um delimitador.
- EOF – Este campo de fim de quadro (EOF) de 7 bits marca o fim de um quadro CAN (mensagem) e desativa o enchimento de bits, indicando um erro de enchimento quando dominante. Quando 5 bits do mesmo nível lógico ocorrem em sucessão durante a operação normal, um bit do nível lógico oposto é inserido nos dados.
- IFS - Este espaço entre quadros de 7 bits (IFS) contém o tempo necessário para o controlador mover um quadro recebido corretamente para sua posição adequada em uma área de buffer de mensagem.
Arbitragem
No estado ocioso do barramento, a unidade que começa a enviar a mensagem primeiro obtém o envio correto. Quando várias unidades começam a enviar ao mesmo tempo, cada unidade de envio começa no primeiro bit do segmento de arbitragem. A unidade com o maior número de níveis dominantes de saída contínua pode continuar a enviar.
Etapa 4: Velocidade e distância
O barramento CAN é um barramento que conecta várias unidades ao mesmo tempo. Teoricamente, não há limite para o número total de unidades que podem ser conectadas. Na prática, entretanto, o número de unidades que podem ser conectadas é limitado pelo atraso no barramento e pela carga elétrica. Reduza a velocidade de comunicação, aumente o número de unidades que podem ser conectadas e, aumente a velocidade de comunicação, o número de unidades que podem ser conectadas diminui.
A distância de comunicação está inversamente relacionada à velocidade de comunicação, e quanto maior a distância de comunicação, menor a velocidade de comunicação. A distância maior pode ser de 1 km ou mais, mas a velocidade é inferior a 40kps.
Etapa 5: Hardware
O módulo Maduino Zero CAN-BUS é uma ferramenta desenvolvida pela Makerfabs para comunicação CANbus, é baseada no Arduino, com o controlador CAN e transceptor CAN, para criar uma porta CAN-bus pronta para usar.
- MCP2515 é um controlador CAN autônomo que implementa as especificações CAN. Ele é capaz de transmitir e receber dados padrão e estendidos e quadros remotos.
- O MAX3051 faz interface entre o controlador do protocolo CAN e os fios físicos das linhas de barramento em uma rede de área do controlador (CAN). O MAX3051 fornece capacidade de transmissão diferencial para o barramento e capacidade de recepção diferencial para o controlador CAN.
Etapa 6: Conexão
Conecte o módulo DHT11 ao módulo Maduino Zero CAN-BUS com fios para serem usados como um instrumento para apoiar a comunicação CAN. Da mesma forma, conecte o display ao módulo para receber os dados e exibi-los.
A conexão entre Maduino Zero CANBUS e DHT11:
Maduino Zero CANBUS - DHT11
3v3 ------ VCC GND ------ GND D10 ------ DADOS
A conexão entre Maduino Zero CANBUS e OLED:
Maduino Zero CANBUS - OLED
3v3 ------ VCC GND ------ GND SCL ------ SCL SDA ------ SDA
Use um cabo DB9 para conectar os dois módulos Maduino Zero CANBUS.
Etapa 7: Código
O MAX3051 conclui a conversão de níveis diferenciais em sinais lógicos. O MCP2515 completa a função CAN, como codificação e decodificação de dados. O MCU só precisa inicializar o controlador e enviar e receber dados.
- Github:
- Depois de instalado o Arduino, não há pacote para suportar a placa (Arduino zero) que precisa ser instalada.
- Selecione ferramentas -> Placa -> Gerenciador de placa, pesquise "Arduino zero" e instale "Placas Arduino SAMD".
- Selecione Ferramentas -> Placa -> Arduino Zero (porta USB nativa), selecione Ferramentas -> Porta -> com…
- Depois de obter o programa do GitHub, você precisa se certificar de que todos os arquivos estão no diretório do projeto, que contém arquivos de biblioteca que suportam CANBUS.
- Instale a biblioteca de sensores DHT da Adafruit, que é usada para acionar o DHT11 para obter temperatura e umidade.
- Use endereços diferentes para enviar temperatura e umidade separadamente no código Test_DHT11.ino.
CAN.sendMsgBuf (0x10, 0, stmp1.length (), stmp_send1);
atraso (500); CAN.sendMsgBuf (0x11, 0, stmp2.length (), stmp_send2); atraso (500);
“0x10” significa o ID da mensagem, “0” significa o quadro padrão, “stmp1.length ()” significa o comprimento da mensagem, “stmp_send1” são os dados enviados.
- No código Test_OLED.ino, todas as mensagens no CANBUS são recebidas por consulta e as informações solicitadas são exibidas no OLED.
- Carregue o programa Maduino-CANbus-RS485 / Test_DHT11_OLED / Test_DHT11 / Test_DHT11.ino para o módulo que se conectou ao sensor e carregue o programa Maduino-CANbus RS485 / Test_DHT11_OLED / Test_OLED / Test_OLED.ino para outro módulo que se conectou ao OLED.
Etapa 8: Mostrar
Ligue os dois módulos, a temperatura e a umidade serão exibidas no display.
Recomendado:
Tutorial: como fazer um sensor de temperatura simples usando DS18B20 e Arduino UNO: 3 etapas
Tutorial: Como fazer um sensor de temperatura simples usando o DS18B20 e o Arduino UNO: Descrição: Este tutorial mostrará algumas etapas simples sobre como tornar o sensor de temperatura funcional. Leva apenas alguns minutos para torná-lo realidade em seu projeto. Boa sorte ! O termômetro digital DS18B20 fornece temperatura Celsius de 9 a 12 bits
Suporte para celular de emergência e muito simples para um tripé: 4 etapas (com fotos)
Suporte para celular de emergência e muito simples para um tripé: Não consegui encontrar o suporte para celular que tinha feito antes e só tive algumas horas para chegar onde queria fazer um vídeo, então vim aqui. Os materiais são simples: Um cabide de metal ou um fio de metal bastante rígido Uma porca 1/4 "-NC 20 (o
Luz reativa para música -- Como tornar uma luz reativa para música super simples para tornar a área de trabalho incrível: 5 etapas (com imagens)
Música reativa luz || Como fazer música super simples luz reativa para tornar a área de trabalho incrível .: Ei, e aí galera, hoje vamos construir um projeto muito interessante. Hoje vamos construir uma luz reativa musical. O led mudará seu brilho de acordo com o baixo, que na verdade é um sinal de áudio de baixa frequência. É muito simples de construir. Vamos
Suporte para laptop simples e fácil para seu colo: 4 etapas
Suporte para laptop simples e fácil para o seu colo: Procurei em várias lojas um suporte para laptop que fornecesse fluxo de ar para o laptop, mas que eu pudesse realmente usar no meu colo. Não encontrei nada que fosse o que eu queria, então decidi fazer o meu próprio
Correções simples para a bolsa de viagem Timbuktu V.1, para andar de bicicleta: 3 etapas
Correções simples para a bolsa de viagem Timbuktu V.1, para andar de bicicleta: Como um fã da bolsa Timbuktu que costumava andar de bicicleta com um laptop na minha bolsa, quando eles saíram com a bolsa de viagem, achei "perfeita" e comprei uma online. Eu estava tipo woo hoo isso vai ser legal. Mas quando consegui, fiquei chocado e desanimado