国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式接口的可擴(kuò)展TCP/IP協(xié)議棧的設(shè)計(jì)和實(shí)現(xiàn)

2016-12-23 09:15鄭愛宇
關(guān)鍵詞:網(wǎng)卡IP地址報(bào)文

鄭愛宇

(東南大學(xué) 軟件學(xué)院, 江蘇 南京 215000)

?

基于嵌入式接口的可擴(kuò)展TCP/IP協(xié)議棧的設(shè)計(jì)和實(shí)現(xiàn)

鄭愛宇

(東南大學(xué) 軟件學(xué)院, 江蘇 南京 215000)

為了提高TCP/IP協(xié)議棧的實(shí)時(shí)性, 并保證其可靠性和可擴(kuò)展性, 滿足物聯(lián)網(wǎng)工程低功耗的需求, 采用LPC2124 ARM微控制器和ENC28J60網(wǎng)絡(luò)芯片, 實(shí)現(xiàn)了嵌入式的TCP/IP精簡(jiǎn)協(xié)議棧. 該協(xié)議棧以實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ?yàn)閮?nèi)核, 除了基本TCP/IP協(xié)議簇外, 還包含了DHCP、 ICMP、 Socket接口以及DNS協(xié)議以增強(qiáng)靈活性和可靠性. 使用純C和匯編語(yǔ)言編寫, 利用keil進(jìn)行編譯, proteus模擬仿真. 完成了系統(tǒng)的移植、 硬件驅(qū)動(dòng)和協(xié)議棧的實(shí)現(xiàn). 使用wireshark等工具進(jìn)行了一系列的功能、 性能測(cè)試和實(shí)驗(yàn). 實(shí)驗(yàn)和測(cè)試結(jié)果表明, 精簡(jiǎn)的協(xié)議棧在實(shí)現(xiàn)基本功能的基礎(chǔ)上帶來(lái)了更短的代碼量(7.6 K RAM, 48 K ROM), 其UDP傳輸速率達(dá)到了16.5 K/s. 而且協(xié)議棧支持?jǐn)U展, 用戶可以根據(jù)需求自行設(shè)計(jì).

TCP/IP協(xié)議棧; 嵌入式操作系統(tǒng); μC/OS-Ⅱ; ARM

目前固有的TCP/IP協(xié)議的實(shí)時(shí)性能較低, 主要是由于為了保證數(shù)據(jù)傳輸可靠性以及數(shù)據(jù)流量控制而忽視了實(shí)時(shí)性, 過(guò)于臃腫的協(xié)議棧影響了運(yùn)行吞吐速率、 能耗等性能. 在高性能中斷下這種影響或許微乎其微, 但是在追求低功耗、 實(shí)時(shí)性的物聯(lián)網(wǎng)領(lǐng)域中是難以接受的. 而且過(guò)于追求輕便和輕量級(jí)反而會(huì)導(dǎo)致大量的丟包現(xiàn)象出現(xiàn), 此外, 缺乏應(yīng)用層基本協(xié)議接口也是實(shí)現(xiàn)其可擴(kuò)展性的瓶頸. 近年來(lái)的其他相關(guān)研究大多都是圍繞TCP/IP協(xié)議簇的裁剪和修改, 但是過(guò)于輕量的協(xié)議簇自然帶來(lái)可靠性的缺失. 于是對(duì)更加輕便并能保證相當(dāng)性能的棧的需求就迫在眉睫了. 確??煽啃?、 實(shí)時(shí)性同時(shí)保證靈活性的TCP/IP協(xié)議棧, 正是本文所研究和實(shí)現(xiàn)的成果.

1 嵌入式實(shí)時(shí)操作系統(tǒng)及移植

1.1 嵌入式操作系統(tǒng)和RTOS

