RflySerialRaw 模块文档¶
所属工具箱:RflySim Swarm

简介¶
一句话描述:实现Simulink模型与串口连接的飞控设备之间的原生字节流串口通信,支持收发MAVLink协议数据。
该模块属于RflySim Swarm接口库,主要用于硬件在环(HIL)仿真场景中,搭建Simulink与Pixhawk等实体飞控之间的通信链路。模块支持同时连接多个串口设备,可通过图形化选择可用串口、自定义每个串口的波特率,灵活适配多无人机集群的硬件通信需求,收发的数据为原生uint8字节流,可直接用于MAVLink消息的解析与封装。
在RflySim工具链中,该模块可配合PX4飞控硬件完成硬件在环仿真测试,开发者可在Simulink中自定义开发的算法直接通过串口与实体飞控交互,接收飞控输出的传感器数据、状态信息,同时发送控制指令给飞控,可适配单无人机开发与多无人机集群的硬件通信场景。
端口说明¶
输入端口(Inputs)¶
| 端口名 | 数据类型 | 维度 | N×1 |
说明 |
|---|---|---|---|---|
TxData |
uint8 |
N×1 |
需要通过串口发送的原始字节流数据,N为当前待发送字节数量 |
N的最大值为5000,对应单帧最大发送字节长度。支持同时对N个串口发送对应字节流[待确认]
输出端口(Outputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
RxData |
uint8 |
M×1 |
从串口接收的原始字节流数据,M为当前接收字节数量,最大长度为1100 |
参数配置¶
双击模块打开的 Mask 对话框中可配置以下参数:
| 参数名 | 类型 | 默认值 | 可选值/范围 | 说明 |
|---|---|---|---|---|
SerialPortName |
string |
COM3 |
- | 串口端口名称,多个端口用英文逗号分隔 |
Baudrate or list |
double/double vector |
115200 |
标准串口波特率 | 串口波特率,可输入单个值或对应多个端口的列表 |
Sample Time |
double |
1/30 |
>0 | 模块采样时间,控制通信频率 |
参数设置说明¶
SerialPortName¶
填入飞控设备所连接的串口端口名称,例如Windows平台下为COM3,Linux平台下为/dev/ttyUSB0;需要连接多个串口设备时,使用英文逗号分隔多个端口名称,例如COM3,COM4,可同时建立多个串口通信连接。点击模块自带的SelectAvailablePort按钮可以直接选择当前系统可用的串口。
Baudrate or list¶
设置串口通信的波特率,常用值为115200、57600等。如果仅输入单个波特率值,所有串口会统一使用该波特率;如果需要对多个串口分别设置不同波特率,可以输入对应数量的波特率列表,列表长度小于串口数量时,最后一个串口会使用列表的最后一个波特率值。
Sample Time¶
设置模块的采样时间,单位为秒,决定Simulink模型与飞控硬件之间的通信频率,例如设置为1/30表示每秒进行30次通信收发,通常默认值即可满足绝大多数使用需求。
模块特性(Block Characteristics)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | uint8 |
| 直接馈通(Direct Feedthrough) | 是 |
| 采样时间 | 离散,用户可配置 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块通过串口进行硬件通信,传输MAVLink协议格式的原始字节流数据,每个端口支持最大单帧缓冲区长度为300字节,输出缓冲区最大长度为5000字节,输入缓冲区最大长度为1100字节,不涉及网络端口配置。
相关模块¶
| 模块名 | 说明 |
|---|---|
RflyUdpRaw |
基于UDP网络传输MAVLink原始字节流的群队通信模块 |
RflyUdpSwarmReceive |
解析群队通信中UDP广播的MAVLink数据模块 |
RflySerialReceive |
解析串口传输的MAVLink数据,提取飞控状态信息模块 |
使用示例¶
相关使用示例请参考以下路径:
请在上述路径中查看
Readme.pdf获取完整的示例说明与操作步骤。
注意事项与常见问题¶
- 初始化顺序:请确保在仿真启动前已将飞控设备连接到电脑串口,并且通过模块参数界面的
SelectAvailablePort按钮确认端口可用后再启动仿真;若仿真运行中修改串口参数,需要停止仿真重新初始化后生效,直接重启仿真可能出现端口占用错误。 - 采样时间匹配:模块采样时间需要与你的MAVLink消息处理逻辑匹配,推荐设置为
1/30~1/50,过高的采样频率会导致串口缓冲区溢出,过低的采样频率会造成消息丢包;若同时使用多个RflySerialRaw模块,建议所有模块设置相同的采样时间。 - 多串口配置说明:当需要同时连接多个飞控设备时,需要在
SerialPortName参数中用英文逗号分隔多个串口名称(例如COM3,COM4),同时在Baudrate or list参数中按顺序传入对应波特率列表;若仅传入单个波特率,所有串口将统一使用该波特率配置。 - 数据类型要求:模块输入输出均为
uint8类型的字节流向量,请不要自行修改数据类型,输入向量长度不要超过5000字节,避免缓冲区溢出导致仿真异常。 - 端口权限问题:Windows系统下若出现串口无法打开的错误,请检查是否有其他串口工具(如Mission Planner)占用了该端口,需要关闭其他占用工具后重新启动仿真。
- 波特率匹配:模块设置的波特率必须与飞控固件配置的串口波特率一致,否则会出现接收数据全乱码、无法解析MAVLink消息的问题。
更新日志¶
v4.20(2024-05-03): 初始版本发布,实现多串口MAVLink字节流收发通信功能,支持多串口端口自定义配置与多波特率设置,用于硬件在环仿真中与Pixhawk等飞控设备通信。