无需License费用!免费分享开源IgHEtherCAT主站方案

嵌入式大杂烩 2021-12-28 12:00
前言:本文档主要演示IgH EtherCAT控制伺服电机方法,过程中基于创龙科技的TLIMX8-EVM评估板进行测试,分享给用户朋友查阅。


本文档适用开发环境:

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

Linux开发环境:Ubuntu 18.04.4 64bit

虚拟机:VMware15.1.0

Linux SDK:5.4.70_2.3.0

Kernel:linux-5.4.70-xenomai-g8d94618-v1.0

IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-20210723

Xenomai:xenomai-v3.1.1-g8b2052e

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

伺服电机:台达ECMA-C10401GS


*硬件平台:创龙科技TLIMX8-EVM评估板(NXP i.MX 8M Mini)


此外IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平台均已提供开源EtherCAT主站IgH案例,有需求可扫描下方二维码下载资料。


  1               01

IgH EtherCAT简介


IgH EtherCAT为运行于Linux系统的免费开源EtherCAT主站程序,框架如下所示,官方文档:https://www.etherlab.org/download/ethercat/ethercat-1.5.2.pdf。(自行复制打开)

 


图 1

 

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


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


IgH EtherCAT官网:https://www.etherlab.org/en/ethercat(自行复制打开)


  2                01

案例说明


案例功能:控制伺服电机正转和反转。

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

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

 

图 2

 

为便于测试,创龙科技提供目前已验证的基于Xenomai编译生成的内核镜像文件和设备树镜像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-5.4.70-xenomai-g8d94618-v1.0\"目录下,请替换至Linux系统启动卡BOOT分区下。同时将linux-5.4.70-xenomai-g8d94618-v1.0目录下的module驱动压缩包5.4.70-g8d94618.tar.gz,解压至Linux系统启动卡rootfs分区"lib/modules/"目录下。


备注:如需使用由内核源码重新编译生成的内核镜像文件、设备树文件和modules驱动,请参考Linux系统使用手册将编译的module驱动安装至Linux系统启动卡中,默认安装后module驱动目录为5.4.70。

 

图 3

 

  3               01

案例测试


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

 

图 4

  

图 5

 

为便于测试,创龙科技提供的经验证的IgH EtherCAT主站程序为案例"igh_ethercat_dc_motor\igh_ethercat\images\ethercat-stable-1.5-gcd0d17d-20210723\"目录下的ethercat-stable-1.5-gcd0d17d-20210723.tar.gz压缩包,在Ubuntu下解压即可得到IgH EtherCAT主站程序文件夹。

将IgH EtherCAT主站程序文件夹整个拷贝至评估板文件系统,执行如下命令查询评估板网卡物理地址。本次测试将IgH EtherCAT主站程序文件夹命名为__install。

Target#  ifconfig

图 6

 

执行如下命令,加载驱动模块。

Target#  insmod /home/root/EtherCAT/__install/modules/ec_master.ko main_devices=ce:bb:9d:3b:d3:6b

 

 图 7

 

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

Target#  cp /home/root/EtherCAT/__install/etc/sysconfig/ethercat /etc/sysconfig

Target#  cp /home/root/EtherCAT/__install/modules/ec_master.ko /lib/modules/5.4.70-g8d94618//模块驱动名称可通过"uname -r"查看

Target#  depmod//同步模块依赖关系

 

图 8

 

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

Target#  /home/root/EtherCAT/__install/etc/init.d/ethercat start

 

 图 9

 

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

Target#  insmod /home/root/EtherCAT/__install/modules/ec_generic.ko

 

图 10

 

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

Target#  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/EtherCAT/__install/lib

 

图 11

 

将案例igh_ethercat_dc_motor可执行文件拷贝至评估板文件系统,执行如下命令查看参数信息。

Target#  ./igh_ethercat_dc_motor --help

 

图 12

 

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

Target#  ./igh_ethercat_dc_motor -d 0

 

 图 13

 

14

 

按下"Ctrl+C",停止运行程序。

  

图 15

 

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

Target#  ./igh_ethercat_dc_motor -d 1


 图 16

 

图 17

 

按下"Ctrl+C",停止运行程序。

 

 图 18

 

备注:案例设置EtherCAT周期为1.1ms,同时串口循环打印EtherCAT周期的最小值和最大值。

