0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

睿擎平台核间通讯实践:QT与电机控制的无缝集成

RT-Thread官方账号 2026-02-25 18:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、 方案核心概述

本方案旨在解决系统开发中“高性能实时控制与“丰富人机交互”的需求矛盾。它采用混合部署的架构,将系统清晰地分为两个层面:

1.实时层:部署在睿擎派设备的RT-Thread实时系统中,负责执行高频率、高确定性的核心控制算法、EtherCat 等工业总线通信、故障保护等硬实时任务。

2.交互层:基于Qt Framework开发,运行在Linux操作系统上,提供图形化用户界面,用于参数配置、状态监控、曲线显示、数据记录、报警管理和网络通信等软实时或非实时任务。

两个层面通过高速通信机制进行数据交换和指令传递,从而形成一个兼顾实时性能与开发效率的完整解决方案。

二、睿擎派运行混合部署方案

混合部署双系统指的是单一芯片上同时运行两个系统,既运行Linux,又运行RT-Thread系统。

●Linux 系统:运行在应用核心,负责图形界面和非实时任务

●RT-Thread 系统:运行在实时核心,负责电机控制和实时通信

●核间通信通道:基于 rpmsg 机制实现两个系统间的高速数据交换,是整个方案的技术核心

睿擎派RC3506上运行Linux系统日志图通过串口1查看

4a8bf4c2-1231-11f1-96ea-92fbcf53809c.png

睿擎派RC3506上运行RT-Thread系统日志图通过串口3查看

4a9ca6e6-1231-11f1-96ea-92fbcf53809c.png

三、Linux 侧 QT 应用界面与核间通讯实现

1.UI 设计与实现

4aa3d218-1231-11f1-96ea-92fbcf53809c.png


2.QT界面绘制及业务逻辑核心代码

●绘制电机启停按钮

●设计电机运行方向控制

●实现电机期望位置和当前位置显示

●创建位置曲线实时显示界面

4ab75536-1231-11f1-96ea-92fbcf53809c.png

4acbb738-1231-11f1-96ea-92fbcf53809c.png


3.Linux 侧核间通讯实现

●rpmsg 端点管理:通过 rpmsg_char_create_eptdev 创建通信端点,rpmsg_char_destroy_eptdev 销毁端点

●数据发送:send_msg 函数通过 write 接口向 RT-Thread 侧发送控制命令

●数据接收:MotorStateThread 线程通过 recv_msg 函数接收 RT-Thread 侧的状态数据

●数据同步:sync_data 函数在控制参数变化时触发数据传输

●状态更新:MotorStateRecv 接收并更新电机状态数据到 UI 界面

4ad672a4-1231-11f1-96ea-92fbcf53809c.png

创建打开Linux侧/dev/rpmsg字符设备节点,初始化电机ctrl_data结构体成员值

4adde192-1231-11f1-96ea-92fbcf53809c.png

Linux MASTER端地址是0x1001,RT-Thread远端地址是0x3001

4ae9c5ac-1231-11f1-96ea-92fbcf53809c.png

Linux侧将电机的启动停止,运行方向和电机位置控制值通过send_msg接口实际是write接口将ctrl_data结构体写入RT-Thread侧。


四、RT-Thread侧核间通讯实现

●通信初始化:通过 rt_device_find 查找并打开 rpmsg 设备

●线程创建:创建 rpmsg_ethercat_read 和 rpmsg_ethercat_write 线程

●数据同步:使用 dynamic_sem 信号量实现数据传输同步

●状态反馈:将电机状态实时更新到 ctrl_data 结构体并发送到 Linux 侧

4afb0a38-1231-11f1-96ea-92fbcf53809c.png

创建打开RT-Thread侧/dev/rpmsg字符设备节点,创建两个rpmsg读写线程

4b09b16e-1231-11f1-96ea-92fbcf53809c.png

RT-Thread源地址是0x3001,Linux目的地址是0x1001

RT-Thread侧 rpmsg读线程

4b1193f2-1231-11f1-96ea-92fbcf53809c.png

rpmsg读线程里RT-Thread源端的电机控制值,电机运行状态,电机运行方向赋值给 ctrl_data结构体中

RT-Thread侧 rpmsg写线程

4b1c9d38-1231-11f1-96ea-92fbcf53809c.png

