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

適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架介紹
XMCD – i.MX RT11xx系列簡單易用的特定外設配置功能

評論