概述¶
控制器区域网络(CAN 总线)是一种强大的载具总线标准,旨在允许微控制器和设备在没有主机的应用中相互通信。它是一种基于报文的协议,最初设计用于载具内的多路复用电线,以节省铜缆,但也用于许多其他场合。
所有节点都通过双线总线相互连接。导线为 120 Ω 标称双绞线。
大多数运行 ArduPilot 的(飞行)控制器都有一个或两个 CAN 接口,用于连接不同的设备。ArduPilot 最多可支持 3 个 CAN 接口。接口的设置可以提供冗余或最大吞吐量,或两者兼而有之。这是通过三层方法实现的,即除了物理接口外,还有一个代表特定协议的驱动层和一个通过这些驱动在 CAN 总线上通信的软件层(ArduPilot)。
每个物理接口都可以虚拟连接到最多三个代表所用协议的驱动程序之一。例如,最常见的情况是所有接口都连接到一个 DroneCAN 驱动程序。这种设置将为具有三个 CAN 接口的设备提供冗余,并为具有一个 CAN 接口的设备提供全部功能。