中图分类号:TP273 文献标识码:A 文章编号:2096-4706(2025)08-0016-05
Abstract:This paper introduces the design technical scheme of building a fully domestic master station controler from hardware to software basedonLoongson 3A50o0 procesor.BasedonLoongArch architecture,Xenomai 4real-time kemel transplantationandperformancetestarecariedout.TheIGHEtherCATmasterstationarchitectureand master-slavestationtest environmentarebuilttoverifythereal-timeperformanceofEtherCATmasterstationunderLoongArcharchitecture.Through comparisonanddataanalysis,thefeasibilityoftheapplicationofLoongsonarchitectureinindustrialreal-timecontroleris proved,and the design of self-controllableand fully domestic EtherCAT master station is fnally completed.
Keywords:localization; Loongson;LoongArch architecture;EtherCAT master station
0引言
随着工业自动化的快速发展,工业控制系统愈发庞大复杂。特别是工业以太网、机器视觉、大数据模型的应用,对工业主控器的功能和性能提出了越来越高的要求。在确保实现高速、精准、稳定控制的同时,对算力、实时性、扩展性也有了更高需求。基于小型嵌入式系统的PLC已无法满足主机需求,因此基于PC-Base的主机方案得以迅速发展,有望成为未来工业控制的一大趋势。然而,这一技术长期被国外几大厂商垄断。国内生产的控制器大多采用进口芯片方案并借助软件授权方式,难以实现自主可控,也无法有效控制成本。所以,开发一款采用国产CPU及软件系统的主控制器具有开创性意义。
令人振奋的是,为了打破软硬件生态发展受制于人的局面,龙芯中科推出了龙架构LoongArch,打破了我国CPU长期依赖国外技术的状态[1]。LoongArch是龙芯中科(LoongsonTechnology)自主研发的一种指令集架构,它是在充分考量兼容性、自主性、先进性、生态建设等因素的基础上,结合多年处理器研发经验与技术积累所创建的全新架构。
龙芯CPU在消费端PC及服务器领域已有广阔的市场应用。然而,工业应用与工艺以及诸多硬件紧密关联,发展龙芯的工业生态面临极大困难,而工业恰恰是国家科技与经济命脉之所在。
本文方案以研发百分百国产化工业控制器为目标,选用龙芯3A5000作为主控制器CPU,操作系统采用欧拉Linux系统。为解决实时性问题,采用实时内核Xenomai4与EtherCAT相结合的方式构建EtherCAT主站,开展实时内核EtherCAT在龙芯CPU上的架构建设,以及系统驱动和应用优化工作,从而建立龙芯实时系统应用的软硬件生态。鉴于硬件和软件的自主可控性,本方案有助于国家应对复杂的竞争与挑战,具有重要的战略意义。
1 EtherCAT主站设计及优化
1.1 EtherCAT主站硬件设计
硬件选用龙芯工业级3A5000平台,采用自主指令系统(LoongArch)的超标量处理器核LA464。其拥有4个物理核心,主频范围为 2 . 3 ~ 2 . 5 G H z ,单核SPECCPU2006Base实测性能超过26分,是一款性能卓越、效率超高的国产处理器。其CPU多核技术有利于在运行实时内核时进行分核操作,较高的频率能够满足高精度时钟节拍的要求[2]。桥片选用7A1000,EtherCAT主站网口采用主板内置的GMAC0。在设计过程中,充分考虑了对龙芯2K2000、2K1500等工业级嵌入式CPU的兼容性,以便形成高中端应用。硬件设计框图如图1所示。