嵌入式系統(tǒng)是基于計(jì)算機(jī)技術(shù)的裁剪移植性極強(qiáng)的應(yīng)用導(dǎo)向的專用計(jì)算機(jī)系統(tǒng)復(fù)合應(yīng)用系統(tǒng). 嵌入式系統(tǒng)多數(shù)是實(shí)時(shí)操作系統(tǒng)(RTOS), RTOS更加強(qiáng)調(diào)應(yīng)用需求的實(shí)時(shí)性, 其遵循的設(shè)計(jì)原則是: 運(yùn)用算法, 設(shè)計(jì)并保證系統(tǒng)行為的可預(yù)測(cè)性[1]. 無(wú)論何時(shí)何地, 都能為多個(gè)實(shí)時(shí)任務(wù)合理分配資源以爭(zhēng)奪系統(tǒng)資源.

1.2 硬件選型及μC/OS-Ⅱ操作系統(tǒng)移植

1.2.1 硬件選型

本協(xié)議棧使用的處理器是LPC2124. 精簡(jiǎn)型的協(xié)議棧需要的是具備高實(shí)時(shí)性、 高集成度、 低功耗特性的硬件系統(tǒng). 而LPC2124不僅具備上述條件, 且體積小、 重量輕、 易于安裝和維護(hù). 其內(nèi)核基于ARM7處理器, 而ARM的Thumb指令體系, 優(yōu)化后的16位指令操作碼也為增加代碼密度提供了保障.

而對(duì)于單片機(jī)的以太網(wǎng)接入方案W5100和ENC28J60都是常用到的芯片, 這兩種方案也可以說(shuō)是硬件協(xié)議棧和軟件協(xié)議棧的典型代表. W5100自有集成TCP/IP協(xié)議棧, 并且價(jià)格不菲, 而ENC28J60則可以根據(jù)用戶需求自定義協(xié)議內(nèi)容. 所以本文選擇ENC28J60作為網(wǎng)卡.

1.2.2 μC/OS-Ⅱ操作系統(tǒng)移植

μC/OS-Ⅱ是由美國(guó)研究人員Labrosse開發(fā)的嵌入式實(shí)時(shí)操作系統(tǒng). 其系統(tǒng)結(jié)構(gòu)見參考文獻(xiàn)[2].

內(nèi)核移植包括堆棧設(shè)計(jì)、 重定義數(shù)據(jù)類型以及任務(wù)切換等問(wèn)題[3]. 主要圍繞以下文件展開:

OS_CPU.H文件: 主要是對(duì)數(shù)據(jù)類型和堆棧以及中斷的各類宏的聲明和定義.

OS_CPU_C.C文件: 編寫和設(shè)計(jì)堆棧初始化函數(shù), 以及功能擴(kuò)展函數(shù).

OS_CPU_A.S文件: 用匯編語(yǔ)言編寫針對(duì)處理器寄存器的操作, 包括了最高優(yōu)先級(jí)任務(wù)調(diào)用函數(shù)、 任務(wù)切換函數(shù)和中斷任務(wù)切換函數(shù)[4].

2 嵌入式TCP/IP協(xié)議棧的分析

2.1 TCP/IP精簡(jiǎn)協(xié)議棧模型設(shè)計(jì)

為了實(shí)現(xiàn)棧的可靠性和可擴(kuò)展性, 增加了DHCP、 ICMP、 Socket和DNS這4個(gè)協(xié)議, TCP/IP協(xié)議實(shí)際上是無(wú)法脫離應(yīng)用層協(xié)議的. 無(wú)論是路由還是數(shù)據(jù)傳輸, 常見的路由協(xié)議都是有應(yīng)用層封裝的. 單純的傳輸層無(wú)法負(fù)擔(dān)更復(fù)雜的任務(wù), 而且維護(hù)工作中, 關(guān)于鏈路狀態(tài)的獲取等需求也是需要應(yīng)用層參與的. 因此在精簡(jiǎn)TCP/IP協(xié)議簇的基礎(chǔ)上, 必須要有一套可靠的應(yīng)用層協(xié)議來(lái)維持可靠性和可擴(kuò)展性. 所以選擇了上述4個(gè)協(xié)議, DHCP和ICMP可以提供地址分配和PING命令. Socket為上層提供了可編程接口. DNS則是接入互聯(lián)網(wǎng)的必要選擇.

