1 (04-06-2024 09:43:42 отредактировано tols-tom)

Тема: Отправка CAN сообщений

Добрый день! Уважаемые Админы, подскажите пожалуйста, отправляю в Can шину  15 сообщений с одинаковым IDL, меняются только байты, в симуляции сообщения отправляются каждую 1 мс, как мне надо, а в машине каждые 3мс, почему так происходит?

Вложений в сообщении

Иконка вложения Тест пт.cfd 24.98 кб, скачивался 18 раз, последний раз 2024-06-04 

2

Re: Отправка CAN сообщений

По всей видимости дело в том, что время исполнения одного цикла вашей диаграммы контроллером составляет около 3мс
См.п.9 здесь: https://canny.ru/docs/tips_tricks/solut … ents_tips/

Если вам действительно нужна более высокая плотность передачи сообщений, то выходом может быть использование контроллера CANNY 7.2 Duo, в системном ПО которого присутствует Драйвер асинхронной передачи CAN: https://canny.ru/docs/c72duo/acan/

3

Re: Отправка CAN сообщений

Проблемка в том, что мне надо вместить за одну отправку 20 сообщений динамически меняющиеся, каждое сообщение с интервалом 1мс, так как штатный IDL передаёт пакеты раз в 20 мс и надо влезть между этими сообщениями. Если не влезает сообщение, то команда не проходит.
Через асинхронную передачу пока не понял, как отправить динамические сообщения.

4

Re: Отправка CAN сообщений

Через асинхронную передачу пока не понял, как отправить динамические сообщения.

Через Регистр задержки начала асинхронной передачи буфера X CAN можно задать задержку начала отправки сообщений каждого буфера асинхронной передачи CAN с момента его активации, в миллисекундах.

При записи Регистр обновления данных драйвера асинхронной передачи CANх значения отличного от нуля, драйвер асинхронной передачи CANх обновляет данные считывая их из регистров своей конфигурации.

Узнать о состоявщейся отправке данных драйвером данных можно из Регистра отправки данных буфера X драйвера асинхронной передачи CAN.

Таким образом, можно организовать динамическое обновление отправляемых данных.

5

Re: Отправка CAN сообщений

Спасибо, буду разбираться.