尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
无人机行业主流 CAN 上层协议介绍
无人机行业主流 CAN 上层协议介绍一、DroneCAN1.1 核心特性1.2 主要应用场景1.3 技术架构1.4 典型消息示例二、Cyphal原 UAVCAN v12.1 与UAVCAN v0的主要区别2.2 协议栈组成2.3 数据类型定义DSDL2.4 实际应用优势三、UAVCAN3.1 历史背景3.2 核心设计原则3.3 消息传输机制3.4 典型网络拓扑四、MAVLink over CANMAVCAN4.1 设计目标4.2 协议封装方式4.3 与原生MAVLink对比4.4 适用场景五、协议横向对比5.1 技术特性对比5.2 生态系统对比DroneCANCyphalUAVCANMAVCAN5.3 选型建议选择 DroneCAN 当选择 Cyphal 当选择 UAVCAN 当选择 MAVCAN 当5.4 发展趋势5.5 混合使用场景总结一、DroneCANDroneCAN是一种专为无人机和机器人系统设计的轻量级、开源CAN总线通信协议。它基于UAVCAN v0协议发展而来由PX4开源社区主导维护已成为无人机领域应用最广泛的CAN总线协议之一。1.1 核心特性轻量高效协议栈占用资源少适合嵌入式系统即插即用支持设备自动发现和动态节点ID分配服务导向提供请求-响应式服务调用机制数据类型丰富支持标准数据类型和用户自定义消息开源免费Apache 2.0许可证社区活跃1.2 主要应用场景飞控与传感器通信IMU、GPS、气压计等电调ESC状态监控与控制电源管理模块PDB数据采集外围设备扩展LED、蜂鸣器、OSD等1.3 技术架构┌─────────────────────────────────────┐ │ 应用层 │ ├─────────────────────────────────────┤ │ 服务调用 │ 消息发布/订阅 │ ├─────────────────────────────────────┤ │ 传输层CAN帧封装 │ ├─────────────────────────────────────┤ │ 数据链路层CAN 2.0 │ └─────────────────────────────────────┘1.4 典型消息示例# DroneCAN 节点状态消息定义uavcan.equipment.ahrs.Solution:timestamp:uint64# 微秒时间戳orientation:float[4]# 四元数姿态angular_velocity:float[3]# 角速度linear_acceleration:float[3]# 线性加速度二、Cyphal原 UAVCAN v1Cyphal是UAVCAN协议的重大升级版本于2021年正式发布。它继承了UAVCAN的设计理念同时在性能、安全性和可扩展性方面进行了全面改进。2.1 与UAVCAN v0的主要区别统一传输层支持CAN FD、Ethernet、Serial等多种物理层改进的寻址方案128位节点ID支持大规模网络增强的数据类型系统支持嵌套数据结构内置安全机制消息签名和加密支持更好的实时性优化的调度算法2.2 协议栈组成应用层定义数据类型和服务接口传输层处理消息分段、重组和流控制网络层路由和网络管理数据链路层适配不同物理介质2.3 数据类型定义DSDL# Cyphal 数据类型定义示例uavcan.node.Heartbeat.1.0:uptime:uint32# 节点运行时间秒health:uint2# 健康状态0正常1警告2错误3离线mode:uint3# 运行模式vendor_specific_status_code:uint82.4 实际应用优势跨平台兼容同一协议栈可在不同硬件平台运行工具链完善提供代码生成器、调试工具和仿真环境工业级可靠性适合安全关键型应用三、UAVCANUAVCANUncomplicated Application-level Vehicular Communication And Networking是最早的无人机CAN总线协议标准为后续协议发展奠定了基础。3.1 历史背景2014年由Pavel Kirienko等人提出旨在解决无人机系统中传感器和执行器的通信问题最初设计用于CAN总线后扩展支持其他介质3.2 核心设计原则去中心化无主节点所有节点平等实时性保证关键消息的传输延迟可扩展性支持动态添加/移除节点容错性单点故障不影响整体系统3.3 消息传输机制发布-订阅模式节点可发布消息其他节点订阅接收服务调用支持同步和异步RPC调用心跳机制定期发送状态信息监控节点健康3.4 典型网络拓扑┌─────────────┐ │ 飞控 │ │ (节点1) │ └──────┬──────┘ │ ┌───────────────┼───────────────┐ │ │ │ ┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐ │ GPS │ │ IMU │ │ 电调 │ │ (节点2) │ │ (节点3) │ │ (节点4) │ └───────────┘ └───────────┘ └───────────┘四、MAVLink over CANMAVCANMAVCAN是将MAVLink消息封装在CAN帧中传输的协议结合了MAVLink的丰富消息集和CAN总线的可靠性。4.1 设计目标复用MAVLink生态直接使用现有的MAVLink消息定义降低布线复杂度用CAN总线替代点对点串口连接提高可靠性利用CAN总线的错误检测和重传机制保持兼容性与标准MAVLink地面站工具兼容4.2 协议封装方式MAVLink消息头 (6字节) MAVLink载荷 (最多253字节) ↓ 分割为多个CAN帧 (每帧最多8字节有效载荷) ↓ 添加MAVCAN帧头 (目标节点ID、序列号等) ↓ 通过CAN总线传输4.3 与原生MAVLink对比特性原生MAVLink (串口)MAVCAN (CAN总线)拓扑结构点对点或星型多节点总线型错误检测CRC校验CRC CAN硬件校验实时性依赖串口波特率硬件优先级仲裁布线复杂度高多根线低两根线扩展性有限良好4.4 适用场景需要MAVLink兼容性的无人机系统已有MAVLink代码库希望迁移到CAN总线需要与现有MAVLink地面站通信多飞控协同工作场景五、协议横向对比5.1 技术特性对比特性DroneCANCyphalUAVCANMAVCAN协议起源UAVCAN v0分支UAVCAN v1原始标准MAVLink扩展物理层CAN 2.0CAN FD/Ethernet/SerialCAN 2.0CAN 2.0最大数据率1 Mbps8 Mbps (CAN FD)1 Mbps1 Mbps节点ID长度8位128位8位8位消息最大长度63字节理论无限63字节理论无限自动发现支持支持支持有限支持服务调用支持支持支持通过MAVLink开源协议是是是是主要维护方PX4社区OpenCyphalUAVCAN组织ArduPilot/MAVLink5.2 生态系统对比DroneCAN工具链libcanard、DroneCAN GUI工具硬件支持大量开源飞控PX4、ArduPilot社区规模大型无人机社区学习资源文档完善教程丰富Cyphal工具链Nunavut代码生成器、YakutCLI工具硬件支持逐步增加支持主流MCU社区规模专业开发者社区学习资源技术文档详细入门曲线较陡UAVCAN工具链PyUAVCAN、UAVCAN GUI硬件支持历史硬件兼容社区规模核心开发者社区学习资源基础文档齐全MAVCAN工具链MAVLink工具链直接可用硬件支持ArduPilot生态为主社区规模MAVLink用户群体学习资源MAVLink文档 额外CAN配置5.3 选型建议选择 DroneCAN 当项目基于PX4或ArduPilot生态需要成熟的无人机传感器支持希望快速上手有大量现成示例对实时性要求中等选择 Cyphal 当需要未来证明的技术栈项目规模大节点数量多需要跨平台支持CAN/Ethernet对安全性和可靠性要求极高选择 UAVCAN 当维护历史系统兼容性需要经典UAVCAN功能项目对新技术迁移成本敏感选择 MAVCAN 当已有MAVLink代码基础需要与现有MAVLink工具链集成项目主要使用ArduPilot希望最小化协议学习成本5.4 发展趋势DroneCAN继续巩固在消费级和工业无人机市场地位Cyphal向汽车、机器人等更广泛领域扩展UAVCAN逐步向Cyphal迁移维护历史系统MAVCAN在MAVLink生态中提供CAN总线选项5.5 混合使用场景在实际系统中可以根据不同子系统需求混合使用协议核心控制使用Cyphal保证可靠性和实时性传感器网络使用DroneCAN利用现有生态地面站通信使用MAVCAN保持MAVLink兼容性** legacy设备**使用UAVCAN维护旧设备总结无人机CAN总线协议各有侧重选择时需综合考虑项目需求实时性、可靠性、扩展性要求生态系统现有工具链、硬件支持、社区资源团队技能协议学习成本、开发经验长期维护协议活跃度、未来发展方向
RELATED

