999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于以太網(wǎng)的嵌入式數(shù)據(jù)傳輸速率優(yōu)化方法研究*

2015-08-17 08:41:45實,武
關(guān)鍵詞:嵌入式系統(tǒng)

陳 實,武 杰

一種基于以太網(wǎng)的嵌入式數(shù)據(jù)傳輸速率優(yōu)化方法研究*

陳實,武杰

(中國科學技術(shù)大學近代物理系,安徽合肥230026)

基于以太網(wǎng)的嵌入式數(shù)據(jù)傳輸系統(tǒng)在許多領(lǐng)域被普遍采用,系統(tǒng)的傳輸效率需要提高。基于ARM Cortex-M4內(nèi)核和常用的嵌入式網(wǎng)絡(luò)協(xié)議棧Lw IP,針對點對點數(shù)據(jù)傳輸?shù)奶攸c,采用了零數(shù)據(jù)拷貝技術(shù)并對UDP協(xié)議加以優(yōu)化改進,大大提高了傳輸性能。測試結(jié)果表明,數(shù)據(jù)傳輸?shù)乃俾蕪奈磧?yōu)化的2.03 MB/s提升到9.80 MB/s,已接近百兆以太網(wǎng)的極限。同時引入ACK回應(yīng)機制保障了UDP數(shù)據(jù)傳輸?shù)目煽啃浴?/p>

STM32F407;Lw IP/UDP;零數(shù)據(jù)拷貝;ACK

0 引言

基于以太網(wǎng)的嵌入式數(shù)據(jù)傳輸系統(tǒng)由于其結(jié)構(gòu)靈活、通用性強、傳輸速度快、傳輸距離遠等特點,在許多應(yīng)用領(lǐng)域都發(fā)揮著重要的作用[1]。但由于嵌入式系統(tǒng)本身的結(jié)構(gòu)[1]以及網(wǎng)絡(luò)協(xié)議棧的限制[2],網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)男什桓撸h遠達不到以太網(wǎng)傳輸?shù)睦碚搸挕R环矫嫱ㄟ^改進嵌入式系統(tǒng)的硬件結(jié)構(gòu),如利用FPGA并行處理的優(yōu)勢[2],可以大大提高數(shù)據(jù)傳輸?shù)男剩涣硪环矫妫ㄟ^分析并改進嵌入式網(wǎng)絡(luò)協(xié)議棧,也可以提高網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)乃俣龋?]。

嵌入式網(wǎng)絡(luò)傳輸系統(tǒng)由于成本資源的限制,往往采用簡化的網(wǎng)絡(luò)傳輸協(xié)議TCP/IP協(xié)議。Lw IP協(xié)議棧是TCP/IP協(xié)議的一種簡化版本,專門針對嵌入式系統(tǒng)開發(fā),專注于減少資源消耗,對性能優(yōu)化卻比較少,效率不是很高[4]。

本文通過研究、分析常用的嵌入式網(wǎng)絡(luò)協(xié)議棧Lw IP的結(jié)構(gòu)[4],針對簡單的點對點傳輸網(wǎng)絡(luò)環(huán)境,提出一種簡單、靈活、高效的基于UDP協(xié)議的嵌入式數(shù)據(jù)傳輸效率的優(yōu)化方法。

1 系統(tǒng)結(jié)構(gòu)和協(xié)議棧分析及改進

系統(tǒng)以嵌入式微處理器STM32F407為核心,使用輕型網(wǎng)絡(luò)傳輸協(xié)議棧Lw IP實現(xiàn)百兆以太網(wǎng)傳輸數(shù)據(jù)。考慮到嵌入式系統(tǒng)的處理速度和資源限制,為保證高效的數(shù)據(jù)傳輸,選擇更高效的UDP協(xié)議[5]。對于數(shù)據(jù)傳輸?shù)目煽啃裕岢龌贏CK回應(yīng)的機制來改善。

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

選擇意法半導體的微處理器STM32F407作為系統(tǒng)的核心。它采用專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARMCortex-M4內(nèi)核,時鐘頻率達到168 MHz,具有專門的網(wǎng)絡(luò)MAC層接口和專用于網(wǎng)絡(luò)的DMA通道,外加PHY芯片和網(wǎng)絡(luò)接口,通過網(wǎng)線就可以實現(xiàn)網(wǎng)絡(luò)傳輸。

1.2Lw IP協(xié)議棧結(jié)構(gòu)