本文將遵循TCP/IP 協(xié)議模型進(jìn)行開發(fā)與數(shù)據(jù)傳輸, 分為4層: 鏈路層、 網(wǎng)絡(luò)層、 傳輸層、 應(yīng)用層. 依據(jù)實(shí)時(shí)性需要將對(duì)各層進(jìn)行不同程度的精簡(jiǎn), 裁去非核心功能.

2.2 TCP/IP協(xié)議棧內(nèi)容

2.2.1 數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層協(xié)議

ARP:提供IP地址和MAC地址映射. 通過(guò)設(shè)計(jì)和編輯以太幀首部實(shí)現(xiàn)這一協(xié)議. ARP作為基本協(xié)議無(wú)需裁剪.

IP: 是棧核心協(xié)議, 提供不可靠的無(wú)連接的數(shù)據(jù)報(bào)傳送服務(wù). 主要實(shí)現(xiàn)如下功能: ① IP數(shù)據(jù)報(bào)接收的前后處理; 提供簡(jiǎn)單的IP校驗(yàn)和的驗(yàn)證. ② IP數(shù)據(jù)報(bào)發(fā)送的前后處理.

ICMP: 是用作測(cè)試、 控制和管理網(wǎng)絡(luò)的協(xié)議. 本協(xié)議棧僅實(shí)現(xiàn)了回顯請(qǐng)求和應(yīng)答的基本功能, 以方便于調(diào)試和測(cè)試, 實(shí)際工程中可以對(duì)ICMP進(jìn)行進(jìn)一步裁剪和封裝以更大程度提升棧實(shí)時(shí)性.

2.2.2 傳輸層協(xié)議

UDP: 是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的傳輸層協(xié)議, 提供無(wú)連接服務(wù)以及端到端的進(jìn)程間的通信服務(wù)[4]. 要注意的是, 雖然UDP、 TCP 和IP 是用同樣的校驗(yàn)方式, 但是UDP 和TCP 的校驗(yàn)和計(jì)算還考慮了一個(gè)12 B的偽首部.

TCP: 是一種面向連接的提供可靠服務(wù)的協(xié)議, 同樣通過(guò)設(shè)計(jì)和編輯TCP首部實(shí)現(xiàn)其功能. 提供三次握手和四次揮手的連接過(guò)程以及數(shù)據(jù)傳輸功能, 無(wú)流量控制和擁塞控制等功能.

2.2.3 應(yīng)用層協(xié)議

DHCP: 動(dòng)態(tài)主機(jī)配置協(xié)議基于C/S模型和UDP協(xié)議. 提供基本的IP地址分配功能[5].

Socket: 套接字就是由源IP地址和目的IP地址以及源端口號(hào)和目的端口號(hào)組成的四元組, 是支持TCP/IP的網(wǎng)絡(luò)通信的基本操作單元(和編程接口), 可以看作是不同主機(jī)之間的進(jìn)程進(jìn)行雙向通信的端點(diǎn).

DNS[6]: 是基于UDP實(shí)現(xiàn)域名和IP地址轉(zhuǎn)換映射的網(wǎng)絡(luò)協(xié)議. 查詢過(guò)程一般是: 客戶向DNS服務(wù)器的53端口發(fā)送UDP/TCP報(bào)文, DNS服務(wù)器收到后進(jìn)行處理, 并把結(jié)果記錄仍以UDP/TCP報(bào)文的形式返回.

DNS提供遞歸查詢和非遞歸查詢兩種查詢方式, 非遞歸查詢方式與遞歸查詢方式相比響應(yīng)速度快, 本協(xié)議棧使用的是非遞歸方式.

3 嵌入式TCP/IP協(xié)議棧的設(shè)計(jì)

3.1 嵌入式TCP/IP協(xié)議棧的軟硬件組成

軟硬件結(jié)構(gòu)如圖 1 所示[7].

圖 1 系統(tǒng)軟硬件結(jié)構(gòu)Fig.1 Structure of system software and hardware

