<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于ARM的Ad Hoc網(wǎng)絡(luò)平臺(tái)的實(shí)現(xiàn)

          基于ARM的Ad Hoc網(wǎng)絡(luò)平臺(tái)的實(shí)現(xiàn)

          作者: 時(shí)間:2011-08-29 來源:網(wǎng)絡(luò) 收藏

          功能概述

          本文引用地址:http://www.ex-cimer.com/article/155828.htm

            由于 網(wǎng)絡(luò)無中心、動(dòng)態(tài)拓?fù)涞忍攸c(diǎn),它需要各個(gè)節(jié)點(diǎn)都具有路由轉(zhuǎn)發(fā)功能。本文開發(fā)的 網(wǎng)絡(luò)節(jié)點(diǎn)通過在平臺(tái)上移植路由協(xié)議而了數(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ā)的平臺(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之間的通信。

            該平臺(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所示。

            

          基于ARM的Ad Hoc網(wǎng)絡(luò)平臺(tái)結(jié)構(gòu)

            圖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是韓國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)算法不同。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();