CAN Bus

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Репутация: 0
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

CAN Bus

Сообщение Eugen Graf »

Что такое CAN:

Это бус использующий асинхронный последовательный протокол передачи данных. Синхронизация и защита от потери данных происходит на уровне CAN-контроллера, т.е. программист не имеет к этому прямого отношения. Всё что нужно сделать это как всегда инициализировать контроллер (задать Baud Rate) и в принципе можно посылать сообщения. Но в отличии от других последовательных протоколов, отправитель ОБЯЗАН указать идентификатор сообщения.

При использовании такого устройства как USB-CAN-Dongle проблем при отправке сообщений нет, т.е. указываешь идентификатор, длину сообщения (от 0 до 8 байт) и конечно же само сообщение.

А вот при программировании микроконтроллера, надо после инициализации самого контроллера дефинировать обьекты сообщений (Message Objects), количество которых вариирует в зависимости от контроллера. В моём случае контроллер поддерживает 15 обьектов сообщений. При инициализации этих обьектов указывается принадлежащий этому обьекту идентификатор. После инициализации обьектов сообщений можно начинать отсылать сами сообщения указывая вместо идентификатора сообщений, номер уже до этого инициализириванного обьекта сообщений. Т.е если так работать то количество видов сообщений ограничено количеством обьектов сообщений.
Если же хочется посылать больше видов сообщений (больше 15), надо либо использовать дополнительный контроллер, либо прееиницализировать каждый раз обьекты сообщений, что при частоте в 500 гертц п принципе неприемлимо и загружает программу и контроллер.

Подскажите, может я что не так понимаю?

Что же происходит при коммуникации с помощью USB-CAN-Dongle? Неужели он переинициализирует свои регистры обьектов сообщений при отправке каждого сообщения? Ведь на самом деле внутри находится микроконтроллер поддерживающий USB и CAN.

Ответить

Вернуться в «Коммуникация с приборами»