参数解析:

(1) latency:等待唤醒时间。

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

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


  4                 01

案例编译


4.1 IgH EtherCAT主站程序编译

IgH EtherCAT主站程序的编译需依赖于基于Xemomai生成的内核,请参考Linux系统使用手册将案例"igh_ethercat_dc_motor\kernel-xenomai\src\"目录下的linux-5.4.70-xenomai-g8d94618-v1.0内核源码进行编译后,再编译IgH EtherCAT主站程序。

请将案例"igh_ethercat_dc_motor\igh_ethercat\src\"目录下的IgH EtherCAT主站程序开发包ethercat-stable-1.5-gcd0d17d-20210723.tar.gz拷贝至Ubuntu工作目录,执行如下命令进行解压。

Host#  mkdir EtherCAT

Host#  tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -C EtherCAT/

 

图 19

 

进入解压目录,执行如下命令生成configure文件。

Host#  ./bootstrap

 

图 20

 

执行如下命令,加载SDK环境变量并进行配置。

Host#  source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

Host#  mkdir __install//创建__install文件夹用于存放生成的文件

Host#  ./configure --prefix=/home/tronlong/EtherCAT/__install --with-linux-dir=/home/tronlong/kernel-xenomai/ --enable-8139too=no --enable-generic=yes --host=aarch64-poky-linux

备注:"/home/tronlong/kernel-xenomai/"为案例提供的内核源码目录。

 

图 21

 

图 22

 

执行如下命令,进行编译。

Host#  make

 

图 23

 

图 24

 

执行如下命令,编译驱动。

Host#  make modules

 

图 25

 

 图 26

 

执行如下命令,将生成的IgH EtherCAT主站程序安装至指定路径下。

Host#   make install systemdsystemunitdir=/home/tronlong/EtherCAT/__install

 

图 27 

 

图 28

 

执行如下命令,将驱动文件拷贝至"__install/modules/"目录下。

Host#  mkdir -p __install/modules

Host#  cp ./master/ec_master.ko ./__install/modules/

Host#  cp ./devices/ec_generic.ko ./__install/modules/

 

图 29

 

4.2 igh_ethercat_dc_motor案例编译

igh_ethercat_dc_motor案例的编译需基于IgH EtherCAT主站程序,请先编译IgH EtherCAT主站程序。

请将案例"igh_ethercat_dc_motor\src\"目录拷贝至Ubuntu工作目录下,进入src目录执行如下命令修改Makefile相关内容为IgH EtherCAT主站程序对应目录。

Host#  vi Makefile

 

图 30 

 

图 31

 

然后执行如下命令,加载SDK环境变量并进行编译。编译完成后,将在当前目录下生成可执行文件。

Host#  source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

Host#  make

 

图 32


  5               01

关键代码


(1)创建EtherCAT Master。

 

图 33

 

(2)创建域。

 

图 34

 

(3)配置PDO。

  

图 35

 

(4)为域注册PDO条目。

 

图 36

 

(5)激活Master。

 

 图 37

 

(6)修改当前进程优先级。

 

图 38

 

(7)进入循环周期任务。

 

图 39

 

(8)在周期任务中设置驱动器操作模式、加速度和减速度,分别发送0x6、0x7、0xF使驱动器处于ON状态。

  

图 40

 

(9)发送目标速度,转动电机。

 

图 41


  6                01

Xenomai简介


Xenomai是一个免费开源的Linux平台实时框架,通过使用与Linux内核并行运行的实时协同内核(real-time co-kernel)处理所有对时间要求严格的活动,例如处理中断和调度实时线程。Cobalt core比原生Linux与RT-Linux内核具有更高的优先级。

 

图 42


图 43

 

6.1 编译说明

案例使用的Xenomai版本为3.1.1,开发包为案例"igh_ethercat_dc_motor\xenomai\src\"目录下的xenomai-v3.1.1-g8b2052e.tar.gz,将其拷贝至Ubuntu工作目录下,执行如下命令进行解压。

Host#  mkdir Xenomai

Host#  tar -xvf xenomai-v3.1.1-g8b2052e.tar.gz -C Xenomai/

 

图 44

 

进入解压目录,执行如下命令在当前目录生成configure文件。

