亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SoC的嵌入式網(wǎng)關(guān)的設(shè)計與實現(xiàn)

        2011-07-25 06:48:56陳濟民華北計算技術(shù)研究所專裝技術(shù)研發(fā)部北京100083
        計算機工程與設(shè)計 2011年9期
        關(guān)鍵詞:鏈路層緩沖區(qū)網(wǎng)關(guān)

        杜 超, 陳濟民(華北計算技術(shù)研究所專裝技術(shù)研發(fā)部,北京100083)

        0 引 言

        隨著微電子技術(shù)的發(fā)展,芯片的集成度越來越高,片上系統(tǒng)(SoC)的發(fā)展已經(jīng)是必然趨勢。SoC具有可擴展性好,成本低,設(shè)計周期短,可靠性高,功耗低等優(yōu)點。SoC也為各種網(wǎng)絡(luò)產(chǎn)品的研發(fā)提供了新的思路[1-4]。由于SoC具有良好的可重配置性,可很方便地更改配置和屬性,利用該技術(shù)設(shè)計出的產(chǎn)品具有很好的靈活性和安全性。在沒有引入統(tǒng)一的路由控制機制以及沒有統(tǒng)一的TCP/IP協(xié)議支持的測控網(wǎng)中連通性差、靈活性弱,這就使網(wǎng)絡(luò)應(yīng)用模式受到限制,更無法支持各種上層應(yīng)用。本文介紹一種基于SoC及IP核技術(shù)的專用嵌入式網(wǎng)關(guān)的設(shè)計與實現(xiàn),以實現(xiàn)在HDLC鏈路上進行IP分組的傳輸并和以太網(wǎng)實現(xiàn)路由交換,可有效地解決廣域測控網(wǎng)的互連互通性,并且系統(tǒng)的設(shè)計也可以方便部署各種上層應(yīng)用。

        1 網(wǎng)關(guān)體系結(jié)構(gòu)設(shè)計

        1.1 系統(tǒng)概述

        網(wǎng)關(guān)以一個Xilinx Virtex-4 Fx100芯片[5-7]為核心,自主開發(fā)了所需的系列IP核,并設(shè)計相應(yīng)的外圍電路。XilinxVirtex-4 Fx100芯片內(nèi)部有兩個PowerPC 405 CPU核(分別稱為PPC/01和PPC/02)和4個以太網(wǎng)MAC核。2個PowerPC處理器核分別承擔著不同的工作。其中,PPC/01主要負責路由信息的維護,以及與用戶的交互;PPC/02主要負責調(diào)度交換結(jié)構(gòu)在各端口之間轉(zhuǎn)發(fā)IP包,實現(xiàn)ARP協(xié)議,維護映射表,并且負責查找轉(zhuǎn)發(fā)表和映射表。一個正確的數(shù)據(jù)包的處理過程如圖1所示。

        進入系統(tǒng)的鏈路層幀被 MAC/HDLC輸入輸出處理部件剝?nèi)ユ溌穼宇^,進行正確性校驗,正確的包放入輸入端口的相應(yīng)緩沖區(qū),并向PPC/02發(fā)出接收完成中斷,請求PPC/02處理。校驗錯誤或者輸入緩沖區(qū)滿導(dǎo)致阻塞時,接收端口將校驗錯誤的IP頭和一部分負載放入輸入端ICMP緩沖區(qū),并產(chǎn)生中斷來通知PPC/02處理。

        對于輸入的IP包,PPC/02收到中斷信號之后,會查找轉(zhuǎn)發(fā)表,找到下一跳的IP地址和輸出端口號;然后查找映射表,查找下一跳的MAC地址,查找到的目的MAC地址被放入輸出端口的寄存器內(nèi)。然后PPC/02調(diào)度交換部件執(zhí)行交換,把IP包交換到相應(yīng)的輸出端口。輸出端口將此IP包和目的MAC地址一起組裝成鏈路層數(shù)據(jù)幀發(fā)送出去。

        圖1 系統(tǒng)工作原理

        如果這個IP包是送往本網(wǎng)關(guān)的RIP協(xié)議數(shù)據(jù)包,就通過交換結(jié)構(gòu)把數(shù)據(jù)包交換PPC/01的輸入緩沖區(qū),然后通過中斷告訴PPC/01有數(shù)據(jù)到達,PPC/01收到中斷后從自己的輸入緩沖區(qū)中讀取數(shù)據(jù)報,并根據(jù)RIP包來維護路由信息。

        對于輸入的ARP包,PPC/02要么根據(jù)ARP包的內(nèi)容來更新映射表,要么生成ARP響應(yīng)包,放入輸出端口的相應(yīng)緩沖區(qū),由輸出端口發(fā)送出去。

        用戶則通過PPC/01提供的人機交互接口,對網(wǎng)關(guān)的相關(guān)參數(shù)進行配置,也可以獲取網(wǎng)關(guān)運行的狀態(tài)信息。

        1.2 硬件結(jié)構(gòu)

        系統(tǒng)劃分為8個模塊:PPC/01處理器,PPC/02處理器,MAC端口部件,HDLC端口部件,快速交換部件,轉(zhuǎn)發(fā)引擎部件,地址映射部件和雙機通信部件,如圖2所示。圖中的Port_PPC01和Port_PPC02分別代表PPC/01和PPC/02的輸入/輸出緩沖區(qū)。這兩個緩沖區(qū)是交換結(jié)構(gòu)和兩個CPU核之間交換數(shù)據(jù)的通路。各模塊功能簡述如下:

        (1)PPC/01。PPC/01上運行Linux操作系統(tǒng)和Zebra路由軟件,負責建立和維護路由表,轉(zhuǎn)發(fā)表以及配置管理工作。PPC/01也分析PPC/02通過雙機通信送來的狀態(tài)信息,并根據(jù)狀態(tài)信息的含義進行必要的處理,比如被通知從端口 Port_PPC01的接收緩沖區(qū)中讀取數(shù)據(jù)。另外,它提供一個人機交互接口,使用戶可以在靜態(tài)、動態(tài)運行的條件下對網(wǎng)關(guān)進行配置。各種上層應(yīng)用也可以部署在PPC/01上。

        (2)PPC/02。PPC/02運行Xilkernel微內(nèi)核操作系統(tǒng),負責對輸入的包進行分析,根據(jù)包的類型和目的地址來調(diào)度交換結(jié)構(gòu),將包交換到合適的目的端口。PPC/02也負責實現(xiàn)ARP協(xié)議,維護映射表。

        (3)MAC端口部件。有4個MAC端口部件。MAC端口對外直接連接到以太網(wǎng),對內(nèi)與交換結(jié)構(gòu)連接。它是以太網(wǎng)數(shù)據(jù)幀輸入輸出的硬件實現(xiàn)部分。它把接收到的以太網(wǎng)幀進行處理,放入合適的輸入緩沖區(qū),也負責把輸出緩沖區(qū)中的IP包裝配成幀發(fā)送出去。

        (4)HDLC端口部件。有4個HDLC端口部件。HDLC端口是一個簡化HDLC收發(fā)端口,實現(xiàn)的功能和MAC端口類似,負責HDLC幀的收發(fā)。

        (5)快速交換部件。快速交換部件是整個系統(tǒng)數(shù)據(jù)流動的中心部件。主要職責是將各個端口輸入緩沖區(qū)內(nèi)的IP分組快速地交換到正確的目的端口的輸出緩沖區(qū)。快速交換部件采用總線式交換,它所交換的數(shù)據(jù)都是IP包,即第三層交換。

        圖2 系統(tǒng)硬件結(jié)構(gòu)

        (6)轉(zhuǎn)發(fā)引擎部件。轉(zhuǎn)發(fā)引擎部件的功能是根據(jù)輸入的目的IP地址得到其最長匹配目的網(wǎng)絡(luò)地址或目的主機IP地址在路由表中的索引。

        (7)地址映射部件。地址映射部件根據(jù)輸入的下一跳IP地址得到匹配的MAC地址。

        (8)雙機通信部件。雙機通信部件負責實現(xiàn)兩個CPU核之間的通信,在兩個CPU核之間交換控制和狀態(tài)信息。雙機通信由兩部分組成,共享存儲器和中斷控制器。兩個處理器都通過它們的OCM總線連接到一個雙口RAM,共享存儲器被劃分成兩個單向緩沖區(qū),兩個CPU核分別只對其中一個可寫,對另一個可讀。每個處理器都有一個中斷接口,通過中斷告知對方有數(shù)據(jù)到達,或者向?qū)Ψ秸埱髷?shù)據(jù)。

        1.3 軟件結(jié)構(gòu)

        按照系統(tǒng)的功能劃分,軟件的結(jié)構(gòu)也分為 PPC/01和PPC/02兩部分,如圖3所示。PPC/01上運行著系統(tǒng)支撐子系統(tǒng),配置管理子系統(tǒng)和路由子系統(tǒng)。PPC/02上運行轉(zhuǎn)發(fā)子系統(tǒng)。各子系統(tǒng)的功能如下:

        (1)轉(zhuǎn)發(fā)子系統(tǒng)。轉(zhuǎn)發(fā)子系統(tǒng)在Xilkernel微內(nèi)核操作系統(tǒng)上實現(xiàn),主要職責是負責包的快速轉(zhuǎn)發(fā),調(diào)度交換結(jié)構(gòu)在各端口之間交換IP包。主要包括管理控制模塊、IP協(xié)議處理模塊、ARP協(xié)議處理模塊、ICMP協(xié)議處理模塊,雙機通信模塊以及各驅(qū)動模塊。

        (2)系統(tǒng)支撐子系統(tǒng)。系統(tǒng)支撐子系統(tǒng)運行在嵌入式Linux操作系統(tǒng)上,它為路由子系統(tǒng)和配置管理子系統(tǒng)提供了一個平臺,并且也是其它各種應(yīng)用部署的平臺。支撐子系統(tǒng)是PPC/01與系統(tǒng)其它部分協(xié)調(diào)和交互的橋梁,支撐子系統(tǒng)向上連接路由子系統(tǒng),向下與轉(zhuǎn)發(fā)子系統(tǒng)連接,實現(xiàn) PPC/01與PPC/02的通信。為了把網(wǎng)關(guān)的硬件結(jié)構(gòu)和Linux操作系統(tǒng)融合起來,需要對Linux的TCP/IP協(xié)議棧進行改造,后面會介紹。

        (3)路由子系統(tǒng)。路由子系統(tǒng)負責維護路由表,并根據(jù)路由表來更新轉(zhuǎn)發(fā)表。

        (4)配置管理子系統(tǒng)。配置管理子系統(tǒng)是網(wǎng)關(guān)運行過程中用戶對其進行配置和管理的接口。用戶可以通過配置管理子系統(tǒng)來添加、刪除靜態(tài)路由,調(diào)整路徑的Metric值,選擇路由協(xié)議等,還可以通過配置管理子系統(tǒng)獲得系統(tǒng)運行的狀態(tài)信息,以及各種統(tǒng)計信息。

        2 關(guān)鍵技術(shù)

        上面提到的MAC端口部件,HDLC端口部件,快速交換部件,轉(zhuǎn)發(fā)引擎部件,地址映射部件和雙機通信部件,在本系統(tǒng)中均采用了IP核技術(shù)進行實現(xiàn),IP核是系統(tǒng)研發(fā)的核心,也是整個系統(tǒng)的基石,IP核設(shè)計的好壞直接影響到整個系統(tǒng)的集成、調(diào)試工作。另外,系統(tǒng)支撐子系統(tǒng)需要對Linux TCP/IP協(xié)議棧進行改造,也是系統(tǒng)實現(xiàn)的難點之一。

        2.1 HDLC IP核

        HDLCIP核負責HDLC幀的收發(fā)。接收時,HDLCIP核把輸入的幀去掉鏈路層頭部之后,放進IP分組輸入緩沖區(qū),對IP分組首部進行校驗、TTL-1、首部校驗錯的IP分組丟棄、首部的再校驗、并將校驗結(jié)果重寫入校驗和字段,然后向PPC/02發(fā)出中斷請求,通知PPC/02將此IP包交換到其它端口;發(fā)送過程則不需要程序的干預(yù),IP分組輸出緩沖區(qū)中的IP包被硬件自動裝配成幀發(fā)送出去。

        HDLCIP核由端口緩沖結(jié)構(gòu)和HDLC收發(fā)器組成。端口緩沖結(jié)構(gòu)對數(shù)據(jù)進行緩沖,按照協(xié)議對數(shù)據(jù)的流向進行控制,完成與交換結(jié)構(gòu)和程序的交互。HDLC端口的緩沖區(qū)包括:HDLC幀輸入/輸出緩沖區(qū),IP分組交換輸入/輸出緩沖區(qū),IP分組首部緩沖區(qū),輸入/輸出端ICMP分組緩沖區(qū)。HDLC收發(fā)器為單通道收發(fā)器,它主要由發(fā)送模塊、接收模塊和控制模塊組成。HDLC收發(fā)器以全雙工方式工作。

        圖3 系統(tǒng)軟件結(jié)構(gòu)

        通過鏈路協(xié)議IP核的設(shè)計,實現(xiàn)了具有自主知識產(chǎn)權(quán)的HDLC協(xié)議控制器,并進行了優(yōu)化處理,提高了其實時性和抗干擾能力。

        2.2 快速交換IP核

        快速交換IP核的作用就是根據(jù)轉(zhuǎn)發(fā)子系統(tǒng)分析出的IP分組轉(zhuǎn)發(fā)結(jié)果,快速完成IP分組從輸入端口到輸出端口的移動。

        快速交換IP核主要由輸入隊列、輸出隊列、交換選路結(jié)構(gòu)和調(diào)度器組成,如圖4所示。其中的關(guān)鍵部件為調(diào)度器和交換選路結(jié)構(gòu)。

        調(diào)度器采用狀態(tài)機設(shè)計方法和適當?shù)恼{(diào)度算法,是整個交換結(jié)構(gòu)數(shù)據(jù)交換的控制樞紐,它負責根據(jù)各個輸入、輸出端口的狀態(tài)和所有數(shù)據(jù)通路的狀態(tài),做出正確、高效、公平的決策,調(diào)度每個端口的各個輸入IP分組如何快速的通過交換結(jié)構(gòu)到達輸出端口。交換選路結(jié)構(gòu)則是根據(jù)調(diào)度器的調(diào)度命令具體的完成各個IP分組的快速交換。通過快速交換IP核的設(shè)計,實現(xiàn)了一個以交換結(jié)構(gòu)為中心的數(shù)據(jù)分組交換平臺,可以在其之上快速方便地衍生出更多或功能更復(fù)雜的設(shè)計,為今后的產(chǎn)品設(shè)計奠定了基礎(chǔ)。

        2.3 Linux TCP/IP協(xié)議棧改造

        Linux TCP/IP協(xié)議棧改造是實現(xiàn)系統(tǒng)支撐子系統(tǒng)的關(guān)鍵內(nèi)容。Linux是開放源代碼的操作系統(tǒng),Linux TCP/IP協(xié)議棧本身的功能是很成熟強大的[8-15],功能十分全面。通過對協(xié)議棧進行改造,然后重新編譯內(nèi)核,來得到實際需要的協(xié)議棧。

        Linux TCP/IP協(xié)議棧的包處理分為4層:鏈路層(以太網(wǎng)幀)→網(wǎng)絡(luò)層(IP包)→傳輸層(TCP,UDP包)→應(yīng)用層。需要改造的部分在鏈路層和網(wǎng)絡(luò)層,傳輸層以上則不需要修改。

        對于鏈路層的改造是由于 PPC/01物理上是通過 Port_PPC01端口收發(fā)數(shù)據(jù)的,而Port_PPC01端口與交換結(jié)構(gòu)相連,交換結(jié)構(gòu)交換的都是IP包,所以PPC/01收發(fā)的也都是IP包。這與Linux TCP/IP協(xié)議棧原本進出的都是鏈路層幀是完全不一樣的。需要把Linux TCP/IP協(xié)議棧的鏈路層替換成實際的鏈路層。由于PPC/01負責維護路由信息,所以它必須得了解網(wǎng)關(guān)的輸入輸出端口,通過建立8個虛擬網(wǎng)絡(luò)設(shè)備,來與物理上的4個MAC端口和4個HDLC端口相對應(yīng),可以把底層的端口映射到操作系統(tǒng)內(nèi)核。這8個虛擬網(wǎng)絡(luò)設(shè)備邏輯上相當于鏈路層,但實際上,它們收發(fā)的是IP包。對虛擬網(wǎng)絡(luò)設(shè)備編寫的驅(qū)動程序?qū)嶋H上是操作Port_PPC01端口進行數(shù)據(jù)收發(fā)。

        對于IP層的改造主要基于執(zhí)行效率的考慮,剪掉不需要執(zhí)行的代碼。比如,PPC/01沒有鄰居的概念,不需要處理ARP包,這些都是由PPC/02來實現(xiàn)的;PPC/01也不轉(zhuǎn)發(fā)數(shù)據(jù)包,它只通過交換結(jié)構(gòu)那里收發(fā)RIP包,以及一些ICMP包。

        3 網(wǎng)關(guān)性能測試結(jié)果

        使用網(wǎng)絡(luò)分析儀Smartbit來對網(wǎng)關(guān)進行4項測試:最大包轉(zhuǎn)發(fā)速率、背板交換能力、延遲和最大吞吐量。前3項的測試結(jié)果如表1所示。分別單獨測試了轉(zhuǎn)發(fā)子系統(tǒng)和背板的延遲。

        分別單獨測試了背板和轉(zhuǎn)發(fā)子系統(tǒng)的最大吞吐量,得到的最大吞吐量和包長的關(guān)系如圖5所示。

        圖5 最大吞吐量和包長的關(guān)系,x軸代表包長(字節(jié)),y軸代表最大吞吐量(百分比)

        從上面的數(shù)據(jù)可以看出,網(wǎng)關(guān)的最大包轉(zhuǎn)發(fā)速率達到了每秒7萬包,基本滿足了設(shè)計要求和應(yīng)用環(huán)境的需要。整個系統(tǒng)的最大吞吐量受到了轉(zhuǎn)發(fā)子系統(tǒng)的制約,所以提高轉(zhuǎn)發(fā)子系統(tǒng)的運行效率是整個系統(tǒng)后期優(yōu)化工作的一個重要方面。

        4 結(jié)束語

        基于SoC技術(shù)來時實現(xiàn)嵌入式網(wǎng)關(guān)系統(tǒng)是對SoC技術(shù)和嵌入式網(wǎng)關(guān)實現(xiàn)技術(shù)的探索。系統(tǒng)的功能模塊劃分本著軟硬件協(xié)同設(shè)計的原則,盡量做到劃分合理,針對本次設(shè)計的不足,可以在不對系統(tǒng)設(shè)計做出大的改變的情況下,對系統(tǒng)的模塊進行升級,來提高系統(tǒng)的性能。后續(xù)工作除了優(yōu)化現(xiàn)有模塊的功能之外,還可以考慮加入安全模塊,SNMP管理模塊,以豐富網(wǎng)關(guān)的功能。

        [1]XIONG Guang-ze,ZHAN Jin-yu.Survey on techniques of SoC hardware/software co-design[J].Journal of Computer Applications,2006,26(4):757-760.

        [2]LI Dong-na,CAO Yang,ZHANG Qi,et al.Performance evaluation method ofmulti-task inSoC hardware/softwarecodesign[J].Application Research of Computers,2005,22(6):52-57.

        [3]MIAOSheng,DAIGuang-zhong,LIU Hang,et al.Researchonintellectual property core protection in SoC design[J].Application Research of Computers,2007,24(2):113-115.

        [4]李鍵,李鵬,張磊.基于SOPC的嵌入式系統(tǒng)設(shè)計技術(shù)[J].航空計算技術(shù),2008,38(2):123-126.

        [5]江崇科,黃智剛,張軍,等.嵌入式網(wǎng)關(guān)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2006,27(1):43-46.

        [6]鮑興川.TCP/IP通信技術(shù)在XilinxFPGA上的實現(xiàn)[J].水利水文自動化,2007(2):20-23.

        [7]余紅娟,潘松.FPGA技術(shù)的應(yīng)用與發(fā)展[J].杭州電子科技大學學報,2006,26(3):17-20.

        [8]XIE Chang-sheng,LIU Zhi-bing.Research on Linux memory management[J].Application Research of Computers,2005,22(3):58-60.

        [9]lessandro Rubini.Linux device driver[M].2rd ed.USA:O'Reilly,2001.

        [10]XU Hong-zhe,PENG Xiao-hui,LI Yue,et al.Research of a framework of embedded network protocol stack and its application[J].Journal of Computer Applications,2008,28(4):846-848.

        [11]Christian Benvenuti.Understanding Linux network kernel[M].USA:O'Reilly,2005.

        [12]WANG Xing-jie,LI Yun,JIANG Hao,et al.Research of embedded cross development technology based on Linux[J].Application Research of Computers,2008,25(1):206-209.

        [13]陳年.嵌入式Linux設(shè)備驅(qū)動程序的構(gòu)建方法[J].計算機科學,2006,33(12):172-174.

        [14]LI Jin,GE Jing-guo.Analyses of mutual exclusion mechanism in Linux[J].Application Research of Computers,2005,22(8):72-75.

        [15]JIANG Zhi-jian,YANG Wen-chao,WANG Wen-sheng.Realtime communication over ethernet based on Linux[J].Application Research of Computers,2005,22(2):222-224.

        猜你喜歡
        鏈路層緩沖區(qū)網(wǎng)關(guān)
        網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
        基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
        基于改進RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計
        LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
        移動通信(2015年18期)2015-08-24 07:45:08
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        應(yīng)對氣候變化需要打通“網(wǎng)關(guān)”
        太陽能(2015年7期)2015-04-12 06:49:50
        數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進
        IEEE 1394事務(wù)層接口的設(shè)計與實現(xiàn)
        一種實時高效的伺服控制網(wǎng)關(guān)設(shè)計
        国产激情视频在线观看你懂的| 亚洲av成人无码网站…| 无遮挡亲胸捏胸免费视频| 久久国产精品免费一区六九堂| 中文字幕一区二区三区| 成人片黄网站a毛片免费| 亚洲精品成人区在线观看| 女的把腿张开男的猛戳出浆 | 亚洲精品中文有码字幕| 人妻久久一区二区三区| 日韩一区国产二区欧美三区| 国产精品第一二三区久久蜜芽 | 亚洲精品国产熟女久久| 亚洲写真成人午夜亚洲美女| 亚洲精品成人av在线| 亚洲精品成人专区在线观看| 亚洲福利第一页在线观看| 国产实拍日韩精品av在线| 中文字幕久久久人妻无码 | 日本中文字幕乱码中文乱码| 精品久久久bbbb人妻| 国产成人精品三级麻豆| 国产黄色精品高潮播放| av免费在线免费观看| 久久久国产精品黄毛片 | 人妻av一区二区三区高| 国产免费观看久久黄av麻豆 | 台湾佬综合网| 波多野无码AV中文专区| 小池里奈第一部av在线观看| 成人免费a级毛片| 亚洲成人中文| 尤物成av人片在线观看| 国产精品无码一区二区三区在| 人妻 日韩精品 中文字幕| 尤物蜜芽福利国产污在线观看| 精品极品一区二区三区| 肉体裸交137日本大胆摄影 | 国产 在线播放无码不卡| 国产国拍精品亚洲av在线观看| 国产精品伦一区二区三级视频|