DIY CAN 어댑터를 위한 오픈 소스 USB-CAN / CAN-FD 펌웨어 비교
이 가이드는 DIY CAN 어댑터용 대표적인 오픈 소스 USB‑CAN / CAN‑FD 펌웨어를 비교합니다. 크게 세 그룹으로 나뉩니다: 고성능 바이너리 프로토콜인 gs_usb, CDC‑VCP 위에서 동작하는 Lawicel SLCAN(ASCII), 그리고 독자 사양·…
관련 제품 USBCAN-I-BC | USB-CAN Converter Module
이 가이드는 DIY CAN 어댑터용 대표적인 오픈 소스 USB‑CAN / CAN‑FD 펌웨어를 비교합니다. 크게 세 그룹으로 나뉩니다: 고성능 바이너리 프로토콜인 gs_usb, CDC‑VCP 위에서 동작하는 Lawicel SLCAN(ASCII), 그리고 독자 사양·에뮬레이션 계열 프로토콜입니다.
| 프로젝트 | 프로토콜 | CAN‑FD | 타임스탬프 | 시스템 / 비고 | 추천 용도 |
|---|---|---|---|---|---|
| CANnectivity | gs_usb | 지원(하드웨어 FDCAN) | 하드웨어 | Zephyr RTOS, 리눅스 표준 gs_usb 드라이버, 멀티 채널, DFU | 산업용 어댑터, 양산, 장기 유지보수 |
| candleLight_fw | gs_usb | 지원 | 하드웨어 | 베어메탈 STM32, MIT 라이선스, 고전적인 gs_usb 레퍼런스 | 저가형 단일 채널 어댑터, 신속한 개발 |
| Kosmonova usb‑can‑firmware‑stm32 | gs_usb | 부분 지원 | 하드웨어 | 베어메탈 STM32, 경량, 개발 활동 낮음 | 학습용, 간단한 gs_usb 커스터마이징 |
| LekElectronics slcan | Lawicel SLCAN (CDC‑VCP) | 미지원(표준 SLCAN) | 호스트 / 소프트웨어 | STM32 HAL, slcand 필요, 구형 도구와 호환성 우수 | 레거시 소프트웨어, 저부하 디버깅 |
| CANable original slcan fw | Lawicel SLCAN | 미지원 | 소프트웨어 | 베어메탈, CANable 정식 펌웨어 | CANable 표준 SLCAN 레퍼런스 |
| 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 기반 펌웨어, 최신 아키텍처 | Rust 기반 실험적 CAN‑FD 어댑터 |
| SuperCAN | 독자 SuperCAN | 지원 | 하드웨어 | 전용 신규 CAN‑FD 프로토콜 | 연구 용도, 독자 호스트 스택 개발 |
프로토콜 개요
gs_usb — 오버헤드가 작은 바이너리 프로토콜로, 하드웨어 타임스탬프와 리눅스 커널 표준 드라이버를 갖추고 있습니다. 산업 용도, CAN‑FD, 고부하 버스에 적합하지만 구형 GUI 도구의 지원은 적은 편입니다.
Lawicel SLCAN — CDC‑VCP 위의 ASCII 프로토콜로 레거시 호환성이 뛰어납니다. 다만 프로토콜 오버헤드가 크고 타임스탬프는 호스트 측 생성이며, 리눅스에서 SocketCAN 연결에는 slcand가 필요합니다.
에뮬레이션 / 독자 사양 — PCAN 에뮬레이션과 전용 프로토콜은 특정 호스트 소프트웨어에 맞지만 폐쇄적 생태계를 형성하여 범용 어댑터에는 부적합합니다.
간단 선정 가이드
- • 범용 상용 USB‑CAN‑FD 어댑터: CANnectivity
- • 간단한 단일 채널 gs_usb: candleLight_fw
- • 기존 직렬 CAN 도구와의 호환: LekElectronics slcan
- • PEAK PCAN 직접 대체: pcan_cantact
- • Klipper 프린터용 CAN 버스: FYSETC UCAN
알려진 제한 사항
표준 Lawicel SLCAN에는 CAN‑FD의 공식 정의가 없으며, CAN‑FD를 지원하는 모든 SLCAN은 비표준 확장에 의존합니다. 하드웨어 타임스탬프는 프로토콜뿐 아니라 MCU의 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
더 많은 소식
공지의 세부 내용이 궁금하신가요?
검토 중인 제품군이나 프로젝트를 알려주시면 사양, 샘플, 리드타임을 회신해 드립니다.