CAN
Controller Area Network (CAN) is a robust wired network that allows drone components such as flight controller, ESCs, sensors, and other peripherals, to communicate with each other. 因为它的设计有仲裁,使用差分信号,即使在较长的电缆 (大型车辆上) 上也非常强大,避免单点故障。 CAN 还允许来自外设的状态反馈,并通过总线方便的进行固件升级。
PX4 支持与 CAN 设备通信的两个软件协议:
- DroneCAN: PX4 recommends this for most common setups. 它得到了 PX4 的很好支持,是一个成熟的产品,具有广泛的外围支持,并经过多年的测试。
- Cyphal: PX4 support is a "work in progress". Cyphal 是一种更新的协议,允许更多的灵活性和配置,尤其是对于较大和较复杂的载具。 它还没有被广泛应用。
INFO
Both DroneCAN and Cyphal originate from an earlier project named UAVCAN. 在2022年,该项目分为两个部分:原始版本的 UAVCAN (UAVCAN v0) 更名为 DroneCAN,较新的 UAVCAN v1 更名为 Cyphal。 The differences between the two protocols are outlined in Cyphal vs. DroneCAN.
WARNING
PX4 does not support other CAN software protocols for drones such as KDECAN (at time of writing).
布线
CAN 网络的接线对于 DroneCAN 和 Cyphal/CAN 是一样 (实际上对所有的 CAN 网络都一样)。
设备以任意顺序连接成链。 在链的任一端,应该在两个数据线之间连接一个 120Ω 的终端电阻。 飞控和一些 GNSS 模块为了方便使用内置了终端电阻, 因此应该放在链的终端。 Otherwise, you can use a termination resistor such as this one from Zubax Robotics, or solder one yourself if you have access to a JST-GH crimper.
下图显示了一个 CAN 总线连接飞控到 4 个 CAN 电调和一个 GNSS 的示例。
图中未显示任何电源接线。 参考制造商的说明,确认组件是否需要单独供电,还是可以通过 CAN 总线供电。
For more information, see Cyphal/CAN device interconnection (kb.zubax.com). 虽然本文是以 Cyphal 协议为基础编写的,但同样适用于 DroneCAN 硬件和任何其他 CAN 设置。 For more advanced scenarios, consult with On CAN bus topology and termination.
连接器
Pixhawk standard compatible CAN devices use 4 pin JST-GH connectors for CAN. Two connectors are used for input and output when wiring in a chain (except for flight controllers and some GNSS devices with builtin termination, which only have a single JST-GH connector).
Other (non-Pixhawk compatible) devices may use different connectors. However, as long as the device firmware supports DroneCAN or Cyphal, it can be used.
Redundancy
DroneCAN and Cyphal/CAN support using a second (redundant) CAN interface. This is completely optional but increases the robustness of the connection. All Pixhawk flight controllers come with 2 CAN interfaces; if your peripherals support 2 CAN interfaces as well, it is recommended to wire both up for increased safety.
固件
CAN peripherals may run proprietary or open source firmware (check manufacturer guides to confirm the required setup).
PX4 can be built to run as open-source DroneCAN firmware on supported CAN hardware. See PX4 DroneCAN Firmware for more information.
支持和配置
DroneCAN Setup and Configuration
视频
DroneCAN
关于 DroneCAN (UAVCANv0) 的介绍和在 QGroundControl 中设置的实用示例:
Cyphal
UAVCAN v1 for drones (Cyphal) — PX4 Developer Summit Virtual 2020
Getting started using UAVCAN v1 with PX4 on the NXP UAVCAN Board — PX4 Developer Summit Virtual 2020
UAVCAN:一个高度可靠的发布-订阅协议,用于硬实时车辆内网络 — PX4 开发者虚拟峰会 2019