當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]功能概述  由于Ad Hoc網(wǎng)絡(luò)無中心、動(dòng)態(tài)拓?fù)涞忍攸c(diǎn),它需要各個(gè)節(jié)點(diǎn)都具有路由轉(zhuǎn)發(fā)功能。本文開發(fā)的Ad Hoc網(wǎng)絡(luò)節(jié)點(diǎn)通過在ARM平臺(tái)上移植路由協(xié)議而實(shí)現(xiàn)了數(shù)據(jù)包轉(zhuǎn)發(fā)功能。      圖1 節(jié)點(diǎn)轉(zhuǎn)發(fā)  以圖1所示的網(wǎng)

功能概述

  由于Ad Hoc網(wǎng)絡(luò)無中心、動(dòng)態(tài)拓?fù)涞忍攸c(diǎn),它需要各個(gè)節(jié)點(diǎn)都具有路由轉(zhuǎn)發(fā)功能。本文開發(fā)的Ad Hoc網(wǎng)絡(luò)節(jié)點(diǎn)通過在ARM平臺(tái)上移植路由協(xié)議而實(shí)現(xiàn)了數(shù)據(jù)包轉(zhuǎn)發(fā)功能。
 

  

 

  圖1 節(jié)點(diǎn)轉(zhuǎn)發(fā)

  以圖1所示的網(wǎng)絡(luò)進(jìn)行功能示意,其中A、B、D是普通的移動(dòng)電腦終端,C是本文開發(fā)的ARM平臺(tái)。A和D是通信的端點(diǎn),D不在A的一跳范圍之內(nèi)(A的覆蓋范圍如圖中虛線所示)。假設(shè)開始時(shí)B成為了A和D的中繼節(jié)點(diǎn),完成A、D之間的數(shù)據(jù)轉(zhuǎn)發(fā)功能。當(dāng)B節(jié)點(diǎn)出現(xiàn)故障時(shí),C能自動(dòng)代替B成為新的中繼節(jié)點(diǎn),維持A、D之間的通信。

  該ARM平臺(tái)除了路由協(xié)議以外,同時(shí)完成了ftp、iptables等工具的移植,還可以繼續(xù)增添語音、視頻等服務(wù)。

  硬件平臺(tái)

  以處理器為核心,無線網(wǎng)卡收到數(shù)據(jù)包后交給上層處理,需要發(fā)出的數(shù)據(jù)包也由處理器控制無線網(wǎng)卡來發(fā)出。當(dāng)然SDRAM、閃存、電源這些模塊也是系統(tǒng)不可缺少的。

  本文采用ARM920T為內(nèi)核的三星處理器S3C2410A。S3C2410A 是32位低功耗RISC處理器,同時(shí)支持Thumb 16位壓縮指令集,其工作頻率為203MHz。S3C2410A有292個(gè)管腳,集成了許多片上功能,例如以太網(wǎng)控制器、UART控制器、可編程I/O口及中斷控制器等。

  考慮到接口體積,該平臺(tái)選用USB接口的華碩WL-167g無線網(wǎng)卡,提供無線通信功能。

  硬件平臺(tái)設(shè)計(jì)結(jié)構(gòu)如圖2所示。

  

 

  圖2 硬件平臺(tái)結(jié)構(gòu)圖

  在硬件調(diào)試中一個(gè)應(yīng)該注意的問題就是S3C2410A的nWait引腳在不使用時(shí)應(yīng)接上拉電阻,否則系統(tǒng)在啟動(dòng)模式時(shí)將不能正常啟動(dòng)。

  軟件平臺(tái)

  vivi是韓國(guó)MIZI公司開發(fā)的Bootloader,適用于ARM9處理器,其作用是初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境設(shè)置成一個(gè)合適的狀態(tài),以便為運(yùn)行操作系統(tǒng)準(zhǔn)備正確的環(huán)境。引導(dǎo)程序執(zhí)行完后會(huì)將控制權(quán)交給內(nèi)核(zImage),內(nèi)核是操作系統(tǒng)的核心,內(nèi)核需要的各種配置文件、數(shù)據(jù)及上層軟件都存放在根文件系統(tǒng)之中。整個(gè)軟件平臺(tái)的結(jié)構(gòu)如圖3所示。

  

 

  圖3 軟件平臺(tái)示意圖

  內(nèi)核鏡像的生成

  這里不贅述內(nèi)核生成方法,需要注意此過程容易遇到三類錯(cuò)誤:一是編譯出錯(cuò),應(yīng)該檢查庫文件是否齊全,另外gcc版本太高也會(huì)導(dǎo)致編譯錯(cuò)誤,重新安裝低版本gcc后即可解決;二是內(nèi)核配置應(yīng)將Default kernel command string設(shè)置為noinitrd root=/dev/mtdblock3 console=ttySAC0,115200 init=/linuxrc,“console=ttySAC0,115200”使內(nèi)核啟動(dòng)期間的信息全部輸出到串口0上,波特率為115200,“mtdblock3”代表第4個(gè)Nand閃存分區(qū),該分區(qū)為根文件系統(tǒng),init是指定啟動(dòng)腳本,“init=/linuxrc”表示啟動(dòng)初始化文件位置;三是應(yīng)該在drivers/mtd/nand/s3c2410.c中,設(shè)置NAND_ECC_SOFT = NAND_ECC_NONE,這樣就關(guān)閉了ECC校驗(yàn)。因?yàn)閮?nèi)核是通過vivi寫到Nand閃存中的,vivi使用的軟件ECC算法與內(nèi)核中校驗(yàn)算法不同。無線網(wǎng)卡驅(qū)動(dòng)的移植

 

  本文使用華碩USB無線網(wǎng)卡WL-167g,其網(wǎng)卡驅(qū)動(dòng)是rt73。

  移植步驟如下:

  a、下載RT73_Linux_STA_Drv1.0.4.0.tar.gz,解壓后生成Module和WPA_Supplicant兩個(gè)目錄,將目錄Module中的所有文件都拷貝到內(nèi)核源碼包drivers/usb/net/rt73下,修改Makefile如下編譯選項(xiàng):

  KDIR := path/linux-2.6.18

  path為內(nèi)核源碼包所在路徑。

  b、由于要在內(nèi)核源碼包里進(jìn)行交叉編譯,所以修改linux-2.6.18 /drivers/usb/net/Kconfig,加入以下內(nèi)容:

  config RT73

  tristate“support for rt73 wireless usb device”

  depends on USB && NET && USB_USBNET

  c、修改drivers/usb/net/Makefile,加入rt73的編譯項(xiàng):

  obj-$(CONFIG_RT73)+= rt73

  d、對(duì)內(nèi)核重新進(jìn)行配置,

  將配置界面中新增的“support for rt73 wireless usb device”選為模塊。

  e、make modules

  在drivers/usb/net/rt73目錄下生成rt73.ko驅(qū)動(dòng)文件,將rt73.ko放到根文件系統(tǒng)中,再燒寫到ARM板上無線網(wǎng)卡即可正常工作。

  f、無線網(wǎng)卡的配置

  無線網(wǎng)卡有managed、Ad-hoc兩種模式。managed模式稱為基礎(chǔ)設(shè)施模式,又稱接入點(diǎn)模式;Ad-hoc模式稱為點(diǎn)對(duì)點(diǎn)模式或無中心模式,用來在無線網(wǎng)卡之間進(jìn)行一跳通信。Ad Hoc網(wǎng)絡(luò)就是在Ad-hoc模式基礎(chǔ)上通過網(wǎng)絡(luò)協(xié)議使得該網(wǎng)絡(luò)支持多跳通信,因此該模式的使用和性能對(duì)Ad Hoc網(wǎng)絡(luò)的影響至關(guān)重要,以下是Ad-hoc模式配置方法,rausb0表示無線網(wǎng)卡:

  1)、ifconfig rausb0 10.0.1.1 up

  設(shè)置節(jié)點(diǎn)IP為10.0.1.1。

  2)、iwpriv rausb0 set AdhocOfdm=2

  設(shè)置rausb0為11g only模式,即54M速率模式,這是802.11g所能支持的最高速率。

  3)、iwconfig rausb0 channel 3

  設(shè)置信道為3。

  4)、iwconfig rausb0 mode ad-hoc essid bcnl

  設(shè)置網(wǎng)卡模式為ad-hoc,essid為“bcnl”。

  上述配置過程中使用的“iw”開頭的命令都是無線工具集中的命令,其源碼包是wireless_tools.29.tar.gz,經(jīng)過交叉編譯后即可使用。

  AODV路由協(xié)議的移植

  本文使用的代碼是aodv-uu-0.9.5.tar.gz。AODV分為兩個(gè)部分,一個(gè)是內(nèi)核態(tài)模塊kaodv.ko,一個(gè)是用戶態(tài)模塊aodvd。AODV主要部分工作在用戶態(tài),用于維護(hù)內(nèi)核路由表。

  AODV需要內(nèi)核支持,在內(nèi)核配置時(shí)要選上netfilter選項(xiàng)。先編譯內(nèi)核態(tài)模塊kaodv.ko,步驟如下:

  a、將aodv-uu-0.9.5/lnx目錄的內(nèi)容拷到內(nèi)核源碼包linux-2.6.18/net/ipv4/kaodv目錄下,修改linux-2.6.18/net/ipv4/Kconfig,添加如下內(nèi)容:

  config KAODV_UU

  tristate "support for aodv-uu adhoc routing protocol"

  b、在linux-2.6.18/net/ipv4/Makefile末尾添加如下的編譯選項(xiàng):

  obj-$(CONFIG_KAODV_UU) += kaodv/

  c、make menuconfig,找到如下的目錄項(xiàng):

  Networking --->

  [*] Networking support Networking options --->

  support for aodv-uu adhoc routing protocol選為模塊編譯。

  d、make modules將生成kaodv.ko。以下介紹用戶態(tài)aodvd編譯:

  將aodv-uu-0.9.5/Makefile做適當(dāng)修改,使其在交叉編譯的環(huán)境下只編譯用戶態(tài)部分。

  將得到的kaodv.ko和aodvd拷貝到根文件系統(tǒng)中,再燒寫到ARM板上。

  insmod kaodv.ko

  ./ aodvd

  這樣aodv協(xié)議就運(yùn)行起來了。在協(xié)議移植中有兩點(diǎn)需要注意:一是Makefile中ARM_CCFLAGS=-mbig-endian應(yīng)該注釋掉,否則運(yùn)行時(shí)會(huì)產(chǎn)生大小端混亂的問題;二是將kaodv.ko和aodvd分開編譯,因?yàn)橥瑫r(shí)編譯時(shí)總是提示編譯器缺少文件,甚至用其他交叉編譯器依然不能解決問題,而這些錯(cuò)誤大多是編譯內(nèi)核模塊產(chǎn)生的。測(cè)試和結(jié)論

 

  為簡(jiǎn)單起見,本測(cè)試使用兩個(gè)筆記本和一個(gè)ARM平臺(tái)組建成Ad Hoc網(wǎng)絡(luò),如圖4所示,A節(jié)點(diǎn)IP為10.0.1.1,B節(jié)點(diǎn)IP為10.0.1.2,C節(jié)點(diǎn)IP為10.0.1.3(經(jīng)測(cè)試將ARM平臺(tái)做通信端,A或C做中繼,網(wǎng)絡(luò)同樣可以正常運(yùn)行)。

  

 

  圖4 測(cè)試拓?fù)涫疽鈭D

  為了簡(jiǎn)單地實(shí)現(xiàn)C節(jié)點(diǎn)不在A節(jié)點(diǎn)一跳范圍內(nèi),可以使用iptables實(shí)現(xiàn)過濾。

  在A節(jié)點(diǎn)執(zhí)行:

  iptables –A INPUT –p ALL –m mac –mac-source C.mac –j DROP

  在C節(jié)點(diǎn)執(zhí)行:

  iptables –A INPUT –p ALL –m mac –mac-source A.mac –j DROP

  以上的C.mac、A.mac是C和A的實(shí)際mac地址,這樣A節(jié)點(diǎn)拒絕C發(fā)給它的數(shù)據(jù)包,C節(jié)點(diǎn)也拒絕A發(fā)給它的數(shù)據(jù)包,保證二者一跳不可達(dá)。

  在C節(jié)點(diǎn)ping -R 10.0.1.1,鏈路不通,說明過濾成功,B沒有進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)。

  在各節(jié)點(diǎn)上運(yùn)行AODV后,在C節(jié)點(diǎn)ping -R 10.0.1.1,結(jié)果如圖5所示。

  

 

  圖5 測(cè)試結(jié)果

  可見,B正確地進(jìn)行了數(shù)據(jù)包轉(zhuǎn)發(fā),AODV協(xié)議正常運(yùn)行,ARM平臺(tái)成功運(yùn)行。

  在A節(jié)點(diǎn)執(zhí)行l(wèi)ftp 10.0.1.3,并下載普通文件。這樣數(shù)據(jù)包由中間的ARM平臺(tái)B轉(zhuǎn)發(fā),下載完成后,查看C節(jié)點(diǎn)的日志文件/var/log/vsftpd.log,發(fā)現(xiàn)上傳和下載的速率基本相同,有將近700kBps的速率,達(dá)到5.4Mbps的速率。粗略估算聚合物電池供電能使ARM平臺(tái)穩(wěn)定運(yùn)行8小時(shí)。

  通過以上測(cè)試,搭建一個(gè)Ad Hoc網(wǎng)絡(luò)的ARM平臺(tái)的目標(biāo)已經(jīng)達(dá)到。通過對(duì)有多個(gè)ARM平臺(tái)的Ad Hoc網(wǎng)絡(luò)進(jìn)行測(cè)試,發(fā)現(xiàn)當(dāng)某節(jié)點(diǎn)感知無線信號(hào)很弱時(shí),無線網(wǎng)卡的essid存在自動(dòng)變化的情況。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