rpmsg写线程会不断的获取dynamic_sem信号量,这个信号量会在每次改变电机控制偏移值,改变电机运行状态,改变电机运行方向都会去释放,一旦获取到信号量就会通过rt_device_write接口将ctrl_data结构体写入到Linux目的端。




五、核间通讯技术总结

rpmsg 是一种用于 Linux 与 RT-Thread 操作系统之间进行多核异构通信的机制,是整个方案的技术核心。通过前面的实现分析,我们可以总结出以下技术要点:

1.通信架构

●双端通信:Linux 端作为 MASTER(地址 0x1001),RT-Thread 端作为 REMOTE(地址 0x3001)

●数据结构:统一使用 motorctrl_data_t 结构体在两端传递数据,确保数据格式一致

●传输机制:基于字符设备接口,通过 write/read 操作实现数据传输

2.技术优势

●低延迟:基于内核级通信机制,延迟低,满足实时控制需求

●高可靠性:采用信号量同步机制,确保数据传输的完整性

●双向通信:支持 Linux 到 RT-Thread 的控制命令传输,以及 RT-Thread 到 Linux 的状态数据回传

●易于集成:提供了简洁的 API 接口,便于在应用层集成

3.实现要点

●端点管理:通过 rpmsg_char_create_eptdev 和 rpmsg_char_destroy_eptdev 管理通信端点

●线程安全:使用独立的读写线程,确保通信的并发处理能力

●错误处理:包含完善的设备查找、打开和通信错误处理机制

●实时性保障:设置合理的线程优先级和通信周期,确保实时控制的响应速度

4.数据流程

1.控制命令流:Qt 界面 → Linux 应用 → rpmsg 发送 → RT-Thread 接收 → 电机控制

2.状态数据流:电机状态 → RT-Thread 读取 → rpmsg 发送 → Linux 接收 → Qt 界面更新

