code file
数据链路层:是ESC与从站微处理器的数据交换层,ESC与从站微处理器之间可以采用SPI ( Serial Peripheral Interface,串行外设接口)模式传输数据
ethercat_spi_hw.c
串行模式处理器接口模块。定义了串行模式下的微处理器与ESC通信接口函数,供上层应用通信时调用,完成底层数据的交换。
应用层:真正实现EtherCAT协议的部分,包括状态机处理,周期性过程数据的处理以及非周期性邮箱数据的处理
ecatslv.c
状态机的处理模块。状态机转换请求由主站发起,主站将请求状态写入ALControl寄存器中,从站采用查询的方式获取当前该状态转换的事件,将寄存器值作为参数传入AL_ControlInd()函数中,该函数作为核心函数来处理状态机的转换,根据主站请求的状态配置SM通道的开启或关闭,检查SM通道参数是否配置正确等。
ecatappl.c
EtherCAT从站应用层接口,整个协议栈运行的核心模块,EtherCAT从站状态机和过程数据接口。Main()函数的定义,输入输出程数据对象的映射处理,ESC与处理器本地内存的输入输出过程数据的交换等。
mailbox.c
邮箱通信处理模块。包括邮箱通信接口的初始化,邮箱通道的参数配置,根据当前状态机来开启或关闭邮箱服务,邮箱通信失败后的邮箱重复发送请求,邮箱数据的读写以及根据主站请求的不同服务类型调用相应服务函数来处理,本文主要研究的是CoE邮箱服务类型的处理。
ecatcoe.c
COE处理函数定义模块。包括CoE接口的初始化,对当前请求的CoE服务的处理以及对保存而未处理过的