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

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

3天内不再提示

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—IgH EtherCAT主站开发案例(上)

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2025-10-14 11:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

创龙科技研发的 TL3588-EVM 评估板可基于 IgH EtherCAT 实现伺服电机控制。为助力开发者掌握相关开发要点,本文先介绍 IgH EtherCAT,再详述案例测试(多模式多状态电机控制与抖动统计)、编译流程及核心代码,覆盖环境配置、驱动加载与程序运行,帮助开发者高效完成评估板 IgH EtherCAT 主站开发与电机控制功能实现。

本文档适用开发环境:

Windows开发环境:Windows 7 64bit、Windows 10 64bit

开发环境:VMware16.2.5、Ubuntu20.04.6 64bit

U-Boot:U-Boot-2017.09

Kernel:Linux-RT-5.10.160

LinuxSDK:LinuxSDK-[版本号](基于rk3588_linux_release_v1.2.1_20230720)

IgHEtherCAT:ethercat-stable-1.5-gcd0d17d-20210723

伺服驱动器:台达ASD-A2-0121-E

伺服电机:台达ECMA-C10401GS

我司默认使用的是Linux内核,同时提供了Linux-RT内核boot-rt.img位于产品资料“4-软件资料DebianKernelimagelinux-5.10.160-[版本号]-[Git系列号]”目录下,版本号、Git序列号以实际情况为准。请按照如下方法替换为Linux-RT内核。

请将boot-rt.img镜像拷贝至评估板文件系统任意目录下。执行如下命令,替换内核镜像至系统启动卡,评估板重启生效。

备注:如需固化至eMMC,请将设备节点修改为"/dev/mmcblk0p3"。

Target# dd if=boot-rt.img of=/dev/mmcblk1p3

Target# sync

Target# reboot

wKgZPGjtyGOAG3MEAAAXCKFyZ0k764.png图 1

wKgZPGjtyGuAfno6AAAhlPfbWpE077.png图 2 Linux-RT内核

我司提供的IgH EtherCAT主站开发案例igh_ethercat_dc_motor位于产品资料“4-软件资料Demo”目录下,主要包含src、bin和igh_ethercat等文件夹,具体说明如下。

wKgZPGjtyHSADAjsAAAf2cVXO4A093.png表 1

IgHEtherCAT简介

IgH EtherCAT为运行于Linux系统的免费开源EtherCAT主站程序,框架如下所示。

wKgZPGiQYZ2AJujzAAFLASU3li4860.png图 3

IgHEtherCAT主站通过构建Linux字符设备,应用程序通过对字符设备的访问实现与EtherCAT主站模块的通信

IgH EtherCAT开发包提供EtherCAT工具,该工具提供各种可在Linux用户层运行的命令,可直接实现对从站的访问和设置,如设置从站地址、显示总线配置、显示PDO数据、读写SDO参数等。

IgH EtherCAT官网:https://www.etherlab.org/en/ethercat。

案例说明

案例功能:EtherCAT通讯周期时间为1ms,控制伺服电机正转和反转,并通过串口循环打印EtherCAT通讯周期时间的最大值和最小值。

(1)正转:伺服电机目标速度从0加速到10000,当达到10000速度后,控制伺服电机减速至0,循环运行。

(2)反转:伺服电机目标速度从0加速到-10000,当达到-10000速度后,控制伺服电机减速至0,循环运行。

wKgZO2jtyIaAL25jAACohW8wTac577.png图 4

案例测试

在本案例测试过程中,程序均在隔离CPU环境下运行,并分别采用SCHED_FIFO和SCHED_DEADLINE两种进程调度策略,在空载状态、满负荷状态下持续运行12小时。

请按下图所示使用网线连接评估板ETH1网口和伺服驱动器A的IN网口,将伺服驱动器A的OUT网口使用网线连接至伺服驱动器B的IN网口。

wKgZPGjtyJOAemE_AA_sU_44WSQ109.png图 5

wKgZPGiQYcSABLr2AAkJCTEqOy0981.png图 6

本次测试以隔离CPU4核心为例进行演示,评估板上电前长按"Ctrl + C"进入U-Boot命令行模式,修改环境变量,隔离CPU4核心,保存环境变量后重启评估板。

U-Boot# setenvbootargs"storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normalisolcpus=4"

U-Boot# saveenv

