;
[0028]所述主處理模塊通過FPGA與伺服從站實現郵箱通信。
[0029]在本發明所述的EtherCAT通信系統主站通信方法中,所述主站包括兩個以太網收發器,且其中一個以太網收發器用于進行數據報文的收發、另一個以太網收發器用于實現主站環形冗余,所述方法包括:所述FPGA進行端口連接狀態、環形冗余處理。
[0030]在本發明所述的EtherCAT通信系統主站通信方法中,所述方法包括:所述FPGA過濾非EtherCAT報文。
[0031]本發明所述的EtherCAT通信系統主站及通信方法,通過FPGA的硬件實現運動控制器與伺服從站的時鐘同步,并據此實現周期性數據的收發,無需在操作系統的內核空增加模塊,也不需要增加實時補丁,即可實現精確的主從站同步通信。
【附圖說明】
[0032]圖1是本發明EtherCAT通信系統實施例的示意圖。
[0033]圖2是圖1中EtherCAT通信系統的模塊示意圖。
[0034]圖3是圖1中EtherCAT通信系統時鐘同步的示意圖。
【具體實施方式】
[0035]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0036]如圖1-2所示,是本發明EtherCAT通信系統主站實施例的示意圖,其可代替現有EtherCAT通信系統中的主站,以進行伺服從站控制。該EtherCAT通信系統主站包括主處理模塊10、FPGA(可編程邏輯器件)20以及以太網收發器(Ethernet PHY)30,并通過以太網收發器30連接參考時鐘從站和伺服從站。上述主處理模塊10具體可采用ARM芯片并運行有操作系統(可包括操作系統用戶空間和操作系統內核空間),該主處理模塊10通過外設接口(Peripheral Interface)與FPGA 20連接。
[0037]在本實施例中,主處理模塊10在操作系統用戶空間實現應用層ECATAL(EtherCATApplicat1n Layer)功能,FPGA 20完成EtherCAT通信系統主站的數據鏈路層ECAT DLL(EtherCAT Data Link Layer)功能和物理層ECAT PL(EtherCAT Physical Layer)管理功能。一路以太網收發器30通過RJ45端口連接EtherCAT從站,進行數據報文的收發,另外一路以太網收發器30作為主站環形冗余使用。
[0038]主處理模塊10包括運行在應用層的roo交互單元11,FPGA 20包括運行在數據鏈路層的F1DO收發單元22、分布時鐘單元21以及運行在物理層的物理層控制單元24,上述F1DO交互單元11、PDO收發單元22、分布時鐘單元21以及物理層控制單元24可結合相應的軟件實現。
[0039]分布時鐘單元21用于根據FPGA20的硬件時鐘信號(而非主處理模塊10的時鐘信號)周期性地生成分布時鐘報文,以實現運動控制器時鐘和伺服從站的時鐘同步。具體地,分布時鐘單元21包括延時設置單元、時鐘發送單元以及啟動控制單元。如圖3所示,延時設置單元在分布時鐘單元21初始化過程中,測算主站到參考時鐘從站SLO的傳輸延時和時間偏置,并將計算結果設置到參考時鐘從站SLO;時鐘發送單元定時將FPGA 20的數據鏈路層(DLL)時鐘Clock M發送到各個伺服從站SLl,SL2,…,SLN(N為整數),利用EtherCAT分布時鐘同步機制,確保所有伺服從站分布時鐘(DC)與主站時鐘嚴格同步上;啟動控制單元在主站時鐘與伺服從站時鐘同步上以后,計算各伺服從站的同步信號啟動時間和主站的中斷(Interrupt)啟動時間,并保證所有從站同步信號啟動時間與主站中斷啟動時間在相位上對齊。
[0040]通過基于FPGA 20的硬件時鐘的分布時鐘單元21,運動控制器依據上述主站中斷信號作的周期規劃數據就能被所有伺服從站在同一周期同步執行,實現高速、高精高同步性能控制。
[0041]PDO交互單元11用于根據應用層任務調用生成PDO數據,包括I/O數據、控制數據、狀態數據等,并處理來自伺服從站的反饋數據供應用層任務調用。PDO收發單元22基于分布時鐘單元21的通信周期(即基于FPGA 20的硬件時鐘)將來自HXKProcess Data Object)交互單元11的TOO數據封裝為EtherCAT數據幀并將來自物理層控制單元24的EtherCAT數據幀解封后傳送給PDO交互單元11;物理層控制單元24用于控制以太網收發器30實現EtherCAT數據幀的全雙工收發以及分布時鐘報文的發送。
[0042]EtherCAT主站通過上述分層技術,將EtherCA物理層中實時性要求最高的TOO收發功能放在FPGA 20中實現,利用FPGA 20本身的硬件實時來保證EtherCAT主站通信對實時性的苛刻要求。
[0043]另外,由于物理層管理功能(即物理層控制單元24)也在FPGA20中實現,省去了操作系統對以太網收發器30的驅動調度,從而消除了 EtherCAT數據報文收發的延時不確定性問題,去除了 EtherCAT數據報文發送周期的抖動,使EtherCAT通信系統獲取穩定的分布時鐘同步性能。由于實時性在FPGA 20中的數據鏈路層得到保障,而EtherCAT主站的應用層可以直接運行在主處理模塊10的操作系統的用戶空間,無需在內核空間增加模塊或者實時補丁,在獲取優越的硬實時的情況下,還能最大限度的減小操作系統的負荷,保證系統的可靠穩定運行。
[0044]上述主站的主處理模塊10還包括文件解析單元13、站點掃描單元12、狀態機管理單元15、配置單元14以及郵箱通信單元16,相應地,FPGA 20包括SD0( Service DataObject)收發單元23,該SDO收發單元23用于通過物理層控制單元24實現文件解析單元13、站點掃描單元12、狀態機管理單元15、配置單元14以及郵箱通信單元16與各個伺服從站的數據交互,即接收文件解析單元13、站點掃描單元12、狀態機管理單元15、配置單元14以及郵箱通信單元16的數據報文,然后轉發至物理層控制單元24,同時接收物理層控制單元24返回的數據報文,通知應用層的相關單元讀取。
[0045]具體地,文件解析單元13從EtherCAT從站的設備描述文件(XML文件)中解析出與配置相關的從站信息,如:供應商ID(Vendor ID)、產品代碼(Product Code)以及過程數據PD0(Process Data Object)映射等。站點掃描單元12用于實現主站對連接到EtherCAT網絡上的所有從站進行掃描,獲取在線的從站數和各個從站的設備描述信息。狀態機(FiniteState Machine,FSM)管理單元15用于完成各從站的應用層狀態切換管理,包含四種狀態的管理:初始化(INIT)、預操作(PREOP)、安全操作(SAFEOP)、操作狀態(OP)。配置單元14用于在從站進入PREOP狀態以后,根據用戶想要的操作模式對EtherCAT從站進行相關配置,如通信周期、同步模式、DC周期、PDO映射等。郵箱通信單元16用于實現EtherCAT服務數據SDO(Service Data Ob ject)的讀寫,視主站規格,可部分或全部包含以下應用層協議:CoE(CANopen over EtherCAT)、SoE(Servo over EtherCAT)、FoE(File over EtherCAT)、EoE(Ethernet over EtherCAT)、AoE(ADS over EtherCAT)、VoE(Vendor over EtherCAT)。