圖 1 中, 系統(tǒng)軟硬件之間通過(guò)μC/OS-Ⅱ和網(wǎng)絡(luò)芯片相關(guān)模塊實(shí)現(xiàn)交互, 位于應(yīng)用層的用戶通過(guò)虛擬終端向主模塊發(fā)布指令和接收響應(yīng), 主模塊可以直接通過(guò)網(wǎng)絡(luò)驅(qū)動(dòng)庫(kù)完成信息收發(fā), 主模塊和系統(tǒng)任務(wù)通過(guò)操作系統(tǒng)內(nèi)核完成任務(wù)的管理和微處理器資源的使用.

3.2 嵌入式TCP/IP協(xié)議棧的模塊劃分

本文實(shí)現(xiàn)的嵌入式模塊劃分如表 1 所示. 協(xié)議模塊已在第2節(jié)闡述, 余下的網(wǎng)絡(luò)接口模塊和網(wǎng)絡(luò)驅(qū)動(dòng)模塊處于網(wǎng)絡(luò)接口層.

表 1 TCP/IP協(xié)議棧模塊劃分

3.3 主程序流程

根據(jù)應(yīng)用設(shè)想和設(shè)計(jì)理念, 設(shè)計(jì)包含核心功能的主程序流程如圖 2 所示.

圖 2 主程序流程Fig.2 Main program flow

首先, 系統(tǒng)通過(guò)初始化完成設(shè)置, 這一步將可能涉及到ARP、 DHCP以及UDP等相關(guān)協(xié)議的展開和應(yīng)用. 系統(tǒng)根據(jù)來(lái)源于硬件接口的數(shù)據(jù)幀, 通過(guò)有序解析, 鑒別和處理不同類型的數(shù)據(jù), 并據(jù)此調(diào)用相關(guān)處理模塊對(duì)報(bào)文進(jìn)行針對(duì)性處理和決策, 最后將處理結(jié)果返回硬件接口或響應(yīng).

系統(tǒng)的數(shù)據(jù)流是圍繞網(wǎng)絡(luò)數(shù)據(jù)報(bào)的封裝和解析展開的. 依據(jù)網(wǎng)絡(luò)分層的概念完成對(duì)數(shù)據(jù)報(bào)文的封包和解包.

圖 2 未提及的網(wǎng)絡(luò)接口層主要提供底層物理設(shè)備的服務(wù), 如設(shè)備初始化、 中斷、 數(shù)據(jù)收發(fā)等. 虛擬終端模塊提供簡(jiǎn)單的用戶交互, 用戶可以通過(guò)終端發(fā)布指令(PING命令和DNSLookup命令)和收發(fā)信息(基于TCP和UDP的聊天對(duì)話).

4 嵌入式TCP/IP協(xié)議棧的實(shí)現(xiàn)

4.1 系統(tǒng)任務(wù)架構(gòu)

μC/OS -Ⅱ操作系統(tǒng)是圍繞任務(wù)展開工作的, 任務(wù)可以認(rèn)為是進(jìn)程[7].

在系統(tǒng)啟動(dòng)時(shí)需要先進(jìn)行系統(tǒng)初始化, 完成一些系統(tǒng)內(nèi)核處理, 然后, 完成網(wǎng)卡初始化. 接著進(jìn)入到協(xié)議棧層級(jí), 陸續(xù)完成DNS、 UDP以及協(xié)議棧消息郵箱初始化. 此后創(chuàng)建DHCP任務(wù)、 DNS任務(wù)、 PING任務(wù)、 TCP客戶端任務(wù)和TCP服務(wù)器端任務(wù). 最后, 調(diào)用OSStart函數(shù)啟動(dòng)操作系統(tǒng)多任務(wù).

4.2 系統(tǒng)全局?jǐn)?shù)據(jù)結(jié)構(gòu)

系統(tǒng)需要實(shí)現(xiàn)一些全局?jǐn)?shù)據(jù)結(jié)構(gòu), 以便實(shí)現(xiàn)協(xié)議棧. 故將這些內(nèi)容編入variable.c文件[8].

IP地址結(jié)構(gòu)體[8]: 由大小為4的無(wú)符號(hào)8位整型數(shù)組組成. BUF數(shù)據(jù)結(jié)構(gòu)體: 用于保存數(shù)據(jù)報(bào)文, 由結(jié)構(gòu)體指針、 長(zhǎng)度和數(shù)據(jù)內(nèi)容組成. SOCKET結(jié)構(gòu)體. 此外, 還聲明了一些常量宏定義, 以及字節(jié)序轉(zhuǎn)換宏. 并將與IP地址獲取相關(guān)的函數(shù)也設(shè)計(jì)為全局函數(shù).