Lw IP協(xié)議棧是基于分層的方式設(shè)計的,包括應(yīng)用層、IP層、傳輸層等,每一層的協(xié)議都代表一個獨立的模塊,但是為了最小限度地使用系統(tǒng)資源,模塊間使用松散的通信機制,通過共享內(nèi)存來實現(xiàn)通信[6]。

Lw IP協(xié)議棧設(shè)置了一個各層共享的內(nèi)存空間——網(wǎng)絡(luò)數(shù)據(jù)包緩沖區(qū),數(shù)據(jù)分組存在一個確定的緩沖區(qū)Data buff中,在層與層之間打包與解包的過程中傳遞的只是這個緩沖區(qū)的地址payload,只有當數(shù)據(jù)要被發(fā)送至PHY或被應(yīng)用程序取走時才會通過數(shù)據(jù)拷貝來實現(xiàn)。Lw IP協(xié)議棧使用pbuf來管理這個包緩沖區(qū),從而實現(xiàn)在協(xié)議棧各層之間數(shù)據(jù)包的零拷貝。pbuf結(jié)構(gòu)如圖1所示,包括包的信息、標志、地址等,payload指針指向包緩沖區(qū)Data buff。

圖1 pbuf結(jié)構(gòu)

1.3系統(tǒng)網(wǎng)絡(luò)傳輸過程分析

整個數(shù)據(jù)通路如圖2所示。

圖2 LWIP/UDP協(xié)議發(fā)包過程

下面就Lw IP協(xié)議棧UDP數(shù)據(jù)包的發(fā)送過程做詳細的分析。應(yīng)用程序要利用UDP協(xié)議發(fā)送數(shù)據(jù),先要建立UDP會話結(jié)構(gòu)體udp_pcb,綁定本地IP地址與端口。由于udp_pcb結(jié)構(gòu)體本身很小,且在已分配好的內(nèi)存中,因此這一步執(zhí)行很快。

接下來,分配并建立pbuf,然后將待發(fā)送數(shù)據(jù)拷貝至pbuf緩沖區(qū)中。這個過程其實是將數(shù)據(jù)從應(yīng)用層傳遞至網(wǎng)絡(luò)層的過程,這是第一次較大數(shù)據(jù)量的內(nèi)存拷貝,占用了很多系統(tǒng)資源,降低了系統(tǒng)的性能。

至此,發(fā)送前基本工作準備完畢,接下來發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包。先要在網(wǎng)絡(luò)接口netif全局鏈表中查找網(wǎng)絡(luò)信息包將被傳輸至哪一個網(wǎng)絡(luò)接口。由于本系統(tǒng)是簡單的點對點網(wǎng)絡(luò)環(huán)境,系統(tǒng)也只有一個默認網(wǎng)絡(luò)接口,因此此步驟可以省去。

然后進入UDP協(xié)議傳輸層,生成UDP數(shù)據(jù)包頭;再轉(zhuǎn)入IP層,生成IP層包頭。這兩個過程不涉及數(shù)據(jù)拷貝,待發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包一直存儲在pbuf中,UDP包頭和IP包頭通過指針和數(shù)據(jù)包連接在一起。

生成IP包以后,需要通過DMA(Direct Memory Access)將IP包發(fā)送到鏈路層MAC控制器的FIFO中然后發(fā)送出去。這個過程中涉及第二次大的內(nèi)存拷貝,要把pbuf里的IP包拷貝到DMA控制器的發(fā)送緩存中。

上面分析了嵌入式Lw IP協(xié)議棧收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包的過程,包括數(shù)據(jù)由應(yīng)用程序傳至協(xié)議棧pbuf緩沖包(API_to_Pbuf)和從pbuf緩沖包轉(zhuǎn)移到以太網(wǎng)DMA緩沖區(qū)(Pbuf_to_DMA)時的兩次大的數(shù)據(jù)拷貝過程,數(shù)據(jù)由DMA傳輸至MAC控制器的FIFO(DMA_to_FIFO)中,還有一些內(nèi)存分配、打包解包及由于考慮協(xié)議棧的通用性而導致的多余開銷(Others)。

測試利用系統(tǒng)內(nèi)部定時器完成,傳輸1 KB的數(shù)據(jù)包,上述4個部分開銷的測試結(jié)果如表1所示。

表1 Lw IP協(xié)議各部分開銷

由表1可以計算出數(shù)據(jù)傳輸速度為:

如圖3所示,最大的開銷就在兩次大的數(shù)據(jù)拷貝過程,占到整個開銷的73%。有很多關(guān)于TCP/IP協(xié)議零拷貝的研究[7],但多數(shù)對零拷貝的研究都是基于避免用戶空間與系統(tǒng)空間,與本系統(tǒng)存在的問題不太相同。其實,Lw IP協(xié)議棧通過pbuf緩沖包在各層之間傳遞數(shù)據(jù)包的地址指針已經(jīng)實現(xiàn)了協(xié)議棧內(nèi)部的零拷貝技術(shù),但對于協(xié)議棧與應(yīng)用程序之間的數(shù)據(jù)拷貝并沒有過多考慮。

圖3 各部分開銷比重

1.4Lw IP協(xié)議棧改進

基于以上的分析,對于本系統(tǒng)這樣一個簡單網(wǎng)絡(luò)環(huán)境,只需實現(xiàn)網(wǎng)絡(luò)的點對點通信,同時只傳輸固定格式的數(shù)據(jù)包,所以可以考慮讓網(wǎng)絡(luò)接口DMA控制器的數(shù)據(jù)緩存與協(xié)議棧pbuf緩沖包實現(xiàn)內(nèi)存共享,達到真正的零數(shù)據(jù)拷貝。為了實現(xiàn)DMA控制器的數(shù)據(jù)緩存與協(xié)議棧pbuf緩沖包共享內(nèi)存,將pbuf緩存包分配成PBUF_ROM類型,將pbuf緩存包的payload指針指向DMA數(shù)據(jù)緩存的地址。DMA控制器的數(shù)據(jù)緩存由系統(tǒng)分配,是一組連續(xù)的固定的內(nèi)存空間。本系統(tǒng)傳輸固定大小和格式的數(shù)據(jù)包,并只設(shè)置一個DMA緩存,使得數(shù)據(jù)包被系統(tǒng)接收以后不至于分散在多個DMA緩存中,否則將造成多個DMA緩存地址不連續(xù)而無法與緩沖包共享內(nèi)存。對于數(shù)據(jù)包頭的問題,由于本系統(tǒng)明確是UDP協(xié)議傳輸,且是點對點固定節(jié)點的網(wǎng)絡(luò)傳輸,可以在網(wǎng)絡(luò)傳輸前即將包頭設(shè)定完畢并保存下來,當進行網(wǎng)絡(luò)傳輸時直接應(yīng)用這個固定包頭(其中UDP包頭8 B、IP包頭20 B、MAC幀頭14 B)即可。

同樣通過系統(tǒng)的定時器測試4個部分的開銷,測試結(jié)果如表2所示。

表2 改進后各部分開銷

從測試結(jié)果來看,經(jīng)改進的主要開銷是數(shù)據(jù)由DMA搬運到MAC控制器的FIFO的過程,避免了兩次大的內(nèi)存拷貝,實現(xiàn)了數(shù)據(jù)零拷貝,大大提升傳輸效率,傳輸速度可以達到,接近百兆網(wǎng)的極限。

2 基于ACK機制的UDP可靠傳輸

UDP協(xié)議是一種無連接的傳輸層協(xié)議,發(fā)送端把數(shù)據(jù)發(fā)送出去以后并不關(guān)心接收端是否接收到了數(shù)據(jù),所以雖然它效率高,但并不可靠。很多文獻都討論過改進UDP協(xié)議的可靠性[8],下面提出一種提高UDP協(xié)議傳輸可靠性的簡易方法,在占用較少系統(tǒng)資源的前提下,盡量保證系統(tǒng)的傳輸性能和可靠性。

TFTP是一種基于ACK包回應(yīng)機制的簡單協(xié)議,其基本思想是:發(fā)送一個UDP包以后,等收到ACK包回應(yīng)才發(fā)送下一個UDP包;在一定時間內(nèi),如果沒有收到ACK包,即重新發(fā)送此包。這種方法固然可以改善數(shù)據(jù)的可靠傳輸,但每發(fā)送一個UDP包都多了一個ACK包回應(yīng)的開銷,降低了傳輸性能。

基于ACK機制,本文提出兩點改進來改善UDP傳輸?shù)目煽啃裕阂环矫妫槍c對點的網(wǎng)絡(luò)傳輸應(yīng)用,基于數(shù)據(jù)零拷貝,改進Lw IP/UDP協(xié)議棧;另一方面,為了提高ACK機制的效率,發(fā)送N個數(shù)據(jù)包才回應(yīng)一個ACK包。發(fā)送端每次發(fā)送N個數(shù)據(jù)包,并將這N個包緩存起來,在規(guī)定時間內(nèi),如果未收到ACK回應(yīng)包即重傳這N個包。雖然UDP協(xié)議存在誤碼,但誤碼率不高,因一個UDP包丟失而造成N個包都需重傳所造成的額外開銷并不明顯。具體實現(xiàn)時,需要區(qū)分ACK包和DATA包,發(fā)送數(shù)據(jù)前需在UDP包末尾追加ACK標識和NUM序號,DATA包則在UDP數(shù)據(jù)包末尾追加DATA標識和NUM序號。