1.2EtherCAT主站软件设计
软件方面,操作系统选用欧拉系统内核。欧拉系统秉持“共建、共享、共治”原则,自openEuler社区开源以来,已吸引超过1300家头部企业、研究机构和高校加入,汇聚了超16800名开源贡献者,并成立100多个特别兴趣小组(SIG)。在业界看来,openEuler开源社区已成为中国最具活力与创新力的开源社区。2023年,欧拉系的目标是新增市场份额超 3 5 % ,在国内新增市场份额排名第一[3]。
事实上,以技术为根基持续创新、不断突破边界,已成为欧拉的重要标签。欧拉创造性地提出一套代码、架构支持多样性算力和全场景。openEuler是一个契合技术趋势和客户需求的操作系统,其定位是数字基础设施的开源操作系统。
在万名开发者的参与和贡献下,经过技术创新,欧拉内核已在电力、交通,以及巡检机器人、无人机、机器狗等多个领域的众多项目中落地应用。
实时内核采用开源的Xenomai4,它是在3.2版本基础上发展而来的新一代实时内核架构,更为精简,更侧重于通用驱动,便于部署。其中,EVL指嵌入式多样性实时层(EmbeddedVersatileLayer),它是Xenomai实时框架中的一个组件。EVL旨在通过创建一个更紧凑、更可靠的实时层,提升Linux系统的实时性能。相较于之前的实时子系统,如Cobalt,该层的代码复杂性更低,且能更好地集成到Linux内核中。EVL核心的设计重点在于简化功能集合并重用通用驱动模型,此举能够减少内核的代码占用量,并提供一种更高效、成本更低的实时任务处理方法。根据任务优先级和紧急程度的不同,可将任务分为实时任务
和非实时任务两大类[4]。
通信部分采用EtherCAT协议,它是一种开放的、基于以太网的现场总线系统,具备高实时性、确定性等特性,支持多种设备连接拓扑结构,在工业自动化领域应用广泛。EtherCAT主站部分采用开源的IGH。目前,开源的EtherCAT主站软件有Etherlab的IGHEtherCATMaster[5以及RT-LAB的SOEM,相比之下,IGHEtherCATMaster的功能更为完备。
软件设计框图如图2所示。

1.3EtherCAT主站软件移植及优化
本控制器首先需在对欧拉内核、Xenomai4、IGHEtherCAT等软件编译时增加LoongArch架构支持,并建立编译环境。这一过程工作量巨大,需要与龙芯公司进行联合开发。
Xenomai4的编译安装主要涉及内核和API接口库。首先,需编译具有EVL内核的Linux源码,编译工具链为loongarch64_linux_gcc,随后使用配置工具makemenuconfig配置内核。在此过程中,需要启用CONFIG_ELV、CONFIG_EVL_LATMUS以及CONFIG_EVL_HECTIC,以启用EVL内核并支持latmus和hectic测试程序。编译完成后,安装模块和内核,并更新引导配置。接着编译API库libecl,需使用meson构建,交叉编译工具链同样选择为loongarch64_linux_gcc。编译完成后将其安装到3A5000主机上,完成上述操作后,还需进行一系列测试以验证功能的正确性。
IGHEtherCAT的编译安装,需下载开源的EtherCATIGH1.6.2代码,随后配置编译环境,交叉编译工具链选择loongarch64_linux_gcc,网卡选用3A5000内置网卡驱动stmmac。首先编译主站协议栈库和主站工具,生成EtherCAT命令行工具,用于配置和管理主站。生成的ethercatctl命令行工具,可用于控制主站状态,提供启动、停止、重启等操作命令。接着编译内核驱动模块,生成ec_master.ko和ec_dwmac_loongson.ko这两个Linux驱动模块。其中,ec_master.ko实现了EtherCAT主站协议栈,ec_dwmac_loongson.ko是优化后的网卡驱动,在网卡驱动层面直接支持IGH接口,使IGH能够直接控制网卡进行数据收发。将编译后的文件及工具程序放置到3A5000上,便可通过IGH命令对从站进行简单控制。至此,即可编译IGH主站程序进行开发与控制了。
对Xenomai4软件进行实时性优化[,参考从修改数据帧的角度来提高系统实时性的方法[,使其能在龙芯3A5000上稳定运行,确保实时任务抖动小于2 0 μ s 。接着在此基础上搭建IGH开源主站框架,针对内置GMAC0网口进行实时驱动优化,消除抖动因素。最后挂载伺服及IO从站进行数据测试,并持续优化软件代码及驱动文件,使EtherCAT数据抖动小于 2 0 μ s 。
1.4Xenomai4环境测试和性能分析
Xenomai4移植完成后,需开展单元测试和性能测试。Xenomai4提供了一系列单元测试程序,在构建libevl时,这些程序会生成在\$prefix/tests目录下。单元测试结果如图3所示。
1.5 IGH主站的搭建和测试
EtherCAT主站对网卡数据收发的实时性要求颇高。为实现EtherCAT协议,需对普通网络设备驱动加以修改,以提升数据收发处理效率。网卡优化完成后,利用龙芯工具链编译并搭建IGH主站。搭建完毕后,运用EtherCAT命令进行功能测试,如图6所示。
2 EtherCAT主站周期抖动测试
2.1EtherCAT主从站系统搭建
主站采用龙芯3A5000控制板,运行EVL实时内核与EtherCAT主站。通过GMAC0网口与4个自主开发的EtherCAT从站连接,从站间采用线型菊花链模式进行连接。同时,在主站和从站之间增设自主开发的EtherCAT分析仪,用于数据监测与分析。在从站端,将示波器与DC信号相连,以监测从站间同步周期与抖动情况。搭建此模拟环境的目的在于模拟实际应用环境中的三轴运动加IO控制,组建的测试系统如图7所示,实物图如图8所示。

2.2主站测试软件的编写
主站用户程序需要按照所连接的从站情况及控制需求逻辑来编写。主要过程涵盖主站和从站的配置以及实时周期性任务的实现。主站借助FPRD命令获取主站发送的数据帧到达各从站端口的时间,并计算各非参考从站与参考从站的传输延时[8]。配置过程需配置主站指针及数据域、依据实际从站信息生成从站配置、配置PDO、DC、同步参考等,具体流程如图9所示。
↓编写从站配置数组√ 配置从站DC信息获取主站指针 T配置从站时钟参考获取数据域指针↓ 完成配置准备进入实时周期任务创建从站配置信息 L↓ 为数据域分配指针地址,配置从站PDO信息 准备实时访问数据域
周期任务分为用户任务和空闲任务。空闲任务主要用来监测和控制从站状态机。当有用户数据时,空闲任务停止。具体流程如图10所示。
2.3EtherCAT的分布时钟(DC)同步精度测试
参考时钟的选取方案有两种:以主站时钟或以从站时钟作为参考时钟[9];本文选择第一个从站时钟作为参考时钟。使用示波器测量从站DC引脚,以此测量3个从站间时钟同步精度误差,测量情况如图11所示。测量结果显示,分布时钟误差小于 2 0 n s 。

2.4EtherCAT周期抖动测试
主站抖动指的是主站周期性连续发出数据时,相邻两个周期之间时间间隔大小的变化。时间间隔差异越大,抖动越大,对任务实时性的影响也就越大[10]。利用EtherCAT网络分析仪抓取通信过程中的大量数据,并通过Wireshark对数据进行查看与分析。将数据帧时间戳导出进行分析,数据表明,当运行周期为1 m s 时,截取250000个样本数据,抖动 lt; 2 0 μ s 完全能够满足伺服的应用需求,测试结果的抖动图如图12所示。


3结论
本文设计的控制器,硬件采用国产CPU龙芯3A5000,基于自主指令集LoongArch架构;软件方面,从系统内核、实时内核到EtherCAT主站,采用开源软件并进行自主改造优化,构建了国产控制器的生态基础架构。后续,我们团队将进一步迭代完善此架构,并将其应用于团队研发的、具有完全自主知识产权的KRmotion软件控制平台,以研发出一款基于龙芯生态的百分百国产化控制器。鉴于Xenomai实时核在龙芯LoongArch架构上属首次应用,且Xenomai4作为新一代实时核,在国内外应用案例相对较少,移植过程中遭遇诸多困难。截至发文之时,尚未达到最佳性能,仍在进一步完善中,期望有更多人士参与讨论与研究。
参考文献:
[1]岳宇航.基于国产龙芯CPU的气井控制器[D].西安:西安石油大学,2021.
[2]胡伟武,汪文祥,吴瑞阳,等.龙芯指令系统架构技术[J].计算机研究与发展,2023,60(1):2-16.
[3]杨光.openEuler累计部署610万套成为企业数字化转型首选操作系统[N].中国信息化周报,2023-12-18(023).
[4]邱昌华,郭永杰,李宗坡,等.基于Xenomai的EtherCAT主站开发与实时性优化[J].自动化应用,2021(12):82-86.
[5]李备备,栾勇,王超,等.基于AM3358处理器的嵌入式实时EtherCAT主站的构建[J].组合机床与自动化加工技术,2015(5):1-5.
[6]刘剑,仲宇,王琦.嵌入式Linux实时性改造技术综述[J].航天控制,2018,36(2):93-97.
[7]刘星宇,张春雷,刘冠宸.基于IgH的EtherCAT主站开发及实时性研究[J].精密制造与自动化,2020(4):42-45.
[8]李国辉,韩利峰,李丹清,等.基于国产操作系统的EtherCAT的控制系统开发[J].计算机应用,2020,40(S1):238-242.
[9]荣锋,孙亚硕.EtherCAT分布时钟同步算法的研究与优化[J].仪表技术与传感器,2022(12):113-118.
[10]方远东,刘建群,梁学胜,等.基于PC的全软件雕铣机数控系统设计及实现[J].机床与液压,2022,50(6):98-102.
作者简介:孙东华(1983.09—),男,满族,辽宁沈阳人,研发经理,大学本科,研究方向:特种控制器;刘亚冬(1988.09—),男,汉族,辽宁沈阳人,研发工程师,大学本科,研究方向:控制器。