《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM的AdHoc網絡平臺的實現
基于ARM的AdHoc網絡平臺的實現
電子設計應用
沈曉松,宿景芳
摘要: 由于AdHoc網絡無中心、動態拓撲等特點,它需要各個節點都具有路由轉發功能。本文開發的AdHoc網絡節點通過在ARM平臺上移植路由協議而實現了數據包轉發功能。
關鍵詞: ARM Ad hoc網絡 嵌入式
Abstract:
Key words :

功能概述

由于Ad Hoc網絡無中心、動態拓撲等特點,它需要各個節點都具有路由轉發功能。本文開發的Ad Hoc網絡節點通過在ARM平臺上移植路由協議而實現了數據包轉發功能。
 

 

 

圖1 節點轉發

以圖1所示的網絡進行功能示意,其中A、B、D是普通的移動電腦終端,C是本文開發的ARM平臺。A和D是通信的端點,D不在A的一跳范圍之內(A的覆蓋范圍如圖中虛線所示)。假設開始時B成為了A和D的中繼節點,完成A、D之間的數據轉發功能。當B節點出現故障時,C能自動代替B成為新的中繼節點,維持A、D之間的通信。

該ARM平臺除了路由協議以外,同時完成了ftp、iptables等工具的移植,還可以繼續增添語音、視頻等服務。

硬件平臺

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

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

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

硬件平臺設計結構如圖2所示。

 

基于ARM的Ad Hoc網絡平臺結構

 

圖2 硬件平臺結構圖

在硬件調試中一個應該注意的問題就是S3C2410A的nWait引腳在不使用時應接上拉電阻,否則系統在啟動模式時將不能正常啟動。

軟件平臺

vivi是韓國MIZI公司開發的Bootloader,適用于ARM9處理器,其作用是初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境設置成一個合適的狀態,以便為運行操作系統準備正確的環境。引導程序執行完后會將控制權交給內核(zImage),內核是操作系統的核心,內核需要的各種配置文件、數據及上層軟件都存放在根文件系統之中。整個軟件平臺的結構如圖3所示。

 

圖3 軟件平臺示意圖

內核鏡像的生成

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

無線網卡驅動的移植

本文使用華碩USB無線網卡WL-167g,其網卡驅動是rt73。

移植步驟如下:

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

KDIR := path/linux-2.6.18

path為內核源碼包所在路徑。

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

config RT73

tristate“support for rt73 wireless usb device”

depends on USB && NET && USB_USBNET

c、修改drivers/usb/net/Makefile,加入rt73的編譯項:

obj-$(CONFIG_RT73)+= rt73

d、對內核重新進行配置,

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

e、make modules

在drivers/usb/net/rt73目錄下生成rt73.ko驅動文件,將rt73.ko放到根文件系統中,再燒寫到ARM板上無線網卡即可正常工作。

f、無線網卡的配置

無線網卡有managed、Ad-hoc兩種模式。managed模式稱為基礎設施模式,又稱接入點模式;Ad-hoc模式稱為點對點模式或無中心模式,用來在無線網卡之間進行一跳通信。Ad Hoc網絡就是在Ad-hoc模式基礎上通過網絡協議使得該網絡支持多跳通信,因此該模式的使用和性能對Ad Hoc網絡的影響至關重要,以下是Ad-hoc模式配置方法,rausb0表示無線網卡:

1)、ifconfig rausb0 10.0.1.1 up

設置節點IP為10.0.1.1。

2)、iwpriv rausb0 set AdhocOfdm=2

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

3)、iwconfig rausb0 channel 3

設置信道為3。

4)、iwconfig rausb0 mode ad-hoc essid bcnl

設置網卡模式為ad-hoc,essid為“bcnl”。

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

AODV路由協議的移植

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

AODV需要內核支持,在內核配置時要選上netfilter選項。先編譯內核態模塊kaodv.ko,步驟如下:

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

config KAODV_UU

tristate "support for aodv-uu adhoc routing protocol"

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

obj-$(CONFIG_KAODV_UU) += kaodv/

c、make menuconfig,找到如下的目錄項:

Networking --->

[*] Networking support Networking options --->

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

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

將aodv-uu-0.9.5/Makefile做適當修改,使其在交叉編譯的環境下只編譯用戶態部分。

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

insmod kaodv.ko

./ aodvd

