Обновить

Переходник с UART на CAN из отладочной платы JZ-F407VET6

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели10K
Всего голосов 14: ↑11 и ↓3+15
Комментарии17

Комментарии 17

У меня есть такая плата, на ней я реализовал gateway can/ethernet для специфических девайсов. Как раз давеча потерял свой canable 2.0, прекрасно служивший мне для моих утилит под python, открывающийся как /dev/cu.тырыпыры последовательный порт, в общем, и мучался с canable 1.0, вроде я его прошивал чем-то под can<->usb-serial, а сегодня не смог её найти, и сайт canable.io чёт не работает. Попробую завтра вашу. А с usb-serial что не получилось? "переходник с USB на RS232"

А с usb-serial что не получилось? "переходник с USB на RS232"

Это следующим этапом.

Клиент на ПК для этих переходников используется для того, чтобы иметь достаточную вычислительную мощность, чтобы обрабатывать входящий и/или исходящий поток в режиме реального времени + его накапливать. На МК такое сделать проблематично. А файл с записью может быть легко более гигабайта за 1 сессию. Особенно в случае с FD и/или работе с целой сетью CAN, например, у автомобиля, где постоянно общаются десяток устройств. Поэтому, ваша схема интересна, но чтобы она имела хотя-бы какой-то практический смысл нужно как минимум добавлять ОЗУ (FSMC позволит вам прикрутить дешёвую и ёмкую SDRAM), прикручивать серьёзный скоростной накопитель (хотя-бы скоростную uSD, SDIO вам поможет) и плотно изучить набортное оборудование МК, чтобы разрулить все пути данных внутри по шинам под управлением DMA, высвобождая само ядро на, собственно, обработку данных и общение с пользователем.

Исходя из упомянутого выше резюмирую: если вы хотите автономное но в то же время достаточно полезное устройство, то используйте тандем из обычного и мощного МК. Например, RP2040+STM407. Или любую маленькую малинку с прикрученным CAN адаптером. Там вы сможете достаточно быстро и точно по времени управлять CANом и в то же время у вас будет достаточно вычислительной мощности для анализа и накопления данных. И при этом вы никак не будете привязаны к обычному ПК, вот буквально, к малинке же можно свой монитор прикрутить, верно?

поскольку некоторые пытаются использовать малинки и репки как десктоп, а can бывает интегрирован в чипсет то это уже даже и сделано. только linux очень хочет видеть can как сетевой адаптер то некоторая сокетная прослойка все таки возникает

Ну вот. Я думаю, что видимость как сетевой интерфейс тоже решаемо. Если уж закапываться в линукс, то по любому разбираться в этих ядерных модулях.

 тандем из обычного и мощного МК. Например, RP2040+STM407. Или любую маленькую малинку с прикрученным CAN адаптером. 

Да. Видел такое решение на прошлой работе.

Там с Raspberry PI + CAN трансивера управляли тестировочным оборудованием внутри test-jig-и (8 отдельных плат) по CAN.

К test jig-е поочередно подключался ECU и так проверяли собранные на конвейре ECU (для управления кузовной электроникой).

Ну, это как автономный программатор. Крайне полезная но в то же время нишевая вещь.

Поэтому, ваша схема интересна

Спасибо.

Скорее нет чем да. Однако сорцы UART-консоли я раскрыл в предыдущем тексте.

Жаль конечно. Но нет, так нет.

кстати вспомнил из предыдущих обсуждений вообще esp32 с веб интерфейсом предлагали для такого, типа еще удобнее, нужен только смартфон. но через wifi/bt можно и обычную консоль

Оффтоп-вопрос: какой можете посоветовать CAN клиент на ПК, который на клиент будет похож, а не на студенческую курсовую? Сейчас пользуюсь Cangaroo и сильно страдаю(
Из требований: отображение трафика, возможность отправки своих пакетов (одноразово и циклически), возможность группировки и фильтрации пакетов по ID

Я пользуюсь аскетическим CANary, который в статье не заявлен. Он использует свои донглы, но я научился ими притворяться, поэтому делаю себе клоны сам.

Картинки

У него простой и понятный бинарный файл лога, который можно посмотреть родным же анализатором.

CANalyzer

Только вот он тормозной жутко почему-то. Учитывая, что софт канарейки может писать более 100МБ данных на диск, а анализатор даже 5МБ файл кубатурит минут 5, а если там много ID то и того дольше я тупо перестал использовать канализатор и написал свой.

Мой анализатор

Он умеет всё, что умеет CANalyzer, только открывает файлы логов почти всех самых известных CAN логгеров, грузит быстро лог даже под гигабайт размером, быстро работает GUI, количество цветов ID не ограничено (в оригинале только 4 ID можно раскрасить), добавил дельту времени, причём учитывается дельта между отображаемыми (отфильтрованными) ID. Есть сборщик пакетов KWP2000, UDS и т.д. Ну и я всегда могу туда что угодно добавить. Работает без установки.

По хорошему, нужно написать аналог и самого CANary, но пока времени нет. Дело в том, что CANary фильтрует устройства по издателю драйвера. Учитывая, что канарейка собрана на STM32F1, то фильтруются только vCOM от STMicrielectronics. А аналог хочу сделать чтобы он работал вообще с любым донглом, даже китайским.

Сейчас пользуюсь Cangaroo и сильно страдаю(

Аналогично.

BusMuster на всякий случай. в нем есть встроенный компилятор для плагинов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации