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: 管理訂閱與將數據發佈到特定的 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。
相關
- 專案
- 專案
- 專案
- 專案
- 專案