<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式網(wǎng)絡(luò)終端報(bào)文收發(fā)機(jī)制研究與實(shí)現(xiàn)

          嵌入式網(wǎng)絡(luò)終端報(bào)文收發(fā)機(jī)制研究與實(shí)現(xiàn)

          作者: 時(shí)間:2009-05-21 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/152483.htm

          2、1接收流程

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

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

          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();