DroneCAN是ArduPilot和PX4项目用于与CAN外设通信的主要CAN协议。它是一个开放的协议,具有开放的通信、规范及多种实现方式。
与UAVCAN的关系
DroneCAN的创建是为了继续开发使用UAVCAN v0.9协议。该协议性能稳定且功能丰富,并且在商业无人机领域获得广泛的支持与应用。UAVCAN v1协议的引入,涉及到对UAVCAN的改变,这大大增加了它的复杂性,并且增加了对现有部署转换的难度。经过UAVCAN联盟内部的深入讨论,最终决定以DroneCAN的名义继续开发UAVCAN v0.9。
主要特点
DroneCAN的第一个版本被称为DroneCAN v1,与现有的UAVCAN v0.9协议相同。这意味着市面上大部分UAVCAN v0.9设备都与DroneCAN v1兼容。
延续UAVCAN v0.9的功能包括:
-
详细的协议规范
-
描述语言,用于消息描述的DSDL消息
-
DNA(动态节点分配),用于分配CAN节点ID
-
多个开放的DSDL编译器,可生成C和C++绑定文件
-
丰富的python应用
-
功能丰富图形用户界面,用于诊断和设备配置
-
ArduPilot和PX4自动驾驶仪的成熟应用
-
AP_Periph和PX4 cannode工具箱,可轻松创建功能丰富的外围设备
不断的进化
DroneCAN是一个不断进化的协议。从DroneCAN v1开始,该协议将不断发展,增加新的功能,以此来帮助CAN协议在无人机行业中更广泛地采用。DroneCAN项目致力于保持与现有DroneCAN设备兼容性的方式完成这一进化。
DroneCAN计划在不久的将来提供的主要功能如下:
- 支持FDCAN,允许更高的数据速率和更大的帧大小
- 节点能力消息,允许DNA服务器确定连接节点的硬件和软件能力,以促进平滑过渡到更新的协议版本
- 支持扩展消息定义,同时保持与现有实现的兼容性
- 对现有DSDL消息结构进行全面的重新工作,以提高效率和灵活性
开发
DroneCAN项目有一个活跃的开发社区。
讨论的社区: https://dronecan.org/discord
github开发源码库: https://github.com/DroneCAN
加入DroneCAN
如果你愿意公开支持DroneCAN,请填写申请表,链接如下: