Выбор сетевого уровня по шине 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! ужасное название.
Джейсон С

1
@ Джейсон, я обвиняю Microsoft.
Кортук

5

Там были отличные ответы. Я не знаю, какой микро вы используете, но здесь есть ссылки на некоторую информацию от микрочипа.

Библиотека J1939

DeviceNet ™ Group 2 Slave Firmware для 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.