Сравнение открытых прошивок USB-CAN / CAN-FD для самодельных CAN-адаптеров

В этом руководстве сравниваются ведущие открытые прошивки USB‑CAN / CAN‑FD для самодельных CAN-адаптеров. Их можно разделить на три большие группы:…

Упомянутые продукты USBCAN-I-BC | USB-CAN Converter Module

В этом руководстве сравниваются ведущие открытые прошивки USB‑CAN / CAN‑FD для самодельных CAN-адаптеров. Их можно разделить на три большие группы: gs_usb — производительный бинарный протокол; Lawicel SLCAN (ASCII), работающий поверх CDC‑VCP; и проприетарные или эмуляционные протоколы.

Сравнение прошивок USB-CAN
ПроектПротоколCAN‑FDТаймстампыСистема / ПримечанияЛучше всего для
CANnectivitygs_usbДа (аппаратный FDCAN)АппаратныеZephyr RTOS, стандартный драйвер gs_usb в ядре Linux, многоканальность, DFUПромышленные адаптеры, серийное производство, долгосрочное сопровождение
candleLight_fwgs_usbДаАппаратныеBare-Metal STM32, лицензия MIT, классическая эталонная реализация gs_usbНедорогие одноканальные адаптеры, быстрая разработка
Kosmonova usb‑can‑firmware‑stm32gs_usbЧастичноАппаратныеBare-Metal STM32, лёгкая, низкая активность разработкиОбучение, простая доработка gs_usb
LekElectronics slcanLawicel SLCAN (CDC‑VCP)Нет (стандартный SLCAN)Хост / программныеSTM32 HAL, требуется slcand, хорошая совместимость со старыми инструментамиУстаревшее ПО, отладка при низкой нагрузке
CANable original slcan fwLawicel SLCANНетПрограммныеBare-Metal, официальная прошивка CANableЭталонный стандартный SLCAN для CANable
FYSETC UCANПроизводная SLCANНетПрограммныеОптимизирован для Klipper / 3D-принтеровТолько для принтеров Klipper с шиной CAN
xjtuecho USBCANСобственный протоколНетПрограммныеПлохая совместимость со сторонними инструментамиОбучение и лаборатории; для коммерческой разработки не рекомендуется
pcan_cantactЭмуляция PEAK PCANЧастичноАппаратныеРаботает на CANable, совместим с PCAN‑ViewПрямая замена аппаратуры PEAK PCAN
USBtinLawicel SLCANНетПрограммныеЗрелые открытые аппаратура и прошивкаПростая открытая эталонная реализация SLCAN
umi‑eng adapterСобственный USB CAN‑FDДаАппаратныеПрошивка на Rust, современная архитектураЭкспериментальный CAN‑FD-адаптер на Rust
SuperCANСобственный SuperCANДаАппаратныеСпециализированный новый протокол CAN‑FDИсследования, разработка собственного хост-стека

Обзор протоколов

gs_usb — компактный бинарный протокол с аппаратными таймстампами и стандартным драйвером в ядре Linux. Хорошо подходит для промышленного применения, CAN‑FD и сильно нагруженных шин, хотя поддержка в старых графических утилитах ограничена.

Lawicel SLCAN — ASCII-протокол поверх CDC‑VCP с отличной обратной совместимостью. Однако накладные расходы протокола выше, таймстампы формирует хост, а для подключения к SocketCAN в Linux нужен slcand.

Эмуляция / собственные протоколы — эмуляция PCAN и специализированные протоколы ориентированы на конкретное хост-ПО, но образуют закрытые экосистемы и плохо подходят для универсальных адаптеров.

Краткое руководство по выбору

  • • Универсальный коммерческий USB‑CAN‑FD-адаптер: CANnectivity
  • • Простой одноканальный gs_usb: candleLight_fw
  • • Совместимость с классическими последовательными CAN-инструментами: LekElectronics slcan
  • • Прямая замена PEAK PCAN: pcan_cantact
  • • Шина CAN для принтеров Klipper: FYSETC UCAN

Известные ограничения

Стандарт Lawicel SLCAN не содержит официального определения CAN‑FD; любая реализация SLCAN с поддержкой CAN‑FD опирается на нестандартные расширения. Аппаратные таймстампы зависят не только от протокола, но и от периферии FDCAN / bxCAN микроконтроллера и реализации прошивки.

Ссылки на проекты

CANnectivity: https://github.com/CANnectivity/cannectivity
candleLight_fw: https://github.com/candle-usb/candleLight_fw
LekElectronics slcan: https://github.com/LekElectronics/slcan
FYSETC UCAN: https://github.com/FYSETC/UCAN
xjtuecho USBCAN: https://github.com/xjtuecho/USBCAN
Kosmonova usb-can-firmware-stm32: https://github.com/Kosmonova/usb-can-firmware-stm32
USBtin: https://github.com/fischl/USBtin
pcan_cantact: https://github.com/moonglow/pcan_cantact
umi-eng adapter: https://github.com/umi-eng/adapter
SuperCAN: https://github.com/jgressmann/supercan

Перейти на страницу продукта

Нужны подробности по анонсу?

Сообщите, какая линейка или проект вас интересует, и мы пришлём спецификации, образцы и сроки поставки.

Запросить коммерческое предложение