Сравнение открытых прошивок 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; и проприетарные или эмуляционные протоколы.
| Проект | Протокол | CAN‑FD | Таймстампы | Система / Примечания | Лучше всего для |
|---|---|---|---|---|---|
| CANnectivity | gs_usb | Да (аппаратный FDCAN) | Аппаратные | Zephyr RTOS, стандартный драйвер gs_usb в ядре Linux, многоканальность, DFU | Промышленные адаптеры, серийное производство, долгосрочное сопровождение |
| candleLight_fw | gs_usb | Да | Аппаратные | Bare-Metal STM32, лицензия MIT, классическая эталонная реализация gs_usb | Недорогие одноканальные адаптеры, быстрая разработка |
| Kosmonova usb‑can‑firmware‑stm32 | gs_usb | Частично | Аппаратные | Bare-Metal STM32, лёгкая, низкая активность разработки | Обучение, простая доработка gs_usb |
| LekElectronics slcan | Lawicel SLCAN (CDC‑VCP) | Нет (стандартный SLCAN) | Хост / программные | STM32 HAL, требуется slcand, хорошая совместимость со старыми инструментами | Устаревшее ПО, отладка при низкой нагрузке |
| CANable original slcan fw | Lawicel SLCAN | Нет | Программные | Bare-Metal, официальная прошивка CANable | Эталонный стандартный SLCAN для CANable |
| FYSETC UCAN | Производная SLCAN | Нет | Программные | Оптимизирован для Klipper / 3D-принтеров | Только для принтеров Klipper с шиной CAN |
| xjtuecho USBCAN | Собственный протокол | Нет | Программные | Плохая совместимость со сторонними инструментами | Обучение и лаборатории; для коммерческой разработки не рекомендуется |
| pcan_cantact | Эмуляция PEAK PCAN | Частично | Аппаратные | Работает на CANable, совместим с PCAN‑View | Прямая замена аппаратуры PEAK PCAN |
| USBtin | Lawicel 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
Больше новостей
Нужны подробности по анонсу?
Сообщите, какая линейка или проект вас интересует, и мы пришлём спецификации, образцы и сроки поставки.