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?

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.


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.