淺談嵌入式網(wǎng)絡(luò)終端報(bào)文收發(fā)機(jī)制的研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1、 引言
21世紀(jì)已進(jìn)入計(jì)算機(jī)網(wǎng)絡(luò)時(shí)代。計(jì)算機(jī)網(wǎng)絡(luò)極大普及,計(jì)算機(jī)應(yīng)用已進(jìn)入更高層次,計(jì)算機(jī)網(wǎng)絡(luò)成了計(jì)算機(jī)行業(yè)的一部分。新一代的計(jì)算機(jī)已將網(wǎng)絡(luò)接口集成到主板上,網(wǎng)絡(luò)功能已嵌入到操作系統(tǒng)之中,智能大樓的興建已經(jīng)和計(jì)算機(jī)網(wǎng)絡(luò)布線同時(shí)、同地、同方案施工。隨著通信和計(jì)算機(jī)技術(shù)緊密結(jié)合和同步發(fā)展,我國(guó)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)飛躍發(fā)展 .尤其在嵌入式網(wǎng)絡(luò)終端系統(tǒng)中,網(wǎng)絡(luò)報(bào)文的收發(fā)依靠協(xié)議棧完成,其功能集中在傳輸層、網(wǎng)絡(luò)層和鏈路層。通常的報(bào)文接收機(jī)制是在鏈路層以上建立接收任務(wù),通過(guò)查詢物理層的通信狀態(tài)或者由物理層中斷觸發(fā),來(lái)接收網(wǎng)絡(luò)數(shù)據(jù)。這兩種方式都有一定的缺陷。查詢方式,就是接收任務(wù)按照某種規(guī)則檢查底層是否收到新數(shù)據(jù),簡(jiǎn)單可靠,但由于網(wǎng)絡(luò)通信是一種隨機(jī)的離散事件,查詢方式可能對(duì)處理器資源造成嚴(yán)重浪費(fèi),加大通信延時(shí)。本文提出一種中斷與查詢結(jié)合使用的方法,通過(guò)實(shí)踐,表明這套收發(fā)機(jī)制具有高效、穩(wěn)定、可靠的優(yōu)點(diǎn)。
2、 收發(fā)機(jī)制
本文的目標(biāo)是充分利用嵌入式系統(tǒng)的處理器和存儲(chǔ)器資源,保證網(wǎng)絡(luò)終端報(bào)文收發(fā)的實(shí)時(shí)性和吞吐量。本系統(tǒng)按圖1的基本架構(gòu)實(shí)現(xiàn)網(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ò)之間異步問(wèn)題。接收過(guò)程分為三個(gè)階段,主要工作在RX2階段;發(fā)送過(guò)程分為兩個(gè)階段,上層和中層屬于同一階段(TX2)。原因是發(fā)送過(guò)程是主動(dòng)過(guò)程,由高層發(fā)起并控制低層完成,而接收過(guò)程中低層先得到數(shù)據(jù),但只能等待而不能控制高層的響應(yīng)。通常物理層、媒體訪問(wèn)控制(MAC)和一級(jí)緩存可以使用網(wǎng)絡(luò)接口控制器 (Network Interface Controller: NIC) 實(shí)現(xiàn),NIC能獨(dú)立完成物理鏈路上的報(bào)文收發(fā)。
網(wǎng)絡(luò)適配器又稱網(wǎng)卡或NIC(網(wǎng)絡(luò)接口控制器),是一塊被設(shè)計(jì)用來(lái)允許計(jì)算機(jī)在計(jì)算機(jī)網(wǎng)絡(luò)上進(jìn)行通訊的計(jì)算機(jī)硬件。由于其擁有MAC地址,因此屬于OSI模型的第2層。它使得用戶可以透過(guò)電纜或無(wú)線相互連接。 每一個(gè)網(wǎng)卡都有一個(gè)被稱為MAC地址的獨(dú)一無(wú)二的48位串行號(hào),它被寫在卡上的一塊ROM中。在網(wǎng)絡(luò)上的每一個(gè)計(jì)算機(jī)都必須擁有一個(gè)獨(dú)一無(wú)二的MAC地址。沒(méi)有任何兩塊被生產(chǎn)出來(lái)的網(wǎng)卡擁有同樣的地址。這是因?yàn)殡姎怆娮庸こ處焻f(xié)會(huì)(IEEE)負(fù)責(zé)為網(wǎng)絡(luò)接口控制器銷售商分配唯一的MAC地址。
2、1接收流程
本系統(tǒng)中,網(wǎng)絡(luò)報(bào)文接收過(guò)程RX2階段如圖2.初始狀態(tài)下,打開接收中斷A和一級(jí)緩沖溢出中斷B.若物理層收到一幀或多幀數(shù)據(jù),就存入一級(jí)接收緩存,并向處理器發(fā)出中斷請(qǐng)求。中斷請(qǐng)求即"緊急事件"須向處理器提出申請(qǐng)(發(fā)一個(gè)電脈沖信號(hào)),要求"中斷",即要求處理器先停下"自己手頭的工作"先去處理"我的急件",這一"申請(qǐng)"過(guò)程。系統(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ù)。如果沒(méi)有,就清除中斷A的有效狀態(tài),然后重新打開中斷A、B.如果有,就直接進(jìn)入下輪接收過(guò)程。網(wǎng)絡(luò)協(xié)議是用來(lái)描述進(jìn)程之間信息交換數(shù)據(jù)時(shí)的規(guī)則術(shù)語(yǔ)。在計(jì)算機(jī)網(wǎng)絡(luò)中,兩個(gè)相互通信的實(shí)體處在不同的地理位置,其上的兩個(gè)進(jìn)程相互通信,需要通過(guò)交換信息來(lái)協(xié)調(diào)它們的動(dòng)作和達(dá)到同步,而信息的交換必須按照預(yù)先共同約定好的過(guò)程進(jìn)行。
2、2發(fā)送流程
本系統(tǒng)報(bào)文發(fā)送過(guò)程TX2階段如圖3,實(shí)現(xiàn)方式與接收不同,無(wú)專門任務(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)成一種多點(diǎn)隨機(jī)查詢機(jī)制。NIC指網(wǎng)絡(luò)適配器",英文全稱為"Network Interface Card",簡(jiǎn)稱"NIC",網(wǎng)卡是局域網(wǎng)中最基本的部件之一,它是連接計(jì)算機(jī)與網(wǎng)絡(luò)的硬件設(shè)備。無(wú)論是雙絞線連接、同軸電纜連接還是光纖連接,都必須借助于網(wǎng)卡才能實(shí)現(xiàn)數(shù)據(jù)的通信。它的主要技術(shù)參數(shù)為帶寬、總線方式、電氣接口方式等。
本系統(tǒng)中,報(bào)文接收流程本是一種被動(dòng)方式,相對(duì)查詢方式,軟硬件設(shè)計(jì)復(fù)雜度高,實(shí)用中很可能由于軟硬件缺陷導(dǎo)致可靠性問(wèn)題。采用這種中斷結(jié)合多點(diǎn)隨機(jī)查詢的辦法,既克服了周期性查詢的效率低、實(shí)時(shí)性差的缺點(diǎn),又消除了完全被動(dòng)接收的不可靠性。
3實(shí)現(xiàn)
根據(jù)上文提出的收發(fā)機(jī)制,建立一個(gè)實(shí)驗(yàn)終端系統(tǒng),檢查實(shí)際性能。
3、1系統(tǒng)硬件平臺(tái)
LSI403LP是DSP芯片。它可提供4路Rj11接口供傳統(tǒng)電話機(jī)接入,1路RJ-45接口連接internet,還有一個(gè)RS-232接口供系統(tǒng)程序維護(hù)與升級(jí)。使用這種VOIP網(wǎng)關(guān)后,可使小型企業(yè)或家庭用戶方便快捷地接入internet直接進(jìn)行語(yǔ)音通信,不但便捷而且經(jīng)濟(jì)。給出了硬件和軟件的結(jié)構(gòu)設(shè)計(jì)。
本系統(tǒng)核心采用LSI403LP定點(diǎn)數(shù)字信號(hào)處理器,時(shí)鐘頻率150MHz,最高速率600MIPS.具有外部指令和數(shù)據(jù)存儲(chǔ)器接口,類存儲(chǔ)器外設(shè)接口,三種接口共享地址、數(shù)據(jù)總線和讀寫等控制信號(hào),但具有各自的片選信號(hào),而且可以單獨(dú)配置,兼容不同訪問(wèn)時(shí)序。
本系統(tǒng)的NIC選用RTL8019AS[4].該NIC支持ISA總線,可直接按存儲(chǔ)器方式訪問(wèn),支持10BASE-T,有16KBytes片內(nèi)SRAM,可作為一級(jí)緩存,其中14KB作為接收緩存,2KB作為發(fā)送緩存。ISA總線: (Industry Standard Architecture:工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu))是IBM公司為PC/AT電腦而制定的總線標(biāo)準(zhǔn),為16位體系結(jié)構(gòu),只能支持16位的I/O設(shè)備,數(shù)據(jù)傳輸率大約是16MB/S.也稱為AT標(biāo)準(zhǔn)。開始時(shí)PC機(jī)面向個(gè)人及辦公室,定義了8位的ISA總線結(jié)構(gòu),對(duì)外公開,成為標(biāo)準(zhǔn)(ISO ISA標(biāo)準(zhǔn))。
本系統(tǒng)的以太網(wǎng)接口模塊電路如圖4.8019的JP引腳接高電平,將8019設(shè)置在jumper工作模式。此模式下,8019的部分功能由跳線開關(guān)來(lái)設(shè)定,軟件控制使用NE2000寄存器組。LSI403LP對(duì)8019的一個(gè)訪問(wèn)周期即PCS0N的一個(gè)有效周期,可通過(guò)403的寄存器設(shè)置為403時(shí)鐘周期的整數(shù)倍。以太網(wǎng)(Ethernet)指的是由Xerox公司創(chuàng)建并由Xerox,Intel和DEC公司聯(lián)合開發(fā)的基帶局域網(wǎng)規(guī)范。是當(dāng)今現(xiàn)有局域網(wǎng)采用的最通用的通信協(xié)議標(biāo)準(zhǔn)。 以太網(wǎng)絡(luò)使用CSMA/CD(載波監(jiān)聽多路訪問(wèn)及沖突檢測(cè)技術(shù))技術(shù),并以10M/S的速率運(yùn)行在多種類型的電纜上。以太網(wǎng)與IEEE802·3系列標(biāo)準(zhǔn)相類似。
3、2系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件架構(gòu)如圖5,網(wǎng)絡(luò)通信流程按照上文描述設(shè)計(jì)。本系統(tǒng)基于單DSP,采用uC/OS-II 嵌入式實(shí)時(shí)操作系統(tǒng)。uC/OS-II采用基于優(yōu)先級(jí)的搶占式多任務(wù)內(nèi)核,最高優(yōu)先級(jí)任務(wù)一旦就緒就必須搶占處理器,任務(wù)級(jí)響應(yīng)時(shí)間可預(yù)知,對(duì)實(shí)時(shí)通信應(yīng)用非常重要。
本系統(tǒng)中存在一個(gè)網(wǎng)絡(luò)接收任務(wù)和多個(gè)網(wǎng)絡(luò)發(fā)送任務(wù),NIC作為它們的共享資源,利用一個(gè)信號(hào)量來(lái)進(jìn)行資源分配,以確保這幾個(gè)任務(wù)不會(huì)同時(shí)訪問(wèn)NIC,導(dǎo)致NIC故障。
4實(shí)驗(yàn)結(jié)果
將一臺(tái)PC作為主機(jī)與一臺(tái)實(shí)驗(yàn)終端通過(guò)10Base-T以太網(wǎng)直接連通,不通過(guò)任何中間節(jié)點(diǎn),進(jìn)行以下測(cè)試,考察本系統(tǒng)以太網(wǎng)接口的性能。
4、1中斷頻率
主機(jī)向?qū)嶒?yàn)終端發(fā)送100字節(jié)的ICMP回傳請(qǐng)求報(bào)文,發(fā)送10萬(wàn)次,發(fā)送速率約8330次/秒,占用帶寬約7.0Mbps.實(shí)驗(yàn)終端收到ICMP報(bào)文并且解析正確則是一次成功接收,但并不響應(yīng)。LSI403與8019采用不同通信帶寬,實(shí)驗(yàn)結(jié)果如表1.
表1說(shuō)明,在終端內(nèi)部,隨著上層與一級(jí)緩存通信速率的降低,接收中斷次數(shù)大大減少,報(bào)文丟失數(shù)有一定增加,但收到的報(bào)文數(shù)遠(yuǎn)高于中斷次數(shù)。說(shuō)明本系統(tǒng)的接收機(jī)制,能夠有效減少中斷和任務(wù)切換對(duì)處理器資源的消耗,彌補(bǔ)上層與一級(jí)緩存通信速率的不足。表1中第6種配置下,有大量數(shù)據(jù)包丟失,原因是403外部總線通信速率略高,數(shù)據(jù)傳輸出錯(cuò)。
總線通信速率低,與處理器速度慢或者協(xié)議棧效率低對(duì)網(wǎng)絡(luò)報(bào)文接收性能的影響是一致的,因此,這些都能夠采用本系統(tǒng)的接收機(jī)制來(lái)獲得較大的改善。
4、2帶寬
帶寬(band width)又叫頻寬,是指在固定的的時(shí)間可傳輸?shù)馁Y料數(shù)量,亦即在傳輸管道中可以傳遞數(shù)據(jù)的能力。在數(shù)字設(shè)備中,頻寬通常以bps表示,即每秒可傳輸之位數(shù)。在模擬設(shè)備中,頻寬通常以每秒傳送周期或赫茲 (Hz)來(lái)表示。
采用表1中第5種配置,測(cè)試環(huán)境與中斷頻率測(cè)試相同,ICMP回傳請(qǐng)求報(bào)文長(zhǎng)度分別為60和1514字節(jié)。主機(jī)配置是2.4GHz奔4處理器,256MDDR內(nèi)存,RTL8139快速網(wǎng)卡,按0ms間隔(即最高速度)發(fā)送數(shù)據(jù)。測(cè)試結(jié)果如表2.本系統(tǒng)兩種情況下的吞吐量分別可以達(dá)到5.77Mbps和9.55Mbps,說(shuō)明本系統(tǒng)對(duì)網(wǎng)絡(luò)帶寬具有很高的使用效率。
4、3沖擊測(cè)試
計(jì)算機(jī)網(wǎng)絡(luò)中,各個(gè)節(jié)點(diǎn)都可能遭到大量數(shù)據(jù)沖擊,導(dǎo)致發(fā)生故障,甚至無(wú)法自動(dòng)恢復(fù)。為檢測(cè)本系統(tǒng)抗沖擊能力,主機(jī)向?qū)嶒?yàn)終端連續(xù)地發(fā)送長(zhǎng)度74字節(jié)的ICMP回送請(qǐng)求報(bào)文。相同帶寬下,數(shù)據(jù)包長(zhǎng)度越小,收發(fā)頻率越高,通信節(jié)點(diǎn)負(fù)擔(dān)也就越大。測(cè)試過(guò)程中,實(shí)驗(yàn)終端只運(yùn)行uC/OS-II操作系統(tǒng)和協(xié)議棧相關(guān)任務(wù),以及一個(gè)用戶任務(wù)。主機(jī)發(fā)送報(bào)文頻率約每毫秒10次,占用帶寬約786KBytes/s.經(jīng)過(guò)3000萬(wàn)次沖擊,終端仍在按1秒間隔發(fā)送報(bào)文,并且主機(jī)仍能收到終端的ICMP回送。測(cè)試結(jié)果表明,本系統(tǒng)能夠?yàn)閷?shí)際應(yīng)用提供很好的穩(wěn)定性保障。
ICMP回送請(qǐng)求報(bào)文的方法,用于網(wǎng)絡(luò)設(shè)備,其特征在于,包括:步驟一,接收ICMP回送請(qǐng)求報(bào)文,并對(duì)所述ICMP回送請(qǐng)求報(bào)文進(jìn)行分片分類;步驟二,根據(jù)不同的分片類型對(duì)所述ICMP回送請(qǐng)求報(bào)文進(jìn)行分別處理,以獲得相應(yīng)的出接口信息和封裝信息;及步驟三,根據(jù)所述出接口信息和所述封裝信息封裝ICMP回送應(yīng)答報(bào)文并發(fā)送。采用本發(fā)明方法對(duì)不需分片的ICMP回送請(qǐng)求報(bào)文可以直接應(yīng)答,對(duì)每個(gè)分片直接處理并封裝發(fā)送,從而達(dá)到節(jié)約CPU資源,快速響應(yīng)的目的,本發(fā)明方法還可以在網(wǎng)絡(luò)設(shè)備的線卡上對(duì)ICMP回送請(qǐng)求報(bào)文直接進(jìn)行分布式響應(yīng),快速處理本線卡收到的ICMP回送請(qǐng)求報(bào)文。
5、結(jié)束語(yǔ)
本文針對(duì)嵌入式網(wǎng)絡(luò)終端,提出了一種中斷結(jié)合多點(diǎn)隨機(jī)查詢的網(wǎng)絡(luò)報(bào)文收發(fā)機(jī)制并進(jìn)行實(shí)踐。通過(guò)這種機(jī)制既獲得了很高的報(bào)文接收速率,同時(shí)大大降低了系統(tǒng)的中斷切換、查詢、任務(wù)切換等負(fù)擔(dān),而且具有很好的穩(wěn)定性和可靠性。本文的成果已經(jīng)在一種基于LSI403LP的單DSP網(wǎng)絡(luò)電話終端方案中運(yùn)用,在通信速度、丟報(bào)率、穩(wěn)定性各方面收到令人滿意的效果。在中國(guó)嵌入式系統(tǒng)領(lǐng)域,比較認(rèn)同的嵌入式系統(tǒng)概念是:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。