fido5100和fido5200 REM交換芯片與主機(jī)和網(wǎng)絡(luò)處理器配合使用
簡(jiǎn)介
在工業(yè)自動(dòng)化和運(yùn)動(dòng)控制應(yīng)用中,工業(yè)以太網(wǎng)設(shè)備的使用正在成為現(xiàn)實(shí),取代了CANbus或RS-485等傳統(tǒng)現(xiàn)場(chǎng)總線連接。
處理實(shí)時(shí)應(yīng)用需要高度的確定性和可靠性,主要原始設(shè)備制造商(OEM)引入了許多協(xié)議,例如Profinet、EtherCAT、Ethernet/IP、Sercos和Modbus TCP。兼容這些協(xié)議,以及需要更新以兼容未來增強(qiáng)功能(如時(shí)間敏感網(wǎng)絡(luò)(TSN))的可能性,是每個(gè)工業(yè)通信設(shè)計(jì)的重要考慮因素。ADI公司通過實(shí)時(shí)以太網(wǎng)多協(xié)議(REM)交換芯片fido5100和fido5200支持最常見工業(yè)以太網(wǎng)協(xié)議。此交換芯片與fido1100通信控制器配合使用,使可編程多協(xié)議RAPID方案更加完善。fido5100和fido5200 REM交換芯片為Profinet IRT、EtherCAT、Ethernet/IP、Modbus TCP和Powerlink提供預(yù)認(rèn)證的解決方案。
本應(yīng)用筆記介紹fido5100和fido5200 REM交換芯片與任何微處理器的主機(jī)接口,另外還說明了存儲(chǔ)器總線接口以及控制以太網(wǎng)接口所需的附加信號(hào)。
在本文中,低電平有效信號(hào)用上橫線和信號(hào)名稱來表示(例如RESET))。
圖1.基于fido5100和fido5200的工業(yè)以太網(wǎng)設(shè)備架構(gòu)和支持的軟件協(xié)議棧
主機(jī)接口
fido5100和fido5200 REM交換芯片通過一個(gè)設(shè)計(jì)為標(biāo)準(zhǔn)異步存儲(chǔ)器總線端口的主機(jī)接口連接到通信處理器。他們各有兩個(gè)以太網(wǎng)接口,支持介質(zhì)獨(dú)立接口(MII)或精簡(jiǎn)介質(zhì)獨(dú)立接口(RMII)。由于以太網(wǎng)物理層配置差異性,所以交換芯片不處理以太網(wǎng)物理層部分。通用架構(gòu)如圖2所示。
圖2.通用架構(gòu)
主機(jī)接口為16位或32位存儲(chǔ)器總線,地址和數(shù)據(jù)可以復(fù)用,從而減少引腳數(shù)量。多路復(fù)用總線選擇(MBS)和數(shù)據(jù)總線大小(SIZE_32)信號(hào)選擇此總線模式。MBS和SIZE_32在RESET)信號(hào)的上升沿采樣。
另一個(gè)要考慮的方面是字節(jié)序,它由從小到大順序(LE)信號(hào)決定。LE電平也是在RESET)的上升沿采樣。
交換芯片數(shù)據(jù)總線定義如下:
•D0為最低有效位(LSB)。
•D15為16位總線的最高有效位(MSB)。
•D31為32位總線的MSB。
所有控制和狀態(tài)寄存器都是16位寬,所以即便使用32位總線,數(shù)據(jù)也必須按D15到D0的順序傳輸。有關(guān)如何處理字節(jié)序的詳細(xì)信息以及引腳功能的詳細(xì)描述,請(qǐng)參閱fido5100/fido5200數(shù)據(jù)手冊(cè)。
地址總線有四位數(shù)據(jù),可以訪問16個(gè)直接地址寄存器。如果是非多路復(fù)用數(shù)據(jù)總線(例如MBS = 0),用戶必須考慮地址的另外四個(gè)引腳。
查看時(shí)序圖(參見fido5100/fido5200數(shù)據(jù)手冊(cè))非常重要,它顯示了非多路復(fù)用和多路復(fù)用模式下的讀寫操作。
圖3.同相緩沖器驅(qū)動(dòng)CS)信號(hào)
在非多路復(fù)用操作的情況下,地址建立時(shí)間(tAS)是異步存儲(chǔ)器訪問的關(guān)鍵參數(shù)。根據(jù)微處理器架構(gòu),地址線和CS)可以同時(shí)驅(qū)動(dòng)(tAS = 0),或者二者之間可以有一個(gè)很小的延遲。
關(guān)于非多路復(fù)用操作,市場(chǎng)上的許多Cortex®-M4系列(例如ADI公司ADSP-CM408F或STM32F4)和Cortex-Ax系列(例如ADI公司ADSP-SC589和NXP imx6)可無(wú)延遲地驅(qū)動(dòng)CS)和地址線。在其他情況下,如Motorola 68000架構(gòu),CS)在地址線有效后置位。
fido5100和fido5200 REM交換芯片使用CS)下降沿來鎖存地址線,并且需要一個(gè)很小的延遲tAS(最小20 ps)。
當(dāng)微處理器同時(shí)置位CS)和地址時(shí),應(yīng)給CS)增加幾ns的延遲。例如,ADSP-CM408F通過一個(gè)快速的單通道同相緩沖器(通常增加2.5 ns的延遲)將CS)驅(qū)動(dòng)到fido5100和fido5200 REM交換芯片。
對(duì)于多路復(fù)用存儲(chǔ)器訪問,地址和ALE信號(hào)有效之間的時(shí)序關(guān)系也可能要求在ALE信號(hào)上增加一個(gè)短延遲,這取決于所使用的處理器。
中斷
三條中斷線用作fido5100和fido5200 REM交換芯片的輸出。主機(jī)微處理器必須監(jiān)視這些線路。
MDIO接口
所有以太網(wǎng)物理層都需要配置,它們可以提供狀態(tài)信息。許多器件使用管理數(shù)據(jù)輸入和輸出(MDIO)接口。此通信接口由兩條線組成:一條數(shù)據(jù)線(MDIO)和一條管理數(shù)據(jù)時(shí)鐘線(MDC)。IEEE802.3規(guī)范定義了一個(gè)特定通信協(xié)議。fido5100和fido5200REM交換芯片不驅(qū)動(dòng)此通信接口。主機(jī)處理器必須能夠相應(yīng)地管理MDIO和MDC。
存儲(chǔ)器要求
理想情況下,REM交換芯片驅(qū)動(dòng)器需要50 kB到100 kB的只讀存儲(chǔ)器(ROM)。在RapID平臺(tái)上,fido1100使用46 kB ROM。此外,某些工業(yè)以太網(wǎng)協(xié)議需要8 kB RAM來同時(shí)處理飛行中處理器的多個(gè)數(shù)據(jù)包。
引腳數(shù)
表1總結(jié)了使用最大引腳數(shù)(125 MB/s,非多路復(fù)用總線)的配置的引腳數(shù)和使用最小引腳數(shù)(62.5 MB/s,多路復(fù)用總線)的配置的引腳數(shù),假設(shè)MBS、SIZE_32和LE處于某一固定電平。非多路復(fù)用總線中有45個(gè)引腳,多路復(fù)用總線中有26個(gè)引腳。
表1.配置引腳數(shù)
互連框圖
圖4顯示了主機(jī)或網(wǎng)絡(luò)處理器與fido5100和fido5200REM交換芯片之間以及兩個(gè)以太網(wǎng)物理層的完整互連框圖。圖4中的虛線表示僅用于多路復(fù)用模式的連接。在多路復(fù)用模式下,請(qǐng)勿連接四條地址線,只能連接A02/ALE。A02/ALE具有雙重功能。在多路復(fù)用模式下,A02線充當(dāng)ALE信號(hào)來驗(yàn)證地址線。
圖4.互連框圖
REM交換芯片軟件驅(qū)動(dòng)程序
REM交換芯片軟件驅(qū)動(dòng)程序?yàn)閒ido5100和fido5200提供標(biāo)準(zhǔn)的與協(xié)議無(wú)關(guān)的接口。軟件驅(qū)動(dòng)程序用于初始化、中斷管理、定時(shí)器管理以及獨(dú)立于協(xié)議的數(shù)據(jù)包傳輸和接收。針對(duì)每種支持的協(xié)議(Profinet、Ethernet/IP、EtherCAT、ModbusTCP和POWERLINK),REM交換芯片軟件驅(qū)動(dòng)程序以源代碼形式提供。驅(qū)動(dòng)程序使用C語(yǔ)言編寫,并針對(duì)選定的協(xié)議配置交換芯片。固件從主機(jī)處理器下載。
配置通常在上電時(shí)執(zhí)行,但配置可在系統(tǒng)復(fù)位后的任何時(shí)間執(zhí)行。
如圖5所示,C代碼被組織成一組應(yīng)用程序編程接口(API),分為兩個(gè)主要功能組別:協(xié)議專用接口和標(biāo)準(zhǔn)交換接口。
任何傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)協(xié)議棧都可以連接到標(biāo)準(zhǔn)交換接口,任何協(xié)議棧都可以連接到協(xié)議專用接口。標(biāo)準(zhǔn)交換接口在所有驅(qū)動(dòng)程序中都是通用的,因此用戶只需連接到TCP/IP協(xié)議棧一次即可。
用戶可以選擇作為處理器開發(fā)環(huán)境的操作系統(tǒng)(OS)一部分的TCP/IP協(xié)議棧,以及來自第三方供應(yīng)商的PROFINET協(xié)議棧。然后,協(xié)議棧由主機(jī)處理器管理,并連接到REM交換芯片驅(qū)動(dòng)程序中的協(xié)議特定API,而REM驅(qū)動(dòng)程序中的標(biāo)準(zhǔn)交換API連接到OS中的TCP/IP協(xié)議棧。
圖5.多協(xié)議能力
驅(qū)動(dòng)程序不依賴于任何操作系統(tǒng)資源(例如無(wú)線程和令牌),所以移植僅限于定義主機(jī)處理器如何與REM交換芯片通信以及一些調(diào)試選項(xiàng)。
移植相關(guān)代碼(REMS_Port.h和REMS_Port.c)位于Porting目錄中(/Porting/inc/和/Porting/src/)。為支持特定硬件平臺(tái),必須修改這兩個(gè)文件,其依賴于主機(jī)處理器。
REM軟件驅(qū)動(dòng)程序架構(gòu)如圖6所示。
圖6.REM軟件驅(qū)動(dòng)程序架構(gòu)
應(yīng)用范例
本部分包含一些與工業(yè)應(yīng)用中常用的微處理器架構(gòu)配合使用的范例。有關(guān)更多信息,請(qǐng)參閱相應(yīng)集成電路(IC)制造商提供的具體文檔。
ADI公司ADSP-CM408F(帶FPU的Arm® CORTEX-M4)
ADSP-CM408F帶有一個(gè)靈活的外部存儲(chǔ)器接口。靜態(tài)存儲(chǔ)器控制器(SMC)可以編程為控制最多四組外部存儲(chǔ)器。允許異步非復(fù)用16位操作。
表2顯示了fido5100和fido5200 REM交換芯片與ADSP-CM408F處理器之間的連接。
表2.連接至ADSP-CM408F
ADI公司ADSP-SC589(帶ARM CORTEX-A5的SHARC®+雙核DSP)
ADSP-SC589配有SMC,可控制最多兩個(gè)外部存儲(chǔ)器模塊。允許異步非復(fù)用16位操作。正如ADSP-CM408F中所建議的那樣,CS)信號(hào)需要一個(gè)外部緩沖器,MDIO接口由嵌入式控制器管理。
表3顯示了fido5100和fido5200 REM交換芯片和雙核SHARC+Arm處理器之間的連接。
由于ADSP-SC589沒有嵌入式閃存,因此處理器需要在上電時(shí)對(duì)REM交換芯片進(jìn)行編程以從外部ROM下載代碼。
表3.連接至ADSP-SC589
ST MICROELECTRONICS STM32F42系列(帶FPU的ARM CORTEX-M4)
STM32F42系列具有靈活的內(nèi)存控制(FMC)接口,允許異步16位和32位多路復(fù)用和非多路復(fù)用訪問操作。由于FMC_NE(片選)預(yù)測(cè)地址有效的時(shí)間最長(zhǎng)可達(dá)2 ns,因此該信號(hào)可能需要更長(zhǎng)的延遲時(shí)間。
表4顯示了fido5100和fido5200 REM交換芯片與STM32F42處理器之間的連接。
表4.連接至STM32F42
在多路復(fù)用操作的情況下,需要一個(gè)反相器,因?yàn)镕MC_NADV是低電平有效信號(hào),但fido5100和fido5200需要高電平有效信號(hào)來鎖存地址。這種情況下無(wú)需增加延遲,因?yàn)閠w (NADV)時(shí)間足以讓fido5100和fido5200鎖存地址線。
ST MICROELECTRONICS STM32F103系列(Arm CORTEX-M3)
STM32F103系列具有靈活的嵌入式靜態(tài)存儲(chǔ)控制器(FSMC),可以管理最多四組不同類型的存儲(chǔ)器,包括SRAM。FSMC允許異步多路復(fù)用和非多路復(fù)用16位操作。由于FSMC_NE(片選)可以在地址線有效之前最多3 ns時(shí)置位,所以此信號(hào)可能需要更長(zhǎng)的延遲時(shí)間。
表5顯示了fido5100和fido5200REM交換芯片與STM32F103處理器之間的連接。
表5.連接至STM32F103
在多路復(fù)用操作的情況下,需要一個(gè)反相器,因?yàn)镕SMC_NADV是低電平有效信號(hào),但fido5100和fido5200需要高電平有效信號(hào)來鎖存地址。這種情況下不需要增加延遲,因?yàn)閠w (NADV)時(shí)間足以讓fido5100和fido5200鎖存地址線。
該系列Cortex-M3處理器未實(shí)現(xiàn)MDIO接口。
盡管如此,可以使用兩個(gè)GPIO來代替,而MDIO功能必須通過軟件來模擬。
TEXAS INSTRUMENTS AM1808 SITARA系列(Arm9)
AM1808有一個(gè)支持異步SRAM的外部存儲(chǔ)器接口(EMIFA)。EMIFA可以管理16位非復(fù)用訪問。片選信號(hào)需要一個(gè)緩沖器。
表6顯示了fido5100和fido5200 REM交換芯片與AM1808處理器之間的連接。
表6.連接至AM1808
TEXAS INSTRUMENTS TMS320F2807 PICCOLO系列(32位浮點(diǎn)微控制器)
TMS320F2807系列具有支持異步SRAM的EMIFA。EMIFA可以管理32位和16位非復(fù)用訪問。片選信號(hào)需要一個(gè)緩沖器。
表7顯示了fido5100和fido5200 REM交換芯片與TMS320F2807處理器之間的連接。
表7.連接至TMS320F2807
該系列32位處理器未實(shí)現(xiàn)MDIO接口。盡管如此,可以使用兩個(gè)GPIO來實(shí)現(xiàn)此接口,而MDIO功能必須通過軟件來模擬。
NXP i.MX 6ULL系列(Arm CORTEX-A7)
i.MX 6ULL處理器配有外部接口模塊(EIM),其可提供對(duì)SRAM的16位非復(fù)用和復(fù)用訪問。
表8顯示了fido5100和fido5200 REM交換芯片與i.MX 6ULL處理器之間的連接。
表8.連接至i.MX 6ULL
在多路復(fù)用操作的情況下,需要一個(gè)反相器,因?yàn)镋IM_LBA)是低電平有效信號(hào),但fido5100和fido5200需要高電平有效信號(hào)來鎖存地址。
因?yàn)镋IM_LBA)解除置位(成為地址的鎖存時(shí)間)取決于可編程參數(shù),所以計(jì)算W40A時(shí)序時(shí)要小心。可能需要緩沖器。
時(shí)序W31(EIM_CSx)有效至地址有效)是可編程的,可以為負(fù)值(CS)在地址有效前置位)??赡苄枰彌_器。