Selecionando uma camada de rede pelo barramento CAN

10

Estou pensando em usar o barramento CAN em um aplicativo de automação industrial, mas estou tendo dificuldades para decidir como implementar a camada de rede. Alguém aqui tem alguma recomendação para um protocolo de camada superior a ser usado sobre CAN, que fornece diretrizes sobre como atribuir IDs de mensagens e como formatar pacotes de dados? Devo desenvolver minha própria camada de rede proprietária ou implementar um padrão existente como o CANopen?

mjh2007
fonte

Respostas:

7

Você definitivamente desejará escolher uma camada de rede padrão. Eu já vi alguns casos em que as pessoas criaram seus próprios e, frequentemente, o protocolo é ineficiente e, no final, é uma perda de tempo. Uma camada de rede comprovada fornece funcionalidade básica para resolver a maioria dos problemas que você provavelmente enfrentará na rede com um dispositivo incorporado, o que economizará tempo e dinheiro preciosos no final.

Eu tenho familiaridade com o CANopen, então vou colocar uma explicação aqui e isso pode ajudá-lo a decidir se é esse o caminho que você deseja seguir. Se não se encaixa no que você precisa fazer, eu procuraria outra coisa.

O CANopen é muito centralizado em dados. Todos os nós escravos CANopen (itens que você controla a partir de um nó mestre, como sensores ou drivers de motor) fornecem um dicionário que contém todos os dados de configuração, controle e aquisição de dados que você precisa ler / gravar para realizar seu trabalho. Em seguida, você pode ler / gravar esses objetos individualmente através do mecanismo SDO (objeto de dados de serviço) ou ler / gravar esses objetos periodicamente em transmissões de mensagem CAN temporizadas através do mecanismo PDO (objeto de dados do produtor). A detecção de inicialização, desligamento, redefinição e pulsação / mau funcionamento do nó é fornecida pelos serviços NMT, bem como um serviço de atribuição de ID do nó (se você deseja usá-lo). Para implementar um dispositivo usando uma biblioteca CANOpen incorporada, você basicamente configura um dicionário de objetos, configura PDOs para enviar / receber atualizações de dados periodicamente, e escreva o código do usuário que se comporte com base nessas entradas de dados. Há outras coisas que o CANopen fornece, mas essa é a maior parte. Leia este livro para mais informações.

J. Polfer
fonte
O livro fala sobre uma implementação do CANopen chamada MicroCANopen. Que implementação do CANopen você usa?
Mjh2007
11
@ mjh2007 - Nós criamos o nosso, já que ele precisava ser usado em conjunto com outro protocolo.
J. Polfer
"CANOpen" -> "CANopen"
Peter Mortensen
7

Eu escrevo código para acessar o barramento CAN em carros GM, que usa uma camada de rede proprietária. Você já viu o OpenCAN? Eu escolheria um padrão aberto, como CANOpen ou mesmo OpenCAN. Realmente depende do nível de controle e flexibilidade que você deseja no seu ambiente de automação.

Brad Hein
fonte
7
existe um OpenCAN e CANOpen? aiggh! nomeação horrível.
Jason S
11
@ Jason, eu culpo a Microsoft.
Kortuk
5

Houve ótimas respostas. Não sei qual micro você usa, mas aqui estão os links para algumas informações do microchip.

Biblioteca J1939

Firmware do DeviceNet ™ Group 2 Slave para PIC18 com CAN

Pode abrir

Cada um deles possui código e uma folha de dados básica, informando o que você precisa para implementá-los.

Kortuk
fonte
11
Na verdade, eu uso Microchip, então isso é muito útil. Obrigado!
precisa saber é o seguinte
11
Esses são todos para a foto18. Parece que com o CANopen você tem um mestre que modifica as configurações dos outros. Para a maioria do que meu uso do canbus inclui, isso se encaixa perfeitamente.
Kortuk
Você usa a biblioteca Microchip para implementar o CANopen?
Mjh2007
11
No processo de implementação, é um processo lento, porque exige que muitas pessoas diferentes se comprometam para que eu faça uma alteração no sistema. Vou atualizá-lo quando for implementado, se isso ajudar.
Kortuk
11
@ mjh2007, parei de trabalhar para o processador e os alunos que assumiram o cargo decidiram como muitos antes não usavam o hardware anterior e compravam algo com o qual se sentissem mais confortáveis. Mais uma vez, nenhum progresso nesse projeto de professores, mas isso acontece quando um professor não sabe o que está acontecendo e apenas permite que as pessoas mudem tudo uma vez por ano.
Kortuk