4.3 網(wǎng)絡(luò)驅(qū)動(dòng)模塊和網(wǎng)絡(luò)接口模塊的實(shí)現(xiàn)

網(wǎng)絡(luò)驅(qū)動(dòng)模塊用以對(duì)網(wǎng)卡進(jìn)行初始化并且為鏈路層提供接口函數(shù). 分為兩部分(spi.c和enc.c)實(shí)現(xiàn).

4.3.1 中斷處理和spi端口初始化

由spi.c文件完成中斷處理, spi即串行外設(shè)接口, 用于數(shù)據(jù)交換, enc網(wǎng)絡(luò)芯片是用中斷方式完成數(shù)據(jù)交換的, 需要對(duì)中斷進(jìn)行控制和處理. 這個(gè)模塊將保證數(shù)據(jù)收發(fā)的高效完成. 設(shè)計(jì)spi端口來(lái)進(jìn)行中斷式數(shù)據(jù)收發(fā).

4.3.2 enc網(wǎng)卡驅(qū)動(dòng)和網(wǎng)卡接口

由enc.c文件完成網(wǎng)卡驅(qū)動(dòng)控制和向上層提供信令接口. 驅(qū)動(dòng)編寫堅(jiān)持簡(jiǎn)單高效, 僅設(shè)計(jì)讀寫網(wǎng)卡和網(wǎng)卡緩存的方法以及網(wǎng)卡初始化等函數(shù), 為了平衡處理器和IO的速率差, 還設(shè)計(jì)了緩存管理函數(shù).

4.4 數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層的實(shí)現(xiàn)

數(shù)據(jù)鏈路層的ARP協(xié)議由于其基本功能實(shí)現(xiàn)就已經(jīng)足夠精簡(jiǎn), 無(wú)需贅述[9]. 此外, 實(shí)現(xiàn)了數(shù)據(jù)鏈路層數(shù)據(jù)幀的收發(fā)、 解析與封裝.

網(wǎng)絡(luò)層的IP協(xié)議實(shí)現(xiàn)了IP報(bào)文的收發(fā)、 解析與封裝, 以及IP頭部的校驗(yàn)和、 版本號(hào)、 目的地址等信息等校驗(yàn). 并根據(jù)協(xié)議域, 判斷是否為ICMP, 如是則將數(shù)據(jù)內(nèi)容發(fā)送給ICMP模塊; 如果為UDP, 則將數(shù)據(jù)內(nèi)容發(fā)送給UDP模塊[10]. 此外, 還實(shí)現(xiàn)了ICMP的顯示終端(見4.7節(jié)), 以便于之后的測(cè)試和實(shí)驗(yàn).

4.5 傳輸層的實(shí)現(xiàn)

UDP: 用戶要使用UDP 協(xié)議發(fā)送數(shù)據(jù)時(shí), 將用戶數(shù)據(jù)按UDP 協(xié)議報(bào)文格式進(jìn)行封裝并發(fā)送[11]. 當(dāng)IP 協(xié)議層發(fā)現(xiàn)接收的報(bào)文是UDP 數(shù)據(jù)報(bào)時(shí), 將UDP 進(jìn)程喚醒, 然后對(duì)接收到報(bào)文進(jìn)行分析處理, 然后向用戶進(jìn)程發(fā)送信號(hào)通知用戶進(jìn)程接收數(shù)據(jù).

TCP: 模塊實(shí)現(xiàn)遵循三次握手建立連接和四次揮手關(guān)閉連接的協(xié)議規(guī)程. 運(yùn)行和維護(hù)一個(gè)TCP客戶端任務(wù)和TCP服務(wù)器端任務(wù).

4.6 應(yīng)用層的實(shí)現(xiàn)

Socket: 模塊完成了對(duì)UDP和TCP的API封裝以向上層提供更有效的接口[12].

