本文介紹了一種測量以太網吞吐量的方法,提供了良好的性能估計,并說明了影響性能的各種因素。
以太網是世界上安裝最廣泛的局域網(LAN)技術。它自20世紀80年代早期開始使用,并被IEEE Std 802.3所涵蓋,它規定了許多速度等級。在嵌入式系統中,最常用的格式是10 Mbps和100 Mbps(通常稱為10/100以太網)。
有20多個內置以太網的恩智浦ARM MCU,涵蓋所有三種幾代ARM(ARM7,ARM9和Cortex-M3)。恩智浦在三代產品中使用了基本相同的實現,因此設計人員可以在系統遷移到下一代ARM時重用其以太網功能,從而節省時間和資源。
本文討論了測量LPC1700產品上以太網吞吐量的三種不同方案。詳細信息在優化系統中可以實現的目標。
優越的實現
恩智浦的以太網模塊(見圖1)包含一個全功能的10/100以太網MAC(媒體訪問控制器),它使用DMA硬件加速來提高性能。 MAC完全符合IEEE Std 802.3標準,并使用媒體獨立接口(MII)或簡化MII(RMII)協議以及片上MII管理(MIIM)串行總線與片外以太網PHY(物理層)連接。
恩智浦以太網模塊具有以下特點:
完全以太網功能 - 該模塊支持完全以太網操作,如802.3標準中所述。
增強型架構 - 恩智浦通過多種附加功能增強了架構,包括接收過濾,自動沖突后退和幀重傳,以及通過時鐘切換進行電源管理。
DMA硬件加速 - 該塊有兩個DMA管理器,每個管理器一個用于發送和接收。使用Scatter-Gather DMA進行自動幀傳輸和接收可以進一步卸載CPU。
圖1:LPC24xx以太網框圖。恩智浦的Cortex-M3架構。
恩智浦LPC1700微控制器的以太網吞吐量
在以太網中,兩個或多個站使用以太網協議通過共享信道(介質)發送和接收數據。以太網性能對于每個網絡元素(信道或站點)來說意味著不同的東西。帶寬,吞吐量和延遲是衡量整體性能的指標。在信道的情況下,雖然帶寬是鏈路容量的度量,但吞吐量是可以通過信道發送可用數據的速率。在站的情況下,以太網性能可以意味著該設備以以太網信道的全比特和幀速率操作的能力。另一方面,延遲測量由幾個因素(例如傳播時間,處理時間,故障和重試)引起的時間延遲。
本文的重點是恩智浦LPC1700在以下操作的能力通過以太網接口(由內部EMAC模塊和外部PHY芯片提供)連接到的以太網通道的完整位和幀速率。以這種方式,吞吐量將被定義為每秒可用數據(有效載荷)的度量,MCU能夠向/從通信信道發送/接收。同樣的概念也可以應用于支持以太網的其他恩智浦LPC微控制器。不幸的是,這些類型的測試通常需要特定的設備,如網絡分析儀和/或網絡流量發生器,以便獲得精確的測量結果。然而,使用簡單的測試設置可以獲得估計的數字。實際上,我們的目標是了解可能影響以太網吞吐量的不同因素,因此用戶可以專注于不同的技術以提高以太網性能。
這里只考慮發送器的吞吐量,如接收器的情況有點復雜,因為它的性能與將信息放入通道的發送器的性能有關。在這種情況下,接收器的吞吐量將受到通過信道發送數據的發送器的吞吐量的影響。一旦我們獲得了發射機的吞吐量,我們就可以將此數字視為接收機能夠達到的最大理想數量(在理想條件下),并獲得接收機相對于此數量的吞吐量。
參考信息
圖2:以太網II幀。
考慮比特率為100 Mbps,每幀由有效載荷組成(有用數據,最小46字節,最大1,500)字節),以太網報頭(14字節),CRC(4字節),前導碼(8字節)和數據包間隙(12字節),然后以下是每秒和每個最大可能幀數: br》對于最小尺寸的幀:( 46字節數據) - 》 148,809幀/秒 - 》 6.84 Mb/秒
對于最大尺寸的幀:(1,500字節數據) - 》 8,127幀/秒 - 》 12.19 Mb/sec
上述費率是實際上無法達到的最大可能值。這些值是理想的,任何實際實現都會有較低的值(參見圖2)。
注意:
幀/秒的計算方法是將以太網鏈路速度(100 Mbps)除以總數以比特為單位的幀大小(最小大小幀為84 * 8 = 672,最大大小幀為1,538 * 8 = 12,304)。
兆字節/秒是通過將幀/秒乘以數字來計算的每幀中有用數據的字節數(最小大小幀為46字節,最大大小幀為1,500字節)。
測試條件(參見圖3)
MCU:LPC1768在運行時100 MHz
主板:Keil MCB1700
PHY芯片:國家DP83848(RMII接口)
工具鏈:KeilμVision4v4.1
從RAM運行的代碼
TxDescriptorNumber = 3
以太網模式:全雙工 - 100 Mbps
測試說明
為了獲得最大吞吐量,有50個幀由1,514個字節組成(包括以太網報頭),每個幀包含75 Kb的有效載荷(有用的數據)。 CRC(4字節)由EMAC控制器(以太網控制器)自動添加。
圖3:測試設置。
為了測量此過程所需的時間,在開始發送幀之前設置GPIO引腳(在我們的例子中為P0.0),并在完成該過程后立即清除。通過這種方式,可以使用示波器測量時間,作為P0.0引腳上產生脈沖的寬度。使用以太網交叉電纜將電路板連接到PC。
PC運行嗅探器程序(在本例中為WireShark,http://www.wireshark.org/),以驗證是否已發送50幀并且數據是正確的。使用有效載荷中的特定模式,因此可以容易地識別任何錯誤。如果50幀到達PC沒有錯誤,則認為測試有效(參見圖4)。
圖4:驗證有效負載。
測試場景
EMAC使用一系列描述符,這些描述符提供指向數據緩沖區,控制和狀態信息所在的內存位置的指針。在傳輸的情況下,應用程序應將幀數據放入這些數據緩沖區。 EMAC使用DMA獲取用戶的數據并在傳輸之前填充幀的有效負載。因此,應用程序使用的方法將應用程序數據復制到那些數據緩沖區中將影響吞吐量的整體測量。出于這個原因,提出了三種不同的方案:
“理想”方案,根本不考慮應用程序,
“典型”方案,其中應用程序使用處理器將應用程序的數據復制到EMAC的數據緩沖區中。
“優化”方案,其中應用程序通過DMA將應用程序的數據復制到EMAC的數據緩沖區中。
場景描述
“理想”場景:在這種情況下,軟件使用測試模式設置描述符的數據緩沖區,并且只有TxProduceIndex增加50次(每個數據包一次增加一次)發送)以觸發幀傳輸。換句話說,根本不考慮該應用程序。盡管這不是典型用戶的情況,但它將提供最大可能的傳輸吞吐量。
“典型”場景:此案例表示應用程序將數據復制到描述符中的典型情況發送幀之前的數據緩沖區。將此案例的結果與前一個案例的結果進行比較,很明顯該應用程序正在影響整體性能。不應將此情況視為實際的EMAC吞吐量。但是,這里介紹的是說明非優化應用程序如何降低整體結果,給人的印象是硬件太慢。
“優化”場景:此測試使用DMA來復制應用程序的數據進入描述符的數據緩沖區。這種情況考慮了一個真實的應用,但使用了有效利用快速LPC1700硬件的優化方法。
軟件
本文提供了Keil MDK項目形式的測試軟件(請查看恩智浦網站上的AN11053)。可以使用配置向導并打開“config.h”文件來選擇所需的方案(參見圖5)。除了場景之外,還可以通過此文件修改要發送的數據包數量和幀大小。
測試結果
運行測試后,表格中列出了以下結果:
幀發送有效載荷(字節)總數據(字節)時間(毫秒)相對于最大值的吞吐量(兆字節/秒)%。可能的最大可能12.19 100.0%場景1 50 1500 75000 6.25 12.00 98.44%場景2 50 1500 75000 10.44 7.18 58.93%場景3 50 1500 75000 7.1 10.56 86.66%
表1:測試結果。
圖5:選擇測試場景。
結論
盡管場景1不是一個實際案例,但它為我們的硬件提供了可能的最大值作為參考,這非常接近于以太網100 Mbps的最大可能性。在場景2中,應用程序對整體性能的影響變得明顯。最后,方案3顯示了優化的應用程序如何極大地提高整體吞吐量。
通過運行閃存(而不是RAM)中的代碼,在某些情況下通過增加代碼,可以找到優化應用程序并獲得更好結果的其他方法描述符的數量。總之,以太網吞吐量主要受應用程序如何將數據從應用程序緩沖區傳輸到描述符的數據緩沖區的影響。改進此過程將提高整體以太網性能。 LPC1700和其他LPC部件具有內置于系統硬件的優化,具有DMA支持,增強型EMAC硬件和智能存儲器總線架構。
-
微控制器
+關注
關注
48文章
7922瀏覽量
153790 -
ARM
+關注
關注
134文章
9321瀏覽量
375376 -
以太網
+關注
關注
40文章
5590瀏覽量
174955
發布評論請先 登錄
恩智浦推出全新KW47和MCX W72無線微控制器
e絡盟開售恩智浦新型微控制器和 FRDM 開發板

AN4754-將Microchip橋接控制器與外部以太網PHY搭配使用

TOSUN 車載以太網仿真測試解決方案

恩智浦半導體推出全新S32J系列高性能以太網交換機和網絡控制器
恩智浦半導體推出S32J系列以太網交換機和網絡控制器
全雙工以太網有哪些特點
使用C2000 EtherCAT從站控制器的SMI進行以太網PHY配置

MSP432E401Y Simplelink? 以太網微控制器數據表

MSP432E401Y Simplelink? 以太網微控制器數據表

評論