U-Boot# reset

wKgZPGjVCc-AUM8DAAAR4PmOD0k811.png图 7

进入评估板文件系统,执行如下命令,确认已正确隔离CPU。

Target# cat /proc/cmdline

wKgZPGjVCceAB2OTAAAaH-15lqY589.png图 8

为便于测试,我司提供经验证的IgHEtherCAT主站程序为案例"igh_ethercatimages"目录下的ethercat-stable-[版本号]-[Git序列号].tar.gz压缩包,将其拷贝至评估板文件系统任意目录下。版本号、Git序列号请以实际情况为准。将案例bin目录下的igh_ethercat_dc_motor可执行文件拷贝至评估板文件系统。

执行如下命令,解压IgHEtherCAT主站程序压缩包,得到_install文件夹。

Target# tar -xvf ethercat-stable-1.5-gcd0d17d.tar.gz

wKgZPGjtyK-AE9QZAAA0lSmV4io909.png图 9

执行如下命令,并查询评估板网卡物理地址。

Target# ifconfig

wKgZPGjtyLyASqLSAABx_cA-cPo773.png图 10

执行如下命令,加载驱动模块,命令中"0e:e2:85:a1:c8:fd"为评估板网卡物理地址,请根据实际情况修改。

Target# insmod-f /root/_install/modules/ec_master.ko main_devices=0e:e2:85:a1:c8:fd

wKgZPGjtyLeAHMdVAADytytMfHE422.png图 11

执行如下命令,拷贝EtherCAT主站相关文件至评估板文件系统。

Target# mkdir /etc/sysconfig

Target# cp _install/etc/sysconfig/ethercat /etc/sysconfig

Target# mkdir -p /lib/modules/$(uname -r)

Target# cp _install/modules/ec_master.ko /lib/modules/$(uname -r)

Target# depmod -a

备注:此处的警告信息不影响测试结果,忽略即可。

wKgZO2jtyNGAPxSrAAA4qmrIoko522.png图 12

执行如下命令,启动EtherCAT主站。

Target# /root/_install/etc/init.d/ethercat start

wKgZPGjtyNiAO3GwAAAMPLv39zE388.png图 13

执行如下命令,加载ec_generic.ko驱动文件。

Target# insmod -f _install/modules/ec_generic.ko

wKgZO2jtyN6AZC7ZAAIvvArCxq4501.png图 14

执行如下命令,添加IgH动态链接库路径。

Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/_install/lib

Target# sync

wKgZPGjtyOaABdfJAAAKgzk1Tag444.png图 15

执行如下命令,修改内核信息打印级别。

Target# echo 1 4 1 7 > /proc/sys/kernel/printk

wKgZPGjtyO2ANL0dAAAIaPbOs3w313.png图 16

执行如下命令,可查看igh_ethercat_dc_motor程序相关参数信息。

Target# ./igh_ethercat_dc_motor --help

wKgZO2jtyPSAFiHbAAAkolvuR4k737.png图 17

参数解释

(1)-d:指定电机转向,0:正转,1:反转;

(2)-v:打印程序版本信息;

(3)-s:选择进程调度策略模式。程序执行时未使用-s参数或-s参数值为0,进程调度策略默认为SCHED_FIFO;若使用-s参数且参数值为1,进程调度策略为SCHED_DEADLINE,后面未添加参数值[xxx xxx xxx]则使用默认参数值,其中sched-runtime值表示运行时间、sched-deadline值表示相对的期限、sched-period值表示周期,单位均为ns;

(4)-help:查看程序运行参数。

电机正转

SCHED_FIFO模式(空载状态)

该测试状态为程序运行在隔离CPU,程序进程调度策略设置为SCHED_FIFO,进程优先级设置为最高,空载状态测试12个小时。

执行以下命令,控制两台伺服电机同时正转。

Target# taskset -c 4 ./igh_ethercat_dc_motor -d 0-s 0 > log.txt &

wKgZPGjtyP2ADugvAAAJYN1xSwc552.png图 18

打印信息"2554"为进程号,请根据实际进程号,执行如下命令,确认进程调度策略。

Target# chrt -p 2554

wKgZO2jtyQKAQ-hbAAAN6YmpoV8321.png图 19

如需停止运行后台程序,请执行如下命令。

Target# kill -9 2554

