<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 一種基于嵌入式Linux的多協(xié)議路由器設計

一種基于嵌入式Linux的多協(xié)議路由器設計

作者: 時(shí)間:2014-06-19 來(lái)源:網(wǎng)絡(luò ) 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/248535.htm

  隨著(zhù)社會(huì )信息化進(jìn)程和互聯(lián)網(wǎng)的飛迅發(fā)展,對無(wú)線(xiàn)環(huán)境下提供數據服務(wù)的需求變得更加迫切。傳統的無(wú)線(xiàn)移動(dòng)網(wǎng)絡(luò )通常以固定的基礎設施為支撐,無(wú)法滿(mǎn)足人們對日益增長(cháng)的通信業(yè)務(wù)的要求,一種新型的無(wú)線(xiàn)網(wǎng)絡(luò )——AdHoc網(wǎng)絡(luò )應運而生。Ad Hoc網(wǎng)絡(luò )又稱(chēng)移動(dòng)自組網(wǎng)、多跳網(wǎng)絡(luò ),具備細網(wǎng)靈活、快捷,不受有線(xiàn)網(wǎng)絡(luò )的影響等特點(diǎn),可廣泛應用于軍事和救援等無(wú)法或不便預先鋪設網(wǎng)絡(luò )設施的場(chǎng)合。此外,Ad Hoc網(wǎng)絡(luò )朝著(zhù)網(wǎng)絡(luò )互連的方向發(fā)展,Internet的接入是其中一項主要內容。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

  Ad Hoc無(wú)線(xiàn)網(wǎng)絡(luò )具有自身的特殊性,在組建實(shí)際使用的無(wú)線(xiàn)工作網(wǎng)絡(luò )時(shí),必須充分考慮網(wǎng)絡(luò )的應用規模和擴展性,以及應用的可靠程度及實(shí)時(shí)性要求,選擇合適的網(wǎng)絡(luò )拓撲結構。目前Ad Hoc無(wú)線(xiàn)網(wǎng)絡(luò )正朝著(zhù)大規模方向發(fā)展,逐漸呈現分級化的趨勢,以?xún)杉壥降木W(wǎng)絡(luò )為代表。在兩級式網(wǎng)絡(luò )中,拓撲如圖1所示。網(wǎng)絡(luò )分為骨干網(wǎng)、子網(wǎng)兩級。子網(wǎng)級中,每個(gè)子網(wǎng)都可以構成獨立的Ad Hoc網(wǎng)絡(luò ),可采用不同的路由協(xié)議。骨干網(wǎng)由多協(xié)議節點(diǎn)和普通節點(diǎn)構成,其中,普通節點(diǎn)主要完成骨干網(wǎng)中的數據和控制信息的分發(fā);而多協(xié)議除了具備普通節點(diǎn)的功能外還要負責實(shí)現對子網(wǎng)的管理、控制和數據交互,是骨干網(wǎng)的核心設備。

  多協(xié)議的功能

  多協(xié)議路由器作為骨干網(wǎng)的一個(gè)節點(diǎn),運行一定的Ad Hoc網(wǎng)絡(luò )路由協(xié)議,實(shí)現骨干網(wǎng)絡(luò )由尋址的功能。

  在分級式Ad Hoc網(wǎng)絡(luò )中,多協(xié)議路由器通過(guò)和子網(wǎng)網(wǎng)關(guān)進(jìn)行交互實(shí)現對子網(wǎng)的管理。子網(wǎng)內的通信類(lèi)似于一般的Ad Hoc網(wǎng)絡(luò );而子網(wǎng)間的通信需要通過(guò)子網(wǎng)網(wǎng)關(guān)節點(diǎn)和骨干網(wǎng)節點(diǎn)進(jìn)行中轉,可分為兩種情況—同一路由器下同構/異構子網(wǎng)間的通信以及不同路由器下同構/異構子網(wǎng)間的通信。為了實(shí)現子網(wǎng)間的有效通信,路由器需要完成多種協(xié)議之間的相互轉換。



  Internet接入的需求使得分級式Ad Hoc網(wǎng)絡(luò )必須存在一個(gè)接入點(diǎn)AP(Access Point)??紤]到網(wǎng)絡(luò )環(huán)境,這個(gè)功能需要由多協(xié)議路由器實(shí)現。綜上所述,多協(xié)議路由器主要實(shí)現骨干網(wǎng)路由尋址、協(xié)議轉換、Internet接入的AP三大功能。

  多協(xié)議路由器的設計

  一般情況下,Ad Hoc網(wǎng)中的路由器為車(chē)載式或背負式,所以多協(xié)議路由器必須有高集成度和移動(dòng)性??紤]到以上因素,我們選用了現在最為流行的系統設計方法,多協(xié)議路由器的硬件平臺的微處理器采用Motorola公司的ColdFire處理器MCF5272,選擇uClinux作為平臺的操作系統。這樣不僅可以縮短研發(fā)周期,而且為軟硬件的設計、調試帶來(lái)極大的方便。

  多協(xié)議路由器硬件設計如圖2中的虛線(xiàn)框圖所示。路由器的硬件結構分為兩部分:一部分為核心模式(MCF5272)部分,由微控制器模塊和存儲器模塊(包括SDRAM和Flash)組成;另一部分為通信接口模塊部分,由異步串行控制和收發(fā)模塊、以太網(wǎng)控制和收發(fā)模塊及通用串行總線(xiàn)USB(Universal Serial Bus)接口模塊組成。

  核心模塊部分,微處理器模塊主要負責處理數據。存儲器模塊分為兩部分:一部分為Flash(由兩片Flash構成,共4MB),作為程序存儲器,用于存儲操作系統內核、各種路由協(xié)議和路由表常量;另一部分為SDRAM,作為數據存儲器,用作操作系統和各種路由程序的運行空間。

  通信接口模塊中,異步串行控制和收發(fā)模塊用于與多個(gè)骨干網(wǎng)節點(diǎn)無(wú)線(xiàn)連接的同時(shí),連接多個(gè)子網(wǎng)網(wǎng)關(guān)PRU(即分組無(wú)線(xiàn)控制單元)。以太網(wǎng)控制和收發(fā)模塊可以實(shí)現Internet接入功能。USB接口模塊用作連接網(wǎng)絡(luò )設備控制終端,以及實(shí)現路由器對USB設備(如USB標準的移動(dòng)硬盤(pán),用來(lái)存儲重要的路由信息)的存儲控制。



  圖2中的PRU(Packet Radio Unit),在這里相當于路由器的輔助處理器,用于對接收到的無(wú)線(xiàn)子網(wǎng)分組進(jìn)行預處理。

  多協(xié)議路由器的實(shí)現

  硬件平臺的建立

  使用系統,必須為硬件平臺選擇一個(gè)適合的微處理器,而選擇適用于路由器的微控制器MCU一般要考慮以下幾個(gè)方面:處理速度、總線(xiàn)寬度、集成度以及性?xún)r(jià)比。綜合考慮了上述幾個(gè)方面,我們最終選用Motorola ColdFire 5272(以下簡(jiǎn)稱(chēng)MCF5272)為主控CPU。MCF5272是Motorola推出的一款高集成度的32位ColdFire微處理器,有很強的通信處理能力和較高的性能價(jià)格比,很適合用于中小型網(wǎng)絡(luò )的控制設備。

  MCF5272采用ColdFire V2可變長(cháng)RISC處理器核心和DigitalDNA技術(shù),在66MHz時(shí)鐘下能達到63Dhrystone2.1MIPS的優(yōu)良處理能力。其內部SIM 單元(System Integrated Module)集成了豐富的通用模塊,如10/100Mbps快速以太網(wǎng)控制器、USB1.1接口等,并且能夠與常用外圍設備(如SDRAM、ISDN收發(fā)器)實(shí)現無(wú)縫連接。

  MCF5272內部集成了4KB的SDRAM(靜態(tài)RAM)、片外擴展的Flash(閃爍存儲器)和SDRAM(同步動(dòng)態(tài)RAM)。

  MCF5272集成了豐富的外圍設備及其接口,主要包括2個(gè)通用異步串口收發(fā)模塊,1個(gè)自適應快速以太網(wǎng)媒體接入控制器模塊,1個(gè)USB控制器(作為從設備)模塊。

  按照圖2所示的路由器" style="text-decoration:underline;color:blue">路由器設計,需要在MCF5272的基礎上進(jìn)行一定的擴展。多協(xié)議路由器需要連接多個(gè)子網(wǎng)和骨干網(wǎng)節點(diǎn),而MCF5272只集成了2個(gè)UART控制器,因此在異步串行擴展和收發(fā)模塊中利用ST 16C554擴展了4個(gè)UART控制器,從而保證某個(gè)多協(xié)議路由器在與其它2個(gè)骨干網(wǎng)節點(diǎn)相連的同時(shí),可以與4個(gè)子網(wǎng)相連。在USB接口模塊中,使用 MCF5272集成的USB控制器(從設備)作為網(wǎng)絡(luò )管理控制終端,另外擴展了1個(gè)主USB控制器實(shí)現路由器對USB設備的存儲控制。利用MCF5272 集成的快速以太網(wǎng)媒體接入控制器,擴展一個(gè)外部適配器(收發(fā)器)后可以實(shí)現接入以太網(wǎng)的功能。

  經(jīng)以上步驟,我們得到了多協(xié)議路由器的硬件平臺。

  操作系統uClinux

  由于硬件的限制,嵌入式系統通常只具有極稀少的硬件資源,如主頻較低的CPU、較小的內存等。是一種很受歡迎的類(lèi)Unix操作系統。它免費并開(kāi)放源代碼,在個(gè)人計算機、服務(wù)器領(lǐng)域應用廣泛。更重要的是,采用模塊化設計,實(shí)際應用中可以定制,因此也適用于嵌入式領(lǐng)域。

  MCF5272是一種沒(méi)有MMU的微處理器,故我們選擇了專(zhuān)為嵌入式NOMMU微處理器定制的操作系統uCLinux、uClinux正是Linux的一個(gè)嵌入式版本,其內核的二進(jìn)制映像文件可以做到小于512KB。UClinux支持多任務(wù),支持多種文件系統,具有完備的TCP/IP協(xié)議棧,并支持多種網(wǎng)絡(luò )協(xié)議,可滿(mǎn)足Ad Hoc網(wǎng)絡(luò )節點(diǎn)接入Internet的需要。另外,uClinux可移植性很強,用戶(hù)通過(guò)重新配置、編譯內核,能很方便地將其移植到多種處理器計算平臺。

  嵌入式Linux移植技術(shù)是從事嵌入Linux開(kāi)發(fā)的一項關(guān)鍵技術(shù),要求開(kāi)發(fā)人員對Linux內核有相當程度的理解,具備修改內核的能力。下面簡(jiǎn)單介紹uClinux的移植過(guò)程。

  (1)精簡(jiǎn)內核

  精簡(jiǎn)內核構造內核的常用命令包括:make config、dep、clean、mrproper、zImage、bzImage、modules、modules_install??墒褂眠@些命令把所有可以去掉的選項都去掉,盡可能地精簡(jiǎn)內核。

  (2)修改硬件相關(guān)代碼

  作為源泉代碼公開(kāi)的操作系統,uClinux源碼可以從www.uClinux.org獲得。系統啟動(dòng)過(guò)程中,需要添加三個(gè)文件:crt0_rom.s、sysinit.c和rom.ld。crt0_rom.s可以由crt0_ram.s修改得到,它提供一個(gè)ROM矢量表以供 CPU上電時(shí)讀取,初始化CPU寄存器,設置程序堆棧,并最終跳轉到uClinux內核。Sysinit.c針對實(shí)際情況做必要的修改,主要就實(shí)際占用的片選資源CS0~CS7、SDRAM控制寄存器SDCR、SDTR作一些修改以適應硬件平臺。rom.ld文件用于計算ROMFS文件系統的二進(jìn)制映像 romfs.img在ROM中的實(shí)際存放地址。

  (3)修改啟動(dòng)腳本

  在uClinux完成內核初始化之后,由init(void *)內核調用/bin/init,然后執行/etc/re腳本的命令??梢岳眠@個(gè)腳本完成系統上電后的自動(dòng)配置,或運行用戶(hù)程序。

  (4)內核配置與編譯

  需要建立一個(gè)交叉編譯環(huán)境來(lái)完成內核和應用程序的編譯,生成ROMFS文件系統,并最終形成一個(gè)固化文件。www.uClinux.org也提供這樣一個(gè)工具包。正確安裝后,就可以進(jìn)行編譯了。首先進(jìn)入源代碼目錄uClinuxdist,執行make xconfig,在彈出的對話(huà)框中選擇“Target Platform Selection”,然后進(jìn)行相應配置。配置完畢后,在源代碼目錄執行“make dep”以及“make”,就得到了所要的二進(jìn)制內核映像image.bin,可以直接下載到硬件平臺運行。

  路由器軟件

  移植成功后的uClinux操作系統只向用戶(hù)提供了一個(gè)最基本的系統平臺,針對實(shí)際應用還必須編寫(xiě)用戶(hù)所必需的驅動(dòng)程序和應用軟件。MCF5272集成了2個(gè)UART控制器、1個(gè)從USB控制器和1個(gè)以太網(wǎng)控制器。我們又擴展了1個(gè)主USB控制器和4個(gè)UART控制器,為這些設備編寫(xiě)相應的驅動(dòng)程序,并且在uClinux和驅動(dòng)程序的基礎上,實(shí)現路由器" style="text-decoration:underline;color:blue">路由器軟件(包括路由模塊、協(xié)議轉換模塊和無(wú)線(xiàn)網(wǎng)絡(luò )節點(diǎn)瀏覽Internet代理模塊)。

  在路由模塊中,可根據具體的情況選擇適當的路由協(xié)議進(jìn)行加載。根據實(shí)際情況,在骨干網(wǎng)中采用按需路由協(xié)議AODV。其基本實(shí)現思想是:當骨干網(wǎng)某一路由請求節點(diǎn)有分組發(fā)送并發(fā)現沒(méi)有到達目的節點(diǎn)的有效路由時(shí),它將啟動(dòng)路由建立過(guò)程,即組建一個(gè)路由尋找分組RREQ(Route Request Message)并在網(wǎng)絡(luò )中泛洪尋址。路由表中有到目的節點(diǎn)有效路由,并組建一個(gè)路由響應分組RREP(Route Reply Message)并反向回播給路由請求節點(diǎn)建立路由,否則繼續泛洪RREQ分組。如果路由請求節點(diǎn)再收到RREP分組,說(shuō)明網(wǎng)絡(luò )中已經(jīng)建立到目的節點(diǎn)的路由,可以直接發(fā)送數據分組,否則可能繼續發(fā)起下一次路由建立過(guò)程,也可以對數據丟棄處理。這里值得注意的是,每一個(gè)節點(diǎn)在接收RREQ的時(shí)候會(huì )反向建立到路由發(fā)起節點(diǎn)的路由(反向建鏈過(guò)程),以使得RREP可以沿此路徑返回源節點(diǎn);同時(shí),每個(gè)節點(diǎn)在接收RREP的時(shí)候會(huì )正在向建立到目的節點(diǎn)的路由(正向建鏈過(guò)程)以使得分組可以沿此路徑將分組傳輸給目的節點(diǎn)。在上述尋找路由的過(guò)程中,RREQ和RREP中均包含路由信息和節點(diǎn)的序號標識,以用來(lái)進(jìn)行路由更新及避免路由閉環(huán)。

  結語(yǔ)

  近年來(lái),嵌入式系統與Linux系統的有機結合,已廣泛應用于網(wǎng)絡(luò )通信、工業(yè)控制、機頂盒 、PDA等諸多領(lǐng)域。本文提出了一種基于嵌入式Linux平臺的多協(xié)議路由器的設計方案,目前該設計方案已經(jīng)實(shí)現。實(shí)踐證明,此多協(xié)議路由器易于實(shí)現、性能穩定、運行效率較高,可應用于分級式Ad Hoc網(wǎng)絡(luò )。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程


路由器相關(guān)文章:路由器工作原理


路由器相關(guān)文章:路由器工作原理


矢量控制相關(guān)文章:矢量控制原理


關(guān)鍵詞: Linux 嵌入式 路由器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>