DNS: 當(dāng)用戶請(qǐng)求進(jìn)行DNS域名解析時(shí), 即用戶從虛擬終端輸入DNSLookup指令時(shí), DNS_send_task將獲得任務(wù)消息郵箱, 從而處理該請(qǐng)求, 即將請(qǐng)求封裝并發(fā)送給UDP模塊. 而當(dāng)DNS模塊收到來(lái)自下層的報(bào)文時(shí), 調(diào)用DNS_check函數(shù)處理報(bào)文段, 并將結(jié)果解析打印輸出到虛擬終端上[13].

DHCP: 本系統(tǒng)是通過(guò)VmWare的虛擬網(wǎng)卡的DHCP服務(wù)器功能實(shí)現(xiàn)IP地址自動(dòng)獲取的, 且只適用于局域網(wǎng). 系統(tǒng)啟動(dòng)后, 首先會(huì)調(diào)用DHCP_init函數(shù)初始化DHCP客戶端任務(wù)[14]. 此后將執(zhí)行DHCP的IP地址分配流程.

4.7 虛擬終端模塊的實(shí)現(xiàn)

虛擬終端用于提供用戶和系統(tǒng)的交互, 這一模塊的數(shù)據(jù)交互都是通過(guò)操作系統(tǒng)提供的通用穿行口(UART)協(xié)議實(shí)現(xiàn)的. 主要接口check函數(shù)負(fù)責(zé)將用戶輸入進(jìn)行篩選、 格式化和分類提交至下層模塊, 而virtual_check和dns_check函數(shù)則完成更細(xì)化的輸入處理[15].

5 嵌入式TCP/IP協(xié)議棧測(cè)試

協(xié)議棧使用Proteus進(jìn)行模擬仿真, 先用Keilv4編譯源代碼并生成二進(jìn)制文件, 再將文件關(guān)聯(lián)至仿真芯片中. 仿真電路圖如圖 3 所示.

圖 3 仿真電路圖Fig.3 Simulation circuit diagram

首先進(jìn)行功能測(cè)試, 結(jié)果如圖 4 所示.

圖 4 功能測(cè)試結(jié)果Fig.4 Function test results

圖4前兩行表示硬件設(shè)備初始化完成, 第三行表示DHCP模塊正確運(yùn)行并已經(jīng)自動(dòng)獲取IP地址(192.168.75.129). 后面為PING成功的結(jié)果.

圖 5 則是DNS測(cè)試結(jié)果. 終端上輸入dnslookup www.baidu.com, 將會(huì)執(zhí)行DNS. 使用wireshark軟件可以正確抓到PING和DNS相關(guān)數(shù)據(jù)包. 使用TCP客戶/服務(wù)器端程序和UDP程序可以實(shí)現(xiàn)與本系統(tǒng)的TCP、 UDP連接并簡(jiǎn)單雙向?qū)υ?

圖 5 DNS測(cè)試結(jié)果Fig.5 Test results of DNS

協(xié)議棧的性能測(cè)試方法如下: 按照1 s, 0.1 s和全速這3種時(shí)間間隔發(fā)送一個(gè)200字節(jié)的UDP數(shù)據(jù)包, 共發(fā)送1 500包, 測(cè)試10次, 計(jì)算有操作系統(tǒng)和無(wú)操作系統(tǒng)下的平均丟包率. 其測(cè)試結(jié)果如表 2 所示.

表 2 性能測(cè)試結(jié)果

當(dāng)數(shù)據(jù)發(fā)送速率在1 s/包的情況下, 兩者都不丟包. 但是當(dāng)達(dá)到0.1 s/包時(shí), 丟包率都十分高, 有系統(tǒng)的協(xié)議棧為97.9%, 無(wú)系統(tǒng)的為97.6%. 然而全速發(fā)送時(shí), 操作系統(tǒng)管理下的協(xié)議棧有61.0%的丟包率, 無(wú)系統(tǒng)的為72.3%. 如果提供確認(rèn)機(jī)制或超時(shí)重傳機(jī)制, 數(shù)據(jù)將會(huì)被安全送達(dá). 在全速傳送200字節(jié)UDP數(shù)據(jù)包情況下, 數(shù)據(jù)速率可達(dá)16.55 K/s.

