文章目录
5.3 复合连接的故障处理
带有 F7 或 H7 处理器并有 CAN 接口的自动驾驶仪使用的固件提供两个 USB 接口。一个用于正常的 MAVLink 连接,一个用于 SLCAN 串行连接到 CAN 接口进行配置和固件更新。这被称为复合型 USB 设备。
默认情况下,MAVLink 的 USB 接口是 SERIAL0,而 SLCAN 的 USB 接口是电路板上最高的 SERIALx 端口。目前与 Mission Planner 一起安装的 Windows 驱动程序可以选择使用其中一个,由于 ArduPilot 固件中对 MAVLINK 协议都进行了默认设置,因此无论选择哪一个作为 COM 端口,都能正常工作。
然而,有一种情况是,用户会发现它无法连接到任务规划器下拉框中明显的 COM 端口。这发生在用户不小心将 Windows 驱动作为 MAVLink COM 端口的任何 SERIALx 端口的协议改为 MAVLink 以外的协议。这很容易发生,如果用户从不同的自动驾驶仪使用的飞行器配置中获取现有的参数文件,而该文件的协议已经改变。例如,用户拥有一架非 F7/H7 CAN 自动驾驶仪的飞机,并将其升级为具有该功能的飞机,然后在用新的自动驾驶仪设置飞机时加载他现有的参数文件。一旦参数文件被加载,自动驾驶仪被重新启动,通信就会丢失,无法重新建立。
发生的情况是,Windows 所使用的 SERIALx 端口的协议已被改变。几乎总是这样,这是编号最高的 SERIALx 端口,因为在非 CAN 功能的自动驾驶仪上,该端口通常被设置为 -1,而 Windows 的 COM 端口驱动程序选择该接口作为 COM 端口,而不是 SERIAL0。
恢复的步骤如下:
- 进入 Windows 设备管理器,在端口列表中找到自动驾驶仪正在使用的 COM 端口。它将有你最初用于连接 Mission Planner 的 COM 端口#。右键单击,它将显示"更新驱动程序软件"作为选项之一。点击它;
- 点击"浏览我的电脑......"选项,然后点击"从列表中选择..."选项,你将看到这个屏幕:
- 向下滚动列表,直到出现"复合USB"选项并点击它;
- 现在将你的自动驾驶仪重新连接到电脑上,将出现两个 COM 端口。一个会连接(剩下的一个有 MAVLink 协议),另一个则不会。如果你没有连接到其中一个,请尝试另一个。但千万不要断开自动驾驶仪与电脑的连接,否则复合驱动将卸载,你将不得不重新开始;
- 现在你已经连接到 Mission Planner,把 Serialx 端口的协议改回 2(MAVLink2)。现在你可以断开和重新连接自动驾驶仪,它将只显示一个 COM 端口,从现在开始你应该可以连接。从现在开始不要改变这个协议,除非试图利用 SLCAN 接口。由于 Mission Planner SERIALx 端口不再是正常的 SERIAL0,而是最高的端口,因此可能有点不熟悉,但这并不影响自动驾驶仪的配置和操作。