UAVCAN——1.简介
(2018-08-06 09:12:04)
标签:
pixhawkardupilotcanuavcan |
分类: Pixhawk |
介绍
本节介绍了规范开发和维护的基本概念。实际规范包含在以下部分中。
读者应该对CAN总线的主要概念和操作原理有充分的了解。
核心设计目标
下面列出的核心设计目标有助于解释基本的UAVCAN概念及其背后的动机。
-
对等网络
- 应该没有主节点。 网络中的所有节点都应具有相同的通信权限,以便没有单点故障。 -
节点可以交换长有效载荷
- 必须为节点提供一种简单的方法来交换不能适合单个CAN帧的大型数据结构(例如GNSS解决方案,3D矢量等)。 UAVCAN应在协议级别执行自动传输分解和重组,从而隐藏应用程序的相关复杂性。 -
支持冗余接口和冗余节点
- 这是安全相关应用程序的常见要求。 -
高吞吐量,低延迟通信
- 依赖于高频,硬实时控制环路的应用需要低延迟,高吞吐量的通信方法。 -
简单的逻辑,低计算要求
- UAVCAN针对各种嵌入式系统,从用于密集数据处理的高性能嵌入式车载计算机(例如,高性能Linux驱动的机器)到极其资源受限的微控制器。 后者对实现协议所需的逻辑量施加了严格的限制。 -
应明确定义常见的高级功能
- UAVCAN为常见的高级功能定义标准服务和消息,例如网络发现,节点配置,节点固件更新,节点状态监控(自然地发展为车辆范围的健康监控) ,网络范围的时间同步,动态节点ID分配(又称即插即用)等。 -
开放式规范和参考实现
- UAVCAN规范是开放的,免费提供; 参考实现是根据MIT许可证的条款分发的。
规范更新和批准过程
UAVCAN开发团队负责根据采用者的意见推进规范。这些反馈是通过邮件列表收集的,该列表对所有人开放。
标准数据定义集是规范的基础概念之一(请参阅数据结构描述语言(DSDL))。在同一主要版本中,规范只能通过以下方式扩展:
- 只要默认数据类型ID与现有数据类型之一不冲突,就可以添加新数据类型,可能使用默认数据类型ID。
- 只要修改不会破坏向后兼容性,就可以修改现有数据类型。
-
可以声明不推荐使用现有数据类型。
- 声明弃用后,数据类型将至少保持两年。在此期间之后,其默认数据类型ID可以重用于不兼容的数据类型。
- 弃用将通过邮件列表公布,并以DSDL定义中的注释形式表示。
可以在联系人页面上找到包含默认DSDL定义集的存储库的链接
参考资料来源
UAVCAN规范包含对以下来源的引用:
- CiA 801 - 应用笔记 - 自动比特率检测。
- CiA 103 - 本质安全的物理层。
- CiA 303 - 建议 - 第1部分:布线和连接器引脚分配。
- IEEE 754 - 二进制浮点运算标准。
- ISO 11898-1 - 控制器局域网(CAN) - 第1部分:数据链路层和物理信令。
- ISO 11898-2 - 控制器局域网(CAN) - 第2部分:高速媒体访问单元。
- ISO / IEC 10646:2014 - 通用编码字符集(UCS)。
- ISO / IEC 14882:2014(E) - 编程语言C ++。
- “使用CAN-Bus实现分布式高分辨率实时时钟”,M. Gergeleit和H. Streich。
- “寻找可理解的共识算法(扩展版)”,Diego Ongaro和John Ousterhout。
翻译自官网:https://uavcan.org