跳转至

RflySerialRaw 模块文档

所属工具箱:RflySim Swarm

RflySerialRaw 模块外观

简介

一句话描述:实现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

设置串口通信的波特率,常用值为11520057600等。如果仅输入单个波特率值,所有串口会统一使用该波特率;如果需要对多个串口分别设置不同波特率,可以输入对应数量的波特率列表,列表长度小于串口数量时,最后一个串口会使用列表的最后一个波特率值。

Sample Time

设置模块的采样时间,单位为秒,决定Simulink模型与飞控硬件之间的通信频率,例如设置为1/30表示每秒进行30次通信收发,通常默认值即可满足绝大多数使用需求。

模块特性(Block Characteristics)

特性项
支持的数据类型 uint8
直接馈通(Direct Feedthrough)
采样时间 离散,用户可配置
代码生成支持

数据通信协议

本模块通过串口进行硬件通信,传输MAVLink协议格式的原始字节流数据,每个端口支持最大单帧缓冲区长度为300字节,输出缓冲区最大长度为5000字节,输入缓冲区最大长度为1100字节,不涉及网络端口配置。

相关模块

模块名 说明
RflyUdpRaw 基于UDP网络传输MAVLink原始字节流的群队通信模块
RflyUdpSwarmReceive 解析群队通信中UDP广播的MAVLink数据模块
RflySerialReceive 解析串口传输的MAVLink数据,提取飞控状态信息模块

使用示例

相关使用示例请参考以下路径:

[RflySim安装路径]/RflySimAPIs/10.RflySimSwarm/1.BasicExps/e3_RflyUdpSwarmExp/Readme.pdf

请在上述路径中查看 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等飞控设备通信。