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