www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件

功能概述

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

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

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

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

硬件平臺

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

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

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

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

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

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

軟件平臺

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

圖3 軟件平臺示意圖

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

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

無線網(wǎng)卡驅(qū)動的移植

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

移植步驟如下:

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

KDIR := path/linux-2.6.18

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

b、由于要在內(nèi)核源碼包里進行交叉編譯,所以修改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的編譯項:

obj-$(CONFIG_RT73)+= rt73

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

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

e、make modules

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

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

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

1)、ifconfig rausb0 10.0.1.1 up

設(shè)置節(jié)點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分為兩個部分,一個是內(nèi)核態(tài)模塊kaodv.ko,一個是用戶態(tài)模塊aodvd。AODV主要部分工作在用戶態(tài),用于維護內(nèi)核路由表。

AODV需要內(nèi)核支持,在內(nèi)核配置時要選上netfilter選項。先編譯內(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末尾添加如下的編譯選項:

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。以下介紹用戶態(tài)aodvd編譯:

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

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

insmod kaodv.ko

./ aodvd

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

測試和結(jié)論

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

圖4 測試拓撲示意圖

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

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

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

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

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

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

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

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

圖5 測試結(jié)果

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

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

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

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