NXP的i.MX RT1180 crossoverMCU具有Arm Cortex-M7(CM7)和Cortex-M33(CM33)雙內核,CM7內核的運行速度可達800 MHz,CM33內核的運行頻率可達240 MHz,并擁有1.5 MB的片上RAM。該系列支持多種協議,實現了實時以太網與工業4.0系統之間的通信橋梁。并通過集成的EdgeLock Secure Enclave提供更高級的安全性。
RT1180包含了一個集成的Gbit/s時間敏感網絡(TSN)交換機和EtherCAT從控制器(ESC)。這使其非常適合工業和汽車通信應用。MCU還支持使用MCUXpresso生態系統,其中包括SDK、IDE選擇以及安全配置和配置工具,可以幫助工程師實現快速開發。
EtherCAT是一種高性能的實時以太網通信協議。它通常用于工業自動化領域的實時控制和通信,如伺服電機控制等。Beckhoff于2003年開發了EtherCAT,國際電工委員會(IEC)將EtherCAT標準化為IEC61158標準。它使用以太網標準IEEE 802.3中定義的標準幀和物理層。
EtherCAT解決了自動化行業面臨的具體需求,如下所示:
存在具有確定性響應時間的硬實時要求
系統通常由許多節點組成,每個節點只有少量的循環過程數據
IT管理員不調試和維護現場總線系統
i.MX RT1180 EtherCAT外設中的SM(同步管理器)和FMMU(現場總線內存管理單元)是實現高效數據通信的關鍵組件。它們通過優化數據交換和提升通信安全性,在工業自動化應用中發揮著重要作用。以下將對SM和FMMU的功能及應用進行詳細介紹。
1. EtherCAT通信機制
在EtherCAT主站和從站搭建的系統中,主站會發出一個EtherCAT幀,所有從站都會接收該幀并且發送自身控制數據到主站。
RT1180具備兩個EtherCAT端口,下圖展示了主站與從站之間的傳播路徑。當EtherCAT主站幀到達從站時,從站從EtherCAT幀讀取數據并將數據寫入EtherCAT幀。這個幀會穿過每個從站,最后回到主站那里。
在EtherCAT通信過程中,有兩個功能起到了很關鍵的作用,一個是Fieldbus Memory Management Units(FMMU) 還有一個是SyncManager(SM),Reference Manual手冊中的描述稍微有點抽象,下面帶大家結合實際工程看下他們是如何起作用的。
2.FMMU-Fieldbus MemoryManagement Units
現場總線內存管理單元(FMMU)通過內部地址映射將邏輯地址轉換為物理地址。FMMU 允許對跨越多個從站的數據段使用邏輯尋址:一個數據報可以尋址多個任意分布的ESC 內的數據。
i.MX RT1180支持最大八個FMMU,由EtherCAT主站初始化。FMMU可以從EtherCAT主站定義的八個不同邏輯地址獲取數據。邏輯地址是指主站中的地址空間,而物理地址則是從站中的空間。FMMU訪問類型可以被配置為讀,寫,或者讀和寫。
此外,FMMU還有其他特性,例如:每個邏輯地址最多可以由一個 FMMU(讀)加一個 FMMU(寫)映射,或者由一個FMMU(讀/寫)映射。如果為同一邏輯地址配置了兩個或多個 FMMU(方向相同-讀或寫),則使用編號較低(配置地址空間較低)的 FMMU,其他 FMMU 將被忽略。更多FMMU的特性可以參考RT1180的ReferenceManual.
3.SyncManager(SM)
SyncManager(SM)即為同步管理器,EtherCAT從站的存儲空間可用于在EtherCAT主機和本地應用程序(在連接到PDI的微控制器)之間交換數據,沒有任何限制。像這樣使用內存進行通信有一些缺點,SyncManagers(SM)主要就是用來解決這些缺點:
無法保證數據一致性。信號量必須在軟件中實現,以便以一致的方式交換數據
數據安全沒有保證。軟件中必須實施安全機制
EtherCAT主站和應用端都必須輪詢內存,以了解對方的訪問何時完成
SM能夠在EtherCAT主站和本地應用程序之間實現一致且安全的數據交換,并且會產生SM中斷。SM支持兩種通信模式,
模式一Buffered Mode:
BufferedMode允許 EtherCAT 主站和本地應用程序雙方隨時訪問通信緩沖區。消費者始終獲得生產者寫入的最新緩沖區數據,而生產者始終可以更新緩沖區的內容。如果緩沖區的寫入速度比讀出速度快,舊數據將被丟棄。這種模式常被用于周期性通信。
模式二Mailbox Mode:
郵箱模式實現了數據交換的握手機制,因此不會丟失任何數據。每一方(EtherCAT 主站或本地應用程序)只有在另一方完成訪問后才能訪問緩沖區。首先,生產者寫入緩沖區。然后,緩沖區被鎖定無法寫入,直到消費者將其讀出。之后,生產者再次具有寫入訪問權限,而緩沖區則為消費者鎖定。
4.SM和FMMU在實際工程中的使用
結合SDK中的EtherCAT digitalio工程,看一下FMMU和SM的配置。通過TwinCAT3直接讀取FMMU相關的寄存器。
不難看出,在該工程中一共使能了三個FMMU,其中FMMU0的邏輯地址是0x01000000,長度為1,物理地址為0x1100,方向是寫,使能。FMMU1的邏輯地址為0x01000000,長度是1,物理地址為0x1400,方向是讀。FMMU0和FMMU1使用的邏輯地址都是0x01000000,上文提到過,同一個邏輯地址最多由兩個FMMU分別映射為讀寫,或者由一個FMMU映射為可讀可寫。如果出現第三個FMMU映射該邏輯地址,則會失效。
FMMU2的邏輯地址為0x09000000,長度是1,物理地址為0x080d,方向是讀,該物理地址中保存的是SM的狀態寄存器。在通信過程中主站會不斷地去獲取SM的狀態。
接下來再看SM的寄存器配置:
RT1180最多支持8個SyncManager,在該工程中一共用到了四個:
SM0起始地址為0x1000,長度為0x80,模式選擇郵箱模式
SM1起始地址為0x1080,長度為0x80,模式也是郵箱模式
SM2起始地址為0x1100,長度為0x1,模式為Buffered mode
SM3起始地址為0x1400,長度為0x1,模式也是Bufferedmode
FMMU映射的物理地址,正是SM所在起始地址,FMMU寫方向,對應SM主站寫從站讀設置,FMMU讀方向,對應SM從站寫主站讀設置。
一般來說,SM0設置為主站輸出郵箱,SM1設置為主站輸入郵箱,SM2設置為主站輸出過程數據(主站寫),SM3設置為主站輸入過程數據(主站讀)。
5.SM和FMMU初始化
SM和FMMU都是由主站進行初始化,TwinCAT3中無法看到主站的具體操作,在RT1180 SDK中提供了開源EtherCAT主站SOEM的demo可以通過該demo來看下SM和FMMU是如何被初始化的。工程目錄:
SDK_2_16_000_MIMXRT1180-EVKoardsevkmimxrt1180soem_examplessoem_servo_motormcm33
初始化SM:
首先主站會讀取EEPROM來獲取寫郵箱數據長度,如果寫郵箱數據長度大于0,則會對SM0和SM1進行相關參數設置。
賦值。
然后根據讀取EEPROM獲取SM的個數,來依次完成所有SM的參數設置。
初始化FMMU:
FMMU主要是通過以下兩個函數初始化的: ecx_config_create_input_mappings, ecx_config_create_output_mappings.
此處以ecx_config_create_input_mappings函數舉例:
首先會去判斷SM是否小于SM最大值,并且判斷當前slave是否存在輸入數據(input bits),只要有1個inputbit就會配置FMMU。并判斷當前SM的類型是否是Inputs類型,如果不是則判斷下一個SM。
找到Inputs類型的SM之后,會根據SM中的參數來設置FMMU的相關參數。下圖代碼中直接將SM中的地址賦值給了FMMU的物理地址。
完成賦值之后,后面還會進行一系列操作,比如判斷該從站是否還有其他Inputs類型的SM。輸出FMMU的配置與輸入類似。此處不再過多贅述,感興趣的讀者可以下載官方SDK閱讀源碼。
至此,i.MX RT1180EtherCAT外設中SM FMMU功能介紹及應用基本講述完畢,由于篇幅原因,很多源碼和細節沒有在這里詳細展開,感興趣的讀者可以在NXP官網下載RT1180 Reference Manual以及通過SDK進行深入了解。
恩智浦致力于打造安全的連接和基礎設施解決方案,為智慧生活保駕護航。
恩智浦半導體NXP Semiconductors N.V.(納斯達克股票代碼:NXPI)是汽車、工業物聯網、移動設備和通信基礎設施市場值得信賴的合作伙伴,致力于提供創新解決方案。
-
mcu
+關注
關注
146文章
17205瀏覽量
351936 -
以太網
+關注
關注
40文章
5450瀏覽量
172178 -
恩智浦
+關注
關注
14文章
5872瀏覽量
107914 -
i.MX
+關注
關注
1文章
49瀏覽量
35652 -
ethercat
+關注
關注
18文章
720瀏覽量
38766
原文標題:i.MX RT1180 EtherCAT外設中SM FMMU功能介紹及應用
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論