這樣aodv協議就運行起來了。在協議移植中有兩點需要注意:一是Makefile中ARM_CCFLAGS=-mbig-endian應該注釋掉,否則運行時會產生大小端混亂的問題;二是將kaodv.ko和aodvd分開編譯,因為同時編譯時總是提示編譯器缺少文件,甚至用其他交叉編譯器依然不能解決問題,而這些錯誤大多是編譯內核模塊產生的。

測試和結論

為簡單起見,本測試使用兩個筆記本和一個ARM平臺組建成Ad Hoc網絡,如圖4所示,A節點IP為10.0.1.1,B節點IP為10.0.1.2,C節點IP為10.0.1.3(經測試將ARM平臺做通信端,A或C做中繼,網絡同樣可以正常運行)。

 

圖4 測試拓撲示意圖

為了簡單地實現C節點不在A節點一跳范圍內,可以使用iptables實現過濾。

在A節點執行:

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

在C節點執行:

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

以上的C.mac、A.mac是C和A的實際mac地址,這樣A節點拒絕C發給它的數據包,C節點也拒絕A發給它的數據包,保證二者一跳不可達。

在C節點ping -R 10.0.1.1,鏈路不通,說明過濾成功,B沒有進行數據包轉發。

在各節點上運行AODV后,在C節點ping -R 10.0.1.1,結果如圖5所示。

圖5 測試結果

可見,B正確地進行了數據包轉發,AODV協議正常運行,ARM平臺成功運行。

在A節點執行lftp 10.0.1.3,并下載普通文件。這樣數據包由中間的ARM平臺B轉發,下載完成后,查看C節點的日志文件/var/log/vsftpd.log,發現上傳和下載的速率基本相同,有將近700kBps的速率,達到5.4Mbps的速率。粗略估算聚合物電池供電能使ARM平臺穩定運行8小時。

通過以上測試,搭建一個Ad Hoc網絡的ARM平臺的目標已經達到。通過對有多個ARM平臺的Ad Hoc網絡進行測試,發現當某節點感知無線信號很弱時,無線網卡的essid存在自動變化的情況。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线观看网站| 性欧美1819sex性高清| 欧美高清视频一区二区| 日韩亚洲精品电影| 亚洲一区二区三区高清不卡| 国产日韩精品在线播放| 欧美.日韩.国产.一区.二区| 亚洲图片你懂的| 性欧美大战久久久久久久免费观看 | 美乳少妇欧美精品| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 日韩天天综合| 国产一区二区三区奇米久涩| 免费人成精品欧美精品| 亚洲欧美文学| 91久久久久久国产精品| 亚洲午夜小视频| 亚洲电影在线看| 国产色爱av资源综合区| 欧美精品日韩| 久久手机免费观看| 亚洲欧美色婷婷| 99视频超级精品| 亚洲高清123| 亚洲男人的天堂在线aⅴ视频| 亚洲高清在线观看一区| 国产精品男女猛烈高潮激情| 欧美大胆成人| 久久久久综合网| 亚洲一级在线| 亚洲精品男同| 久久精品盗摄| 亚洲欧美国产日韩天堂区| 亚洲免费av片| 亚洲国产成人91精品| 国产日韩欧美精品在线| 欧美日韩视频专区在线播放| 久久这里有精品视频| 亚洲在线国产日韩欧美| 韩国精品在线观看| 国产精品一区二区女厕厕| 欧美久久久久久久久久| 蜜臀久久99精品久久久久久9| 欧美一区二区大片| 亚洲午夜精品久久久久久浪潮 | 亚洲影音先锋| 日韩一级黄色大片| 亚洲国产二区| 欧美一区二区三区四区视频| 亚洲视屏在线播放| 99re6热在线精品视频播放速度| 精品999在线播放| 国产在线麻豆精品观看| 国产精品久久久久国产精品日日| 欧美精品亚洲精品| 女人天堂亚洲aⅴ在线观看| 久久久久久久综合色一本| 欧美一区二区三区久久精品茉莉花| 亚洲婷婷综合久久一本伊一区| 亚洲美女色禁图| 亚洲区一区二| 亚洲福利免费| 久久国产手机看片| 欧美一级视频| 午夜精品电影| 亚洲欧美成人| 亚洲免费影院| 亚洲一区免费| 亚洲欧美日韩国产综合在线| 中文av一区特黄| 99ri日韩精品视频| 中文在线一区| 亚洲午夜在线| 亚洲欧美99| 欧美一区二区在线播放| 欧美一区二区三区在线视频| 欧美一区二区三区精品| 欧美一区三区三区高中清蜜桃 | 99re视频这里只有精品| 99pao成人国产永久免费视频| 亚洲卡通欧美制服中文| 99ri日韩精品视频| 亚洲视频一区二区| 亚洲男女自偷自拍图片另类| 亚洲欧美日韩电影| 先锋影音国产一区| 久久精品国产免费看久久精品| 欧美中日韩免费视频| 久久久久久久网站| 嫩草国产精品入口| 欧美日产国产成人免费图片| 欧美日韩一区免费| 国产精品一区在线观看你懂的| 国产色视频一区| 亚洲第一二三四五区| 日韩午夜av电影| 亚洲免费网站| 亚洲高清免费视频| 日韩天天综合| 午夜精彩国产免费不卡不顿大片| 久久精品女人的天堂av| 欧美成年人视频网站欧美| 欧美日韩免费精品| 国产精品日韩电影| 黄色日韩网站视频| 亚洲乱码精品一二三四区日韩在线 | 亚洲国产免费| 99亚洲一区二区| 亚洲小视频在线| 久久成人免费| 欧美电影免费| 国产精品r级在线| 狠狠88综合久久久久综合网| 亚洲日韩欧美一区二区在线| 亚洲一区精品视频| 亚洲成色精品| 亚洲午夜羞羞片| 久久漫画官网| 欧美日韩一区二区三区四区五区 | 欧美日韩一区二区三区在线看| 国产精品一区二区三区成人| 影音先锋日韩资源| 一区二区三区高清在线| 久久精品欧美日韩| 中文日韩电影网站| 久久久亚洲午夜电影| 欧美日韩一二区| 国内精品伊人久久久久av一坑| 亚洲精品韩国| 欧美在线啊v| 一区二区三区欧美视频| 久久久久久网站| 国产精品va在线播放| 樱桃国产成人精品视频| 亚洲图色在线| 亚洲免费成人av电影| 久久精品中文字幕一区| 欧美三级网页| 亚洲高清免费视频| 午夜欧美大尺度福利影院在线看 | 欧美日韩在线观看视频| 伊人成年综合电影网| 亚洲欧美综合v| 亚洲午夜精品网| 欧美高清免费| 黄色成人在线免费| 欧美亚洲一区二区在线| 亚洲视频图片小说| 欧美激情a∨在线视频播放| 国产字幕视频一区二区| 亚洲一区二区av电影| 日韩亚洲综合在线| 免费成人黄色av| 国内成人精品2018免费看| 亚洲欧美日韩视频二区| 亚洲综合国产精品| 欧美色精品天天在线观看视频| 一区在线视频| 久久国产欧美日韩精品| 欧美一区二区三区在线| 欧美日韩亚洲综合一区| 亚洲欧洲综合另类在线| 亚洲欧洲一区二区三区久久| 久久久99精品免费观看不卡| 国产精品久久久久秋霞鲁丝 | 一区二区日韩| 欧美成人午夜免费视在线看片| 国产午夜精品全部视频播放| 亚洲一区欧美一区| 亚洲视屏一区| 欧美日韩mp4| 亚洲人在线视频| 亚洲精品乱码| 欧美电影免费观看大全| 在线观看日韩欧美| 亚洲高清在线观看一区| 久久免费精品日本久久中文字幕| 国产欧美午夜| 午夜精品福利一区二区三区av | 红桃视频亚洲| 亚洲欧美在线一区二区| 欧美一区二区在线播放| 国产精品入口尤物| 亚洲制服欧美中文字幕中文字幕| 亚洲午夜极品| 欧美日韩一区自拍| 日韩天天综合| 亚洲图片你懂的| 欧美日韩亚洲一区二区| 日韩一区二区精品葵司在线| 99re6热在线精品视频播放速度 | 亚洲欧洲在线一区| 99日韩精品| 欧美日韩一区二区精品| 一区二区三区日韩在线观看| 中文av一区特黄| 亚洲精品乱码久久久久久按摩观| 欧美freesex8一10精品| 国内偷自视频区视频综合| 亚洲欧美中文另类|