wKgZO2jtyQmAIx7RAADQvSaZxQQ385.png图 20

SCHED_FIFO模式(满负荷状态)

该测试状态为程序运行在隔离CPU,程序进程调度策略设置为SCHED_FIFO,进程优先级设置为最高,满负荷状态压力测试12个小时。

执行以下命令,控制两台伺服电机同时正转。

Target# stress --cpu 8--io 8--vm 8-t 43200 &

Target# taskset -c 4./igh_ethercat_dc_motor -d 0-s 0> log.txt &

wKgZPGjtyRGAezg8AAAcVp5jiyY354.png图 21

打印信息"2785"为进程号,请根据实际进程号,执行如下命令,确认进程调度策略。

Target# chrt -p 2785

wKgZPGjtyRiAJ4zFAAANpm7EndI584.png图 22

如需停止运行后台程序,请执行如下命令。

Target# kill -9 2785

wKgZO2jtyR-ARAi7AAAOYwHi27M397.png图 23

SCHED_DEADLINE模式(空载状态)

该测试状态为程序运行在隔离CPU,程序进程调度策略设置为SCHED_DEADLINE、进程优先级设置为最高,空载状态测试12个小时。

执行如下命令,控制两台伺服电机同时正转。

Target# taskset -c 4./igh_ethercat_dc_motor -d 0-s 1> log.txt &

wKgZO2jtySaAETPKAAANXneI9uQ288.png图 24

打印信息"2874"为进程号,请根据实际进程号,执行如下命令,确认进程调度策略。

Target# chrt -p 2874

wKgZPGjtyS2ALwdMAAATm-0Zkkw880.png图 25

如需停止运行后台程序,请执行如下命令。

Target# kill -9 2874

wKgZO2jtyTSAOXDYAAAOstQWNes370.png图 26

SCHED_DEADLINE模式(满负荷状态)

该测试状态为程序运行在隔离CPU,进程调度策略设置为SCHED_DEADLINE,优先级设置为最高,满负荷状态压力测试12个小时。

执行以下命令,控制两台伺服电机同时正转。

Target# stress --cpu 8--io 8--vm 8-t 43200 &

Target# taskset -c 4./igh_ethercat_dc_motor -d 0-s 1> log.txt &

wKgZPGjtyUqABoCtAAAdHudiQQs428.png图 27

打印信息"2985"为进程号,请根据实际进程号,执行如下命令,确认进程调度策略。

Target# chrt -p 2985

wKgZO2jtyVGAFDt7AAATqqpCYxM916.png图 28

如需停止运行后台程序,执行如下命令。

Target# kill -9 2985

wKgZPGjtyViANhWWAAAOQVy9N54163.png图 29

统计结果分析

程序运行输出的打印信息保存到了log.txt,停止后台运行程序后,执行如下命令查看log.txt部分内容。

Target# head -n100 log.txt

wKgZO2jtyV-AMv9YAABqqQd5_tk176.png图 30

参数解释

(1)latency:等待唤醒时间(ns);

(2)period:EtherCAT通讯周期时间(ns);

(3)exec:接收和发送EtherCAT数据时间(ns)。

案例设置period为1ms,通过分析log.txt得到12小时的period最小值和period最大值(period单位:纳秒),通过分析计算period得到12个小时的period抖动值(period最大值 - period最小值),从period抖动值中分析、计算得到period最大抖动值、period平均抖动值。

对log.txt文件内容进行数据分析后,得到如下结果。

wKgZO2jtyWiAOOT3AAAjqSpbfz4606.png表 2

备注:从表中数据可知,SCHED_DEADLINE模式在空载、满负荷状态都比SCHED_FIFO模式抖动值小,建议使用SCHED_DEADLINE模式。

电机反转

请参考上述“电机正转”测试方法,将运行igh_ethercat_dc_motor可执行程序命令中的"-d 0"参数修改为"-d 1"。

