英創公司推出的ESM6802和ESM7100主板分別都帶有一路千兆網口和一路百兆網口,同時ESM6802主板可以選擇支持PCIe總線的配置(ESM7100默認支持PCIe總線),利用這一路PCIe總線,就可以再擴展出一路千兆網口實現雙千兆網口的方案。
在ESMARC通用評估底板上將PCIe總線以M.2的接口形式引出,M.2接口可以支持SSD實現大容量存儲,也可以支持擴展以太網或者wifi,這里主要介紹擴展千兆以太網的方案。市面上有很多M.2接口的千兆以太網模塊,常見的像Realtek、Intel等公司都有現成的模塊可以使用,本文章采用Realtek公司的RTL8111控制芯片來進行測試和說明。
RTL8111模塊
ESMARC評估底板上面的M.2接口是采用的M Key類型,而大多數M.2的以太網模塊都是B Key或者B&M Key,所以要在評估底板上連接測試的話,需要使用B&M Key的模塊。因為M.2接口的定義是標準的,如果客戶自行設計底板,可以參考M.2的規范,根據需求設計成別的類型。關于M key和B key的區別可以參考下圖:
M key和B key的區別
ESM6802主板上的PCIe總線為1.0版本,理論最高傳輸速度為250 MB/s,ESM7100主板的PCIe總線為2.0標準,理論最高速度為500MB/s。本次測試選擇ESM7100主板作為平臺與RTL8111連接測試,硬件的連接非常簡單,如下圖:
硬件連接示意圖
固定好后即可進行上電,一旦PCIe總線識別到M.2網絡設備,系統會自動加載驅動模塊,如果沒有自動加載,輸入命令modprobe r8169即可。進入系統后可以使用lspci命令查看PCIe總線下的設備,這時在終端應該能看到擴展的千兆以太網卡的設備信息。擴展網卡通過驅動會在Linux系統中生成一個標準的網絡設備,其所有的設置和操作都和標準的網口完全相同。因為還沒有設置網絡參數,設備默認是處于down的狀態,所以需要使用命令ifconfig –a查看擴展網絡對應的網絡設備信息:
網卡信息
從圖中可以看到新的網絡設備名稱為enp1s0,將ip地址和子網掩碼等網絡參數配置好之后,設備會自動轉換為up的狀態。和標準網口一樣,可以使用ifconfig命令來配置ip地址等參數,如下圖:
配置IP地址
配置好網絡參數以后,客戶可以通過ping命令來測試這個網口,如果能夠正常通訊,就說明配置正確,網卡的驅動為客戶提供了標準的接口,所以在應用程序中的操作方法和板卡自帶網口也是完全相同的,都采用標準的套接字進行編程。
最后我們來測試一下通過M.2接口擴展的千兆以太網的性能,使用iperf3工具測試網卡的數據如下:
ESM7100主板自帶千兆網口:
自帶網口測試數據
擴展千兆以太網測試情況:
擴展網口測試數據
從測試結果可以看到擴展千兆以太網的帶寬為526Mbit/sec左右,比自帶的千兆網口帶寬要小一些,但是也能夠滿足大部分工業控制上的需求了。
如果有感興趣的客戶,可以和英創的工程師聯系了解詳細情況。
成都英創信息技術有限公司 028-8618 0660