Тема: Примеры использования CANNY 5 duo
В данной теме приведено несколько простых примеров использования CANNY 5 duo, которые помогут разобраться в особенностях работы и задания алгоритмов для этого типа контроллеров.
Пример 1: Запрет ретрансляции CAN-сообщений с заданным идентификатором (c5duo_example1a.cfd).
Все сообщения, кроме сообщений с ID=0x0123, пришедшие с CAN0 передаются на CAN без изменений и в диаграмму не попадают.
Данные сообщений с ID=0x0123 могут быть доступны в пользовательской диаграмме, но не ретранслируются в интерфейс CAN1.
Все сообщения пришедшие с CAN1 передаются на CAN0 без изменений, в диаграмму не попадают.
Пример 2: Статический шлюз: ретрансляция CAN-сообщения с изменением данных (c5duo_example1b.cfd).
Все сообщения, кроме сообщений с ID=0х0120, пришедшие с CAN0 передаются в CAN1 без изменений и в диаграмму не попадают.
Данные сообщений с ID=0x0120 могут быть доступны в пользовательской диаграмме и ретранслируются в интерфейс CAN1 с учетом заданный маски и замены отбора.
Все сообщения пришедшие с CAN1 передаются на CAN0 без изменений, в диаграмму не попадают.
В процессе работы диаграммы сообщения с IDL=0х0120 будут передаваться в CAN1 с битом 0 байта D0 равным 0.
Пример 3: Обработка данных полученного CAN-сообщения в пользовательской диаграмме (c5duo_example1с.cfd).
Все сообщения, кроме сообщений с ID=0x01A0, пришедшие из интерфейса CAN0 передаются в CAN1 без изменений и в диаграмму не попадают.
Данные сообщений с ID=0x01A0 могут быть доступны в пользовательской диаграмме, но не ретранслируются в интерфейс CAN1.
Все сообщения пришедшие с CAN1 передаются на CAN0 без изменений, в диаграмму не попадают.
В процессе работы диаграммы все CAN-сообщения из интерфейса CAN0 с идентификатором IDL=0х01A0 будут блокироваться контроллером, т.е. не будут ретранслироваться в интерфейс CAN1, но получаемые в них данные будут доступны в пользовательской диаграмме.
Получаемые сообщения с IDL=0х01A0 обрабатывааются в пользовательской диаграмме.
При получении сообщения с IDL=0х01A0 в интерфейс CAN1 выполняется отправка сообщения с IDL=0x0208 содержащего статические данные, а также несколько байт данных, значение которых рассчитывается в зависти от данных, полученных в сообщении с IDL=0x01A0 из CAN0.
Длина отправляемого в CAN1 сообшения с IDL=0x0208 составляет 8 байт.
Пример 4: Динамический шлюз (c5duo_example2b.cfd).
Пример иллюстрирует принципы работы с контроллерами CANNY 5 duo, оснащенных двумя интерфейсами CAN.
Например, интересующие нас данные передаются в CAN в ID 0х0123, в байте D1.
Управление режимом работы шлюза выполняется с помощью тактовой кнопки (GND), подключенной к каналу №8 контроллера. При включении контроллера маска отбора 0 шлюза D1:D0 установлена равной 0х0000, т.е. поступающие данные драйвером не обрабатываются, изменений в них при ретрансляции не происходит.
При первом нажатии на управляющую кнопку происходит установка маски отбора 0 шлюза D1:D0 для работы с байтом D1, при следующем нажатии - возврат маски отбора 0 шлюза D1:D0 к значению 0х0000, и т.д.
Шлюз неактивен (маска отбора 0 шлюза D1:D0 установлена равной 0х0000).
Фильрация потока данных не выполняется, все сообщения пришедшие с CAN0 передаются на CAN1 без изменений,
все сообщения пришедшие с CAN1 передаются на CAN0 без изменений, данные обоих интерфейсов в диаграмму
не попадают.
Шлюз находится в рабочем режиме (маска отбора 0 шлюза D1:D0 установлена равной 0хFF00).
Все сообщения, кроме сообщений с ID=0x123, пришедшие с CAN0 передаются на CAN1 без изменений и в диаграмму
не попадают.
Данные сообщений с ID=0x123 доступны в пользовательской диаграмме.
Во всех сообщениях с ID=0x123, пришедших с CAN0, если значение байта D1 не равно 0x20,
при передаче их на CAN1, значение байта D1 устанавливается равным 0x10, иначе - устанавливается
равным 0x20, т.е. передается без изменения.
Все сообщения пришедшие с CAN1 передаются на CAN0 без изменений, в диаграмму не попадают.
ВНИМАНИЕ! Любое изменение настроек шлюза (например, регистров маски отбора или замены отбора) требует обновления конфигурации драйвера с использованием специального регистра.
Пример может быть использован для реализации устройств "картинка в движении" и "подключение нештатного монитора к камере заднего вида" и т.п.
Подробнее о работе с контроллерами CANNY 5 duo читайте на wiki.canny.ru.