基于Zynq平台的EtherCAT主站系统设计与实现
发布时间:2021-11-19 22:05
传统Windows平台PC机主站方案存在功耗较高,便携性差等问题,使得工业成本居高不下。针对该问题,提出了一种基于Xilinx Zynq-7000平台构建嵌入式EtherCAT主站的解决方案,具备低功耗,体积小,价格便宜等特点,使得工业成本大大降低。该方案用Vivado配置FPGA硬件架构,使用PetaLinux构建实时系统并通过BSP封装技术实现硬件平台的开放共享性,将IgH主站开源框架安装到PetaLinux文件系统,最后基于IgH开源框架设计应用层程序构建EtherCAT主站并对系统进行了测试,测试结果表明该系统具备良好的周期抖动和实时性,能够满足大部分数控系统等工业设备的实时性要求。
【文章来源】:组合机床与自动化加工技术. 2020,(11)北大核心
【文章页数】:4 页
【部分图文】:
EtherCAT主站架构
应用程序开发通常有两种方法,一种是通过IgH主站提供的字符设备完成主站功能,另一种是直接调用主站模块接口作为内核模块运行。本文使用字符设备与主站模块通信,包括总线配置和周期任务的编写。如图2所示,总线配置通过应用程序来完成,包括过程数据域配置、PDO条目注册和从站信息配置。当主站总线配置完成后,应用程序还要负责周期性任务的设计,周期性任务采用Linux系统时钟中断进行控制,时钟函数采用支持纳秒级别的clock_gettime()和clock_nanosleep(),周期性任务模块设计如图3所示。其中t1/t2均为绝对时刻。
当主站总线配置完成后,应用程序还要负责周期性任务的设计,周期性任务采用Linux系统时钟中断进行控制,时钟函数采用支持纳秒级别的clock_gettime()和clock_nanosleep(),周期性任务模块设计如图3所示。其中t1/t2均为绝对时刻。应用程序代码设计流程如图4所示。其中ecrt_master_slave_config()函数负责设置从站信息:包括从站别名、位置、厂商ID和产品ID,以便在多个从站相连时EtherCAT主站能够寻找到特定的从站并与之交换PDO数据。ecrt_slave_config_pdos()函数为每个从站配置同步数据,其中SM2通道用于RxPDO过程数据同步,SM3通道用于TxPDO过程数据同步。ecrt_domain_reg_pdo_entry_list()函数负责为主站在新创建的过程数据域中注册已经定义的PDO条目,将每个从站的寄存器数据区域映射到应用层空间,从而使主站程序可以通过读写变量来操作从站的数据和状态。
【参考文献】:
期刊论文
[1]工业以太网EtherCAT的实时性研究[J]. 胡振豪,左小五,万红平. 软件导刊. 2018(02)
[2]基于ARM+FPGA的EtherCAT主站设计及实现[J]. 徐健,唐小琦,宋宝. 组合机床与自动化加工技术. 2016(06)
[3]基于AM3358处理器的嵌入式实时EtherCAT主站的构建[J]. 李备备,栾勇,王超,王喆,郑飂默. 组合机床与自动化加工技术. 2015(05)
[4]Linux实时抢占补丁研究及实时性能测试[J]. 张晓龙,郭锐锋,陶耀东,刘生. 计算机工程. 2014(10)
[5]基于MicroBlaze的PetaLinux嵌入式操作系统移植[J]. 薛慧敏,武传华,路后兵,尚东生. 微计算机信息. 2011(08)
[6]基于Linux的EtherCAT主站的研究[J]. 马春敏,康存锋,黄旭东,郑学科,杨建武,费仁元. 制造业自动化. 2011(08)
本文编号:3505961
【文章来源】:组合机床与自动化加工技术. 2020,(11)北大核心
【文章页数】:4 页
【部分图文】:
EtherCAT主站架构
应用程序开发通常有两种方法,一种是通过IgH主站提供的字符设备完成主站功能,另一种是直接调用主站模块接口作为内核模块运行。本文使用字符设备与主站模块通信,包括总线配置和周期任务的编写。如图2所示,总线配置通过应用程序来完成,包括过程数据域配置、PDO条目注册和从站信息配置。当主站总线配置完成后,应用程序还要负责周期性任务的设计,周期性任务采用Linux系统时钟中断进行控制,时钟函数采用支持纳秒级别的clock_gettime()和clock_nanosleep(),周期性任务模块设计如图3所示。其中t1/t2均为绝对时刻。
当主站总线配置完成后,应用程序还要负责周期性任务的设计,周期性任务采用Linux系统时钟中断进行控制,时钟函数采用支持纳秒级别的clock_gettime()和clock_nanosleep(),周期性任务模块设计如图3所示。其中t1/t2均为绝对时刻。应用程序代码设计流程如图4所示。其中ecrt_master_slave_config()函数负责设置从站信息:包括从站别名、位置、厂商ID和产品ID,以便在多个从站相连时EtherCAT主站能够寻找到特定的从站并与之交换PDO数据。ecrt_slave_config_pdos()函数为每个从站配置同步数据,其中SM2通道用于RxPDO过程数据同步,SM3通道用于TxPDO过程数据同步。ecrt_domain_reg_pdo_entry_list()函数负责为主站在新创建的过程数据域中注册已经定义的PDO条目,将每个从站的寄存器数据区域映射到应用层空间,从而使主站程序可以通过读写变量来操作从站的数据和状态。
【参考文献】:
期刊论文
[1]工业以太网EtherCAT的实时性研究[J]. 胡振豪,左小五,万红平. 软件导刊. 2018(02)
[2]基于ARM+FPGA的EtherCAT主站设计及实现[J]. 徐健,唐小琦,宋宝. 组合机床与自动化加工技术. 2016(06)
[3]基于AM3358处理器的嵌入式实时EtherCAT主站的构建[J]. 李备备,栾勇,王超,王喆,郑飂默. 组合机床与自动化加工技术. 2015(05)
[4]Linux实时抢占补丁研究及实时性能测试[J]. 张晓龙,郭锐锋,陶耀东,刘生. 计算机工程. 2014(10)
[5]基于MicroBlaze的PetaLinux嵌入式操作系统移植[J]. 薛慧敏,武传华,路后兵,尚东生. 微计算机信息. 2011(08)
[6]基于Linux的EtherCAT主站的研究[J]. 马春敏,康存锋,黄旭东,郑学科,杨建武,费仁元. 制造业自动化. 2011(08)
本文编号:3505961
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3505961.html