Вибір мережевого шару через шину CAN


10

Я планую використовувати шину CAN в додатку для промислової автоматизації, однак мені важко вирішити, як реалізувати мережевий рівень. Хтось тут має якісь рекомендації щодо протоколу вищого рівня для використання через CAN, який дає вказівки щодо призначення ідентифікаторів повідомлень та як форматувати пакети даних? Чи варто мені розробити власний власний мережевий рівень або реалізувати існуючий стандарт, наприклад CANopen?

Відповіді:


7

Ви обов'язково захочете вибрати стандартний мережевий шар. Я бачив деякі випадки, коли люди скачували свій власний, і часто протокол є неефективним, і врешті-решт це марна трата часу. Перевірений мережевий рівень забезпечує основну функціональність для вирішення більшості проблем, з якими ви, швидше за все, зіткнетесь у мережі із вбудованим пристроєм, і це заощадить дорогоцінний час та гроші.

Я знайомий з CANopen, тому я докладу трохи пояснень тут, і це може допомогти вам вирішити, чи це шлях ви хочете. Якщо це не відповідає тому, що вам потрібно зробити, я би роздивився щось інше.

CANopen дуже орієнтований на дані. Всі підлеглі вузли CANopen (речі, якими ви керуєте з головного вузла, наприклад, датчики або драйвери двигуна) надають словник, який містить усі дані про конфігурацію, управління та збирання даних, які потрібно прочитати / записати, щоб виконати свою роботу. Потім ви можете читати / записувати ці об'єкти окремо за допомогою механізму SDO (об'єкт службових даних) або періодично читати / записувати ці об'єкти у часовій передачі повідомлень CAN через механізм PDO (об'єкт даних виробника). Запуск, вимкнення та скидання, а також виявлення несправності серця / вузла / виявлення несправностей у сервісі надаються службами NMT, а також службою присвоєння ідентифікатора вузла (якщо ви бажаєте ним скористатися). Щоб реалізувати пристрій за допомогою вбудованої бібліотеки CANOpen, ви в основному налаштовуєте об’єктний словник, налаштовуєте PDO періодично надсилати / отримувати оновлення даних, і написати код користувача, який поводиться на основі цих даних. Є інші речі, які CANopen надає, але це основна частина цього. Прочитайте цю книгу для отримання додаткової інформації.


Книга розповідає про впровадження CANopen під назвою MicroCANopen. Яку реалізацію CANopen ви використовуєте?
mjh2007

1
@ mjh2007 - Ми розгорнули власну, оскільки її потрібно було використовувати разом з іншим протоколом.
Дж. Полфер

"CANOpen" -> "CANopen"
Пітер Мортенсен

7

Я пишу код для доступу до шини CAN на автомобілях GM, яка використовує здебільшого захищений мережевий шар. Ви заглянули в OpenCAN? Я вибрав би відкритий стандарт, такий як CANOpen або навіть OpenCAN. Це дійсно залежить від рівня контролю та гнучкості, яку ви бажаєте у своєму середовищі автоматизації.


7
є OpenCAN, а також CANOpen? aiggh! жахливе називання.
Jason S

1
@Jason, я звинувачую Microsoft.
Кортук

5

Були чудові відповіді. Я не знаю, яким мікрофоном ви користуєтесь, але ось посилання на якусь інформацію з мікрочіпа.

Бібліотека J1939

DeviceNet ™ Group 2 Slave прошивки для PIC18 з CAN

CANOpen

Кожен з них має код та основну таблицю даних, що дозволяє вам знати, що вам потрібно для їх реалізації.


1
Насправді я використовую Microchip, тому це дуже корисно. Дякую!
mjh2007

1
Це все для pic18. Здається, що у CANopen у вас є майстер, який змінює налаштування інших, для більшості з моїх можливостей використання canbus це ідеально підходить.
Кортук

Чи використовуєте бібліотеку Microchip для реалізації CANopen?
mjh2007

1
У процесі його впровадження - це повільний процес, оскільки він вимагає, щоб багато людей взяли на себе зобов’язання зробити систему зміни. Я оновлю вас, коли це буде реалізовано, якщо це допоможе.
Кортук

1
@ mjh2007, я перестав працювати над процесором, і студенти взяли рішення, як багато хто раніше не користувався попереднім обладнанням і купував щось, що їм було зручніше. Але знову ж таки прогрес у проекті професорів, але це відбувається, коли професор не знає, що відбувається, і просто дозволяє людям змінювати все раз на рік.
Кортук
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.