​审核编辑 黄宇

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

    关注

    25

    文章

    6140

    浏览量

    113634
  • 瑞芯微
    +关注

    关注

    27

    文章

    702

    浏览量

    53535
  • ethercat
    +关注

    关注

    19

    文章

    1382

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3588 国产2.4GHz 工业开发板—ISP图像处理开发案

    龙科技研发的 TL3588-EVM 评估具备强大视频处理能力,可满足多场景视频开发需求。为助力开发者快速上手,本文整理 7 个实用视频
    的头像 发表于 10-21 15:57 385次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—ISP图像处理<b class='flag-5'>开发案</b>例

    RK3588 国产2.4GHz 工业开发板—视频图像处理框架

    龙科技研发的 TL3588-EVM 评估依托 RK3588/RK3588J SoC 强大的视频图像处理能力,可满足多场景图像应用需求。为
    的头像 发表于 10-16 11:45 614次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—视频图像处理框架

    RK3588 国产2.4GHz 工业开发板IgH EtherCAT站开发案例(下)

    本文围绕龙科技研发的 TL3588-EVM 评估,介绍 IgH EtherCAT
    的头像 发表于 10-15 15:06 451次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—<b class='flag-5'>IgH</b> <b class='flag-5'>EtherCAT</b><b class='flag-5'>主</b><b class='flag-5'>站开发案</b>例(下)

    RK3588 国产2.4GHz 工业开发板—物联网模块开发案

    本文围绕龙科技研发的 TL3588-EVM 评估,提供物联网模块开发案例指导,涵盖蓝牙功能测试,以及 WIFI、PCIe WIFI6、4G 模块的案例说明、测试、驱动编译。其中 W
    的头像 发表于 09-28 11:31 347次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—物联网模块<b class='flag-5'>开发案</b>例

    RK3588 国产2.4GHz 工业开发板—调试工具安装

    本文围绕龙科技研发的 RK3588 工业开发板
    的头像 发表于 09-16 14:35 503次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—调试工具安装

    迅为RK3588开发板Linux安卓麒麟国产工业AI人工智能

    迅为RK3588开发板Linux安卓麒麟国产工业
    发表于 07-14 11:23

    国产 RK3576 ARM 2.2GHz 工业开发板—LVGL应用开发案

    本文主要基于评估演示LVGL应用开发案例,适用开发环境如下。龙科技 TL3576-EVM 是一款基于
    的头像 发表于 06-23 15:17 588次阅读
    全<b class='flag-5'>国产</b>!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK</b>3576 ARM <b class='flag-5'>八</b><b class='flag-5'>核</b> 2.2<b class='flag-5'>GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—LVGL应用<b class='flag-5'>开发案</b>例

    迅为iTOP-3588开发板/核心

    性能强 iTOP-3588开发板采用RK3588处理器,是全新- -代AloT高端 应用芯
    发表于 04-16 17:02

    迅为iTOP-RK3588S开发板/核心RK3588S处理器6TOPS算力内置NPU

    性能强 iTOP-3588S开发板采用RK3588S处理器,是全新一代AloT高端应用芯片
    发表于 04-10 11:13

    iTOP-3588开发板采用RK3588处理器四核心架构GPU内置独立NPU强大的视频编解码

    性能强 iTOP-3588开发板采用RK3588处理器,是全新- -代AloT高端 应用芯
    发表于 04-09 16:09

    国产RK35882.4GHzAI 6T NPU 8K麒麟)工业核心规格书

    核心简介龙科技SOM-TL3588是一款基于RK3
    的头像 发表于 03-11 09:12 2614次阅读
    全<b class='flag-5'>国产</b>!<b class='flag-5'>RK3588</b>(<b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b>AI 6T NPU 8K麒麟)<b class='flag-5'>工业</b>核心<b class='flag-5'>板</b>规格书

    Banana Pi开源社区基于RK3588开发板,DeepSeek开发利器

    BPI-AIM7采用 RK3588,新一代旗舰64位处理器,主频高达
    发表于 02-19 18:27

    Banana Pi开源社区基于RK3588开发板,DeepSeek开发利器

    Banana Pi开源社区基于RK3588开发板,DeepSeek开发利器
    的头像 发表于 02-19 18:25 3272次阅读
    Banana Pi开源社区基于<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>,DeepSeek<b class='flag-5'>开发</b>利器

    迅为RK3588S开发板/核心介绍

    性能强 iTOP-3588S开发板采用RK3588S处理器,是全新一代AloT高端应用芯片
    发表于 02-13 14:40

    迅为RK35883588S开发板/核心选型硬件的区别

    S开发板采用RK3588S处理器,是全新一代AloT高端应用芯片,搭载
    发表于 12-20 15:40