6 結(jié) 論

本文系統(tǒng)代碼精簡(jiǎn) (7.6 K RAM, 48 K ROM). 通過(guò)測(cè)試和實(shí)驗(yàn)得出了精簡(jiǎn)協(xié)議??梢栽诟甙l(fā)送率下保證比較良好的送達(dá)準(zhǔn)確率的結(jié)論. 這套基于嵌入式接口的精簡(jiǎn)TCP/IP協(xié)議棧系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn), 為物聯(lián)網(wǎng)工程應(yīng)用的各類實(shí)際場(chǎng)景提供了一個(gè)可裁剪的中間件, 用戶將可以基于此進(jìn)行任意個(gè)性化定制和設(shè)計(jì), 從而滿足針對(duì)特定目的應(yīng)用任務(wù)的需要.

[1]Cai X, Lyu M R, Wong K F. Component-based embedded software engineering: development framework, quality assurance and generic assessment environment[J]. International Journal of Software Engineering and Knowledge Engineering, 2002, 12(12): 107-133.

[2]呂京建, 張宏韜. 基于嵌入式中間件的系統(tǒng)開發(fā)方法[C]. 中國(guó)微計(jì)算機(jī)第十三屆年會(huì)2002年嵌入式系統(tǒng)及其應(yīng)用論文集. 2002: 414-419.

[3]何立民. 嵌入式系統(tǒng)的可靠性與安全性設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2016, 5(16): 77-79. He Limin. Design of reliability and security of embedded system[J]. Microcontrollers and Embedded Systems, 2016, 5(16): 77-79. (in Chinese)

