日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

嵌入式網(wǎng)關設備的設計與實現(xiàn)

出處:zhy168 發(fā)布于:2007-04-17 16:02:29

上世紀90年代以來,基于微處理器的測控技術發(fā)展十分迅速,特別是Internet的發(fā)展,使得嵌入式設備產(chǎn)生連接Internet的需求。要讓微處理器接入Internet,成為Internet上的一個獨立結點,必須給它分配一個的地址。而在過去的幾十年里,有浩如煙海的微處理器用于各種各樣的場合,如智能儀器、工業(yè)自動控制、家庭自動化等,要想給這些微處理器都分配一個地址是辦不到的。這是因為Internet協(xié)議的現(xiàn)在版本為IPv4,該版本采用32位地址方案,每個地址包含網(wǎng)絡號和主機號。理論上有超過40億個地址,但由于分級地址管理和早期地址分配的不科學,浪費了上千萬的地址,使IP地址的分配已經(jīng)面臨沉重壓力。而現(xiàn)今IT已進入后PC時代,各種嵌入式網(wǎng)絡應用成爆炸式發(fā)展,現(xiàn)有IP地址方案根本無法滿足需求。因此解決嵌入式設備上網(wǎng)的地址分配問題,已成為影響到嵌入式設備發(fā)展的重要因素。

本文應用NAT技術開發(fā)嵌人式設備解決了Internet地址耗盡問題。NAT技術初由國際互聯(lián)網(wǎng)標準組織IETF(InternetEngineeringTaskForce,即Internet工程任務組)于1994年公布,并于1996年成立NAT工作小組進行專門的研究。NAT技術很好地解決了嵌人式Internet應用中IPv4地址空間的耗盡問題,NAT的后繼版本在解決協(xié)議的轉換、升級、外網(wǎng)對內(nèi)網(wǎng)節(jié)點的訪問等諸多問題都有很多應用,因此應用NAT技術可以在很大程度上促進嵌入式Internet設備的應用。

NAT實際上是一種IP欺騙技術,就是在專用網(wǎng)絡和公共網(wǎng)絡之間進行地址的轉換,從而實現(xiàn)內(nèi)網(wǎng)到外網(wǎng)或者外網(wǎng)到內(nèi)網(wǎng)的訪問。NAT有三種類型:靜態(tài)NAT(static NAT)、NAT池(pooledNAT)和端口NAT(NPAT)。其中靜態(tài)NAT的實現(xiàn)比較簡單,內(nèi)部網(wǎng)絡的每個虛擬地址都有外部真實地址與之相對應,NAT只要將對應的內(nèi)外網(wǎng)地址進行一對一的轉換即可。靜態(tài)NAT不能解決IP地址的耗盡問題。NAT池是一種動態(tài)NAT,它先定義一系列真實IP,NAT將來自內(nèi)部網(wǎng)絡的虛擬IP映射成地址池中外網(wǎng)的合法IP地址。動態(tài)NAT的實現(xiàn)相對靜態(tài)復雜一些,當有內(nèi)網(wǎng)節(jié)點需要訪問外網(wǎng)時,NAT在地址池中選擇一個空閑的外網(wǎng)IP進行轉換,其實現(xiàn)也是一對一的轉換,當池中所有地址都被使用時,NAT會拒絕新的NAT請求直到有節(jié)點放棄NAT轉換。在嵌入式設備連接網(wǎng)絡需要大量IP地址的情況下,上述兩種NAT技術都不能很好的解決地址的耗盡問題,而端口NAT技術徹底解決了地址的短缺問題。

在Internet上用(源地址:源端口號、目的地址:目的端口號)來標識一個會話,端口NAT正是將網(wǎng)絡層端口參與到地址轉換,其實現(xiàn)方法是將多個內(nèi)部虛擬網(wǎng)地址及其網(wǎng)絡層端口映射到一個外部真實IP地址的不同端口上。NAT可以實現(xiàn)由內(nèi)網(wǎng)主動訪問外網(wǎng),但是在嵌入式測控系統(tǒng)中,訪問通常由外網(wǎng)主動發(fā)起,NAT實現(xiàn)反方向地址轉換。

下面以圖示說明端口NAT的工作過程。如所示的網(wǎng)絡拓撲結構為一個應用端口NAT的基本網(wǎng)絡。內(nèi)網(wǎng)段(192.168.0.0)為虛擬網(wǎng),其上可以連接多個嵌入式網(wǎng)絡化儀器,設有A設備其地址為192.68.0.125,在90端口提供web服務;外網(wǎng)段(202.119.101.192)為真實網(wǎng),設有一臺PC其地址為202.119.101.16,NAT設備的對外接口地址為202.119.101.22,其對內(nèi)接口地址為192.168.0.1。外網(wǎng)節(jié)點訪問內(nèi)網(wǎng)節(jié)點的過程如下:

(1) PC上應用程序生成一個數(shù)據(jù)報,并通過網(wǎng)絡發(fā)送給NAT網(wǎng)關。設其源地址、源端口號、目的地址、目的端口號分別為202.119.101.16:2200和202.119.101.22:90。

(2) NAT網(wǎng)關接受該數(shù)據(jù)報后,檢查端口地址映射表,發(fā)現(xiàn)202.119.101.22:90映射為內(nèi)部網(wǎng)絡節(jié)點192.168.0.125:90,NAT網(wǎng)關將數(shù)據(jù)報的地址和端口號轉換成內(nèi)部虛擬網(wǎng)相應地址和端口號,并在轉換關系緩沖區(qū)中記錄下轉換關系,以便反向數(shù)據(jù)的轉換,轉換后的數(shù)據(jù)報地址和端口號為192.168.0.1:2345和192.168.0.125:90,NAT將轉換后的數(shù)據(jù)報通過虛擬網(wǎng)發(fā)送給內(nèi)部節(jié)點。

(3) 內(nèi)網(wǎng)節(jié)點收到數(shù)據(jù)報后提交給上層協(xié)議處理,上層協(xié)議處理后產(chǎn)生回應數(shù)據(jù)報,其地址和端口號為192.168.0.125:90、192.168.0.1:2345,內(nèi)網(wǎng)節(jié)點將回應數(shù)據(jù)報發(fā)送給NAT網(wǎng)關。

(4) NAT網(wǎng)關接收到該回應數(shù)據(jù)報后,根據(jù)數(shù)據(jù)報的地址和端口號在緩沖區(qū)中查找對應轉換關系,實現(xiàn)與第二步相反的轉換,修改后的數(shù)據(jù)報地址和端口號為202.119.101.22:90、202.119.101.16:2200,NAT再將修改后的IP數(shù)據(jù)報發(fā)同給外網(wǎng)節(jié)點。

至此,基于端口NAT的地址轉換過程結束,實現(xiàn)了外網(wǎng)節(jié)點對內(nèi)網(wǎng)節(jié)點的訪問。外網(wǎng)節(jié)點只與網(wǎng)關設備通信,并不知道內(nèi)部網(wǎng)絡的存在,內(nèi)部網(wǎng)絡也只與網(wǎng)關通信,并不知道外網(wǎng)的存在。 系統(tǒng)硬件設計

NAT網(wǎng)關設備可以有小型機或PC充當,由于PC資源豐富,有完備的操作系統(tǒng)和大量應用軟件,其實現(xiàn)相對容易,但價格較高,需專門維護。當測量數(shù)據(jù)不多時,可采用微處理器開發(fā)專用NAT網(wǎng)關設備。本文用微處理器開發(fā)了網(wǎng)關設備,其硬件系統(tǒng)框圖如所示。

微處理器采用Cygnal公司的混合信號級芯片C8051F020。該微處理器采用Cygnal公司的CIP-51微控制器內(nèi)核,與MCS-51指令完全兼容。一條Mcs-51指令一般需要12或24個系統(tǒng)時鐘周期,而CIP-51的大多指令只需要1或2個系統(tǒng)時鐘周期。C8051F020提供豐富地接口,如IIC、SPI、串口等;64kB片內(nèi)非易失性Flash程序存儲器,允許用戶現(xiàn)場更新8051固件。另外其片內(nèi)JTAG調(diào)試電路允許對終應用系統(tǒng)進行非侵入式(即不占用片內(nèi)資源)在系統(tǒng)調(diào)試。具體應用請參考C8051F020用戶手冊。

網(wǎng)絡控制器采用RELTEK公司的RTL8019AS,程序通過寄存器對其進行初始化后,芯片能夠完成曼切斯特編碼的檢測、以太網(wǎng)數(shù)據(jù)幀的接收和發(fā)送、MAC地址匹配、CRC校驗等。芯片內(nèi)嵌16kSRAM,用作數(shù)據(jù)接收和發(fā)送緩沖區(qū),降低對微處理器的速度要求,支持全雙工通信,數(shù)據(jù)接收和發(fā)送同時達到10MBPS的速率。RTL8019AS允許工作在8位或16位系統(tǒng)中,在電路設計時,由于CPU的數(shù)據(jù)總線寬度為8位,因此我們將RTL8019AS的IOCS16B引腳通過下拉電阻接地,設置其為8位模式。兩片網(wǎng)絡控制器分別用于連接Internet和內(nèi)部虛擬網(wǎng)絡。

