IgH详解 一、概述

IgH源码地址: EtherLab / EtherCAT · GitLab

        IgH是开源的EtherCAT主站协议栈,虽然功能上和从站兼容性比不上商业协议栈,但完全能满足学习和普通场景的使用,公司也可以基于IgH作产品开发,基本能满足大部分使用场景。如有项目需求,欢迎沟通交流。

        本系列博客主要分为三部分1、介绍IgH主站ec_master运行流程; 2、介绍IgH对网卡驱动的实时性优化;3、IgH上层应用程序开发。

        关于IgH在不同实时系统上安装,和实时系统的优化以后会在其他专题介绍。

        上面的IgH源码比以前的1.5版本增加了一些功能,包括支持更多的实时网卡驱动。

1、devices 目录下存放的是经过优化的实时网卡驱动

2、examples 是上层应用程序示例程序

3、include 是程序依赖的头文件

4、lib 是主站接口封装的库文件,供应用程序调用

5、master EtherCAT主站程序

6、tool 是IgH命令工具,可以获取和设置主、从站信息

下一篇介绍IgH主站启动流程。

### IGH 配置方法概述 IGH种用于实现 EtherCAT 协议的开源主站软件,广泛应用于工业自动化领域。为了成功配置并运行 IGH 主站,需要理解其核心组件及其相互作用。 #### 1. 基础环境准备 在 Zynq 平台或其他嵌入式平台上部署 IGH 主站时,需先完成操作系统和实时内核的选择与配置。通常可以选择 Preempt RT 或 Xenomai 实现实时性能需求[^3]。这些实时扩展能够显著提升系统的响应速度和稳定性,从而满足工业控制场景下的严格时间约束。 #### 2. 配置流程详解 以下是针对 IGH 的典型配置过程: - **初始化主站**: 使用 `ecrt_master_init()` 函数创建主站实例,并通过参数指定硬件接口名称(如 eth0)。此操作会绑定网卡到 EtherCAT 协议栈上[^1]。 - **扫描网络拓扑结构**: 调用 `ecrt_master_scan_bus()` 执行总线扫描,自动发现连接的所有从站设备。这步骤对于动态调整系统布局至关重要。 - **加载描述文件 (EDS/DCP)**: 如果目标是从特定型号的伺服驱动器或者 IO 模块,则可能需要用到厂商提供的电子数据表(EDS)或分布式时钟协议(DCP),以便更精确地定义行为特性。 - **分配内存映射区域**: 对于每个检测到的有效节点都需要调用相应的 API 来设置寄存器地址范围以及同步管理机制。例如可以利用如下代码片段展示如何处理单从站的情况: ```c ec_slave_config_t *sc = ecrt_master_slave_config(master, slave_position); ``` - **启动周期更新循环**: 当切准备工作完成后就可以进入主要的工作阶段——即不断重复读取输入信号并将输出写回到物理层上去。下面给出了种简单的方式来进行定时调度: ```c while (!stop_condition){ ecrt_domain_process(domain); // Process domain data. usleep(period_in_microseconds); // Sleep until next cycle should start. } ``` 以上每步都紧密关联着具体的函数调用和技术细节,在实际开发过程中还需要参照官方文档深入研究各个选项的具体含义及最佳实践建议。 #### 3. 示例分析:EOE 功能模块 特别值得注意的是 EoE(Ethernet over EtherCAT) 支持部分,它允许标准以太帧穿越整个现场级通信链路到达远端目的地。关于这部分内容有专门的文章进行了剖析,其中提到的关键点包括但不限于以下几个方面[^2]: - 初始化请求对象(`ec_eoe_request_init`); - 构造发送缓冲区并向远程主机传递消息包; - 接收回应信息并对错误状态做出适当反应; 上述功能均已在 eoe_request.c 中实现了较为完整的逻辑框架供开发者参考学习。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值