[4]潘可. 具有完整TCP/IP協(xié)議支持的U-Boot[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2014, 14(2): 5-8. Pan Ke. U-boot with full TCP/IP protocol support [J]. Microcontrollers & Embedded Systems, 2014, 14(2): 5-8. (in Chinese)

[5]張立立, 王偉, 杜燕東. 基于TCP/IP的天文射電望遠(yuǎn)鏡節(jié)點(diǎn)控制器研制[J]. 測(cè)控技術(shù), 2013, 32(3): 35-40. Zhang Lili,Wang Wei, Du Yandong. Development of node controller for astronomical radio telescope based on TCP/IP[J]. Measurement and Control Technology, 2013, 32(3): 35-40. (in Chinese)

[6]盧有亮. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS原理與實(shí)踐[M]. 北京: 電子工業(yè)出版社, 2014.

[7]劉博文. 基于ARM的嵌入式實(shí)時(shí)操作系統(tǒng)的內(nèi)存管理[D]. 武漢: 華中科技大學(xué), 2011.

[8]馬立國(guó). 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在ARM上的移植[D]. 長(zhǎng)春: 吉林大學(xué), 2011.

[9]Labrosse J J. μC/OS-Ⅱ源碼公開的實(shí)時(shí)嵌入式操作系統(tǒng)[M]. 邵貝貝, 譯. 北京: 中國(guó)電力出版社, 2001.

[10]彭少熙, 孫正順. 家庭網(wǎng)絡(luò)中的嵌入式Internet方案[J]. 電子技術(shù)應(yīng)用, 2001, 27(10): 47-50. Peng Shaoxi, Sun Zhengshun. Embedded Internet plan in home network[J]. Application of electronic technique, 2001, 27(10): 47-50. (in Chinese)

[11]杜春雷. ARM體系結(jié)構(gòu)與編程[M]. 北京: 清華大學(xué)出版社, 2003.

[12]李海濤. 基于μC/OS-Ⅱ 的車載藍(lán)牙控制系統(tǒng)[J]. 電視技術(shù), 2014, 38(11): 190-192, 197. Li Haitao. Vehicle controlling system of bluetooth technology based on μCOS-Ⅱ[J]. Video Engineering, 2014, 38(11): 190-192, 197. (in Chinese)

[13]馬昊, 吳晉峰, 邱小平. 基于μC/OS-Ⅱ操作系統(tǒng)的嵌入式配變監(jiān)控終端研究[J].電子技術(shù)應(yīng)用, 2015, 41(s1): 351-352, 359. Ma Hao, Wu Jinfeng, Qiu Xiaoping. Research on embedded monitoring terminal for distribution transformer based on μC/OS-Ⅱ operating system[J]. Application of Electronic Technique, 2015, 41(s1): 351-352, 359. (in Chinese)

[14]張玉杰, 吳安安. 基于TCP/IP及DALI總線技術(shù)的只能照明控制系統(tǒng)[J]. 電視技術(shù), 2015, 22: 23-26, 43. Zhang Yujie, Wu Anan. Intelligent lighting control system based on TCP/IP and DALI bus technology[J]. Video Engineering, 2015, 22: 23-26, 43. (in Chinese)

[15]王建平, 周辰飛, 朱程輝, 等. 一種ZigBee-TCP/IP無(wú)縫網(wǎng)關(guān)模型[J]. 合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2013, 36(9): 1058-1062. Wang Jianping, Zhou Chenfei, Zhu Chenghui, et al. A ZigBee-TCP/IP seamless gateway model[J].Journal of HeFei University of Technology (Natural Science), 2013, 36(9): 1058-1062. (in Chinese)

Design and Implementation of TCP/IP Protocol Stack Based on Embedded Interface

ZHENG Ai-yu

(School of Software Engineering, Southeast University, Nanjing 215000, China)

In order to improve the TCP/IP protocol's ability of real-time, reliability and extensible property in embedded devices, and also meet the requirement of low power consumption, using LPC2124 ARM micro controller and the ENC28J60 network-chip, implemented a simple embedded TCP/IP streamlined protocol stack.The protocol stack uses embedded real-time operating system-μC/OS-II as the kernel, in addition to the basic TCP/IP protocol cluster, it also contains the DHCP, ICMP, Socket interface and DNS protocol to enhance the flexibility and reliability. Based on the C language and assembly language, protocol stack was compiled using Keil and was simulated in Proteus. The transplantation of the system, hardware driving and the whole protocol stack are completed. Using wireshark catch tool made a series of tests and experiments on the functionality and performance of the protocol stack system. Results conclude that, the tidy protocol stack on the basis of the realization of basic functions brings shorter coding (7.6 K RAM, 48 K ROM),and the UDP transmission speed reaches 16.5 K/s. Besides, The protocol stack support extension, users can design by their own requirement.

TCP/IP protocol stack; embedded system; μC/OS -Ⅱ; ARM

1673-3193(2016)06-0614-06

2016-03-15

國(guó)家自然科學(xué)基金資助項(xiàng)目(61201344)

鄭愛宇(1990-), 男, 碩士生, 主要從事嵌入式系統(tǒng)及圖像處理研究.

TP393.04

A

10.3969/j.issn.1673-3193.2016.06.011

猜你喜歡
網(wǎng)卡IP地址報(bào)文
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
低軌星座短報(bào)文通信中的擴(kuò)頻信號(hào)二維快捕優(yōu)化與實(shí)現(xiàn)
CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
部署Linux虛擬機(jī)出現(xiàn)的網(wǎng)絡(luò)故障
鐵路遠(yuǎn)動(dòng)系統(tǒng)幾種組網(wǎng)方式IP地址的申請(qǐng)和設(shè)置
淺析反駁類報(bào)文要點(diǎn)
Server 2016網(wǎng)卡組合模式
公安網(wǎng)絡(luò)中IP地址智能管理的研究與思考
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
《IP地址及其管理》教學(xué)設(shè)計(jì)
罗甸县| 静乐县| 中江县| 清新县| 崇文区| 建瓯市| 安塞县| 张掖市| 始兴县| 铜山县| 山阴县| 青海省| 浮梁县| 米易县| 晋州市| 松溪县| 连州市| 和田县| 磴口县| 青田县| 阳谷县| 什邡市| 琼海市| 宜宾县| 惠州市| 盐边县| 东莞市| 泉州市| 泰州市| 襄垣县| 麟游县| 炉霍县| 福鼎市| 大姚县| 广汉市| 黑龙江省| 都匀市| 五原县| 石景山区| 当涂县| 平和县|