Академический Документы
Профессиональный Документы
Культура Документы
CAN-LIN Фильтр v1.22
CAN-LIN Фильтр v1.22
CAN-LIN Фильтр v1.22
редакция 1
Содержание
Общее описание 3
1. Все настройки для CAN14 4
1.1 Основные параметры для CAN1 5
1.2 Настройки CAN ID для фильтра, таймера, блокировки, трансляции, входов/выходов 5
1.3 "Настройка данных" - в параметрах настройки ID 8
1.4 "Входы / Выходы" - в параметрах настройки ID 9
1.5 Настройки фильтра - в параметрах настройки ID 10
2. Настройки CAN ID для блокировки, трансляции для CAN1 14
3. Все настройки для CAN2 14
3.1 Основные параметры для CAN2 15
3.2 Настройки CAN2 ID для блокировки, трансляции для CAN2 15
4. Все настройки для LIN 16
4.1 Основные параметры для LIN1 и LIN2 16
4.2 Настройки LIN ID для фильтра, таймера, блокировки, трансляции, входов/выходов 17
5. Настройки по умолчанию 18
6. Подключение 19
6.1 Подключение CAN фильтра 19
6.2 Подключение LIN фильтра 19
7. Примеры настройки CAN1 ID для фильтрации, передачи по таймеру, управления выходами 21
7.1.1 Настройка "Статус обработки" пример 1 – Фильтрация 21
7.1.2 Настройка "Статус обработки" пример 2 – Блокировка пакета заданного размера 21
7.1.3 Настройка "Статус обработки" пример 3 – Блокировка пакета любого размера 22
7.1.4 Настройка "Статус обработки" пример 4 – Фильтрация по значению данных 1 22
7.1.5 Настройка "Статус обработки" пример 5 – Фильтрация по значению данных 2 23
7.1.6 Настройка "Статус обработки" пример 6 – Условие сравнения с пропуском 24
следующего фильтра для значения
7.1.7 Настройка "Статус обработки" пример 7 – Условие сравнения с пропуском следующей 25
строки фильтра для всех значений
7.1.8 Настройка "Статус обработки" пример 8 – Условие сравнения по типу if else с 26
пропуском следующего фильтра для значения
7.1.9 Настройка "Статус обработки" пример 9 – Условие сравнения по типу if else с 27
пропуском следующей строки фильтра для всех значений
7.1.10 Настройка "Статус обработки" пример 6 – Управление выходом 28
7.1.11 Сохранить и Загрузить значение из CAN посылки 29
7.1.12 Сохранить и Загрузить значение из CAN посылки с блокировкой посылок 30
7.1.13 Сохранить и Загрузить значение из CAN посылки с разными CAN ID 31
7.2 Настройка "Применить Фильтр 1, ко всем байтам" 32
7.3.1 Настройка "Передача по таймеру" пример 1 33
7.3.2 Настройка "Передача по таймеру" пример 2 33
7.4 Настройка "Трансляция в CAN2 без обработки" 34
7.5.1 Настройка "Передача по состоянию входа" пример 1 35
7.5.2 Настройка "Передача по состоянию входа" пример 2 35
7.5.3 Настройка "Передача по состоянию входа" пример 3 35
7.5.4 Настройка "Передача по состоянию входа" пример 4 36
8. Примеры настройки CAN1 ID для блокировки и трансляции 36
8.1 Настройка "Трансляция в CAN2" 36
8.2 Настройка "Блокировка ID в CAN2" 37
9. Примеры настройки CAN2 ID для блокировки и трансляции 37
9.1 Настройка "Трансляция в CAN1" 37
9.2 Настройка "Блокировка ID в CAN1" 37
2
CAN-LIN Фильтр v1.22 - Общее описание
CAN фильтр может быть собран на микроконтроллере STM32F105Rxxx – базовая версия или
STM32F205Rxxx, STM32F405Rxxx. Поэтому перед обновлением программы через специальную
программу Loader необходимо проверить тип микроконтроллера и имя файла в котором написан тип
контроллера, если не написан, то файл для контроллера STM32F105Rxxx.
Платы расширения для входов/выходов опциональны. Количество входов/выходов их тип
могут быть изменены и предварительно согласовываются.
3
1. Все настройки для CAN1
4
1.1 Основные параметры для CAN1
• Кнопка "Применить настройки" - необходимо нажать после установки всех требуемых настроек.
После её нажатия фильтр заново инициализирует свои параметры работы.
• "Скорость бит/сек." - необходимо установить значение скорости CAN шины, к которой будет
произведено подключение.
• "Настройки" – Общие настройки для CAN1:
o "Трансляция в CAN2 всех пакетов" - отвечает за трансляцию всех пакетов в CAN2. Если этот
параметр не установлен, то в CAN2 будут транслироваться только те пакеты, ID которых
установлены в фильтре и для них настроена возможность передачи в CAN2. См. настройки
каждого ID.
o "Проверка получения пакета" – Если флаг выключен, то передача с проверкой, если передача
не получилась, то будет попытка передачи еще раз, пока передача не произойдёт. Но если
устройство не подключено к шине или неправильно выбрана скорость, то будет бесконечная
попытка отправки пакета в шину.
Если флаг включен, то передача без проверки. Передал и забыл, даже если шина CAN в этот
момент была занята.
o "Светодиоды индикации CAN1" - Если флаг установлен, то выключить светодиоды через 5
секунд, если нет обмена по шине CAN1. Имеет смысл, если флаг "Проверка получения пакета"
сброшен.
6
8) "Тип первой фильтрации пакета". Используется, если установлены "Счётчик фильтрации
фрейма" и "Счётчик пропуска фильтрации фрейма". Если сброшен, то приходящий фрейм
данных не будет проходить через установленные фильтры, а будет передан без изменений.
Если установлен, то наоборот вначале фрейм данных будет проходить через установленные
фильтры, а потом нет. Количество нефильтрованных фреймов определяется параметром
"Счётчик пропуска фильтрации фрейма", а количество фильтрованных фреймов определяется
параметром "Счётчик фильтрации фрейма".
• Параметр "Дополнительная настройка для ID":
1) "Использовать ID для CRC или Контрольной суммы". Если флаг установлен, то ID выхода
участвует в расчёте CRC или Контрольной суммы, если она выбрана в настройках фильтра.
2) "Использовать количество байт для CRC или Контрольной суммы". Если флаг установлен, то
количество байт для выходной посылки участвует в расчёте CRC или Контрольной суммы,
если она выбрана в настройках фильтра
• Таймаут для передачи пакета, мсек. – периодичность передачи CAN сообщения, если установлена
настройка "Передача по таймеру". Минимальное значение 10 мсек., шаг 10 мсек.;
• "Счётчик фильтрации фрейма" – Определяет количество фильтрованных фреймов. Если значение
равно 0, то счётчик не используется. Максимальное значение 65535. Вместе с параметром
"Счётчик пропуска фильтрации фрейма" определяет частоту фильтрации данных, т.е. фильтровать
только заданное количество фреймов, а остальные не фильтровать. Начальное значение для смены
режима фильтрации определяется флагом "Тип первой фильтрации пакета" в настройке "Общая
настройка для ID".
• "Счётчик пропуска фильтрации фрейма" – Определяет количество нефильтрованных фреймов.
Если значение равно 0, то счётчик не используется. Максимальное значение 65535. Вместе с
параметром "Счётчик фильтрации фрейма" определяет частоту фильтрации данных, т.е.
7
фильтровать только заданное количество фреймов, а остальные не фильтровать. Начальное
значение для смены режима фильтрации определяется флагом "Тип первой фильтрации пакета" в
настройке "Общая настройка для ID".
• Настройка данных;
• Входы/Выходы;
• Фильтр 1;
• Фильтр 2;
• Фильтр 3;
• Фильтр 4;
9
1.5 Настройки фильтра - в параметрах настройки ID
11
Сравнение по условию больше - входного значения с байтом фильтра. Если условие не
s> выполняется, то будет пропущен 1 следующий фильтр для этого значения. Режим if для
значения в фильтре;
Сравнение по условию меньше - входного значения с байтом фильтра. Если условие не
s< выполняется, то будет пропущен 1 следующий фильтр для этого значения. Режим if для
значения в фильтре;
Сравнение по условию равно - входного значения с байтом фильтра. Если условие не
s= выполняется, то будет пропущен 1 следующий фильтр для этого значения. Режим if для
значения в фильтре;
Сравнение по условию не равно - входного значения с байтом фильтра. Если условие не
s!= выполняется, то будет пропущен 1 следующий фильтр для этого значения. Режим if для
значения в фильтре;
Сравнение по условию больше - входного значения с байтом фильтра. Если условие не
rs> выполняется, то будет пропущен 1 следующий фильтр для всех значений. Режим if для
всех значений в строке в фильтра;
Сравнение по условию меньше - входного значения с байтом фильтра. Если условие не
rs< выполняется, то будет пропущен 1 следующий фильтр для всех значений. Режим if для
всех значений в строке в фильтра;
Сравнение по условию равно - входного значения с байтом фильтра. Если условие не
rs= выполняется, то будет пропущен 1 следующий фильтр для всех значений. Режим if для
всех значений в строке в фильтра;
Сравнение по условию не равно - входного значения с байтом фильтра. Если условие не
rs!= выполняется, то будет пропущен 1 следующий фильтр для всех значений. Режим if для
всех значений в строке в фильтра;
Сравнение по условию больше - входного значения с байтом фильтра. Если условие
выполняется, то следующий фильтр будет выполнен, а следующий фильтр за
выполненным фильтром будет пропущен для этого значения. Если условие не
ie>
выполняется, то наоборот, следующий фильтр будет пропущен, а следующий фильтр за
пропущенным фильтром будет выполнен для этого значения. Режим if else для значения в
фильтре;
Сравнение по условию меньше - входного значения с байтом фильтра. Если условие
выполняется, то следующий фильтр будет выполнен, а следующий фильтр за
выполненным фильтром будет пропущен для этого значения. Если условие не
ie<
выполняется, то наоборот, следующий фильтр будет пропущен, а следующий фильтр за
пропущенным фильтром будет выполнен для этого значения. Режим if else для значения в
фильтре;
Сравнение по условию равно - входного значения с байтом фильтра. Если условие
выполняется, то следующий фильтр будет выполнен, а следующий фильтр за
выполненным фильтром будет пропущен для этого значения. Если условие не
ie=
выполняется, то наоборот, следующий фильтр будет пропущен, а следующий фильтр за
пропущенным фильтром будет выполнен для этого значения. Режим if else для значения в
фильтре;
Сравнение по условию не равно - входного значения с байтом фильтра. Если условие
выполняется, то следующий фильтр будет выполнен, а следующий фильтр за
выполненным фильтром будет пропущен для этого значения. Если условие не
ie!=
выполняется, то наоборот, следующий фильтр будет пропущен, а следующий фильтр за
пропущенным фильтром будет выполнен для этого значения. Режим if else для значения в
фильтре;
Сравнение по условию больше - входного значения с байтом фильтра. Если условие
выполняется, то следующая строка фильтра будет выполнен, а следующая строка фильтра
за строкой выполненного фильтра будет пропущена для всех значений. Если условие не
rie>
выполняется, то наоборот, следующая строка фильтра будет пропущена, а следующая
строка фильтра за пропущенной строкой фильтра будет выполнена для всех значений.
Режим if else для всех значений в строке в фильтра;
12
Сравнение по условию меньше - входного значения с байтом фильтра. Если условие
выполняется, то следующая строка фильтра будет выполнен, а следующая строка фильтра
за строкой выполненного фильтра будет пропущена для всех значений. Если условие не
rie<
выполняется, то наоборот, следующая строка фильтра будет пропущена, а следующая
строка фильтра за пропущенной строкой фильтра будет выполнена для всех значений.
Режим if else для всех значений в строке в фильтра;
Сравнение по условию равно - входного значения с байтом фильтра. Если условие
выполняется, то следующая строка фильтра будет выполнен, а следующая строка фильтра
за строкой выполненного фильтра будет пропущена для всех значений. Если условие не
rie=
выполняется, то наоборот, следующая строка фильтра будет пропущена, а следующая
строка фильтра за пропущенной строкой фильтра будет выполнена для всех значений.
Режим if else для всех значений в строке в фильтра;
Сравнение по условию не равно - входного значения с байтом фильтра. Если условие
выполняется, то следующая строка фильтра будет выполнен, а следующая строка фильтра
за строкой выполненного фильтра будет пропущена для всех значений. Если условие не
rie!=
выполняется, то наоборот, следующая строка фильтра будет пропущена, а следующая
строка фильтра за пропущенной строкой фильтра будет выполнена для всех значений.
Режим if else для всех значений в строке в фильтра;
Сравнение по условию выключенного входа. Т.е. переход к следующему фильтру, когда
in0
вход выключен. Также используется для включения или выключения режима таймера;
Сравнение по условию включенного входа. Т.е. переход к следующему фильтру, когда
in1
вход включен. Также используется для включения или выключения режима таймера;
out0 Выключение выхода;
out1 Включение выхода;
Сохранить значение. Выделено 5 значений для сохранения данных из CAN посылки.
S1..S5 Размер сохраняемого значения зависит от настройки "Настройка данных" и может быть 1,
2 или 4 байта;
Загрузить ранее записанное значение из CAN посылки. Выделено 5 значений для
L1..L5 загрузки. Размер загружаемого значения зависит от настройки "Настройка данных" и
может быть 1, 2 или 4 байта;
Подсчёт Контрольной суммы. Определяет настройку подсчёта Контрольной суммы.
Выбирается только в том байте, где будет вставлена Контрольная суммы. В подсчёте
ChS участвуют только те байты, в которых в "Настройке данных" выбран флаг "CRC". Также в
расчёте может участвовать ID и количество байт для передачи, если они выбраны в
"Дополнительных настройках".
Подсчёт CRC8, полином 0x85. Используется в Nissan Leaf. Определяет настройку
подсчёта CRC8. Выбирается только в том байте, где будет вставлена CRC. В подсчёте
C8_85 CRC участвуют только те байты, в которых в "Настройке данных" выбран флаг "CRC".
Также в расчёте может участвовать ID и количество байт для передачи, если они выбраны
в "Дополнительных настройках".
Заблокировать входящий пакет. В основном можно используется для режимов условий
block
if или if else.
Передать оригинальный (входящий) пакет без изменения. В основном можно
tx_orig
используется для режимов условий if или if else.
13
2. Настройки CAN ID для блокировки, трансляции для CAN1
Позволяет настроить:
• ID для входного CAN сообщения, для трансляции и блокировки;
• Общую настройку для выбранного ID:
1) "Трансляция ID в CAN2". Если этот флаг установлен, то включена трансляция в CAN2. Имеет
приоритет над флагом "Статус обработки" и настройкой "Трансляция в CAN2 всех пакетов".
Используется для режима трансляции в CAN2, только выбранных ID пакетов.
2) "Блокировка ID в CAN2". Если этот флаг установлен, то сообщение игнорируется и не
пропускается, т.е. блокируется.
Позволяет настроить:
• ID для входного CAN сообщения, для трансляции и блокировки;
• Общую настройку для выбранного ID:
1) "Трансляция ID в CAN1". Если этот флаг установлен, то включена трансляция в CAN1. Имеет
приоритет над флагом "Статус обработки" и общей настройкой "Трансляция в CAN1 всех
пакетов". Используется для режима трансляции в CAN1, только выбранных ID пакетов.
2) "Блокировка ID в CAN1". Если этот флаг установлен, то сообщение игнорируется и не
пропускается, т.е. блокируется.
15
4. Все настройки для LIN
LIN фильтр можно использовать, если подключена соответствующая плата расширения с LIN
драйверами. Если фильтр используется без соответствующей LIN платы, то рекомендуется
использовать программу настройки без вкладки LIN и прошивку контроллера без поддержки LIN.
Настройки LIN1 и LIN2 объединены в одну вкладку. Настройки скорости и общие настройки
разделены для LIN1 и LIN2. Остальные настройки общие для LIN1 и LIN2, и в основном определяют
настройку для LIN1. Основной режим работы LIN1 это Slave, а LIN2 это Master. Но для некоторых
настроек LIN1 может работать как Master.
16
4.2 Настройки LIN ID для фильтра, таймера, блокировки, трансляции, входов/выходов
Все параметры, кроме "Общая настройка 2 для ID", для настройки ID LIN аналогичны
параметрам настройки CAN1, см. разделы 1.2 – 1.5.
Позволяет произвести:
• "Тестовый запрос" – Это тестовый запрос, чтобы проверить корректность установки драйверов и
открытие СОМ порта устройства. Можно передавать без ввода пароля. Ответом на запрос будет
вывод надписи "OK" в этом поле.
• "Режим пониженного потребления" – Режимы пониженного потребления при отсутствии
активности на CAN1 и CAN2 шинах. Пока подключено по USB, в режим пониженного
потребления не переходит.
o "Вкл./Выкл. режим пониженного потребления" – Если установлен, то режим активирован;
o "Выбор режима пониженного потребления SLEEP/STOP" – Если сброшен, то будет SLEEP
режим. Если установлен, то STOP режим. Режимы отличаются потреблением в режиме
бездействия и временем выхода из режима пониженного потребления. Имеет смысл при
установленном флаге "Вкл./Выкл. режим пониженного потребления".
• "Таймаут режима пониженного потребления, мсек." - Время для ожидания перед переходом в
режим пониженного потребления. Минимум 1000 мсек. Работает, если включен режим
пониженного потребления, установлен флаг "Вкл./Выкл. режим режим пониженного
потребления". Работает если включен режим пониженного потребления в настройках.
• "Пароль для входа" – Поле для ввода пароля чтобы просмотреть или изменить настройки. Пароль
может содержать цифры, буквы символы, большого или маленького регистра. По умолчанию
пароль не установлен. Максимальная длина пароля 14 символов. Если пароль был введен
правильно, то в поле появится надпись "OK". Если не правильно, то появится надпись "ERR".
Если 5-ть раз неправильно ввести пароль, то появится надпись "Wait 300 sec". Т.е. заново пароль
можно ввести через 5 секунд.
18
• "Установить Пароль" – Поле для установки нового пароля. Чтобы ввести новый пароль нужно
вначале ввести текущий пароль в предыдущем поле "Пароль для входа", если пароль был ранее
установлен. Если пароль не был установлен, то после его можно установить. Чтобы сбросить
пароль нужно ввести "default" и нажать кнопку "Установить". После сброса пароля все настройки
из устройства будут удалены. Максимальная длина пароля 14 символов.
• Сброс настроек по умолчанию. Для сброса всех настроек нужно ввести в текстовой строке
"default" и нажать кнопку "Установить". Значения по умолчания для CAN1 и CAN2 – скорость 500
кбит/сек., разрешена трансляция в другой CAN, все настройки ID сброшены.
• Сбросить устройство, нажав кнопку применить.
6. Подключение
6.1 Подключение CAN фильтра
19
Сторона расположения LIN драйверов
20
7. Примеры настройки CAN1 ID для фильтрации, передачи по таймеру, управления выходами
7.1.1 Настройка "Статус обработки" пример 1 - Фильтрация
Пример показывает, как произвести фильтрацию пакета для дальнейшей передачи в
выбранный CAN.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 11 22 A6 48 98 B0 CC 00
Передано в CAN2 100 8 11 22 A0 48 98 B0 CC 00
21
7.1.3 Настройка "Статус обработки" пример 3 – Блокировка пакета любого размера
Пример показывает, как произвести блокировку пакета. Все пакеты приходящие в CAN1 c
установленным ID и любым количеством байт будут заблокированы.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 11 22 A6 48 98 B0 CC 00
Передано в CAN1 или CAN2 - - заблокировано
Принято по CAN1 100 4 11 22 A6 48
Передано в CAN1 или CAN2 - - заблокировано
22
7.1.5 Настройка "Статус обработки" пример 5 – Фильтрация по значению данных 2
Пример показывает, как произвести фильтрацию пакета по значению данных, для дальнейшей
передачи в выбранный CAN без блокировки пакета, если условие не выполняется.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 123 8 90 01 02 03 04 05 06 07
Передано в CAN2 123 8 90 01 02 03 04 05 06 07
Принято по CAN1 123 8 90 01 02 03 04 05 06 07
Передано в CAN2 255 6 90 01 02 03 04 05
23
7.1.6 Настройка "Статус обработки" пример 6 – Условие сравнения с пропуском следующего
фильтра для значения
Пример показывает, как произвести фильтрацию пакета с пропуском следующего фильтра
для значения, если условие сравнения не выполняется.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 01 20 30 40 50 60 70 80
Передано в CAN2,
200 8 04 23 35 47 58 6B 7C 8F
если условие выполняется
24
7.1.7 Настройка "Статус обработки" пример 7 – Условие сравнения с пропуском следующей
строки фильтра для всех значений
Пример показывает, как произвести фильтрацию пакета с пропуском следующего фильтра
для значения, если условие сравнения не выполняется.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 01 20 30 40 50 60 70 80
Передано в CAN2,
200 8 04 23 35 47 58 6B 7C 8F
если условие выполняется
25
7.1.8 Настройка "Статус обработки" пример 8 – Условие сравнения по типу if else с пропуском
следующего фильтра для значения
Пример показывает, как произвести фильтрацию пакета с условием по типу if else для
значения в фильтре. Если условие выполняется, то следующий фильтр будет выполнен, а
следующий фильтр за выполненным фильтром будет пропущен для этого значения. Если условие не
выполняется, то наоборот, следующий фильтр будет пропущен, а следующий фильтр за
пропущенным фильтром будет выполнен для этого значения.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 11 20 30 40 50 60 70 80
Передано в CAN2,
200 8 13 23 35 47 58 6B 7C 8F
если условие выполняется
26
7.1.9 Настройка "Статус обработки" пример 9 – Условие сравнения по типу if else с пропуском
следующей строки фильтра для всех значений
Пример показывает, как произвести фильтрацию пакета с условием по типу if else для строки
в фильтре и для всех значений. Если условие выполняется, то следующая строка фильтра будет
выполнен, а следующая строка фильтра за строкой выполненного фильтра будет пропущена для всех
значений. Если условие не выполняется, то наоборот, следующая строка фильтра будет пропущена, а
следующая строка фильтра за пропущенной строкой фильтра будет выполнена для всех значений.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 01 20 30 40 50 60 70 80
Передано в CAN2,
200 8 03 23 35 47 58 6B 7C 8F
если условие выполняется
27
7.1.10 Настройка "Статус обработки" пример 10 – Управление выходом
Пример показывает, как произвести управление выходом. Пакет приходящий в CAN1 может
управлять выходом по установленному фильтру.
ID 0x… Кол-во байт Данные 0x… Выход PA5
Принято по CAN1 50 8 11 20 A6 48 98 B0 CC 00 Включить
Принято по CAN1 50 8 11 00 A6 48 98 B0 CC 00 Выключить
Используются 2 CAN ID. Один для включения, другой для выключения выхода. Вначале в
фильтре 1 маскируется байт 2 значением 0x30 для того чтобы выделить значащие биты. Потом в
фильтре 2 сравнивается значение. Если равно 0х20, то включить выход. Если равно 0х00, то
выключить выход.
28
7.1.11 Сохранить и Загрузить значение из CAN посылки
Пример показывает, как произвести сохранения из пакета и загрузки параметра в пакет.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 123 8 01 02 03 04 05 06 07 08
Передано в CAN2 123 8 01 02 03 04 05 06 07 08
Принято по CAN1 123 8 5D 11 01 33 44 55 66 77
Передано в CAN2 123 8 5D 11 01 33 44 55 66 77
Настройка CAN ID1 для сохранения значения.
29
7.1.12 Сохранить и Загрузить значение из CAN посылки с блокировкой посылок
Пример показывает, как произвести сохранения из пакета и загрузки параметра в пакет, а
также произвести блокировку пакетов, из которых загружается параметр.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 123 8 01 02 03 04 05 06 07 08
Передано в CAN2 - - заблокировано
Принято по CAN1 123 8 5D 11 01 33 44 55 66 77
Передано в CAN2 123 8 5D 11 01 33 44 55 66 77
Настройка CAN ID1 для сохранения значения. А также блокировки всех пакетов ID = 0x123 и 1-ый
байт, которых не равен 0x5D.
30
7.1.13 Сохранить и Загрузить значение из CAN посылки с разными CAN ID
Пример показывает, как произвести сохранения из пакета и загрузки параметра в пакет.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 123 8 01 02 03 04 05 06 07 08
Передано в CAN2 123 8 01 02 03 04 05 06 07 08
Принято по CAN1 123 8 5D 12 13 14 15 16 17 18
Передано в CAN2 123 8 5D 12 13 14 15 16 17 18
Принято по CAN1 405 8 5D 11 01 33 44 55 66 77
Передано в CAN2 123 8 5D 11 01 33 44 55 66 77
Настройка CAN ID1 для сохранения значения.
Если флаг "Трансляция в CAN2 без обработки" будет сброшен, то будет блокировка пакетов c
ID = 0x123 и если первый байт = 0x5D
Принято по CAN1 123 8 5D 12 13 14 15 16 17 18
Передано в CAN2 - - заблокировано
31
7.2 Настройка "Применить Фильтр 1, ко всем байтам"
Пример показывает, как применить фильтр 1 ко всем байтам. На все байты пакета
приходящий в CAN1 c установленным ID и установленным количеством байт накладывается
фильтр, записанный в 1-ом байте данных.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 145 8 01 02 03 04 05 06 07 08
Передано в CAN2 202 4 AA AA AA AA
32
7.3.2 Настройка "Передача по таймеру" пример 2
Пример показывает, как сделать включение и выключение передачи по таймеру в
зависимости от принятой посылки по CAN. Передача по установленным флагам CAN1 и CAN2.
Период передачи ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 Включение таймера 155 8 11 22 20 48 98 B0 CC 00
Принято по CAN1 Выключение таймера 155 8 11 22 00 48 98 B0 CC 00
Передано в CAN1 500 мсек. 222 6 01 02 03 04 05 06
Вначале в фильтре 1 маскируется байт 2 значением 0x30 для того чтобы выделить значащие
биты. Потом в фильтре 2 сравнивается значение. Если равно 0х20, то запускается таймер, если он не
запущен. Если равно 0х00, то выключается таймер, если он запущен.
Если установлен флаг "Трансляция в CAN2 всех пакетов", то в CAN2 будут транслированы
пакеты запуска и остановки таймера, иначе эти пакеты будут блокированы для CAN2.
33
7.4 Настройка "Трансляция в CAN2 без обработки"
Пример показывает, как произвести трансляция в CAN2, только выбранных ID пакетов.
Настройка имеет приоритет над флагом "Статус обработки" и общей настройкой "Трансляция в
CAN2 всех пакетов". Настройка "Количество байт для входной посылки" не имеет значение.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 123 8 01 02 03 04 05 06 07 08
Передано в CAN2 123 8 01 02 03 04 05 06 07 08
Принято по CAN1 любой любое любые
Передано в CAN2 - - заблокировано
34
7.5.2 Настройка "Передача по состоянию входа" пример 2
Пример показывает, как произвести передачу по таймеру в выбранный CAN по состоянию
входа. Если вход PA7 включен или выключен, то в CAN1 и/или CAN2 будет передано сообщение
каждые 500 мсек..
Передача в CAN1 и CAN2
вход PA7 Период передачи
ID 0x… Кол-во байт Данные 0x…
Включен 500 мсек. 100 8 01 02 03 04 05 06 07 08
Выключен 500 мсек. 200 8 11 12 13 14 15 16 17 18
35
7.5.4 Настройка "Передача по состоянию входа" пример 4
Пример показывает, как произвести передачу по таймеру в выбранный CAN по состоянию
входа. Если вход PA7 включен, то в CAN1 будет передано сообщение каждые 500 мсек. Если вход
PA7 выключен, то сообщение не передаётся.
Передача в CAN1 и CAN2
вход PA7 Период передачи
ID 0x… Кол-во байт Данные 0x…
Включен 500 мсек. 100 8 01 02 03 04 05 06 07 08
Выключен - - - -
36
8.2 Настройка "Блокировка ID в CAN2"
Пример показывает, как произвести блокировку пакета. Все пакеты приходящие в CAN1 c
установленным ID и любым количеством байт будут заблокированы.
ID 0x… Кол-во байт Данные 0x…
Принято по CAN1 100 8 11 22 A6 48 98 B0 CC 00
Передано CAN2 - - заблокировано
Принято по CAN1 100 4 11 22 A6 48
Передано CAN2 - - заблокировано
37