IgH详解二、主栈启动流程(二)

        继续上一篇, ec_master.ko加载后只是初始化了主栈的一些数据和状态,并未运行主栈,因为此时网络并未启动,主栈无法和从站通信。当我们加载实时网卡驱动时,此时建立了网络连接,就可以启动主栈来根据连接的从站做信息的同步,这里以e1000网卡为例:

加载网卡驱动时会调用主栈ecdev_open函数,来启动主栈idle线程

 下面主要分析一下idle的运行流程

 我们只分析正常流程,报文的收发我们以后分析介绍,这里只介绍处理流程

 idle线程中运行主栈状态机,之前我们说过主栈初始化把fsm置为ec_fsm_master_state_start

 所以主栈状态机会从start状态开始运行。

 是不是很熟悉,主栈发出了第一个读从站AL status(0x0130)的广播报文。接着状态机运行ec_fsm_master_state_broadcast处理函数。

 当接收到从站回复的报文,确认当前总线有从站,ec_fsm_master_state_broadcast中就开启从站扫描流程。具体的流程可以根据状态机的切换一步一步的往后分析。

 扫描从站就启动了从站的状态机,从站状态机可以通过位置寻址来和指定的从站进行信息交互了。

### 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 中实现了较为完整的逻辑框架供开发者参考学习。 --- ###
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值