Тема: Реализация фильтрации CAN сообщений и памяти
Основная задача: получить CAN-сообщение из шины и передать его через UART на другое устройство.
Проблема в том, что шина работает на скорости 500kbps, а UART на Canny7 - максимум на 57600, что приводит к переполнению (с учетом того, что в UART передаются еще и дополнительные данные). Пакеты приходят с частотой 50 или 100шт/с и их порядка 10 типов (10 разных ID), т.е. их довольно много.
При использовании CCM периодически возникает сообщение COVF (CAN overflow, по всей видимости).
Как правильно на языке функциональных диаграмм реализовать следующую логику: запоминать предыдущее сообщение с таким же ID и в UART отправлять только изменения или делать это 1 раз в секунду? Таким образом, для каждого типа сообщения в UART отправляться данные 1 раз в секунду или изменения. Этого должно быть сильно меньше, CCM - же справляется. Ситуация осложняется тем, что заранее типы сообщений CAN неизвестны, но можно ограничиться каким-то разумным числом запоминаемых типов сообщений.
По сути - это будет некоторый аналог CCM.