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 標準を実装しており、車両やロボットの異なるハードウェアコンポーネント間で、複雑な OS を必要とせずに、リアルタイムで信頼性の高いデータ交換を可能にします。

How it works

本ライブラリは、アプリケーションロジックと CAN ハードウェア間のミドルウェアとして機能します。Cyphal/CAN プロトコルにおける複雑な処理を以下のように管理します:

  • Message Routing: サブスクリプションの管理および特定の subject IDs へのデータのパブリッシュ。
  • Frame Management: フレーム管理。Classic CAN および CAN FD をサポートし、マルチフレーム転送および優先度ベースのプリエンプション(中断)をサポートします。
  • Resource Optimization: 最小限のメモリフットプリント (32K ROM/RAM から開始) と、高速なサブスクリプション検索のための AVL trees などの効率的なデータ構造を使用します。
  • Hardware Abstraction: クリーンで最小限のインターフェース (vtable) を使用し、開発者がプラットフォーム固有の CAN ドライバーをプラグインできるようにします。

Who it’s for

高整合性リアルタイム組み込みシステムの開発者、特に航空宇宙およびロボティクス分野で CAN バス通信に依存するアプリケーションを構築する開発者向けに設計されています。

Highlights

  • Extreme Efficiency: 8/16/32/64-bit プラットフォームおよびリソース制約の厳しい baremetal MCU に対応しています。
  • C CURLOPT Redundancy: 冗長および非冗長な CAN 設定をサポートします。
  • Broad Compatibility: Cyphal v1.1、v1.0、およびレガシーな UAVCAN v0 (DroneCAN) をサポートします。
  • Priority Handling: データ転送を失うことなく、優先度レベルによるプリエンプションをサポートする RX pipeline を備えています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト