基于全志T507-H的Igh EtherCAT主站案例分享
基于全志T507-H的Linux-RT + IgH EtherCAT主站演示
下文主要介绍基于全志T507-H(硬件平台:创龙科技TLT507-EVM评估板)案例,按照创龙科技提供的案例用户手册进行操作得出测试结果。
本次演示的开发环境:
- Windows开发环境:Windows 7 64bit、Windows 10 64bit
- Linux开发环境:Ubuntu18.04.4 64bit
- 虚拟机:VMware16.2.5
- U-Boot:U-Boot 2018
- Kernel:Linux-RT-4.9.170
- LinuxSDK:LinuxSDK-[版本号].tar.gz(基于全志官方V2.0_20220618)
- IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-20210723
- 伺服驱动器:台达ASD-A2-0121-E
- 伺服电机:台达ECMA-C10401GS
- 硬件平台:TLT507-EVM评估板(基于全志T507-H)
IgH EtherCAT简介
IgH EtherCAT为运行于Linux系统的免费开源EtherCAT主站程序,框架如下所示,
IgH EtherCAT主站通过构建Linux字符设备,应用程序通过对字符设备的访问实现与EtherCAT主站模块的通信。
IgH EtherCAT开发包提供EtherCAT工具,该工具提供各种可在Linux用户层运行的命令,可直接实现对从站的访问和设置,如设置从站地址、显示总线配置、显示PDO数据、读写SDO参数等。
案例说明
案例功能:EtherCAT通讯周期时间为1ms,控制伺服电机正转和反转,并通过串口循环打印EtherCAT通讯周期时间的最大值和最小值。
(1)正转:伺服电机目标速度从0加速到10000,当达到10000速度后,控制伺服电机减速至0,循环运行。
(2)反转:伺服电机目标速度从0加速到-10000,当达到-10000速度后,控制伺服电机减速至0,循环运行。
为便于测试,我司提供已验证的基于Linux-RT编译生成的内核镜像文件和内核模块,位于产品资料“4-软件资料\Linux\Kernel\image\linux-4.9.170-[版本号]-[Git系列号]\”目录下。
请将Linux-RT内核镜像boot-rt.fex和Linux-RT内核配套的内核模块modules-rt目录下4.9.170-[版本号]-[Git系列号].tar.gz压缩包的拷贝至评估板文件系统目录下。
执行如下命令,将boot-rt.fex重命名为boot.fex,同时将内核模块压缩包解压。
Target#mv boot-rt.fex boot.fexTarget#tar -zxf 4.9.170-rt129-g4c65c66.tar.gz
执行如下命令替换内核镜像和内核模块,评估板重启生效。
备注:mmcblk1为Micro SD对应的设备节点,如需固化至eMMC,请将设备节点修改为mmcblk0。
Target#dd if=boot.fex of=/dev/mmcblk1p3 conv=fsyncTarget#rm /lib/modules/* -rfTarget#cp $(uname -r) /lib/modules/ -rTarget#syncTarget#reboot
案例测试
请按下图所示使用网线连接评估板ETH0 RGMII网口和伺服驱动器A的IN网口,将伺服驱动器A的OUT网口使用网线连接至伺服驱动器B的IN网口。
为便于测试,我司提供的经验证的IgH EtherCAT主站程序为案例"igh_ethercat\images"目录下的ethercat-stable-1.5-gcd0d17d.tar.gz压缩包,将其拷贝至评估板文件系统任意目录下。
执行如下命令,解压ethercat-stable-1.5-gcd0d17d.tar.gz压缩包将会得到_install文件夹。
Target#tar -zxf ethercat-stable-1.5-gcd0d17d.tar.gz
执行如下命令,并查询评估板网卡物理地址。
Target#ifconfig
执行如下命令,加载驱动模块。
Target#insmod -f /root/_install/modules/ec_master.ko main_devices=46:99:F6:AB:1F:19
执行如下命令,拷贝EtherCAT主站相关文件至评估板文件系统。
Target#mkdir /etc/sysconfigTarget#cp /root/_install/etc/sysconfig/ethercat /etc/sysconfigTarget#ls /lib/modules/$(uname -r)//查看是否已创建modules目录Target#cp ./_install/modules/ec_master.ko /lib/modules/$(uname -r)Target#depmod -a //同步模块依赖关系,同步过程中打印警告请忽略
执行如下命令,启动EtherCAT主站。
Target#/root/_install/etc/init.d/ethercat start
执行如下命令,加载ec_generic.ko驱动文件。
Target#insmod -f /root/_install/modules/ec_generic.ko
执行如下命令,添加IgH动态链接库路径。
Target#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/_install/lib
将案例bin目录下的igh_ethercat_dc_motor可执行文件拷贝至评估板文件系统,执行如下命令查看参数信息。
Target#./igh_ethercat_dc_motor --help
执行如下命令,控制两台伺服电机同时正转。
Target#./igh_ethercat_dc_motor -d 0
按下"Ctrl + C",停止运行程序。
执行如下命令,控制两台伺服电机同时反转。
Target#./igh_ethercat_dc_motor -d 1
按下"Ctrl + C",停止运行程序。
相关文章:

基于全志T507-H的Igh EtherCAT主站案例分享
基于全志T507-H的Linux-RT IgH EtherCAT主站演示 下文主要介绍基于全志T507-H(硬件平台:创龙科技TLT507-EVM评估板)案例,按照创龙科技提供的案例用户手册进行操作得出测试结果。 本次演示的开发环境: Windows开发环…...
刷题记录(20240605)
1.数组构造 题目描述 小红的数组构造小红希望你构造一个数组满足以下条件: 1.数组共有 n个元素,且所有元素两两不相等。 2.所有元素的最大公约数等于 k。 3.所有元素之和尽可能小。请你输出数组元素之和的最小值。 输入描述: 两个正整数 n 和 k。 输出描述ÿ…...
CUDA和OpenGL纹理texture结合
cuda和OpenGL纹理结合,并进行直方图计算 针对于单通道16位图像。结合方式在CUDA_equalizeHistogram_16函数中。 其他的为CUDA核函数。 #define HISTOGRAM_LENGTH 65536 // 2^16 表示16位深度定义直方图长度为65536,对应16位像素值的范围(0-65535)。 __global__ void com…...

市场凌乱,智能算法哪种效果好?
当我们在面对市场波动,个股震荡,无从下手的时候,不懂算法的朋友就只懂做t;懂算法的朋友这会儿就迷茫并不知道选择哪种智能算法交易?今天小编给大家整理一套性价比高的,适合个人投资者搞的算法交易ÿ…...

学会这14大招,30天涨粉两三千没问题!沈阳新媒体运营培训
很多小白在刚转入公司做新媒体时,基本都是从帮助公司运营账号开始的。但不同于个人号,一个企业本身是没有ip属性的,它的风格、调性等,都需要通过你的运营,让它变成一个活灵活现的、赋予独立个性人设的账号。 目前&…...
SQL数据库性能优化
1.查询尽量避免使用select * 1.1 增加磁盘开销:数据库本质上是将记录存储在磁盘上,查询操作就是一种进行磁盘IO的行为,我们查询的字段越多,读取的内容也就越多,对IO磁盘的开销也就会增大,特别是某些字段,如…...

eNSP学习——RIP路由协议基础配置
目录 主要命令 原理概述 实验内容 实验目的 实验拓扑 实验编址 实验步骤 1、基本配置 2、使用RIPv1搭建网络 开启 RIP调试功能 3、使用RIPv2搭建网络 RIPv1和RIPv2的不同 需要eNSP各种配置命令的点击链接自取:华为eNSP各种设备配置命令大全PD…...
备考系统架构设计师,看这篇就够了!(包括核心总结、真题、论文、模拟试题索引)
注:以下章节核心总结来自最新版课本:系统架构设计师教程(第2版): https://url35.ctfile.com/f/52515535-1268514286-ca9b3a?p6235 ( 访问密码: 6235, 电子版 pdf 文件大小: 168.9 M ,需要的话可自行下载,…...
stm32编译原理
STM32编译原理主要包括以下几个方面: (1)编译器选择:STM32可以使用多种编译器进行开发,如Keil、IAR、GCC等。不同的编译器有不同的特点和优缺点,需要根据具体需求进行选择。 (2)编…...
如何以JNI方式实现安卓APP控制GPIO?
本文档提供了在 Android 10 设备上通过应用程序(App)控制通用输入输出(GPIO)的详细指南。这涵盖了从创建 gpio驱动到App 配置 以及 SELinux 策略以允许特定访问的所有必要步骤。 1. 驱动实现 添加创建gpio控制驱动bsp\kernel\ke…...

计算机网络学习笔记——运输层(b站)
目录 一、 运输层概述 二、运输层端口号、复用与分用的概念 三、UDP和TCP的对比 四、TCP的流量控制 五、TCP的拥塞控制 六、TCP超时重传时间的选择 七、TCP可靠传输的实现 八、TCP报文段的首部格式 一、 运输层概述 物理层、数据链路层、网络层实现了主机到主机的通信…...
HBase数据库面试知识点:第二部分 - 核心技术(持续更新中)
目录 1. 分布式存储与HDFS 2. 面向列的存储 3. 数据版本控制 4. Region与RegionServer 5. 分布式协调服务(ZooKeeper) 1. 分布式存储与HDFS HBase利用Hadoop的HDFS作为其底层存储系统,确保数据的高可靠性和可扩展性。 数据块࿰…...

Spring 使用SSE(Server-Sent Events)学习
什么是SSE SSE 即服务器发送事件(Server-Sent Events),是一种服务器推送技术,允许服务器在客户端建立连接后,主动向客户端推送数据。 SSE 基于 HTTP 协议,使用简单,具有轻量级、实时性和断线重…...

词法分析器的设计与实现--编译原理操作步骤,1、你的算法工作流程图; 2、你的函数流程图;3,具体代码
实验原理: 词法分析是编译程序进行编译时第一个要进行的任务,主要是对源程序进行编译预处理之后,对整个源程序进行分解,分解成一个个单词,这些单词有且只有五类,分别时标识符、关键字(保留字&a…...

linux查看磁盘类型命令
在Linux中,有多种方法可以查看磁盘是固态硬盘(SSD)还是机械硬盘(HDD)。以下是一些常用的方法: 查看/sys/block/目录 /sys/block/目录包含了系统中所有块设备的信息。你可以查看这个目录中的设备属性来判断…...
多线程调用同一个不包含可变状态,并且是线程安全的方法时,可同时执行,不必等待排队
多线程调用同一个不包含可变状态,并且是线程安全的方法时,可同时执行,不必等待排队 前言同时执行方法的条件示例并发执行的优势实验验证总结 前言 如果方法不包含可变状态,并且是线程安全的,那么在高并发环境下&#…...

Java文件操作①——XML文件的读取
系列文章目录 文章目录 系列文章目录前言一、邂逅XML二、应用 DOM 方式解析 XML三、应用 SAX 方式解析 XML四、应用 DOM4J 及 JDOM 方式解析 XMLJDOM 方式解析 XMLDOM4J 方式解析 XML前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…...

【记录】网络|没有路由器没有网线,分别使用手机或Windows电脑共享网络给ARM64开发板,应急连接
事情是这样的,我的开发板明明已经选择了记住热点 WiFi 密码,但是却没有在开机的时候自动连接,我又没有放显示器在身边,又不想为了这点事去找个显示器来,就非常难受。 我手边有的设备是: 笔记本电脑&#…...

一键设置常用纸张和页面边距-Word插件-大珩助手
Word大珩助手是一款功能丰富的Office Word插件,旨在提高用户在处理文档时的效率。它具有多种实用的功能,能够帮助用户轻松修改、优化和管理Word文件,从而打造出专业而精美的文档。 【新功能】常用纸张和常用边距 1、一键设定符合中国人常用…...

在树莓派3B+中下载opencv(遇到的各种问题及解决)
目录 前言 1、删除原版本下新版本 2、python虚拟环境 3、python版本共存换链接——给版本降低 4、烧录之前版本的文件(在清华源中可以找,不用官网的烧录文件就行; 比如:(balenaEtcher)重新烧录有问题…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...