一、 方案核心概述
本方案旨在解决系统开发中 “高性能实时控制” 与 “丰富人机交互” 的需求矛盾。它采用混合部署的架构,将系统清晰地分为两个层面:
1. 实时层:部署在睿擎派设备的 RT-Thread 实时系统中,负责执行高频率、高确定性的核心控制算法、EtherCAT 等工业总线通信、故障保护等硬实时任务。
2. 交互层:基于Qt Framework开发,运行在 Linux 操作系统上,提供图形化用户界面,用于参数配置、状态监控、曲线显示、数据记录、报警管理和网络通信等软实时或非实时任务。
两个层面通过高速通信机制进行数据交换和指令传递,从而形成一个兼顾实时性能与开发效率的完整解决方案。
二.睿擎派运行混合部署方案
混合部署双系统指的是单一芯片上同时运行两个系统,既运行Linux ,又运行RT-Thread系统。
睿擎派RC3506上运行Linux系统日志图通过串口1查看

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

三.Linux 侧 QT应用界面开发
1. 基于 QT设计器进行 UI设计
2. QT 界面绘制及业务逻辑核心代码
主要是绘制电机启停按钮,电机运行方向按钮,电机期望位置和当前位置字体实现
主要是绘制电机当前位置和期望位置双曲线实现
四. RT-Thread侧EtherCAT 驱动电机应用开发
1. 创建示例工程
在RuiChing StudioIDE中 创建11_amp_qt_ethercat_master
示例工程:
2. EtherCAT核心代码
EtherCAT主站的初始化配置回调
process_data_config_handler主要是EtherCAT主站的初始化配置回调,在这个函数中,通常要对DC时钟进行配置以及PDO过程数据的映射配置,在本例子主要是对伺服电机的模式,目标位置,目标速度,当前状态,当前速度,当前位置等PDO进行映射配置。
EtherCAT主站运行时周期循环过程数据更新回调
ecat_process_data_begin_handler主要是EtherCAT主站运行时周期循环过程数据更新回调,在这个函数中,主要进行电机模式状态切换处理以及对电机的位置进行增量,实现正转、反转、停止等操作。
五. 双系统通信,实现完整功能
rpmsg是一种用于Linux与RT-Thread操作系统之间进行多核异构通信的机制,进行两个系统间读写通信。
1 Linux侧rpmsg端点
创建打开Linux侧/dev/rpmsg字符设备节点,初始化电机ctrl_data结构体成员值
Linux MASTER端地址是0x1001,RT-Thread远端地址是0x3001
Linux侧将电机的启动停止,运行方向和电机位置控制值通过send_msg接口实际是write接口将ctrl_data结构体写入RT-Thread侧。
2. RT-Thread侧rpmsg端点
创建打开RT-Thread侧/dev/rpmsg字符设备节点,创建两个rpmsg读写线程
RT-Thread源地址是0x3001,Linux目的地址是0x1001
RT-Thread侧 rpmsg读线程
rpmsg读线程里RT-Thread源端的电机控制值,电机运行状态,电机运行方向赋值给 ctrl_data结构体中
RT-Thread侧 rpmsg写线程
rpmsg写线程会不断的获取dynamic_sem信号量,这个信号量会在每次改变电机控制偏移值,改变电机运行状态,改变电机运行方向都会去释放,一旦获取到信号量就会通过rt_device_write接口将ctrl_data结构体写入到Linux目的端。
六. 实战演示
硬件准备
● 睿擎工业开发平台支持板卡1块(睿擎派RC3506)
● 配套7寸MIPI屏
● EtherCAT伺服驱动器一套(推荐力川LC10E-400W)
● 串口调试器、jlink调试各一套
硬件连接
睿擎派RC3506用异面排线和7寸MIPI屏幕连接,再用网线将伺服驱动器IN口与开发板ETH1网口连接,伺服电机的电源线和编码器线分别接入电源口和CN3连接口。如图所示:
编译示例工程
RuiChing Studio IDE对11_amp_qt_ethercat_master工程进行编译:
下载运行程序
连接jlink调试器,使用IDE下载app.img进去后,电机驱动系统显示效果如下视频:
七. 总结
从硬件连接到界面控制,睿擎平台让实现 混合部署QT电机驱动系统变得简单。示例只是一个起点,基于此,你可以轻松扩展功能,实现更复杂的数控机床CNC系统与运动控制平台,医疗器械的手术机器人等工业应用。
-
芯片
+关注
关注
460文章
52936浏览量
447975 -
Qt
+关注
关注
2文章
316浏览量
39526 -
实时控制
+关注
关注
0文章
39浏览量
9756 -
电机驱动系统
+关注
关注
0文章
35浏览量
5927
发布评论请先 登录
10分钟上手睿擎平台GUI开发:第一个LVGL图形应用

睿擎SDK V1.3.0重磅升级:RT-Thread + Linux 混合部署正式上线

《嵌入式Linux系统开发技术详解》
嵌入式Linux系统开发学习步骤
ARM嵌入式Linux系统开发从入门到精通
使用Qt Creator提供的远程部署调试的方法
Embedded SIG | 多 OS 混合部署框架
睿赛德科技混合部署技术Workshop南京站圆满落幕!

ElfBoard技术贴|如何在ELF 1开发板上交叉移植Qt

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

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

评论