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