該網(wǎng)關設備程序存儲器全部采用芯片內(nèi)部Flash存儲器,不再另外擴展。芯片內(nèi)部已經(jīng)有4k字節(jié)XRAM,另外系統(tǒng)用IS62LV1024擴展了128k字節(jié)SRAM,數(shù)據(jù)存儲器采用片內(nèi)XRAM和片外XRAM統(tǒng)一編址。即有效地址低于4k字節(jié)將訪問片內(nèi)XRAM,有效地址高于4k字節(jié)將訪問片外XRAM。

另外通過IIC接口擴展了一片AT24C02專門用于存儲網(wǎng)關設備的IP地址、子網(wǎng)掩碼、相連的網(wǎng)關地址以及端口NAT地址映射表。

由于8位處理器系統(tǒng)的資源有限,不可能在其上運行操作系統(tǒng),因此整個系統(tǒng)的軟件都必須自行設計。其中包括主程序設計、網(wǎng)絡控制器驅動、TCP/IP協(xié)議族實現(xiàn)等。限于篇幅,本文只討論NAT協(xié)議的實現(xiàn)。網(wǎng)關設備用于在內(nèi)外網(wǎng)之間通過虛擬地址和NAT端口的對應關系實現(xiàn)IP數(shù)據(jù)報的轉發(fā),因此NAT網(wǎng)關不需要實現(xiàn)所有協(xié)議層次,例如TCP協(xié)議和HTTP協(xié)議。其軟件系統(tǒng)層次如所示。


端口NAT協(xié)議的軟件實現(xiàn)涉及到兩個數(shù)據(jù)結構,將其定義在頭文件net.h中。

∥定義NAT網(wǎng)關外網(wǎng)真實地址和端口與內(nèi)網(wǎng)虛擬地址和端口的映射關系

typedef struct

NAT協(xié)議的實現(xiàn)包括三個函數(shù):init_nat()、age_nat_cache()、nat_resolve()。

init_nat():從24C02存儲器中讀出的地址和端口值初始化映射表,并將轉換關系表清空。程序如下:

age_nat_cache():該函數(shù)每60秒自動調(diào)用,將NAT轉換關系表中每條記錄的定時器值減1,若某條記錄定時器減到0,表示該記錄已經(jīng)太長時間沒有使用,將其從表中刪除。程序如下:
nat_resolve():該函數(shù)根據(jù)映射關系表port_ip和轉換關系表nat_cache在內(nèi)外網(wǎng)之間進行數(shù)據(jù)報轉發(fā)。函數(shù)首先區(qū)分接收的IP包承載的是TCP數(shù)據(jù)還是UDP數(shù)據(jù),轉發(fā)LDP數(shù)據(jù)與轉發(fā)TCP數(shù)據(jù)只在計算校驗和時稍有差別,故下而僅以流程圖說明TCP數(shù)據(jù)轉發(fā)的過程。流程圖如所示。

程序首先檢查TCP校驗和是否計算真確,如果不正確就直接出錯退出,然后判斷數(shù)據(jù)是來自外網(wǎng)還是內(nèi)網(wǎng)。對于來自外網(wǎng)的數(shù)據(jù),檢查其目的地址和目的端口號是否在port_ip映射關系表中有定義,如果有定義表示有一個內(nèi)部節(jié)點在相應的端口提供服務。這時再檢查該數(shù)據(jù)報是否是此次會話的個數(shù)據(jù)報,如果是就要在轉換關系表中添加相應的轉換關系,以便相反方向的數(shù)據(jù)報的NAT轉換。對于來自內(nèi)網(wǎng)的數(shù)據(jù),只檢查在nat_cache轉換關系表中是否存在轉換關系,如果存在就轉換地址并發(fā)送數(shù)據(jù)包,如果不存在,直接出錯退出,即該程序不允許訪問由內(nèi)網(wǎng)發(fā)起。

在測試時,我們用多嵌入式測控設備連成專用測控網(wǎng)絡,將其架設在實驗室內(nèi)(在教育網(wǎng)內(nèi)),并通過嵌入式網(wǎng)關連接Internet,讓通過ADSL連接電信網(wǎng)絡的遠程客戶機訪問專用網(wǎng)內(nèi)部節(jié)點,成功地實現(xiàn)遠程測控。該網(wǎng)關設備穩(wěn)定可靠,價格低廉,可用于無人值守的小型測控系統(tǒng)。


  
關鍵詞:嵌入式網(wǎng)關設備的設計與實現(xiàn)24C02RTL8019ASAT24C02C8051F020IS62LV1024MCS-51

版權與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關法律責任。

本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。

如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

AT24C02拯救了一大批程序員,能讓單片機運行時的數(shù)據(jù)保存100年!
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網(wǎng)站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!