Host#  ./scripts/bootstrap

 

图 45

 

执行如下命令,加载SDK环境变量并进行配置,请确保已正确安装交叉编译工具。

Host#  source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

Host#  ./configure --build=i686-pc-linux-gnu --host=aarch64-poky-linux --disable-debug --enable-smp --with-core=cobalt

 

图 46

 

图 47

 

Host#  mkdir __install//创建__install文件夹用于存放生成的文件

Host#  make DESTDIR=/home/tronlong/Xenomai/__install install

 

图 48

 

编译完成后,将在__install目录下生成usr文件夹。 

 

图 49

 

6.2 测试说明

为便于测试,我司提供的经验证的Xenomai测试程序为案例"igh_ethercat_dc_motor\xenomai\images\xenomai-v3.1.1-g8b2052e\"目录下xenomai-v3.1.1-g8b2052e.tar.gz压缩包,在Ubuntu下解压即可得到Xenomai测试程序文件夹。

请使用已替换内核的Linux系统启动卡启动评估板,将Xenomai测试程序文件夹整个拷贝至评估板文件系统,执行如下命令拷贝Xenomai相关文件和设置动态链接库。本次测试将Xenomai测试程序文件夹命名为__install。

Target#  cp -r Xenomai/__install/usr/xenomai/ /usr/

Target#  export LD_LIBRARY_PATH=/usr/xenomai/lib:$LD_LIBRARY_PATH

 

图 50

 

Xenomai的测试工具均位于"/usr/xenomai/bin/"目录下,可调用对应测试工具进行测试。

 

图 51

 

使用Cyclictest工具进行实时性能基准测试。

Target#  echo 0 > /proc/xenomai/latency

Target#  /usr/xenomai/demo/cyclictest -t5 -p98 -m -n

 

图 52

 

表 1 Cyclictest测试结果说明

参数

解析

T(Thread)

线程索引和线程ID

P(Priority)

线程的优先级

I(Interval)

延迟,测量线程的预期唤醒周期

C(Count)

测量延迟的次数

Min(Minimum)

