摘 要:因特網(wǎng)的迅猛發(fā)展,給世界帶來了翻天覆地的變化,是人類真正進(jìn)入了信息產(chǎn)業(yè)時代。時至今日,嵌入式領(lǐng)域也不斷涌現(xiàn)出連入因特網(wǎng)的巨大需求,特別是物聯(lián)網(wǎng)產(chǎn)業(yè)、移動終端等發(fā)展方向。在對TCP/IP結(jié)構(gòu)有了大致的基礎(chǔ)上,本文將針對基于TCP/IP協(xié)議棧的嵌入式異構(gòu)網(wǎng)絡(luò)進(jìn)行研究。
關(guān)鍵詞:TCP/IP;協(xié)議棧;嵌入式;異構(gòu)網(wǎng)絡(luò)
中圖分類號:TN915.05
關(guān)于嵌入式系統(tǒng)(Embedded System)的定義,可說是眾說紛紜。有的人說嵌入式系統(tǒng)是一個封閉系統(tǒng),無磁碟系統(tǒng),I/O很少的系統(tǒng),也有人說嵌入式系統(tǒng)是軟硬體整合的系統(tǒng)。一個是根據(jù)英國電機(jī)工程師協(xié)會的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機(jī)器或甚至工廠運(yùn)作的裝置。這種定義似乎把整個嵌入式系統(tǒng)的應(yīng)用縮小至控制或監(jiān)視兩方面而已,比較狹隘。由于網(wǎng)路的發(fā)達(dá),將使幾乎目前主要熱門的嵌入式系統(tǒng)都具備網(wǎng)路功能,幾手資訊家電產(chǎn)品所采用的系統(tǒng),清一色都是嵌入式系統(tǒng),如網(wǎng)路冰箱、上網(wǎng)機(jī)(Set Top Box)、WebPAD等等[1]??梢娫谖磥恚度胧较到y(tǒng)定義勢將越來越模糊,但卻會一點(diǎn)一滴的融入你我的生活里面。
1 嵌入式系統(tǒng)的概述
元件則是由一些物件共同合作,提供服務(wù),隱藏其設(shè)計(jì)內(nèi)容,只開放特定界面讓外界能存取這服務(wù)。它如同一個黑盒子,只允許需求者透過其所開放出來的界面來存取,需求者毋需了解實(shí)作細(xì)節(jié),也毋需費(fèi)心維護(hù)。如此一來,元件很容易被整合到任一應(yīng)用程式之中,例如COM[eded98]及Enterprise Java Bean為MultimediaManager之元件,開放出一界面物件ImageObserver,以提供影像更新之服務(wù),客戶端ImageManager元件只能透過界面物件ImageObserver 來存取其服務(wù),而無法了解MultimediaManager之實(shí)作細(xì)節(jié)。物件導(dǎo)向應(yīng)用框架(Object-Oriented Application Framework,OOAF)為一個可重用的、半成品之程式,設(shè)計(jì)者很容易根據(jù)其需要,將其修改為符合自己需求之應(yīng)用程式[2]。
2 嵌入式TCP/IP
網(wǎng)際協(xié)議族(也稱為網(wǎng)絡(luò)協(xié)議族,Internet Protocol suite)是因特網(wǎng)和大多數(shù)商業(yè)網(wǎng)絡(luò)中所運(yùn)行通信協(xié)議的集合。它也被稱為TCP/IP協(xié)議棧,以協(xié)議棧中兩個最重要的協(xié)議命名,包括傳輸控制協(xié)議(Transmission Control Protocol,TCP)和網(wǎng)際協(xié)議(Internet Protocol,IP)。TCP/IP代表一族協(xié)議,是互聯(lián)網(wǎng)上使用的網(wǎng)絡(luò)協(xié)議,它包括ARP、IP、ICMP、IGMP、UDP和TCP等。TCP/IP通常被認(rèn)為是一個4層協(xié)議系統(tǒng)。
目前,嵌入式協(xié)議棧的提供有兩種方式:一種是獨(dú)立的第三方協(xié)議棧產(chǎn)品;另一種嵌入式操作系統(tǒng)提供商提供協(xié)議棧產(chǎn)品。后一種方法在開發(fā)時相對要簡單些,而且能夠提供較強(qiáng)的軟件可使用性。
3 基于TCP/IP協(xié)議棧的嵌入式異構(gòu)網(wǎng)絡(luò)
框架是一個可重用的設(shè)計(jì),此設(shè)計(jì)有兩個要素,其一為一組抽象化的類別,其二為代表這組類別的物件集合,其基于互動關(guān)系所提供的服務(wù)。例如Microsoft公司的MFC即是針對視窗環(huán)境程式的設(shè)計(jì)所開發(fā)出之框架,用以處理有關(guān)視覺化人機(jī)界面之呈現(xiàn),讓設(shè)計(jì)者只需專注于解決應(yīng)用本身之問題。使用框架之優(yōu)點(diǎn)如下。
(1)模組化(Modularity):框架藉由隱藏其實(shí)作細(xì)節(jié),只提供穩(wěn)定界面之機(jī)制,加強(qiáng)其模組化之設(shè)計(jì)。
(2)重用性(Reusability):框架藉由訂定可重復(fù)使用于產(chǎn)生新應(yīng)用系統(tǒng)之一般化元件(generic components),來提供穩(wěn)定的界面。我們針對嵌入式即時系統(tǒng)之開發(fā)提出一個應(yīng)用框架的構(gòu)想。此一框架構(gòu)想之概念是將分析設(shè)計(jì)的流程分解,針對各個主要的步驟設(shè)計(jì)出有助于這些步驟進(jìn)行之元件,這些元件負(fù)責(zé)幫助設(shè)計(jì)者自動完成部分繁復(fù)的設(shè)計(jì)工作,設(shè)計(jì)者只須作高階、概念之規(guī)劃。應(yīng)用框架之各個元件名稱如下:分析器(Analyzer)、任務(wù)器(Task Composer)、排程器(Scheduler)、作業(yè)系統(tǒng)管理器(OS Manager)及程式產(chǎn)生器(Code Generator)。應(yīng)用這些元件可幫助設(shè)計(jì)者從分析到程式碼的產(chǎn)生。
整個應(yīng)用系統(tǒng)可視為由應(yīng)用物件、排程物件、作業(yè)系統(tǒng)物件及主程式物件所組成的。應(yīng)用系統(tǒng)在執(zhí)行時會先由主程式開始,呼叫TaskInfo及Kernel相關(guān)操作進(jìn)行各種初始化的工作,然后呼叫排程物件,排程物件會參考任務(wù)中的優(yōu)先權(quán)等級,呼叫優(yōu)先權(quán)等級最高的任務(wù)來執(zhí)行,由于排程物件的優(yōu)先權(quán)等級最高,所以任一任務(wù)執(zhí)行完畢后都會將CPU控制權(quán)交給排程物件,如此循環(huán)不已。
嵌入式協(xié)議棧的運(yùn)行必須基于嵌入式操作系統(tǒng)平臺的支持,但并不是說協(xié)議棧必須依賴于嵌入式操作系統(tǒng)的API。實(shí)際上,許多嵌入式協(xié)議棧做到了相對于操作系統(tǒng)的最大獨(dú)立性,可以與大多數(shù)嵌入式操作系統(tǒng)集成運(yùn)行。但是,協(xié)議棧以及附帶的上層接口和下層驅(qū)動程序會給嵌入式系統(tǒng)設(shè)計(jì)設(shè)置其他的約束。例如,TCP、IP協(xié)議棧必須有一個相對的準(zhǔn)確時間源,以便進(jìn)行時間管理,處理各種發(fā)生在棧中的超時和定時行為。
4 結(jié)束語
在系統(tǒng)中嵌入TCP/IP協(xié)議棧時,嵌入式工程師先要從物理層開始,因?yàn)榇蠖鄶?shù)情況下硬件的改動意味著要重新設(shè)計(jì)。首先,設(shè)計(jì)者必須確定要使用的局域網(wǎng)(LAN)技術(shù)。之后,需要實(shí)現(xiàn)并測試網(wǎng)絡(luò)接口卡(Network Interface Card,NIC)或者數(shù)據(jù)鏈路控制器(Data Link Controller,DLC)的相關(guān)驅(qū)動。只有當(dāng)嵌入式設(shè)備能夠正確地收發(fā)幀時,嵌入式工程師才可以沿協(xié)議棧向上繼續(xù)開發(fā),最后測試應(yīng)用程序的數(shù)據(jù)收發(fā)。由于本書是從嵌入式工程師的視角出發(fā),所以是從實(shí)現(xiàn)的角度自底向上地講解TCP/IP協(xié)議棧,而不是從傳統(tǒng)編程角度的自頂向下。
參考文獻(xiàn):
[1]王樹森,王希杰,劉秋菊.嵌入式Web遠(yuǎn)程糧情監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].自動化儀表,2013(10):243-247.
[2]王寶寶,余世明,王振宇.嵌入式Internet中Nagle算法及其應(yīng)用研究[J].中國工程科學(xué),2014(02):101-105.
[3]馬濤,白瑞林,石堅(jiān).Cortex-A8平臺的μC/OS-Ⅱ及LwIP協(xié)議棧的移植與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014(01):242-245.
[4]郭麗強(qiáng),陳發(fā)堂.一種基于多核嵌入式系統(tǒng)的TD-LTE同步校正方法[J].電子技術(shù)應(yīng)用,2014(04):370-372.
[5]金仲乾,苗克堅(jiān),王毅航.基于μC/OS-Ⅱ的LwIP協(xié)議棧的移植與改進(jìn)[J].科學(xué)技術(shù)與工程,2013(02):516-521.
作者簡介:種?。?984-),男,河南人,助教,碩士,研究方向:嵌入式。
作者單位:承德石油高等??茖W(xué)校 電氣與電子工程系,河北承德 067000