知识补充-串口映射及参数配置
前言
此章节内容是为了给下一章节GPS模块、无线数传电台模块的接入做铺垫。
通过此章节大家可以初步理解APM固件的串口映射以及串口配置。
1、WFG100飞控串口映射关系表
APM固件支持外设非常丰富,这些外设设备大部分都是通过串口进行通讯(比如GPS、无线数传电台、云台相机、OSD、空速计、仿地雷达等等)。WFG100飞控共引出了7路串口分别是:U1、U2、U3、U4、U6、U7、U8。还有一路U5串口和CAN接口存在硬件复用关系,由于WFG100飞控中引出了一路CAN口,因此就无法引出U5串口。
大家拿到飞控一定要注意一点(所有使用Ardupilot固件的飞控硬件),飞控硬件上的串口4不一定是Ardupilot的串口4;
飞控硬件上的串口4是指STM32H7单片机上的串口4,但不等于Ardupilot的串口4。
在Ardupilot固件中,一般通过SERIAL几来表示串口几,比如SERIAL1、SERIAL2;因此MCU的串口和飞控的SERIAL口有一个对应关系,那么它们之间的映射关系表怎么区分,详情可查看下表:
物唯WFG100飞控串口映射表(不同厂家可能不一样,具体需要与飞控厂家确认):
在组装F450四旋翼无人机时,主要使用的串口有3个:无线数传电台、GPS
飞控Serial号 | 默认串口功能 | 对应单片串口号 | 源码配置 |
|---|---|---|---|
Serial1 | MAVLink2(接电台) | USART6 |
|
Serial2 | MAVLink2(接电台) | USART1 |
|
Serial3 | None(空,未预设功能) | USART2 |
|
Serial4 | GPS(接GPS模块) | USART3 |
|
Serial5 | None(空,未预设功能) | UART8 |
|
Serial6 | None(空,未预设功能) | UART4 |
|
Serial7 | RC_IN(遥控器信号输入) | UART7 |
|
大家也无需记忆映射关系表,只需将Missionplanner地面站更新至1.3.82,在初始设置页面→Serial Ports页面,即可查看对应关系表。
同时还可以对每个串口的功能、波特率、通信属性进行全部预览,如下图所示:
从上图可以看到SERIAL PORT2 下面对应的就是UART1、SERIAL PORT4 下面对应的就是UART3
2、APM飞控每路串口如何配置?
在Ardupilot飞控中,通过以下3个参数对每个串口进行配置,它们分别是:
SERIAL?_PROTOCOL(配置该串口的功能)、
SERIAL?_BAUD(配置该串口的波特率)、
SERIAL?_OPTIONS(配置该串口的一些硬件功能,比较少用)。
注:上述的 " ?"代表这是串口几,比如: SERIAL1_PROTOCOL、SERIAL5_BAUD、SERIAL6_OPTIONS

1)飞控串口配置参数1:SERIAL?_PROTOCOL,配置该串口的功能。
在连接Missionplanner的设置如下图所示:
可选择的所有串口功能如下:

2)飞控串口配置参数2:SERIAL?_BAUD,配置该串口的波特率。
可选的波特率参数如下:

3)飞控串口配置参数3:SERIAL?_OPTIONS,配置该串口的硬件通信属性。(默认设置0,当这个串口配置为GPS、无线数传电台、云台时保持为0不用修改。)
注:当该串口的功能配置为RC_IN,说明将该串口配置为S.BUS遥控器信号输入(SERIAL7_PROTOCOL=23)。则需将SERIAL?_OPTIONS=1,否则飞控无法识别遥控器接收机的信号!如下图所示:

3、飞控串口与Serial口映射的源码实现


附:
由于物唯WFG100飞控设计之初,定义是一款便于手搓的穿越机的飞控(刷写的是BF固件)。
所以其接线端子的线序设计上,主要考虑的是穿越机常用的外设接口。因此:
在使用APM固件的朋友们看起来,WFG100飞控有几个串口引脚的布局似乎不是合理,如下:
1)高清图传的接口处完整引出U4的RX与TX,也引出U2-RX引脚,但没有引出U2-TX引脚。
2)模拟图传的 接口处只引出U1TX引脚,但没有引出U1RX引脚。
3)电调2接口处引出了U8-RX引脚,但没有引出U8-TX引脚。
4)电调1接口处引出了U7-RX引脚,但没有引出U7-TX引脚。
在端子上完整引出RX与TX引脚的串口有U3、U4、U6;

此外我们将所有的串口引脚,以焊盘的形式进行引出,如需使用请查看《接口与焊盘定义图》