


摘要:工業以太網總線技術EtherCAT是一種基于以太網的高性能、低成本的實時通信技術,它可以實現分布式控制系統的高速、低延遲、同步和確定性的通信。EtherCAT在工業自動化領域有著廣泛的應用,如機器人、數控機床、汽車制造等。然而,EtherCAT與工控機端的通信網絡一般采用TCP/IP協議,由于其非實時性通信方式,不能直接與EtherCAT從站交換數據,需先進行通信協議轉換。通信轉換需要借用硬件介質來實現。為了實現EtherCAT與工控機端的TCP/IP協議的互通,本文設計了一種基于STM32單片機的通信轉換系統,該系統利用FPGA開發的高速、低延遲、同步和確定性的TCP/IP通信模塊,實現了EtherCAT與TCP/IP協議的轉換。本文介紹了系統的硬件結構和軟件設計,驗證了系統的通信性能和效率。
關鍵詞:STM32F103;EtherCAT;FPGA;UDP;通信轉換
以太網控制自動化技術EtherCAT在工業自動化領域應用廣泛。在工業以太網總線技術EtherCAT中,從站之間的通信采用分布式時鐘同步機制,保證了通信的高速、低延遲、同步和確定性。然而,EtherCAT與工控機端的通信網絡一般采用TCP/IP協議,由于其需要建立連接和確認數據的傳輸,無法與EtherCAT直接進行數據交互,導致了通信的非實時性,因此,需借用硬件介質進行通信協議轉換。伺服電機、步進電機和輸入/輸出口的控制過程非常復雜,任何一個控制環節出錯都會造成控制系統運行不穩。
在實際產品開發中,考慮成本因素無法直接在控制系統中運行實時分析軟件,而是要將相應數據實時地傳輸到PC機上,通過PC機上的數據采集、分析軟件中查找、定位問題根源。為了實現EtherCAT與工控機端的TCP/IP協議的互通,本文提出了一種基于UDP協議的通信轉換方案,利用UDP協議的無連接和高帶寬特點,提高通信的效率和速度,同時利用FPGA開發的高性能TCP/IP通信模塊,保證通信的實時性和可靠性。
一、系統硬件設計
系統的控制部分包括STM32F103、FPGA。STM32F103程序負責控制LAN9252和FPGA的通信,以及配置88E1111 PHY芯片的寄存器。FPGA程序負責實現可變靜態存儲控制器通信模塊、UDP通信模塊和88E1111 PHY芯片配置模塊。可變靜態存儲控制器通信模塊用于與STM32F103進行數據交換,UDP通信模塊用于封裝和解析UDP數據包,88E1111 PHY芯片配置模塊用于設置PHY芯片的工作模式和速率。整體硬件架構如圖1所示。
LAN9252和STM32F103的接口電路如圖2所示。
FPGA選用EP4CE10,是一種低成本、高性能的可編程邏輯器件,可以實現復雜的通信協議和算法。FPGA與STM32F103通過可變靜態存儲控制器總線進行數據交換。
88E1111支持10/100/1000Mbps的自適應速率,具有低功耗、高集成度、高穩定性的特點。88E1111與FPGA通過GMII總線進行數據傳輸,88E1111與工控機端的網卡通過RJ45接口進行數據通信。STM32F103、FPGA與88E1111連接圖如圖3所示。
電源采用5 V供電,需要轉換成3.3V、2.5V及1.2V。
二、系統軟件設計
(一) STM32F103單片機程序
STM32F103是系統的控制核心,用于系統初始化,FPGA、LAN9252模塊之間的通信。
為了實現從站微控制單元的EtherCAT通信功能,本文使用SSC工具生成協議棧代碼,配置協議棧、物理層之間的接口,如可變靜態存儲控制器并行總線配置和輸入/輸出中斷入口配置。協議棧包含EtherCAT從站通訊模塊輸出信號,需將模塊的中斷處理函數與STM32F103引腳綁定,引腳中斷功能關鍵代碼如下。
# define? ? INIT _ESC_INT? ? ?EXTIO _ Configtiration ( )
# define? ? Ecatlsr? ? ? ? ? EXTIO _ IRQHandler ;
SYNCO? ?對應中斷功能配置及映射
#define? ? INIT_SYNC0_TEXTI3 _ Configoation ( ) ;
#define? ? Syllc0Isr? ? ? ? EXTI3_IRQHandler;
SYNC1? ? 對應中斷功能配置及映射
#define? ?INIT_SYNC1 _INT? ? EXTI1_ Configuration ( );
#define? ? Sync1lsr? ? EXTl1_ IRQHandler;
為確保引腳快速準確地響應通信模塊信號,需要在配置函數中激活引腳的中斷功能,并將其映射到外部中斷0,設置中斷優先級為最高。再配置可變靜態存儲控制器并行總線,選擇異步多路PS隨機存取存儲器/NOR作為輸出通信方式。生成新XML文件之后,需在協議棧代碼里,修改數據定義、讀取模塊,使其與XML生成的數據量一致。在協議棧的數據定義頭文件里,修改結構體數據量大小及初始值。生成的協議棧的代碼
如下。
typedef struct OBJ_STRUCT_PACKED_ START {
UINT16? ?ul6SulbIndexo;/ * * < \ brief Sublndex 0* /
UINT32? ?aEntries [ 32 ];? / * * < \ brief Entry? buffer * /
} OBJ_STRUCT_PACKED _END
TOBJ1601;
typedef struct OBJ_STRUCT _PACKED _ START {
UINT16? ?ul6SubIndex0; / * * < \ brief SubIndex 0* /
UINT32? ?aEntries [4]; / * * < \ brief Entry buffer * /
} OBJ_STRUCT_PACKED_END
TOBJ 1A00;
在中斷入口函數中修改數據操作,確保數據格式與XML文件保持一致,以免EtherCAT網絡通信不能實現初始化。
(二) FPGA程序開發
FPGA主要功能模塊包含:可變靜態存儲控制器通信、UDP收接、UDP發送、PHY配置、以太網MAC,FPGA功能模塊如圖4所示。
可變靜態存儲控制器通信模塊可以讀寫單片機的數據,也可以發送和接收UDP數據。讀寫單片機的數據時,需要進行數據類型轉換和緩存;發送和接收UDP數據時,需要解析UDP協議和添加協議頭尾。可變靜態存儲控制器通信模塊使用隨機存取存儲器作為緩存器,單片機接收到一定量的數據后,UDP發送模塊開始發送數據。88E1111是PHY芯片,通過FPGA實現標識具體的網絡節點。基于ALTERA芯片,可以使用QuartusII提供的TSE IP核。TSE IP核包含數據接收、數據發送、配置和RGMII四個接口,配置接口用于設置88E1111的寄存器和連接方式。UDP協議是一種簡單的面向消息的傳輸層協議,不保證消息的可靠傳遞,也不維護消息的狀態,其優點是簡單、快速、靈活,適用于實時性要求高的應用場景,如流媒體、語音、視頻等。UDP協議使用16位端口號來區分不同的應用程序,并提供校驗和來驗證數據的完整性,并且還包含一個偽首部,用于計算校驗和實時檢查IP地址是否正確。
三、系統調試
系統調試裝置如圖6所示。
調試的基本步驟如下:
1.應用程序離線調試
在開發環境中使用模擬器或仿真器對STM32F103程序和FPGA程序進行編譯、下載和運行,檢查是否有語法錯誤或邏輯錯誤。使用斷點、單步執行、變量監視等功能觀察程序運行狀態和數據流向,驗證程序功能是否符合設計要求。
2.控制系統硬件檢查
在目標平臺上連接STM32F103單片機、LAN9252芯片、FPGA芯片和88E1111 PHY芯片等硬件設備,檢查電源電壓、信號線連接、接口匹配等是否正常。使用示波器或邏輯分析儀等工具觀察各個總線或接口上的信號波形是否正確。
3.應用程序在線調試
在目標平臺上使用JTAG或SWD等接口對STM32F103單片機進行在線調試,使用USB Blaster或JTAG等接口對FPGA芯片進行在線調試,使用網線或無線網卡與工控機端進行通信。使用調試工具或打印日志等方式檢查程序運行情況和通信效果,排除可能存在的錯誤或異常。
4.現場調試
在實際應用場景中對系統進行測試,模擬各種正常或異常的輸入輸出條件,觀察系統的響應和輸出結果,評估系統的性能和穩定性,優化系統的參數和配置,解決可能出現的問題或故障。
在完成系統調試后,對調試過程中發現和解決的問題進行總結和歸納,記錄調試過程中使用的工具和方法,撰寫調試報告和文檔,為后續的維護和改進提供參考。
四、結束語
綜上所述,設置EtherCAT從站的通信周期為1ms,輸入/輸出分別為64字節、16字節,在數據中添加遞增序列號,通過一段時間的測試觀察序列號的變化,EtherCAT從站與UDP通信沒有丟包或通信中斷現象,具有較高的通信可靠性。
作者單位:殷偉 浙江寧廣有視網絡工程有限公司
參? 考? 文? 獻
[1]左振領,何方,李霄.基于STM32的EtherCAT從站的設計與實現.組合機床與自動化加工技術,2016(7):1-3.
[2]李益,王成杰,史世友,等.基于ZYNQ處理器的EtherCAT從站通信系統設計[J].控制與信息技術,2022(1):59-63.
[3]馬保全,姚旺君,劉云龍,等.基于FPGA的EtherCAT從站通信鏈路分析與驗證[J].電子技術應用,2017,43(8):95-99.
[4]Ricardo Moraes,Francisco Borges Carreiro,Paulo Bartolomeu.Enforcingthe timing behavior of real-time stations in legacy bus-based industrialEthernet networks.Computer Standards and Interfaces[J],2011,33(3):5-11.
[5]黨選舉,李帥帥,伍錫如,等.EtherCAT主站與主站通信協議的研究與實現[J].組合機床與自動化加工技術,2017(1):98-101.
[6]宋孫浩,鄭天江,張馳,等.輕量一體化機器人關節的SPI通信及EtherCAT通訊研究[J]. 制造業自動化,2019,41(8):41-46.
[7]康存鋒,杜斐斐,馬春敏,等.EtherCAT協議芯片與單片機通信系統的研究[J].現代制造工程,2011(7):113-117.
[8]趙世超,左金印,魏驍,等.基于FPGA的萬兆以太網UDP協議通信接口設計[J].電子技術應用,2022,48(10):113-117,122.
[9]李浩,趙晨希,關冰.基于超時重傳和多重校驗的UDP可靠通信設計[J].測控技術,2022,41(2):105-110.
[10]汪欽臣,方益民.基于Modbus UDP協議的STM32與PC實時通信的實現[J].儀表技術與傳感器,2020(7):67-70.
[11]柳青.基于Windows套接字的Ethercat主站協議棧設計與實現[J].機電產品開發與創新,2021,34(5):14-15,18.