相关推荐

可视化全栈开发平台:3D、游戏、图表一网打尽

可视化全栈开发平台:3D、游戏、图表一网打尽

在线开发平台的实现 前端开发全可视化操作,界面组件与后台变量无缝结合,所见即所得,方便快捷,随时上新新功能。支持3D组件,支持基于SVG的二维图形开发,支持可视图表配置,还支持游戏开发。所有组…

📅 2026/8/12 0:44:07
3步快速上手大气层整合包系统:从安装到实战的完整指南

3步快速上手大气层整合包系统:从安装到实战的完整指南

3步快速上手大气层整合包系统:从安装到实战的完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层整合包系统是Nintendo Switch上功能最强大、最稳定的自制系统解决方…

📅 2026/9/15 4:13:01
临沂企业数字化服务商选择要点

临沂企业数字化服务商选择要点

临沂企业数字化服务商选择:聚焦技术、数据与合规的实用指南随着AI技术加速渗透本地产业,临沂企业在选择数字化服务商时,面临的核心挑战不再是“要不要做”,而是“如何选对”。面对市场上众多概念和方案,企业决策者需回…

📅 2026/9/12 20:40:31
MORE NEWS

更多资讯

📰

基于Python PyQt与MATLAB的电路设计与仿真工具集成实践

