中圖分類號: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—),男,漢族,遼寧沈陽人,研發工程師,大學本科,研究方向:控制器。