测量的最小延迟(单位us

Act(Actual)

最近一次测量的延迟(单位us

Avg(Average)

平均延时(单位us

Max(Maximum)

测量的最大延迟(单位us


 

更多方案,欢迎与Tronlong联系:

销售邮箱:sales@tronlong.com

技术邮箱:support@tronlong.com

创龙总机:020-8998-6280

技术热线:020-3893-9734

创龙官网:www.tronlong.com

技术论坛:www.51ele.net

官方商城:https://tronlong.tmall.com


关注创龙科技,获取更多资讯


           
在看点这里
嵌入式大杂烩 专注于嵌入式技术,包括但不限于C/C++、嵌入式、物联网、Linux等编程学习笔记,同时,内包含大量的学习资源。欢迎关注,一同交流学习,共同进步!
评论 (0)
  • 文/Leon编辑/cc孙聪颖2025年全国两会进行时,作为“十四五”规划收官之年,本届两会释放出坚定目标、稳中求进、以进促稳等信号。其中,企业家们的建议备受关注,关系到民营经济在2025年的走向。作为国内科技制造业的“老兵”,全国人大代表、TCL集团创始人及董事长李东生在本届两会中提出三份代表建议,包括《关于优化中国科技制造业融资环境的建议》、《关于加强AI深度伪造欺诈管理的建议》和《关于降低灵活就业人员社会保险参保门槛的建议》,表现出对科技制造、AI发展和劳动者保障方面的关注。会后,李东生接受
    华尔街科技眼 2025-03-06 19:41 149浏览
  • 近年来,越来越多的企业在5S管理的基础上,开始追求6S、7S甚至8S管理,仿佛S越多,管理就越先进,企业就越优秀。于是,6S增加了“安全”,7S又加上了“节约”,8S甚至引入了“学习”……看似更加全面,实则很多企业只是机械地增加S,却忽略了管理的核心目标:提升效率、降低浪费、优化工作环境。优思学院认为,5S本身已经是一套成熟的精益管理工具,它的核心理念不仅简单高效,而且易于实施和推广。如果企业只是为了赶时髦,盲目增加S,而没有真正理解5S的本质,那么这些额外的“S”很可能会变成管理上的负担,而不
    优思学院 2025-03-07 12:43 207浏览
  • 随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重建的关键突破。一、3DGS技术概述与原理1、3DGS的技术概述3DGS是一种基于3D高斯分布的三维场景表示方法。通过将场景中的对象转化为多个3D高斯点,每个点包含位置、协方差矩阵和不透明度等信息,3DGS能够精确地表达复杂场景的几何形状和光照特性。与传统的神经辐射场(NeRF)方法相比,
    康谋 2025-03-06 13:17 331浏览
  • 在六西格玛项目中,团队的选择往往决定了最终的成败。合适的团队成员不仅能推动项目顺利进行,更能确保最终成果符合预期。因此,组建六西格玛团队时,必须挑选最合适的人才,确保他们具备必要的能力和特质。团队主管的关键特质每个精益六西格玛项目都需要一位主管来带领团队。他们不仅需要具备领导力,还要能够分析数据、制定策略,并与管理层和团队成员高效沟通。团队主管的核心职责包括:领导团队行动:能够激励成员,确保团队朝着既定目标前进。数据分析能力:精通数据处理和分析,能基于数据做出决策。沟通协调:能够在管理层和团队之
    优思学院 2025-03-06 12:51 132浏览
  • 深圳触觉智能RK3506开发板现已上市,开启预售!搭载瑞芯微RK3506B/J超低功耗工业处理器(1.5GHz三核A7+M0,主频1.5GHz);支持1280×1280显示、双百兆网口、星闪无线三模,板载高达2路CAN FD与5路串口。RK3506适用场景简介工业控制‌:RK3506适用于工业控制、工业通信、人机交互等应用场景。其多核异构架构(3xCortex-A7+Cortex-M0)和外设接口丰富,支持Buildroot、Yocto系统,适合轻量级HMI应用‌。‌工业通信‌:RK3506均支
    Industio_触觉智能 2025-03-07 10:04 136浏览
  • 在企业管理和职场环境中,权力是一个常被提及却又让人感到微妙的话题。有人觉得它充满吸引力,有人却对它避之不及。然而,不管你对权力的态度如何,理解它、掌握它,甚至善用它,都是职场成功的重要一环。今天,我们就来深入探讨权力的本质,特别是个人权力和社会权力的区别,以及如何在职场中逐步建立属于自己的影响力。权力的两种面貌:你掌控自己,还是掌控他人?说到权力,首先要区分它的两种类型。个人权力是你对自己生活的掌控感。比如,你能自由决定自己的职业方向,不用总是请示他人。这种权力让人感到踏实和满足,是我们在生活中
    优思学院 2025-03-07 15:56 216浏览
  • Sub-GHz,即工作频段低于1GHz的无线通信技术,常见频段有315MHz、433MHz、868MHz与915MHz等。其可借助无线电波在自由空间传播的特性,把数据调制到射频载波上进行传输,达成物联网设备间的无线通信,是物联网设备实现高效、稳定、无缝交互的“通信基石”。典型射频信号(无线电波)收发电路简示在工业自动化、智慧城市、智慧农业与智能家居等物联网领域中,LoRa、Wi-SUN、Z-Wave、Sigfox等工业级通信协议大多运行在Sub-GHz频段。而正是通过Sub-GHz射频技术,传感
    华普微HOPERF 2025-03-07 11:39 167浏览
  • 服务器应用环境与客户需求PCIe 5.0高速接口技术的成熟驱动着生成式AI与高效能运算等相关应用蓬勃发展。在随着企业对服务器性能的要求日益严苛,服务器更新换代的周期也持续加快。在此背景下,白牌与DIY(Do It Yourself)服务器市场迎来了新的发展契机,但同时也面临着更趋复杂的技术挑战。传统上,白牌与DIY服务器以其高度客制化与成本效益优势受到市场青睐。然而,随着PCIe 5.0等高速技术的导入,服务器系统的复杂度大幅提升,对组装技术与组件兼容性也就提出更高的要求。举个简单的例子来说,P
    百佳泰测试实验室 2025-03-06 17:00 169浏览
  • 概述随着工业4.0的深入推进,制造业对自动化和智能化的需求日益增长。传统生产线面临空间不足、效率低下、灵活性差等问题,尤其在现有工厂改造项目中,如何在有限空间内实现高效自动化成为一大挑战。此次项目的客户需要在现有工厂基础上进行改造,空间有限。为此,客户选择了SCARA型线性轴机器人作为执行设备。然而,SCARA机器人的高效运行离不开强大的控制系统支持。宏集凭借其先进的智能控制系统,为客户提供了高效、灵活的自动化解决方案,确保SCARA机器人在有限空间内发挥最大效能。一、客户需求在此次改造项目中,
    宏集科技 2025-03-06 11:27 208浏览
  • ​CS6212是一款可分别用于USB Type-C主机/显示端口源应用的带重定时的有源开关。这设备符合USB 3.2标准版本1.0和USB Type-C标准上的VESA DisplayPort Alt模式 1.0版,支持通过GPIO或12C进行灵活的模式切换。此设备支持USB 3.2第2x1代 运行速度高达10Gbps,DisplayPort 1.4运行速度高达HBR3 8.1Gbps。CS6212管脚分布及功能定义:CS6212支持重定时器训练,并支持USB 3.2标准中定义的状态状态机(RT
    QQ1540182856 2025-03-07 10:09 166浏览
  • ASL6328芯片支持高达 6.0 Gbps 运行速率的交流和直流耦合输入T-MDS 信号,具备可编程均衡和抖动清理功能。ASL6328 是一款单端口 HDMI/DVI 电平转换 / 中继器,具有重新定时功能。它包含 TypeC双模式 DP 线缆适配器寄存器,可用于识别线缆适配器的性能。抖动清理 PLL(锁相环)能够消除输入抖动,并完全重置系统抖动容限,因此能更好地满足更高数据速率下 HDMI 抖动合规性要求。设备的运行和配置可通过引脚设置或 I2C 总线实现。自动断电和静噪功能提供了灵活的电
    QQ1540182856 2025-03-06 14:26 137浏览
  • 一、系统概述MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能,同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能,为工业设备赋予“超强算力+实时响应+极简运维”的体验!类别名称描述源码TF-AArm Trusted Firmware 2.8OP-TEEOP-TEE 3.19BootloaderU-boot 2022.10KernelLinux Ke
    米尔电子嵌入式 2025-03-07 14:08 250浏览
  •        深夜的公园里,当路灯熄灭后,传统监控摄像头只能拍出模糊的黑白画面,仿佛老式胶片电影里的场景。而搭载为旌瑶光ISP的摄像头,却能像猫科动物一样,在几乎全黑的环境中捕捉到行人衣服的颜色、树叶的纹理,甚至快速跑动的宠物狗毛发细节。这种从“黑白默片”到“全彩4K电影”的跨越,背后是为旌瑶光ISP对传统红外补光技术的颠覆性创新。一、传统方案之困:被红外光“绑架”的夜视世界        传统安防摄像头依赖红外
    中科领创 2025-03-07 16:50 335浏览
  • 深圳触觉智能SOM3506核心板现已上市,搭载瑞芯微RK3506B/J超低功耗处理器(1.5GHz三核A7+M0),低功耗满载仅0.7W,支持40℃~85℃工作环境,即日起宽温级59元/工业级68元,特价开售!芯片介绍RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台,三核Cortex-A7+单核Cortex-M0多核异构设计,CPU频率达1.5Ghz, M0 MCU为200Mhz。RK3506适用场景简介工业控制‌:RK3506适用于工业控制、工业通信、人机
    Industio_触觉智能 2025-03-07 10:03 165浏览
  • 多人同时共享相同无线网络,以下场景是否是您熟悉的日常?姐姐:「妈~我在房间在线上课,影音一直断断续续的怎么上课啊!」奶奶:「媳妇啊~我在在线追剧,影片一直卡卡的,实在让人生气!」除此之外,同时间有老公在跟客户开在线会议,还有弟弟在玩在线游戏,而妈妈自己其实也在客厅追剧,同时间加总起来,共有五个人同时使用这个网络!我们不论是在家里、咖啡厅、餐厅、商场或是公司,都会面临到周遭充斥着非常多的无线路由器(AP),若同时间每位使用者透过手机、平板或是笔电连接到相同的一个网络,可想而知网络上的壅塞及相互干扰
    百佳泰测试实验室 2025-03-06 16:50 162浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