简介:这是一款面向电路设计、电子工程和嵌入式学习者的跨平台电路设计与仿真计算工具。它借助Python、PyQt与MATLAB技术栈,整合了电路建模、参数计算、波形分析、频率响应、阻抗匹配、滤波器设计、放大器仿真、电源管理及PCB辅助设计等典型EDA功能&#…

📰

ego-browser 中 page.locator 与 getByRole 的自动等待与严格匹配怎么用?非唯一匹配如何用 first 和 nth 消歧?

ego-browser 中 page.locator 与 getByRole 的自动等待与严格匹配怎么用?非唯一匹配如何用 first 和 nth 消歧? 【免费下载链接】ego-lite The fastest browser for AI agents to run browser automation, built for sharing your logged-in browser sta…

📰

Kimi CLI 完整上手指南:如何在终端让 AI 替你写代码

Kimi CLI 完整上手指南:如何在终端让 AI 替你写代码 【免费下载链接】kimi-cli Kimi Code CLI is your next CLI agent. 项目地址: https://gitcode.com/GitHub_Trending/ki/kimi-cli 测试红了,报错滚出屏幕 30 屏之外,要改的函数藏在…

📰

Kubernetes Elections 选举子项目指南:Elekto 平台、Steering 委员会选举与团队选举申请全流程

Kubernetes Elections 选举子项目指南:Elekto 平台、Steering 委员会选举与团队选举申请全流程 【免费下载链接】community Kubernetes Community Documentation 项目地址: https://gitcode.com/GitHub_Trending/com/community 导读 本文基于 Kubernetes Co…

📰

RuboCop v0.37.0 版本深度解析:三大新 cop、默认行为变更与 30 项缺陷修复

RuboCop v0.37.0 版本深度解析:三大新 cop、默认行为变更与 30 项缺陷修复 【免费下载链接】rubocop A Ruby static code analyzer and formatter, based on the community Ruby style guide. 项目地址: https://gitcode.com/GitHub_Trending/rub/rubocop 本…

📰

c-ares 安全漏洞响应全流程解析——MongoDB 内置异步 DNS 解析库的漏洞治理规范

c-ares 安全漏洞响应全流程解析——MongoDB 内置异步 DNS 解析库的漏洞治理规范 【免费下载链接】mongo The MongoDB Database 项目地址: https://gitcode.com/GitHub_Trending/mo/mongo c-ares 是一个用 C 语言实现的异步 DNS 解析库,以第三方依赖的形式随 …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