一種基于SPARC架構CPU的EtherCAT主站模塊的制作方法
【專利摘要】本發明名稱一種基于SPARC架構CPU的EtherCAT主站模塊,屬于以太網控制自動化技術領域。本發明的目的是解決現有的軟主站提供的上層結構不能滿足日益豐富的用戶需求,并且配置過程較慢,效率較低的問題。為解決這些問題,本發明提供一種EtherCAT主站模塊,提供定制化的上層接口,采用雙口RAM通信,完成下裝配置段表的工作,提高了EtherCAT主站模塊的配置效率。本發明主要用于工業控制中,作為EtherCAT主站,完成與PLC控制器的通信,接受PLC的控制,周期性地向EtherCAT從站讀寫數據。
【專利說明】
一種基于SPARC架構CPU的Ether CAT主站模塊
技術領域
[0001 ]本發明屬于EtherCAT (以太網控制自動化技術)領域,具體涉及一種工業實時以太網EtherCAT主站模塊。
【背景技術】
[0002]EtherCAT由德國倍福公司提出,由于其具有網絡實時性高、拓撲結構靈活、系統配置簡單等特點,目前已得到越來越廣泛的應用。EtherCAT采用主從式結構,主站可以為一般的PC機。控制周期從主站發出,主站發送下行電報。數據幀遍歷所有從站設備,每個設備在數據幀經過時分析尋址屬于本機的報文,根據報文頭中的命令讀入數據或插入數據到報文中指定位置,并且從站把該報文中工作計數器值加I,表示該數據被處理。數據幀在訪問位于整個系統邏輯位置的最后一個從站后,該從站把經過處理的數據幀作為上行電報直接發送給主站。主站收到此上行電報后,處理返回數據,本次通信結束。
[0003]目前,EtherCAT設備主要由德國倍福公司生產,德國倍福公司只提供完整的EtherCAT主站系統而沒有單一的主站模塊。其他廠商生產的EtherCAT主站模塊均為國外公司提供的軟主站,其提供的上層接口不能滿足日益豐富的用戶需求。在現有的實現方式中,對從站的配置是靠PC端向主站模塊下裝.xml格式的配置文件,由主站進行解析配置,由于.xml文件過大,大大增加通信負擔,并且主站模塊解析速度慢,導致配置過程時間很長,影響主站模塊工作效率。
【發明內容】
[0004]為了克服現有技術中的缺陷,本發明提供一種EtherCAT主站模塊,提供定制化的上層接口,采用雙口 RAM通信,通過下裝配置段表的方式,提高EtherCAT主站模塊的配置效率。
[0005]為了達到上述目的,本發明采用如下技術方案:
[0006]EtherCAT主站硬件部分,包括:CPU功能電路,FPGA功能電路,雙以太網接口電路,電源電路。其中,
[0007]所述CPU功能電路由SPARC V8構架微處理器,實現了EtherCAT數據幀的組包解包工作。其中SPARC架構的處理器采用SPARC“寄存器窗口”結構,相較于其他RISC處理器,SPARC架構處理器允許使用簡單高性能的編譯器,大大減少了存儲器加載/存儲指令的時間,在運行大型應用程序時表現尤為突出。SPARC具有執行速率高和開發周期短的特點,其處理過程主要分兩部分:1、發包過程:上位機數據經由FPGA傳輸給CPU后,CPU按照EtherCAT數據幀的格式進行組包處理,然后由FPGA組成以太網幀,最后由PHY控制發送數據。2、收包過程:以太網上傳輸的數據由PHY芯片接收,首先經過FPGA進行解包處理,然后將有效數據傳輸給CPU進行進一步的解包處理,最后通過DPRAM將最終數據傳輸給上位機。
[0008]所述FPGA電路作為數據的中繼站,主要用于實現CPU與上位機數據交互和雙MAC控制器的兩項工作。FPGA中主要實現了雙口 RAM和MAC控制器兩個功能。其中雙口 RAM用于將數據在CPU和上位機間進行交互;MAC用于將數據在CPU和網絡之間進行交互。
[0009]所述以太網接口電路實現以太網的物理連接功能。為節省空間采用單片雙PHY芯片作為核心芯片。通過FPGA對其進行管理配置,選擇合適的工作模式。
[0010]所述電源電路是整個模塊的能量供給站,為主站模塊的提供電源。整個模塊需要3條電壓軌道分別為:3.3V、1.5V和1.2V。其中3.3V通過50針接插件JI來提供,1.5V和1.2V通過選取合適的DC-DC電源芯片來提供。為提高電源質量選取LDO作為電源電路的核心芯片,分別實現3.3V-1.5V和3.3V-1.2V的電源轉換。
[0011]EtherCAT主站的軟件部分,包括= EtherCAT主站任務調度模塊,EtherCAT主站通信控制模塊,EtherCAT主站數據收發模塊,EtherCAT主站配置段表解析模塊;所述EtherCAT主站任務調度模塊負責調度EtherCAT主站通信控制模塊和EtherCAT主站數據收發模塊,EtherCAT主站通信控制模塊負責調用EtherCAT主站配置段表解析模塊。其中,
[0012]所述EtherCAT主站任務調度模塊實現EtherCAT主站模塊的主任務,用于實現EtherCAT主站的狀態轉換和各功能的正確調用。
[0013]所述EtherCAT主站通信控制模塊提供PLC對EtherCAT主站模塊的控制功能,用于處理PLC發送的對EtherCAT主站的控制命令。
[OOM] 所述EtherCAT主站數據收發模塊提供EtherCAT主站向EtherCAT從站收發數據的功能。
[0015]所述EtherCAT主站配置段表解析模塊用于解析來自PC端下裝的配置段表,完成對EtherCAT主站和EtherCAT從站的配置。
【附圖說明】
[0016]圖1為本發明中硬件組成方式;
[0017]圖2為本發明中軟件實現方式;
[0018]圖3為本發明中EtherCAT主站任務調度模塊流程圖;
[0019]圖4為本發明中EtherCAT主站通信控制模塊流程圖;
[0020]圖5為本發明中EtherCAT主站數據收發模塊流程圖;
[0021 ]圖6為本發明中EtherCAT主站配置段表解析模塊流程圖;
[0022]圖中箭頭方向信號傳輸方向。
【具體實施方式】
[0023]下面結合附圖對本發明【具體實施方式】作進一步詳細說明。
[0024]一種EtherCAT主站模塊,其硬件組成方式如圖1所示,包括:CI3U最小系統電路,FPGA最小系統電路,雙以太網接口電路,電源電路。
[0025]CPU最小系統電路是EtherCAT主站模塊的核心模塊,主要負責EtherCAT數據幀核心處理工作,屬于EtherCAT主站模塊的神經中樞。主要由CPU、SDRAM、FLASH、UART和DSU組成。CPU采用SPARC V8架構的處理芯片,起源于精簡指令集系統計算機(RISC)體系,但相較于其他RISC處理芯片,它允許使用簡單高性能的編譯器,縮減了存儲器加載/存儲指令的時間。(PU中數據經由FPGA來實現與外界的傳輸,主要工作分二部分:一、協調CPU、上位機和MAC間的數據收發,實現主站任務調度功能,建立合適的仲裁機制;二、根據預先加載的配置信息,按照規則將數據進行解包組包的工作,完成數據的提取工作。FLASH作為下裝配置文件、程序及數據的存儲單元,UART作為系統的打印輸出接口,DSU是系統的調試接口。
[0026]FPGA最小系統電路是EtherCAT主站模塊的通信網關模塊,主要負責EtherCAT主站的數據交互功能。主要由FPGA和配置FLASH兩部分組成,FPGA作為主體部分主要起到兩方面的作用:一方面上位機和CHJ進行數據交互;另一方面CPU和以太網進行數據交互。其中上位機和CPU通信通過FPGA實現雙口 RAM進行傳輸,CPU和以太網接口電路通過FPGA實現以太網控制器MAC來進行傳輸。為節省CPU和上位機操作資源,在FPGA實現雙口 RAM的同時也完成數據交互的握手協議、狀態判定。同時在實現MAC時加入相應的數據驗證,以確保數據的正確性。配置FLASH用來存儲FPGA的配置程序,主要由四種配置模式:(I)并行模式,(2)主從模式,(3)串行模式,(4)外設模式。為提高配置速率此處我們使用并行模式進行配置。上電時,FPGA將外部FLASH中的數據讀入片內RAM,完成配置后,進入工作狀態;掉電后FPGA恢復為白片,內部邏輯消失。從而實現可重配置的功能。
[0027 ] 雙以太網接口電路是EtherCAT主站模塊以太網物理層電路。用于以太網傳輸的物理部分,為節省空間主體使用一個單片雙PHY芯片。通過FPGA來對其進行配置,根據現場的情況設置合適的操作模式并進行工作。
[0028]電源電路是EtherCAT主站模塊的能量供給模塊,主要負責為其他電路提供電能,保障其它電路能夠穩定的工作,由于整個模塊需要3條電壓軌道分別為:3.3V、1.5V和1.2V。因此其主要工作是進行3.3V-1.5V和3.3V-1.2V的DC-DC轉換。在保證功耗的前提下,為節省空間選用單片雙路LDO作為電源電路核心芯片,為主站模塊提供高質量的電源。
[0029]一種EtherCAT主站模塊,其軟件實現方式如圖2所示,包括= EtherCAT主站任務調度模塊,EtherCAT主站通信控制模塊,EtherCAT主站數據收發模塊,EtherCAT主站配置段表解析模塊;所述EtherCAT主站任務調度模塊負責調度EtherCAT主站通信控制模塊和EtherCAT主站數據收發模塊,EtherCAT主站通信控制模塊負責調用EtherCAT主站配置段表解析模塊。
[0030]EtherCAT主站任務調度模塊為EtherCAT主站模塊的主任務,用于實現EtherCAT主站的狀態轉換和各功能的正確調用。其流程圖如圖3所示,首先對主站進行上電的初始化過程,包括各設備(網卡,串口,雙口RAM)的驅動初始化,還包括主站狀態機的初始化,其中status表示主站的運行狀態,O表示停止運行,I表示可以運行;conf ig_status表示主站配置文件的存放地址,O表示原有配置文件,I表示新下裝的配置文件。在初始化結束后,進入主站的主循環中,首先是對主站狀態的檢查,包括檢查主站當前status是否處于可以運行狀;檢查conf ig_status所指示的配置文件是否正確(包括是否存在文件,CRC校驗),如果檢查均通過,則進入主站配置過程,否則將status置為O,conf ig_statUs置為O,跳轉至通信處理模塊。主站配置過程將解析config_StatuS所指示的配置文件,并將配置命令封裝為EtherCAT協議幀,發送給各個從站,同時檢查每條配置命令是否成功執行,若全部配置命令均配置成功,且所有從站均進入OP狀態(運行狀態),主站進入周期數據收發過程,否則將status置為O,COnfig_StatuS置為O,跳轉至通信處理模塊。周期運行階段,主站將從配置文件中得到的參數,封裝成周期數據收發的EtherCAT協議幀,周期對從站進行讀寫,在收到從站響應的數據幀后,對數據幀進行解析,把各模塊的數據存放至雙口 RAM對應地址。同時檢查從站狀態是否保持在OP狀態(運行狀態),檢查讀寫操作是否完全執行。若出現錯誤或檢查到cmd為O,退出周期運行的循環,進入通信處理模塊。通信處理模塊用來響應PLC通過雙口 RAM發來的控制命令,命令包括:停止運行,開始運行,下裝配置文件,掃描從站信息,下裝從站固件等,每個命令在處理完成后,會將response值修改為I,表示命令已執行,并將error值修改為執行產生的返回值,以告知PLC命令執行情況。另外,對于停止命令,會將status值置為0,運行命令將status置為I,下裝配置文件會將status置為I,同時將config_status置為1,表示下裝完成。若在配置完成后,配置執行正確,且configjtatus為1,則將下裝的配置文件保存至原有配置文件處,覆蓋掉原有的配置文件。
[0031 ] EtherCAT主站通信控制模塊提供PLC對EtherCAT主站模塊的控制功能,用于處理PLC發送的對EtherCAT主站的控制命令。其流程圖如圖4所示,EtherCAT主站通信控制模塊處理包括運行,停止,掃描從站,下裝配置文件,下裝固件等在內的控制命令,對不同的命令做出響應及處理,并在下裝配置文件命令到來時調用EtherCAT主站配置段表解析模塊,并告知EtherCAT主站任務調度模塊進行相應的主站狀態切換。通信控制模塊可以根據實際用戶的需要,提供定制化的接口命令供用戶使用。
[0032]EtherCAT主站數據收發模塊提供EtherCAT主站向EtherCAT從站收發數據的功能。其流程圖如圖5所示,由于EtherCAT協議是基于標準以太網協議的一種工業現場總線協議,按照協議分層可分為以下四層:以太網層,EtherCAT層,EtherCAT子層,應用層。按照分層隔離的原則,在組EtherCAT完整的數據包時,分為4個功能函數,每個函數對應一層協議組包。其分別為:應用層:負責組織需要周期發送的過程數據,或是組織需要非周期發送的郵箱數據幀的幀頭和其中包含的應用層協議,例如CoE,FoE等;EtherCAT子層:負責將應用層數據封裝為EtherCAT子幀,添加頭部信息,而其中的index和狀態值只給初始化值O,在下層來確定具體參數;EtherCAT層:負責將各EtherCAT子幀組成總幀,添加頭部信息,并且負責將長度超出以太網幀限制的EtherCAT總幀進行拆幀;負責向該總幀中各子幀添加index和狀態值;以太網層:負責將EtherCAT幀封裝為標準以太網幀,發往目的MAC地址。EtherCAT主站數據收發模塊實現全部的EtherCAT數據包的發送和接收,實現EtherCAT協議幀的組幀和拆幀,向其他模塊屏蔽下層協議實現細節。
[0033]EtherCAT主站配置段表解析模塊用于解析來自PC端下裝的配置段表文件,并完成對EtherCAT主站和EtherCAT從站的配置。其流程圖如圖6所示,EtherCAT主站配置功能模塊需要實現以下三個功能:對配置文件的完整性和正確性進行檢查;能夠保存當前正確運行所需的配置文件以方便掉電重啟后仍可在不重新下裝配置的條件下繼續運行;完成對配置文件的解析以及對EtherCAT主從站的配置。首先,在EtherCAT主站剛上電啟動時,由于需要其能夠自動進入到運行狀態,因此需要在其flash中保存上一次正確運行時的配置文件。在剛上電啟動時,首先需要對該文件的完整性和正確性進行檢查,看其是否正確無誤。其次,在一個配置文件正確完成對EtherCAT主從站的配置后,需要將該文件保存至flash中,覆蓋掉原有的配置文件。若當前配置文件沒能完成對EtherCAT主從站的配置,則不進行復制,還原為原有的配置文件重新進行配置。然后按照配置文件格式,獲取從站數量,各從站配置參數地址,各從站配置命令數,存入從站狀態數據結構中,初始化各從站的狀態為O,初始化時從站配置狀態為O,初始化從站配置狀態偏移值為O,將該數據結構作為接下來配置過程的狀態區。求出各個從站命令數量的最大值,作為總的配置命令的發包數。由于為了盡快將多個從站配置完成,單個EtherCAT總幀包含了各個從站的配置命令子幀,每個子幀可以發送一條配置命令,因而至少要發送各從站命令數量最大值個EtherCAT總幀。由于各個從站配置命令的數量不一致,當從站命令數不大于當前發包數時,意味著該從站命令已全部發送完畢,在組EtherCAT總幀時將沒有該從站的子幀,這時將該從站的數據結構中finish值置為I。同時要判斷有子幀的從站是否為最后一個從站,相應的子幀中要做出修改。若所有從站命令均發送完畢,則退出該函數,返回配置成功。若在配置過程中收到的響應數據和需要校驗的數據對比不吻合,則退出配置,返回配置錯誤。
[0034]本發明不限于上述實施方式,本領域技術人員所做出的對上述實施方式任何顯而易見的改進或變更,都不會超出本發明的構思和所附權利要求的保護范圍。
【主權項】
1.一種基于SPARC架構的全國產EtherCAT主站模塊,其特征在于,所述EtherCAT主站模塊包括:EtherCAT硬件部分,EtherCAT軟件部分。 所述EtherCAT硬件部分包括:CRJ功能電路,FPGA功能電路,雙以太網接口電路;其中, 所述CRJ功能電路由SPARC V8構架微處理器來實現EtherCAT數據幀的打包解包工作; 所述FPGA電路主要用于CRJ與上位機數據交互、雙MAC控制器的實現兩項工作; 所述以太網接口電路實現以太網的物理連接功能; 所述EtherCAT軟件部分包括= EtherCAT主站任務調度模塊,EtherCAT主站通信控制模塊,EtherCAT主站數據收發模塊,EtherCAT主站設置斷表解析模塊;其中, 所述EtherCAT主站任務調度模塊為EtherCAT主站模塊的主任務,用于實現EtherCAT主站的狀態轉換和對EtherCAT主站通信控制模塊,EtherCAT主站數據收發模塊,EtherCAT主站設置斷表解析模塊正確調用; 所述EtherCAT主站通信控制模塊提供PLC對EtherCAT主站模塊的控制功能,用于處理PLC發送的對EtherCAT主站的控制命令; 所述EtherCAT主站數據收發模塊提供EtherCAT主站向EtherCAT從站收發數據的功能;所述EtherCAT主站配置段表解析模塊用于解析來自PC端下裝的配置段表來完成對EtherCAT主站和EtherCAT從站的配置。2.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,所述CPU功能電路采用32位SPARC V8的CPU。3.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,所述程序存儲器采用FLASH存儲。4.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,所述雙MAC控制器是由FPGA電路實現的。5.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,EtherCAT主站任務調度模塊控制其他模塊的正確調用。6.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,提供PLC對EtherCAT主站模塊的控制功能。7.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,EtherCAT主站數據收發模塊提供EtherCAT主站向EtherCAT從站收發數據的功能。8.根據權利要求1所述的實時以太網EtherCAT主站模塊,其特征在于,EtherCAT主站配置段表解析模塊提供配置文件的解析。
【文檔編號】H04L12/40GK106059877SQ201610566163
【公開日】2016年10月26日
【申請日】2016年7月18日
【發明人】范文斌, 南揚, 豐大軍, 劉駿
【申請人】中國電子信息產業集團有限公司第六研究所