收發(fā)兩端的傳輸流程如圖4所示。發(fā)送開始以后,發(fā)送端每次發(fā)送N個數(shù)據(jù)包,發(fā)送完馬上開始超時計時,等待ACK包回應(yīng);接收端接收并解析數(shù)據(jù)包,判斷一次傳輸是否完成(NUM%N為零即代表傳輸了N個包),完成即生成并發(fā)送ACK響應(yīng)包;發(fā)送端收到ACK響應(yīng)包后再發(fā)送下一組N個數(shù)據(jù)包,如果超時,重新發(fā)送上一組的N個數(shù)據(jù)包。

圖4 ACK機制的傳輸流程

當每次只傳輸1個數(shù)據(jù)包時,各部分開銷分布如表3所示,采用改進的Lw IP/UDP協(xié)議,UDP部分主要開銷還是DMA_to_FIFO及其他打包解包等過程;采用ACK機制,增加了一次ACK包的生成與傳輸(Process_ACK)、兩次ACK包的解析及檢錯重傳所造成的額外開銷(Others)。

采用每N個包發(fā)一次ACK響應(yīng)包,減少Process_ACK的開銷,提高了傳輸效率。不同單次發(fā)送數(shù)據(jù)包數(shù)下的傳輸速率如圖5所示,ACK機制各部分開銷比重如圖6所示。從圖5看出,隨著N的增大傳輸速率逐漸增大,但是當N增加到12以后,速率增加趨于平緩。而從圖6可以看出,N的增加只會減少處理ACK響應(yīng)時間(Process_ACK包括生成并發(fā)送ACK包),其他3個部分耗時不會減少,故存在一個極限的速率。

圖5 不同單次發(fā)送數(shù)據(jù)包數(shù)下的傳輸速率

圖6 ACK機制各部分開銷比重

這種改進方法比較簡單,考慮到等待重發(fā)等因素的影響,實際的傳輸速率還要降低一些。但其效率確實顯著提高,而且通過選擇單次傳輸數(shù)據(jù)包個數(shù)N的大小,可以靈活地調(diào)整傳輸效率、改善傳輸?shù)目煽啃浴?/p>

表3 ACK機制各部分開銷

3 結(jié)論

本文詳細分析、測試嵌入式網(wǎng)絡(luò)Lw IP/UDP協(xié)議的

數(shù)據(jù)傳輸過程,針對點對點的簡單網(wǎng)絡(luò)傳輸,基于零數(shù)據(jù)拷貝的思想,改進了Lw IP/UDP協(xié)議,明顯提升了傳輸?shù)男阅埽瑪?shù)據(jù)傳輸?shù)乃俾蕪奈磧?yōu)化的2.03 MB/s提升到9.80 MB/s,已接近百兆以太網(wǎng)的極限。另外,通過引入改進的ACK機制,改善了傳輸?shù)目煽啃裕瑢崿F(xiàn)了一種通用高效靈活的網(wǎng)絡(luò)傳輸優(yōu)化方法。

[1]王琳,商周,王學偉.數(shù)據(jù)采集系統(tǒng)的發(fā)展與應(yīng)用[J].電測與儀表,2004,41(464):4-8.

[2]姚雪,楊光,張祥.嵌入式數(shù)據(jù)傳輸系統(tǒng)速度優(yōu)化方法[J].微計算機應(yīng)用,2011,32(3):59-63.

[3]段之昱,趙昭旺.嵌入式系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)傳輸性能研究[J].天文研究與技術(shù),2007,4(3):266-275.

[4]孫樂鳴,江來,代鑫.嵌入式TCP/IP協(xié)議棧LWIP的內(nèi)部結(jié)構(gòu)探索與研究[J].電子元器件應(yīng)用,2008,10(3):79-81.

[5]徐鑫,曹奇英.基于Lw IP協(xié)議棧的UDP協(xié)議分析與優(yōu)化[J].計算機應(yīng)用與軟件,2011,28(3):246-249.

[6]ADAM D.Design and implementation of the Lw IP TCP/IP stack[M].Swedish Institute of Computer Science,2001.

