Как стать автором
Обновить

Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.5K
Всего голосов 5: ↑3 и ↓2+1
Комментарии23

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

Условный CAN Hacker за 100$ мне кажется более интересным устройством да еще и с 2мя каналами

Ещё есть переходник USB-CAN USBCAN-II C и утилита Ecantools для него.

вот PCB

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

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

Именно так я и сделал в начале. Но когда сломался последний а производитель сказал что не чинит и предлагает просто купить новый я понял, что не настолько богат, чтобы постоянно покупать то, что могу сделать сам. Бессонных ночей не было, весь проект создания работоспособного прототипа заняло порядка месяца, занимаясь вечерами - обычный отпуск. Зато теперь я не завишу ни от кого и у меня просто десятки приборов в запасе и я вообще не парюсь. Более того, когда я взялся за софт я реализовал в нём то, что было киллер фичей у разных производителей. То, что нужно было мне. А так же режим автономного самописца на карту памяти и магнитофона, транслирующего в интерфейс записанный лог. Не знаю, у кого из текущих на рынке есть такое - не слежу за этим уже лет 8.

Изделие достаточно дорогое около 39597 RUR.

Пфф. На али кан-анализаторы идут от 800р. Обд-сниферы в корпусе и девайсы, совместимые с SocketCAN - пара т.р.

Электролиния CAN

Значение слова ЭЛЕКТРОЛИНИЯ. Что такое ...

Карта слов и выражений русского языкаhttps://kartaslov.ru › значение-слова › электролиния

ЭЛЕКТРОЛИ́НИЯ, -и, ж. Провод (провода), кабель, проложенный для передачи электроэнергии

CAN — стандарт промышленной сети, ориентированный, прежде всего, на объединение в единую сеть различных исполнительных устройств и датчиков.

Я полагаю что CAN это всё же шина данных.

У фирменного драйвера есть неприятная особенность: если при подключенном адаптере завершить удалённоый сеанс, а потом подключиться заново - он перестаёт работать, хотя показывает, что всё ок, и статус шины «Good». Сброс адаптера или перезапуск приложения, использующего систековскую длл-ку - не помогает.

А есть ли что-то из недорогого для CanOpen?

Пи + любая CAN-плата на нее + любая из библиотек, поддерживающая реализацию протокола прикладного уровня.

Пользовался платами с али, про которые в комментах тут писали. Интерфейсы CANable, SocketCAN, CANtact, UART-CAN - всё открытые прошивки. С гальваноразвязкой тоже есть. В линуксе работают из коробки. can-utils и python-can заводил.

Но был нюанс: не удавалось сбросить буфер передачи. Когда пакет никто в сети не подтверждает, некоторые прошивки успокаиваются через 2-5 секунд. А некоторые прошивки уходят в бесконечный повтор, и только отключение от USB помогает.

Плата SYS TEC USB-CANmodul1 нормально отрабатывает отвал от кан-шины? А другие? Может, у кого есть опыт?

Достаточно выгрузить-загрузить модуль ядра драйвера контроллера, что-нибудь типа:

modprobe -r mcp251xfd
modprobe mcp251xfd

Да, ещё с SocketCAN помогает

ip link set down can0
ip link set up can0

Но это тоже с sudo. Пользователю быстрее USB переткнуть)

Это лайт-вариант, он не очищает счетчики CAN

Поскольку USB и CAN - совершенно разные протоколы, не конвертирующиеся друг в друга прозрачно, без софтовой прослойки со своей кастомной логикой, своими возможностями и API, ваш вопрос, поставленный максимально открыто, не имеет смысла.

"Переходник USB-CAN" же вообще абсурдный термин. Примерно такой же, как, скажем, внешнюю сетевушку называть "Переходник USB-802.11", а флешку - "Переходник USB-exFAT".

Тем не менее, существуют переходники USB-RS232...

RS232 - протокол физического уровня для UART. В спецификации USB есть класс устройств USB CDC, делающий возможным прозрачную конверсию передачи линии RS232 с виртуальным COM-портом, создаваемым драйвером таких устройств, о которых вы говорите. В случае с CAN, вам нужна реализация логики протокола канального уровня, о которой USB-контроллеры понятия не имеют, и которую нужно реализовывать с помощью CAN-контроллера, плюс программный модуль для управления, собственно, коммуникационной сессией.

Я лишь показал, что "Переходник ХХХ-YYY - абсурдный термин" - абсурдная жизненная позиция. CDC класс вошёл в спецификацию USB как стандартный потому что был востребован. Я застал те времена, когда на USB-COM переходники приходилось ставить сторонние (родные от производителя) драйвера. А теперь их понимают даже мобилы без драйверов, потому что стандартные классы обязаны поддерживать все. Если бы была необходимость в поддержке CAN в OS то и такой класс бы попал в спецификацию USB. Хотя, учитывая, что есть отдельная ниша где CAN был относительно популярен, скорее всего есть сторонние системы поддержки CAN на уровне KWP2000, например. Ну это как с первыми BlueTooth, когда стек ставился полностью сторонний вместе с драйвером. Вот тоже вам пример "абсурдного переходника", который может в кучу интерфейсов и протоколов. Сейчас - стандартный на уровне OS.

К слову, HID и Mass Storage тоже не сразу попал в стандартные классы. А RNDIS так и вообще, наверное, самый молодой из них. Всё это пополнялось по мере необходимости и популярности.

Да ладно уж мелочиться.
В электронике всё, так или иначе, - это какой-то переходник.

С таким философским подходом можно и до второго закона термодинамики дойти)

Для меня переходник это то, что однозначно (детерминированно) и автономно от внешней логики превращает входной сигнал в выходной, работая по принципу "воткнул в разрыв - и работает".

Я пользуюсь этими:
https://aliexpress.ru/item/1005004971890033.html
https://www.avito.ru/moskva/zapchasti_i_aksessuary/can_usb_interfeys_analog_can_hacker_cantact_2236305908
Первый - с гальванической изоляцией. Оба в линуксе из-коробки определяются, как сетевые интерфейсы. С python-can и can-utils дружат, но надо ставить версии после 2022 года.
На приём работают отлично. А вот на передачу, если в сети никого живого нет, появляется нюанс.
Ещё вот такой взял, с другим логическим интерфейсом:
https://aliexpress.ru/item/1005002828512259.html
но пока руки не дошли испробовать.

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

Публикации

Истории