輕量級TCP/IP協(xié)議棧OpenTCP的移植與應(yīng)用
發(fā)布時間:2008/8/18 0:00:00 訪問次數(shù):736
引言
隨著工業(yè)控制和計算機技術(shù)的發(fā)展,對數(shù)據(jù)的傳輸提出了更高的要求,各種總線技術(shù)的發(fā)展日新月異。
其中,采用以太網(wǎng)技術(shù)完成數(shù)據(jù)的遠(yuǎn)程通信并連入internet,已經(jīng)成為工業(yè)和家用領(lǐng)域的重要發(fā)展方向,將來幾乎所有上業(yè)設(shè)備和家電均需要具有internet連接能力。目前,以mcu等構(gòu)成的嵌入式系統(tǒng)已廣泛應(yīng)用于工業(yè)、家電等各個領(lǐng)域,嵌入式系統(tǒng)對網(wǎng)絡(luò)應(yīng)用的要求也越來越高,因此在嵌入式系統(tǒng)中實現(xiàn)tcp/ip協(xié)議,已經(jīng)成為嵌入式系統(tǒng)領(lǐng)域的研究熱點。
傳統(tǒng)的tcp/ip協(xié)議在資源有限的嵌入式系統(tǒng)中實現(xiàn)起來很困難,必須把大量的資源花在保證數(shù)據(jù)傳送的可靠性以及數(shù)據(jù)流量的控制上,因而在實時性要求比較高的嵌入式領(lǐng)域中,不能滿足實時要求。因此,研究并改進(jìn)嵌入式tcp/ip協(xié)議棧以滿足嵌入式系統(tǒng)的高性能要求,具有重要的現(xiàn)實意義。
1硬件平臺和opentcp簡介
1.1硬件平臺
該系統(tǒng)硬件部分由ade7758高性能電能計量芯片、arm處理器、2mbnorflash、64mbsdram和以太網(wǎng)接口等組成。ade7758內(nèi)部集成了6路16位△-∑adc、高性能dsp、電壓基準(zhǔn)及溫度傳感器等電路,在1000:1動態(tài)范圍內(nèi)誤差小于0.1%;提供有功、無功及視在電能,電壓、電流有效值及波形采樣等數(shù)據(jù);三相三線/三相四線兼容;dsp內(nèi)部對無功電能進(jìn)行了補償;提供獨立的有功電能及無功電能脈沖輸出,非常適合三相電能計量。被測三相電壓、電流經(jīng)傳感器和調(diào)理電路后,送入ade7758的a相、b相、c相電壓和電流輸入端;經(jīng)ade7758計算后,轉(zhuǎn)換為有功功率、無功功率、視在功率、復(fù)功率等電能信息,數(shù)據(jù)通過ade7758的spi接口輸出。mcu讀出電能數(shù)據(jù)信息并處理后,送lcd顯示和網(wǎng)絡(luò)接口。硬件原理框圖如圖1所示。
為了通過計算機遠(yuǎn)程監(jiān)控電能數(shù)據(jù),軟件部分采用了opentcp作為協(xié)議棧完成數(shù)據(jù)通信。opentcp是英國vi-ola公司開發(fā)的用于8/16位mcu的源碼開放的tcp/ip協(xié)議棧。與通用的嵌入式tcp/ip協(xié)議棧(如lwip、uip)相比,其代碼更為精簡,不需要操作系統(tǒng)的支持,可以根據(jù)需要進(jìn)行裁剪,全部用ansic編寫,支持ethernet、slip、arp、rarp、icmp、tcp、udp;應(yīng)用層支持tftp、tel-net、http、smtp、pop3、dns等,對于應(yīng)用層協(xié)議都提供callback接口,可方便用戶的應(yīng)用程序設(shè)計。
1.2協(xié)議棧的特點
通用計算機上運行的tcp/ip協(xié)議棧過于復(fù)雜,需占用大量系統(tǒng)資源,而嵌入式應(yīng)用系統(tǒng)的資源往往都非常有限。因此,需要將傳統(tǒng)的tcp/ip協(xié)議棧加以簡化。在設(shè)計中opentcp為提高協(xié)議棧的運行效率,在保持高性能的同時,針對嵌入式系統(tǒng)的要求對tcp/ip進(jìn)行了部分精簡和優(yōu)化,使其能在各種mcu體系結(jié)構(gòu)上實現(xiàn),減少對資源的消耗,以滿足嵌入式應(yīng)用的要求。具體特點如下:
①由于嵌入式系統(tǒng)對網(wǎng)絡(luò)功能的要求各有不同,opentcp可以根據(jù)應(yīng)用的要求選擇必要的協(xié)議,縮減程序代碼的大小和對數(shù)據(jù)存儲器的占用。
、诟鶕(jù)嵌入式系統(tǒng)應(yīng)用環(huán)境的特點,一般其作為服務(wù)器端,與之通信的都是實現(xiàn)了完整tcp/ip的設(shè)備,通信較為可靠,不需要復(fù)雜的路由選擇、ip分片、重裝、tcp流量控制、擁塞控制等。因此,在opentcp中簡化了tcp、ip等協(xié)議的實現(xiàn),取消了所有的ip選項和tcp選項(包括ip的分段);tcp的流量控制窗口長度為1,即報文傳輸是基于停止一等待方式。避免了復(fù)雜的流量控制和分段處理,可以滿足嵌人式網(wǎng)絡(luò)應(yīng)用的要求。tcp狀態(tài)機也進(jìn)行了一定的簡化處理。
、踥pentcp針對tcp/ip協(xié)議中對性能影響最大的部分——緩沖區(qū)的管理進(jìn)行了優(yōu)化,采用零拷貝技術(shù),即在網(wǎng)卡驅(qū)動程序和協(xié)議之間沒有數(shù)據(jù)拷貝的過程,以減少對系統(tǒng)資源的占用,簡化緩沖區(qū)的管理,提高實時性。
tcp/ip具有層次性,每一層都有自己的數(shù)據(jù)格式。數(shù)據(jù)在各層之間傳送時需要不斷地進(jìn)行打包和解包處理,以及數(shù)據(jù)的拷貝,會大大增加系統(tǒng)對存儲器和運算能力的開銷,降低系統(tǒng)的性能。在opentcp協(xié)議棧中,每一層都沒有用于數(shù)據(jù)傳輸?shù)木彌_區(qū),協(xié)議棧之間傳遞的是數(shù)據(jù)指針。接收數(shù)據(jù)時,每一層將本層的數(shù)據(jù)處理完畢后,將處理過的數(shù)據(jù)指針指向上一層的數(shù)據(jù)的頭部;發(fā)送數(shù)據(jù)時,也是以類似的過程來實現(xiàn)。
為了減小網(wǎng)絡(luò)對系統(tǒng)存儲器的需求,采用靜態(tài)分配技術(shù),在網(wǎng)絡(luò)初始化時靜態(tài)分配數(shù)據(jù)緩沖區(qū),設(shè)置專門的發(fā)送和接收緩沖區(qū),大小一般大于網(wǎng)絡(luò)的mtu值。該值可根據(jù)網(wǎng)絡(luò)環(huán)境調(diào)整,在本系統(tǒng)中采用的底層網(wǎng)絡(luò)接口為以太網(wǎng),設(shè)置接收緩沖區(qū)大小為1500字節(jié)。當(dāng)一個數(shù)據(jù)包來到時,網(wǎng)絡(luò)設(shè)備驅(qū)動將其放在接收緩沖區(qū)里,調(diào)用tcp/ip協(xié)議棧。如果數(shù)據(jù)包里有數(shù)據(jù),tcp/ip協(xié)議就會通知相應(yīng)的應(yīng)用程序。如果應(yīng)用程序需要發(fā)送數(shù)據(jù),opentcp的每一層協(xié)議都有自己的數(shù)據(jù)結(jié)構(gòu)用于本層報文頭部處理,發(fā)送緩沖區(qū)的只用來存放發(fā)送的數(shù)據(jù)。發(fā)送數(shù)據(jù)時,應(yīng)用程序把數(shù)據(jù)寫入緩沖區(qū),設(shè)備驅(qū)動程序立即發(fā)送報文頭部和數(shù)據(jù)到網(wǎng)絡(luò)上。
、躱pentcp協(xié)議棧可
引言
隨著工業(yè)控制和計算機技術(shù)的發(fā)展,對數(shù)據(jù)的傳輸提出了更高的要求,各種總線技術(shù)的發(fā)展日新月異。
其中,采用以太網(wǎng)技術(shù)完成數(shù)據(jù)的遠(yuǎn)程通信并連入internet,已經(jīng)成為工業(yè)和家用領(lǐng)域的重要發(fā)展方向,將來幾乎所有上業(yè)設(shè)備和家電均需要具有internet連接能力。目前,以mcu等構(gòu)成的嵌入式系統(tǒng)已廣泛應(yīng)用于工業(yè)、家電等各個領(lǐng)域,嵌入式系統(tǒng)對網(wǎng)絡(luò)應(yīng)用的要求也越來越高,因此在嵌入式系統(tǒng)中實現(xiàn)tcp/ip協(xié)議,已經(jīng)成為嵌入式系統(tǒng)領(lǐng)域的研究熱點。
傳統(tǒng)的tcp/ip協(xié)議在資源有限的嵌入式系統(tǒng)中實現(xiàn)起來很困難,必須把大量的資源花在保證數(shù)據(jù)傳送的可靠性以及數(shù)據(jù)流量的控制上,因而在實時性要求比較高的嵌入式領(lǐng)域中,不能滿足實時要求。因此,研究并改進(jìn)嵌入式tcp/ip協(xié)議棧以滿足嵌入式系統(tǒng)的高性能要求,具有重要的現(xiàn)實意義。
1硬件平臺和opentcp簡介
1.1硬件平臺
該系統(tǒng)硬件部分由ade7758高性能電能計量芯片、arm處理器、2mbnorflash、64mbsdram和以太網(wǎng)接口等組成。ade7758內(nèi)部集成了6路16位△-∑adc、高性能dsp、電壓基準(zhǔn)及溫度傳感器等電路,在1000:1動態(tài)范圍內(nèi)誤差小于0.1%;提供有功、無功及視在電能,電壓、電流有效值及波形采樣等數(shù)據(jù);三相三線/三相四線兼容;dsp內(nèi)部對無功電能進(jìn)行了補償;提供獨立的有功電能及無功電能脈沖輸出,非常適合三相電能計量。被測三相電壓、電流經(jīng)傳感器和調(diào)理電路后,送入ade7758的a相、b相、c相電壓和電流輸入端;經(jīng)ade7758計算后,轉(zhuǎn)換為有功功率、無功功率、視在功率、復(fù)功率等電能信息,數(shù)據(jù)通過ade7758的spi接口輸出。mcu讀出電能數(shù)據(jù)信息并處理后,送lcd顯示和網(wǎng)絡(luò)接口。硬件原理框圖如圖1所示。
為了通過計算機遠(yuǎn)程監(jiān)控電能數(shù)據(jù),軟件部分采用了opentcp作為協(xié)議棧完成數(shù)據(jù)通信。opentcp是英國vi-ola公司開發(fā)的用于8/16位mcu的源碼開放的tcp/ip協(xié)議棧。與通用的嵌入式tcp/ip協(xié)議棧(如lwip、uip)相比,其代碼更為精簡,不需要操作系統(tǒng)的支持,可以根據(jù)需要進(jìn)行裁剪,全部用ansic編寫,支持ethernet、slip、arp、rarp、icmp、tcp、udp;應(yīng)用層支持tftp、tel-net、http、smtp、pop3、dns等,對于應(yīng)用層協(xié)議都提供callback接口,可方便用戶的應(yīng)用程序設(shè)計。
1.2協(xié)議棧的特點
通用計算機上運行的tcp/ip協(xié)議棧過于復(fù)雜,需占用大量系統(tǒng)資源,而嵌入式應(yīng)用系統(tǒng)的資源往往都非常有限。因此,需要將傳統(tǒng)的tcp/ip協(xié)議棧加以簡化。在設(shè)計中opentcp為提高協(xié)議棧的運行效率,在保持高性能的同時,針對嵌入式系統(tǒng)的要求對tcp/ip進(jìn)行了部分精簡和優(yōu)化,使其能在各種mcu體系結(jié)構(gòu)上實現(xiàn),減少對資源的消耗,以滿足嵌入式應(yīng)用的要求。具體特點如下:
、儆捎谇度胧较到y(tǒng)對網(wǎng)絡(luò)功能的要求各有不同,opentcp可以根據(jù)應(yīng)用的要求選擇必要的協(xié)議,縮減程序代碼的大小和對數(shù)據(jù)存儲器的占用。
②根據(jù)嵌入式系統(tǒng)應(yīng)用環(huán)境的特點,一般其作為服務(wù)器端,與之通信的都是實現(xiàn)了完整tcp/ip的設(shè)備,通信較為可靠,不需要復(fù)雜的路由選擇、ip分片、重裝、tcp流量控制、擁塞控制等。因此,在opentcp中簡化了tcp、ip等協(xié)議的實現(xiàn),取消了所有的ip選項和tcp選項(包括ip的分段);tcp的流量控制窗口長度為1,即報文傳輸是基于停止一等待方式。避免了復(fù)雜的流量控制和分段處理,可以滿足嵌人式網(wǎng)絡(luò)應(yīng)用的要求。tcp狀態(tài)機也進(jìn)行了一定的簡化處理。
、踥pentcp針對tcp/ip協(xié)議中對性能影響最大的部分——緩沖區(qū)的管理進(jìn)行了優(yōu)化,采用零拷貝技術(shù),即在網(wǎng)卡驅(qū)動程序和協(xié)議之間沒有數(shù)據(jù)拷貝的過程,以減少對系統(tǒng)資源的占用,簡化緩沖區(qū)的管理,提高實時性。
tcp/ip具有層次性,每一層都有自己的數(shù)據(jù)格式。數(shù)據(jù)在各層之間傳送時需要不斷地進(jìn)行打包和解包處理,以及數(shù)據(jù)的拷貝,會大大增加系統(tǒng)對存儲器和運算能力的開銷,降低系統(tǒng)的性能。在opentcp協(xié)議棧中,每一層都沒有用于數(shù)據(jù)傳輸?shù)木彌_區(qū),協(xié)議棧之間傳遞的是數(shù)據(jù)指針。接收數(shù)據(jù)時,每一層將本層的數(shù)據(jù)處理完畢后,將處理過的數(shù)據(jù)指針指向上一層的數(shù)據(jù)的頭部;發(fā)送數(shù)據(jù)時,也是以類似的過程來實現(xiàn)。
為了減小網(wǎng)絡(luò)對系統(tǒng)存儲器的需求,采用靜態(tài)分配技術(shù),在網(wǎng)絡(luò)初始化時靜態(tài)分配數(shù)據(jù)緩沖區(qū),設(shè)置專門的發(fā)送和接收緩沖區(qū),大小一般大于網(wǎng)絡(luò)的mtu值。該值可根據(jù)網(wǎng)絡(luò)環(huán)境調(diào)整,在本系統(tǒng)中采用的底層網(wǎng)絡(luò)接口為以太網(wǎng),設(shè)置接收緩沖區(qū)大小為1500字節(jié)。當(dāng)一個數(shù)據(jù)包來到時,網(wǎng)絡(luò)設(shè)備驅(qū)動將其放在接收緩沖區(qū)里,調(diào)用tcp/ip協(xié)議棧。如果數(shù)據(jù)包里有數(shù)據(jù),tcp/ip協(xié)議就會通知相應(yīng)的應(yīng)用程序。如果應(yīng)用程序需要發(fā)送數(shù)據(jù),opentcp的每一層協(xié)議都有自己的數(shù)據(jù)結(jié)構(gòu)用于本層報文頭部處理,發(fā)送緩沖區(qū)的只用來存放發(fā)送的數(shù)據(jù)。發(fā)送數(shù)據(jù)時,應(yīng)用程序把數(shù)據(jù)寫入緩沖區(qū),設(shè)備驅(qū)動程序立即發(fā)送報文頭部和數(shù)據(jù)到網(wǎng)絡(luò)上。
、躱pentcp協(xié)議?
熱門點擊
- 2G/3G RAN承載網(wǎng)解決方案
- GPRS DT/CQT測試中異常問題分析
- Semtech推出集成IEEE1588 PT
- Linux串口通信編程(Linux Seri
- 采用開放式芯片協(xié)議(OCP)總線的跟蹤儀器與
- Fulcrum推出10-Gigabit以太網(wǎng)
- H.248協(xié)議在通信網(wǎng)絡(luò)中的應(yīng)用
- SiGe半導(dǎo)體推出SE4150L超小雙天線輸
- LitePoint解密多種無線通訊標(biāo)準(zhǔn)的測試
- 輕量級TCP/IP協(xié)議棧OpenTCP的移植
推薦技術(shù)資料
- MOSFET 電感單片降壓開關(guān)模式變換器優(yōu)勢
- SiC MOSFET 和 IG
- 新型 電隔離無芯線性霍爾效應(yīng)電
- 業(yè)界超小絕對位置編碼器技術(shù)參數(shù)設(shè)計
- 高帶寬、更高分辨率磁角度傳感技術(shù)應(yīng)用探究
- MagAlpha 角度位置傳感
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究