[7]王小峰,時向泉,蘇金樹.一種TCP/IP卸載的數(shù)據(jù)零拷貝傳輸方法[J].計算機工程與科學,2008,30(2):135-138.

[8]李國,鞏光志,王冬冬.一種提高UDP可靠性的數(shù)據(jù)傳輸方法研究[J].中國民航大學學報,2012,30(1):41-45.

Study of optim ization method for an embedded data transm ission system based on ethernet

Chen Shi,Wu Jie
(Department of Modern Physics,University of Science and Technology of China,Hefei 230026,China)

The data transmission systems based on the ethernet have been employed in many fields,however,the transmission efficiency need to be improved.This paper aims to improve the transm ission efficiency and reliability of the data transmission of the net.It is based on the ARM and LwIP.Considering the characteristic of the zero data transmission,It adopts the zero data copy technology and optim izes the UDP protocol,which significantly enhances the transmission efficiency.The test results show that the data transmission rate increases from 2.1Mb/s to 10Mb/s,which nearly reaches the full transmission potential of the net.Moreover,it employs the ACK reaction mechanism to maintain the reliability of the data transmission.

STM32F407;LwIP/UDP;zero data copy;ACK

TL8,TP274+.2

A

1674-7720(2015)04-0064-03

國家重大科研裝備研制項目“深部資源探測核心裝備研發(fā)”(ZDYZ2012-1-05-03);國家科技重大專項“MEMS加速度傳感器規(guī)模化制造技術(shù)與數(shù)字檢波器集成”(2011ZX05008-005-61)

(2014-10-26)

陳實(1985-),男,碩士,主要研究方向:嵌入式數(shù)據(jù)傳輸。

武杰(1976-),通信作者,男,博士,副教授,主要研究方向:大規(guī)模數(shù)據(jù)獲取系統(tǒng)。E-mail:wujie@ustc.edu.cn。

猜你喜歡
嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 亚洲中文字幕久久精品无码一区| 天天色天天综合网| 国产天天色| 国产精品白浆在线播放| 无码丝袜人妻| 国产91特黄特色A级毛片| a级毛片一区二区免费视频| 男女精品视频| 亚洲国产成人综合精品2020 | av在线人妻熟妇| 国产毛片基地| 亚洲天堂啪啪| 国产精品精品视频| 亚洲无码高清一区二区| 成人精品午夜福利在线播放| 91探花在线观看国产最新| 成色7777精品在线| 无码国产伊人| 伊在人亚洲香蕉精品播放| 热这里只有精品国产热门精品| 中文字幕亚洲另类天堂| 一级毛片在线免费视频| 狼友av永久网站免费观看| 欧美a在线| 九九久久99精品| 喷潮白浆直流在线播放| 国产欧美视频在线| 亚洲无线视频| 亚洲无码91视频| 美女被操黄色视频网站| 免费中文字幕在在线不卡| 中文字幕佐山爱一区二区免费| 亚洲第一黄色网址| 国产欧美自拍视频| 成人日韩视频| 色天堂无毒不卡| 五月天福利视频| 精品欧美日韩国产日漫一区不卡| 91亚洲精品国产自在现线| 国产精品黑色丝袜的老师| 日本免费高清一区| 色欲色欲久久综合网| 中文字幕在线日本| 99国产在线视频| V一区无码内射国产| 精品色综合| 尤物精品视频一区二区三区| 国产精品毛片一区视频播| 亚洲 欧美 中文 AⅤ在线视频| 中国精品久久| 熟妇丰满人妻| 一级爆乳无码av| 久久久久久久97| 国产在线自揄拍揄视频网站| 亚洲天堂777| 亚洲成人精品| 国产黄色免费看| 亚洲第一黄片大全| 免费一极毛片| 狂欢视频在线观看不卡| av免费在线观看美女叉开腿| 亚洲AV无码乱码在线观看代蜜桃| 国产成人精品免费视频大全五级| 尤物视频一区| 午夜欧美在线| jizz亚洲高清在线观看| 免费国产黄线在线观看| 最新无码专区超级碰碰碰| 97se综合| 91网址在线播放| 另类重口100页在线播放| 黄色网站在线观看无码| 91久久国产热精品免费| 97精品久久久大香线焦| 成人国产一区二区三区| 国产精品尤物在线| 欧美97欧美综合色伦图| 天堂av综合网| 免费高清毛片| 国产成人综合亚洲欧洲色就色| 天堂av综合网| 欧美国产日韩一区二区三区精品影视|