Pull to refresh

Comments 28

У меня есть такая плата, на ней я реализовал 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"

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

Привет, мне с производства на следующий день утром написали - нашёлся мой usb-can)) Сейчас посмотрел - после трансфера на новый макбук с год назад перестали открываться некоторые проги, в т.ч. segger, которым я эти платы прошивал.

Нашёл инсталляшку 8.16, нашёл segger свой 12й, прошил, 1 диод горит постоянно, второй раз в секунду моргает, третий 5 раз в 1 секунду. Нашёл miniUSB кабель, в портах прибавилось в папке /dev/cu*,

фото
фото

перестали открываться некоторые проги, в т.ч. segger, которым я эти платы прошивал.

Прошивайте ST-Link-ом
Программатор из обломка платы Nucleo
https://habr.com/ru/articles/975880/

Дык я ж на фотке всё разместил, чтоб было понятно, что всё нашел-подключил итд

Не дописал, извиняюсь.

Под screen-ом подключился к девайсу, пока скорость не настроишь - он ловит пакеты на непонятной скорости и с непонятными ID. Было бы здорово в протоколе slcan для CAN, и в режиме uart для rs485, но это чисто для меня. Столько данных лучше наверное и правда заворачивать в пакеты некоего протокола, к которому удобный парсер сделать со скомпилированной либой. Судя по количеству портов - это должно быть что-то над UDP. Нейросеть говорит, что это реализуемо с некоторыми ограничениями - LWIP (lightweight IP) with RAW API (not socket API), но я думаю - сессию и железяку надо сначала сконфигурировать по TCP, закрыть сессию и стартанёт UDP с обработчиками rx и tx

А чтоб ловить их под виндой, либа при инициализации должна timeBeginPeriod(1) выставлять. Доселе я пробовал только 5мс UDP пакеты обрабатывать, получится ли с 1мс...вопрос

Под screen-ом
Под screen-ом

Здорово, что удалось накатить и стартануть прошивку!
Если найдете в ней баги, то пишите.

Так коллекционирование сообщений до задания конфигурации сети - это ж баг :) Фишка в том, что мой workflow заключается в том, что я разрабатываю обработчики трафика на мощных машинах, и уже потом запихиваю обработки в embedded, посему в моих процессах подход консольных манипуляций трафиком не применим, и глубже с этим девайсом я не полезу

Раз у вас есть плата JZ-F407VET6, то возьмите и портируйте на нее open-source проект PCAN-Pro-X.

Вот репозитории на выбор
https://github.com/mkelehk/pcan_pro_x_g431
https://github.com/moonglow/pcan_pro_x
https://github.com/eeshuibuxing/pcan_pro_x

Далее устанавливаете клиентский софт от Peak Systems, получаете бесплатный драйвер, бесплатную нормальную Windows клиентскую программу для прошивки (PCAN-View).

Вам не надо будет отдельно разрабатывать клиентскую утилиту. Вы просто берёте утилиту PCAN-View и драйвера.
Как бонус Win драйвер позволяет подключаться к прибору из нескольких приложений

Спасибо, может пригодится, хотя я виндой пользуюсь крайне редко, а про разработку я ниже написал, нейросети творят быстрые чудеса нынче :) Плата довольно большая для замены мелких свистков, но в одном проекте надо 2 разных CAN сети будет обрабатывать

Клиент на ПК для этих переходников используется для того, чтобы иметь достаточную вычислительную мощность, чтобы обрабатывать входящий и/или исходящий поток в режиме реального времени + его накапливать. На МК такое сделать проблематично. А файл с записью может быть легко более гигабайта за 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 на всякий случай. в нем есть встроенный компилятор для плагинов.

В 26 году всё легко наруливается с помощью нейросетей и python, какой хотите клиент пилите, хоть графики, хоть трафики, хоть чего показывать будет

UFO landed and left these words here
Sign up to leave a comment.

Articles