新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式網絡終端報文收發機制研究與實現

        嵌入式網絡終端報文收發機制研究與實現

        作者: 時間:2009-05-21 來源:網絡 收藏

        1、 引言
        計算機技術迅猛發展,幾乎延伸到各個領域,已經成為很多系統的重要功能組件[1],并且衍生出新型,如IP電話、IPTV等。在系統中,依靠協議棧完成,其功能集中在傳輸層、網絡層和鏈路層。通常的接收是在鏈路層以上建立接收任務,通過查詢物理層的通信狀態或者由物理層觸發[2],來接收網絡數據。這兩種方式都有一定的缺陷。查詢方式,就是接收任務按照某種規則檢查底層是否收到新數據,簡單可靠,但由于網絡通信是一種隨機的離散事件,查詢方式可能對處理器資源造成嚴重浪費,加大通信延時。方式相對靈活,延時固定,但在程序中引入了更多的上下文切換,在復雜度和可靠性上略有不足。本文提出一種與查詢結合使用的方法,通過實踐,表明這套具有高效、穩定、可靠的優點。
        2、
        本文的目標是充分利用系統的處理器和存儲器資源,保證網絡收發的實時性和吞吐量。本系統按圖1的基本架構網絡通信,由三層功能模塊和兩級緩存構成一條接收通道和一條發送通道。上層是系統應用程序。底層負責物理鏈路上的數據收發。中層由協議棧和網絡接口適配器驅動負責上層和底層的數據交互。有兩級緩存,上層與中層之間的二級緩存用于網絡報文的封裝和解析;中層與底層之間的一級緩存分為接收緩存和發送緩存,采用環行結構,作用是解決終端與網絡之間異步問題。接收過程分為三個階段,主要工作在RX2階段;發送過程分為兩個階段,上層和中層屬于同一階段(TX2)。原因是發送過程是主動過程,由高層發起并控制低層完成,而接收過程中低層先得到數據,但只能等待而不能控制高層的響應。通常物理層、媒體訪問控制(MAC)和一級緩存可以使用網絡接口控制器 (Network Interface Controller: NIC) ,NIC能獨立完成物理鏈路上的

        本文引用地址:http://www.104case.com/article/152483.htm

        2、1接收流程

        本系統中,網絡報文接收過程RX2階段如圖2。初始狀態下,打開接收中斷A和一級緩沖溢出中斷B。若物理層收到一幀或多幀數據,就存入一級接收緩存,并向處理器發出中斷請求。系統將會執行相應中斷程序,檢查一級接收緩存是否溢出。如果溢出,就對其復位,并回到初始狀態。否則,關閉中斷A、B,向協議棧的接收任務發出一次接收通知。接收任務每次收到該通知,就從一級緩存取出一幀數據,保存到二級緩存,并按照網絡協議進行處理后轉交上層,之后,檢查一級緩存內是否仍有新數據。如果沒有,就清除中斷A的有效狀態,然后重新打開中斷A、B。如果有,就直接進入下輪接收過程。如此,一次突發過程中如果網絡中有多幀數據到達終端,能夠直接由上層一一接收,而不需一次次中斷。
        2、2發送流程
        本系統報文發送過程TX2階段如圖3,方式與接收不同,無專門任務負責發送功能,而是由協議棧提供一套統一接口,上層應用程序借此發送數據。首先在二級緩存中形成網絡報文,然后檢查一級緩存中發送緩存,待其可用,將數據從二級緩存復制到一級緩存,啟動發送。之后,NIC通常能夠自動完成余下的物理層發送工作。此刻,系統主動查詢接收通道的工作狀態。如果發生中斷A或B,就觸發軟中斷。于是,構成一種機制。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
        電能表相關文章:電能表原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吴江市| 东平县| 田林县| 赤壁市| 惠来县| 巧家县| 芮城县| 屯昌县| 木里| 四子王旗| 安乡县| 渝北区| 叙永县| 独山县| 印江| 玛沁县| 静宁县| 行唐县| 建宁县| 鹤岗市| 白银市| 轮台县| 茶陵县| 安徽省| 讷河市| 西吉县| 益阳市| 正蓝旗| 昌宁县| 衢州市| 元谋县| 广德县| 吴旗县| 和龙市| 水富县| 莫力| 平潭县| 汕头市| 巴塘县| 古浪县| 阳曲县|