这种双向数据流确保了用户操作与电机状态的实时同步,为整个系统提供了流畅的交互体验。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电机控制
    +关注

    关注

    3600

    文章

    2134

    浏览量

    277851
  • Qt
    Qt
    +关注

    关注

    2

    文章

    320

    浏览量

    40921
  • RT-Thread
    +关注

    关注

    32

    文章

    1614

    浏览量

    44910
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    10分钟上手平台GUI开发:第一个LVGL图形应用

    ,在平台上支持LVGL能够更好地发挥其优势,为开发者带来更多便利。一环境搭建:5分钟极速配置1.派硬件准备开发板:
    的头像 发表于 06-06 18:41 2807次阅读
    10分钟上手<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>GUI开发:第一个LVGL图形应用

    基于派轻松玩转CANopen电机控制

    在工业自动化领域,稳定高效的设备通信是核心。CANopen协议凭借其可靠性,成为众多工业设备(如伺服电机)的首选通信标准。今天,我们就来展示如何利用RT-Thread工业开发
    的头像 发表于 07-19 09:04 5926次阅读
    基于<b class='flag-5'>睿</b><b class='flag-5'>擎</b>派轻松玩转CANopen<b class='flag-5'>电机</b><b class='flag-5'>控制</b>

    基于派轻松玩转Modbus工业通信

    。今天,我们就带来一篇实战教程,教大家如何基于派/工业平台,分别作为ModbusRTU主机和ModbusTCP主机,读取Modbus
    的头像 发表于 07-23 17:05 3823次阅读
    基于<b class='flag-5'>睿</b><b class='flag-5'>擎</b>派轻松玩转Modbus工业通信

    平台网络开发指南:从IP配置到远程控制 | 技术解析

    在工业物联网和嵌入式系统开发中,网络功能是连接设备、实现远程控制和数据传输的核心基础。工业开发平台提供了全面的网络开发支持,包括灵活的IP配置、稳定的网络
    的头像 发表于 10-22 17:13 6497次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>网络开发指南:从IP配置到远程<b class='flag-5'>控制</b> | 技术解析

    派文件系统指南:从开发到发布全流程实践 | 技术解析

    在嵌入式系统开发中,文件系统扮演着至关重要的角色,它负责数据的持久化存储、配置文件管理和资源访问等核心功能。平台提供了一套完整的文件系统解决方案,从开发阶段的API调用到调试阶段的文件操作,再到
    的头像 发表于 11-05 18:13 8116次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b>派文件系统指南:从开发到发布全流程<b class='flag-5'>实践</b> | 技术解析

    RS232+RS485实现通讯实验板

    本文介绍一种将 RS232,RS485,及红外接口集成在一起的PC机--单片机多功能通讯实验板,用于实现PC机与单片机的串口通信、红外通信及PC机与PC机
    发表于 09-20 11:39 4195次阅读
    RS232+RS485实现<b class='flag-5'>通讯实</b>验板

    java_串口通讯实

    java_串口通讯实例说明
    发表于 11-09 17:48 75次下载

    中新社:RT-Thread携“平台”亮相工博会 | 媒体视角

    4月23日,成都国际工业博览会拉开帷幕。中国新闻网专访RT-Thread赛德,以“国产操作系统再亮剑,平台开启工业新时代”为题,报道了“
    的头像 发表于 04-24 11:16 1323次阅读
    中新社:RT-Thread携“<b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>”亮相工博会 | 媒体视角

    川商传媒:工业开发平台开启智能化新篇章 | 媒体视角

    近日,在2025成都国际工业博览会上,RT-Thread赛德联合创始人兼工业事业部负责人邱祎携工业开发平台震撼首发。同时,邱祎在接受四川日报旗下川商传媒采访时,介绍了
    的头像 发表于 04-30 18:38 949次阅读
    川商传媒:<b class='flag-5'>睿</b><b class='flag-5'>擎</b>工业开发<b class='flag-5'>平台</b>开启智能化新篇章 | 媒体视角

    平台极简开发重要实践—— PinMux 配置工具 | 派试用名单公示

    RT-Thread工业开发平台是为工业场景设计的软硬件一体化开发方案,全栈自主可控,赋能用户聚焦核心业务创新,大幅提升开发效率。
    的头像 发表于 06-11 17:05 1461次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>极简开发重要<b class='flag-5'>实践</b>—— PinMux 配置工具 | <b class='flag-5'>睿</b><b class='flag-5'>擎</b>派试用名单公示

    基于派轻松玩转EtherCAT主站,实现电机精确控制

    总线技术。本次实战教程将基于平台,演示实现:EtherCAT主站开发CSP模式伺服电机精准控制远程IO流水灯联动开启工业实时通信开发新
    的头像 发表于 07-30 17:03 5193次阅读
    基于<b class='flag-5'>睿</b><b class='flag-5'>擎</b>派轻松玩转EtherCAT主站,实现<b class='flag-5'>电机</b>精确<b class='flag-5'>控制</b>

    像STM32一样轻松玩转 MPU!RT-Thread 平台 Workshop 上海站开启硬核实战!下一城?你定!

    为什么参加1零门槛体验:我们致力于让MPU开发如MCU般简单易上手。2一站式掌握:从概念演示到动手实践再到项目构思,全流程深度体验。3业界领先技术:了解RT-Thread平台如何革
    的头像 发表于 08-18 17:05 1500次阅读
    像STM32一样轻松玩转 MPU!RT-Thread <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b> Workshop 上海站开启硬核实战!下一城?你定!

    平台v1.7.2版本正式发布|技术集结

    核心亮点:●RC3562新产品系列重磅上线●RC3506平台新增多项核心功能RC3562新产品系列重磅推出RC3562作为平台全新产品系列,具备以下核心优势:●默认
    的头像 发表于 12-17 18:10 585次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>v1.7.2版本正式发布|技术集结

    直播预告 | 平台AMP混合部署:你的Qt界面如何“指挥”底层电机

    )晚8点,我们将通过一场直播,把这些问题一次性讲透。直播核心内容本次直播将以派RC3506J为硬件平台,完整演示从Qt界面开发到底层电机
    的头像 发表于 02-27 18:18 207次阅读
    直播预告 | <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>AMP混合部署:你的<b class='flag-5'>Qt</b>界面如何“指挥”底层<b class='flag-5'>电机</b>?

    直播 | 平台AMP混合部署:你的Qt界面如何“指挥”底层电机

    )晚8点,我们将通过一场直播,把这些问题一次性讲透。直播核心内容本次直播将以派RC3506J为硬件平台,完整演示从Qt界面开发到底层电机
    的头像 发表于 03-03 19:33 354次阅读
    直播 | <b class='flag-5'>睿</b><b class='flag-5'>擎</b><b class='flag-5'>平台</b>AMP混合部署:你的<b class='flag-5'>Qt</b>界面如何“指挥”底层<b class='flag-5'>电机</b>?