CAN
控制器局域网(CAN) 是一种强大的有线网络,允许飞行控制器、电子调速器、传感器和其他外围设备等无人机组件相互通信。由于它的设计是民主的,并使用差分信号,因此即使在较长的电缆长度上(在大型载具上)也非常稳定,并可避免单点故障。CAN 还允许通过总线从外围设备获得状态反馈和方便的固件升级。
PX4 支持与 CAN 设备通信的两种软件协议:
- DroneCAN:PX4 推荐大多数常见设置使用该产品。它得到 PX4 的大力支持,是一款成熟的产品,拥有广泛的外设支持,并经过多年测试。
- Cyphal:对 PX4 的支持仍在进行中。Cyphal 是一种更新的协议,允许更多的灵活性和配置,尤其是在大型和更复杂的载具上。目前还没有大量采用。
信息
DroneCAN 和 Cyphal 都源于一个名为 UAVCAN 的早期项目。2022 年,该项目一分为二:最初版本的 UAVCAN(UAVCAN v0)更名为 DroneCAN,而较新的 UAVCAN v1 更名为 Cyphal。两种协议之间的区别概述如下 Cyphal vs. DroneCAN.
警告
PX4 不支持用于无人机的其他 CAN 软件协议,如 KDECAN(在编写本报告时)。
布线
DroneCAN 和 Cyphal/CAN 的 CAN 网络布线相同(事实上,所有 CAN 网络的布线都相同)。
设备以任意顺序连接成链。在链的任一端,两条数据线之间应连接一个 120Ω 的终端电阻。为方便起见,飞行控制器和某些 GNSS 模块内置了终端电阻器,因此应置于链的两端。否则,您可以使用一个终端电阻器,如 这个来自 Zubax Robotics如果有 JST-GH 压接器,也可以自己焊接一个。
下图是一个 CAN 总线的示例,它将飞行控制器与 4 个 CAN ESC 和一个 GNSS 连接起来。
图中未显示任何电源接线。请参阅制造商的说明,确认组件是否需要单独供电,或者是否可以通过 CAN 总线本身供电。
更多信息,请参见 Cyphal/CAN 设备互联 (kb.zubax.com)。虽然本文是针对 Cyphal 协议撰写的,但同样适用于 DroneCAN 硬件和任何其他 CAN 设置。如需了解更多高级方案,请咨询 关于 CAN 总线拓扑结构和终端.
连接器
Pixhawk 标准兼容 CAN 设备使用 4 针 JST-GH 连接器连接 CAN。在链式布线时,输入和输出使用两个连接器(飞行控制器和某些内置终端的 GNSS 设备除外,它们只有一个 JST-GH 连接器)。
其他(非 Pixhawk 兼容)设备可能使用不同的连接器。不过,只要设备固件支持 DroneCAN 或 Cyphal,就可以使用。
冗余
DroneCAN 和 Cyphal/CAN 支持使用第二个(冗余)CAN 接口。这完全是可选的,但可以提高连接的稳健性。所有 Pixhawk 飞行控制器都配有 2 个 CAN 接口;如果您的外围设备也支持 2 个 CAN 接口,建议将两个接口都连接起来,以提高安全性。
固件
CAN 外围设备可运行专有或开源固件(请查看制造商指南以确认所需的设置)。
PX4 可作为开源 DroneCAN 固件在支持的 CAN 硬件上运行。参见 PX4 DroneCAN 固件 了解更多信息。
支持和配置
视频
DroneCAN
DroneCAN (UAVCANv0) 简介以及在 QGroundControl 中进行设置的实际示例:
Cyphal
无人机 UAVCAN v1 - 2020 年 PX4 开发人员虚拟峰会
在恩智浦 UAVCAN 板上使用 UAVCAN v1 和 PX4 入门 - 2020 年 PX4 开发人员虚拟峰会
UAVCAN:用于硬实时车内联网的高可靠性发布-订阅协议 - 2019 年 PX4 开发者虚拟峰会