OpenCyphal/libcanard
A compact implementation of the Cyphal/CAN protocol in C for high-integrity real-time embedded systems
What it solves
Libcanard은 CAN 버스 통신이 필요한 임베디드 시스템을 위한 강력하고 고신뢰성인 전송 계층을 제공합니다. Cyphal 표준을 구현하여, 차량이나 로봇의 다양한 하드웨어 구성 요소가 복잡한 운영체제 없이도 실시간으로 신뢰할 수 있는 데이터를 교환할 수 있게 합니다.
How it works
이 라이브러리는 애플리케이션 로직과 CAN 하드웨어 사이의 미들웨어 역할을 합니다. Cyphal/CAN 프로토콜의 복잡성을 다음과 같이 처리합니다:
- Message Routing: 구독(subscription)을 관리하고 특정 subject IDs로 데이터를 발행(publishing)합니다.
- Frame Management: Classic CAN 및 CAN FD를 모두 처리하며, 멀티 프레임 전송 및 우선순위 기반의 선점(preemption)을 지원합니다.
- Resource Optimization: 최소한의 메모리 사용량(32K ROM/RAM부터 시작)과 빠른 구독 조회를 위한 AVL trees와 같은 효율적인 데이터 구조를 사용합니다.
- Hardware Abstraction: 개발자가 플랫폼별 CAN 드라이버를 직접 연결할 수 있도록 깔끔하고 최소한의 인터페이스(vtable)를 제공합니다.
Who it’s for
고신뢰성 실시간 임베디드 시스템 개발자, 특히 CAN 버스 통신에 의존하는 항공우주 및 로보틱스 애플리케이션을 구축하는 개발자를 위해 설계되었습니다.
Highlights
- Extreme Efficiency: 8/16/32/64-bit 플랫폼 및 리소스가 매우 제한적인 baremetal MCU와 호환됩니다.
- C CURLOPT Redundancy: 중복(redundant) 및 비중복 CAN 설정을 지원합니다.
- Broad Compatibility: Cyphal v1.1, v1.0, 및 레거시 UAVCAN v0 (DroneCAN)를 지원합니다.
- Priority Handling: 데이터 전송 손실 없이 우선순위 레벨 선점을 지원하는 RX pipeline을 특징으로 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트