一、EtherCAT入口
源代码执行命令sudo /etc/init.d/ethercat start
,将会从文件module.c文件中的ec_init_module函数中开始往下执行初始化流程。
二、初始化大致过程
(1) ec_init_module
主要用于生成/dev/EtherCAT设备,并且调用ec_master_init初始化主机相关信息。
ec_master_init()的主要工作内容:
1.设置IDLE模式下数据发送周期;
2.初始化数据包队列;
3.初始化网络设备;
4.初始化master主状态机;
5.初始化参考时钟数据包;
6.初始化时钟数据包;
7.初始化对时监测数据包;
8.初始化字符设备,/dev/EtherCAT0;
9.初始化RTDM设备;
(2) IDLE状态进程
设备打开后,设备调用ec_master_enter_idle_phase,该函数中将启用ec_master_idle_thread进程
ec_master_idle_thread以设定的周期(send_interval)发送数据包并处理,其流程如下: