當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]SOHO路由器的設(shè)計(jì)與實(shí)現(xiàn)

摘要:利用ucLinux對(duì)網(wǎng)絡(luò)技術(shù)的支持,提出了一種利用ucLinux來構(gòu)建基于ARM9 CPU的SOHO路由器的設(shè)計(jì)思想。該方案的硬件平臺(tái)核心采用美國MARVELL公司生產(chǎn)的88E6218微處理器芯片。文中詳細(xì)描述了SOHO路由器的軟、硬件設(shè)計(jì)結(jié)構(gòu)及設(shè)計(jì)流程。
關(guān)鍵詞:SOHO路由器;ucLinux;ARM9;以太網(wǎng)

O 引言
    作為互聯(lián)網(wǎng)的核心設(shè)備,路由器市場(chǎng)也越來越廣闊。網(wǎng)絡(luò)向家庭和辦公室的不斷普及,帶動(dòng)了小型路由器(即SOHO路由器)的需求?,F(xiàn)在,市場(chǎng)上已經(jīng)出現(xiàn)了大量面向SOHO的網(wǎng)絡(luò)通信產(chǎn)品。其中ARM9系列微處理器以性能優(yōu)越、價(jià)格低廉且技術(shù)成熟而成為目前路由器配置的首選。本文以ARM9核心芯片結(jié)合uclinux操作系統(tǒng)開發(fā)模式,詳細(xì)介紹了一種SOHO路由器的設(shè)計(jì)和技術(shù)實(shí)現(xiàn)過程。

1 SOH0路由器設(shè)計(jì)思路
    路南器是一種嵌入式設(shè)備,它離不開硬件設(shè)備和軟件系統(tǒng)的支持,對(duì)其開發(fā)一般可以理解成三層模型:硬件設(shè)備、操作系統(tǒng)以及運(yùn)行操作系統(tǒng)之上的應(yīng)用程序。硬件設(shè)備主要由微處理器和圍繞微處理器芯片的元件電路組成,它是設(shè)備功能實(shí)現(xiàn)的硬件基礎(chǔ);中間層就是操作系統(tǒng),它可連接硬件部分和應(yīng)用程序,操作系統(tǒng)既要完成對(duì)底層硬件的基本操作,又應(yīng)為應(yīng)用程序提供運(yùn)行環(huán)境支持;操作系統(tǒng)之上就是應(yīng)用程序,是負(fù)責(zé)實(shí)現(xiàn)針對(duì)性應(yīng)用的程序代碼,對(duì)應(yīng)于路由器的網(wǎng)絡(luò)架構(gòu)和通信協(xié)議等功能模塊。

2 硬件實(shí)現(xiàn)
    SOH0路由器的硬件結(jié)構(gòu)如圖1所示。圖中的核心是一顆美國MARVELL公司生產(chǎn)的88E6218高性能16/32位微處理器。該芯片是專門為SOHO路由器和以太網(wǎng)交換機(jī)而設(shè)計(jì)的,相對(duì)于目前市場(chǎng)上的網(wǎng)絡(luò)通信處理器。88E6218具有性能高、成本低等優(yōu)點(diǎn)。此外,該處理器還帶有DSP指令擴(kuò)展的ARM946E高性能CPU核,其工作頻率達(dá)133/150 MHz,采用16/32位RISC體系,帶有8 KB指令CACHE、8 KB數(shù)據(jù)CACHE和8 KB數(shù)據(jù)RAM,可支持uclinux和Vxwork操作系統(tǒng)內(nèi)存管理,而且內(nèi)置32位ARM指令系統(tǒng)和16位指令集。


    88E6218具有集成的以太網(wǎng)接口和交換功能,它內(nèi)部帶有一個(gè)UNIMAC結(jié)構(gòu),可以實(shí)現(xiàn)基于QOS機(jī)制的快速以太網(wǎng)交換功能。其結(jié)構(gòu)框圖如圖2所示。88E6218芯片具有5個(gè)支持IEEE802.3的自適應(yīng)以太網(wǎng)接口和MAC地址端口,其中包括4個(gè)10/100BASE-TX的LAN端口和1個(gè)10/100BA-SE-TX或者100BASE-FX可選擇模式的WAN端口。這些端口可支持802模式的各種路由的網(wǎng)絡(luò)協(xié)議,也支持10/100 Mbps二種傳輸速率以及全/半雙工傳輸功能。每個(gè)端口都有CRC效驗(yàn)、判斷、轉(zhuǎn)移功能,并具有片上數(shù)據(jù)包緩沖存儲(chǔ)器,且符合IEEE 802.3ab,802.3x,802.p,802.-1Q標(biāo)準(zhǔn)的管理功能。此外,該器件還具有IEEE 802.1p流量優(yōu)先權(quán)序列能力,可提供IEEE 802.1Q VALN功能且能夠無阻塞交換。


    88E6218芯片內(nèi)的外圍功能模塊包括SDRAM/FLASH的控制器、JTAG接口、可編程通用I/O口、UART串口接口、中斷控制器、存儲(chǔ)控制器與及電源調(diào)整引腳等。另外,88E6218還有一個(gè)重要特點(diǎn)就是提供有PHY LED燈的控制器,可以用來指示端口收發(fā)器是否連接、接收、發(fā)送、全雙工等各種工作狀態(tài),以通過LED顯示判斷網(wǎng)絡(luò)的連接狀態(tài)。[!--empirenews.page--]
    在圖1所示的SOHO路由器中,其核心處理器就選用88E6218。該芯片提供了4個(gè)LNA口,可連接到10/100M以太網(wǎng),另一個(gè)WAN口連接到廣域網(wǎng),各端口之間有交換功能。根據(jù)操作系統(tǒng)的存儲(chǔ)和運(yùn)行需要,芯片還設(shè)置了SDRAM存儲(chǔ)器和FLASH存儲(chǔ)器,SDRAM存儲(chǔ)器由一片4×2 Mxl6 B的HY57V281620組成,是操作系統(tǒng)、應(yīng)用程序運(yùn)行和一些數(shù)據(jù)緩存的空間。FLASH存儲(chǔ)器由一片512Kx8BIT的AM29LV040B組成,用于存放啟動(dòng)程序二進(jìn)制的B00TLEADER文件、操作系統(tǒng)以及應(yīng)用程序。20針的ARM JTAG口用于調(diào)試程序和燒寫FLASH。RS232接口用于提供配置管理功能和反映信息運(yùn)行情況。時(shí)鐘電路由一個(gè)25 MHz的晶振和濾波電容組成,RESERT電路由一塊DSl708TESA芯片加一個(gè)手動(dòng)按扭組成低電平復(fù)位。電源電路的輸入為5 V,通過DC變壓后,可在電源調(diào)整引腳偏壓下提供1.5 V、1.25 V、2.5V、3.3 V電壓給處理芯片,以供芯片順利工作。此外,電路中還有大量的濾波和穩(wěn)壓電容。為了讓使用者能清楚路由器工作狀態(tài),系統(tǒng)連接了LED指示燈,可通過LED來判斷SOH0路由器的連接狀態(tài)和工作狀態(tài)。

3 軟件設(shè)計(jì)
    SOH0路由器的軟件結(jié)構(gòu)如圖3所示。本硬件平臺(tái)以不含MMU (內(nèi)存管理單元)的88E6218處理器為核心,因此,整個(gè)軟件的開發(fā)可采用不帶MMU的ARM微處理器的嵌入式操作系統(tǒng)uclinux為平臺(tái)。uclinux是專門針對(duì)沒有MMU單元的微處理器而設(shè)計(jì)的,它在標(biāo)準(zhǔn)linux基礎(chǔ)上去除了MMU支持,并進(jìn)行了適當(dāng)緊縮、裁減和優(yōu)化,再加上CGI(圖形用戶界面),因而可實(shí)現(xiàn)TCP/IP協(xié)議以及眾多網(wǎng)絡(luò)協(xié)議和路由交換功能,可滿足SOHO路由器網(wǎng)絡(luò)通信功能要求。UClinux采用romfs文件格式,它比Linux的ext3文件格式需要的空間更小,其代碼加起來不超過900KB,可放
在ROM、RAM、FLASH中啟動(dòng)。由于uclinux本身是免費(fèi)的,這些源代碼可以直接從網(wǎng)上獲得,只需相對(duì)應(yīng)用系統(tǒng)的需求作必要的修改即可,因而可以大大減少開發(fā)成本。


    圖3所示是SOHO路由器的軟件平臺(tái)體系結(jié)構(gòu)。圖中的這些協(xié)議基本上覆蓋了所有路由器交換協(xié)議,并在管理模塊方面加入通過SNMP、WEB,故可方便地對(duì)路由器進(jìn)行設(shè)置。這些交換協(xié)議可基本滿足SOHO路由器的網(wǎng)絡(luò)通信要求。
    該SOHO路由器的軟件平臺(tái)由系統(tǒng)引導(dǎo)程序Bootloader、uCLinux內(nèi)核、應(yīng)用文件系統(tǒng)等組成。其中嵌入式系統(tǒng)引導(dǎo)程序bootloader的作用類似于PC機(jī)的BIOS的作用,但它比PC機(jī)的BIOS運(yùn)行任務(wù)更多的地方是還要將內(nèi)核映像從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,即啟動(dòng)操作系統(tǒng)。
3.1 系統(tǒng)引導(dǎo)
    系統(tǒng)引導(dǎo)程序主要執(zhí)行以下三個(gè)步驟:
    首先是讓PC指向復(fù)位地址入口處,即Ox200000處的Bootloader代碼。由Bootloader初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,以將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
    其次由Bootloader將控制權(quán)交給操作系統(tǒng)內(nèi)核的引導(dǎo)程序,并在設(shè)置好uCLinux內(nèi)核的啟動(dòng)參數(shù)后,開始uCLinux內(nèi)核的加載;
    最后在uCLinux內(nèi)核加載引導(dǎo)完成后啟動(dòng)init進(jìn)程,以完成系統(tǒng)的引導(dǎo)過程。
3.2 對(duì)系統(tǒng)源碼的修改
    由于Bootloader依賴于具體的嵌入式板級(jí)設(shè)備配置,所以,通常需要修改Bootloader的源程序。本例在廠方提供的Bootloader源碼里,對(duì)mvFlash.h中的static unsigned int mvFlashTypes[]函數(shù)的設(shè)置進(jìn)行了修改,并將FLASH的型號(hào)換成上述硬件平臺(tái)中的FLASH,同時(shí)重新設(shè)置了INTEL_FLASH。其三個(gè)初始化、讀、寫功能模塊,即對(duì)應(yīng)函數(shù)為unsigned int mvFlashlnit(unsigned int flashBaseAddress,unsig-ned int flashWidth,F(xiàn)LASH_DEV_MODE flashMode),unsigned int mvFlashWriteBlock(unsigned int offset,unsigned int numOfByte,char*blockAddress),unsigned int mvFlashReadBlock(unsigned int offset,unsigned int numOfByte.char*blockAddress)中的循環(huán)次數(shù)和執(zhí)行條件設(shè)置參數(shù)也相應(yīng)進(jìn)行了修改,只有使Bootloader初始化的硬件和具體設(shè)計(jì)硬件平臺(tái)的器件對(duì)應(yīng)起來,才能正確的驅(qū)動(dòng)硬件。
3.3 uCLinux內(nèi)核的編譯和生成
    在uCLinux內(nèi)核編譯之前,首先要對(duì)內(nèi)核進(jìn)行配置。目錄的修改一般都是在config里面進(jìn)行的,可以用make menuconfig進(jìn)入編譯界面進(jìn)行選擇編譯選項(xiàng)的配置??筛鶕?jù)硬件平臺(tái)的構(gòu)造參數(shù)將必要選項(xiàng)選中,并將沒有必要的選項(xiàng)去掉。系統(tǒng)類型的配置應(yīng)選擇相應(yīng)的內(nèi)核然后是塊設(shè)備選擇和配置以及在塊設(shè)備選擇和配置之上的文件系統(tǒng)配置。一旦串口驅(qū)動(dòng)和uCLinux文件系統(tǒng)以及應(yīng)用系統(tǒng)等設(shè)置好,就可以完成uCL-inux內(nèi)核的配置,修改好后就可以編譯內(nèi)核。接下去執(zhí)行命令make dep,make clean,make lib_only,make user onlv,make romfs,make image.共6個(gè)步驟,最終在image目錄下生成2個(gè)文件zImage和romfs,(分別為內(nèi)核映象文件和文件系統(tǒng)的映象文件)。這就是最后要燒錄到硬件平臺(tái)里FLASH中的文件。這樣就完成了uCLinux的移植。

4 結(jié)束語
    本文較為具體地介紹了基于嵌入式ARM9SOHO路由器的設(shè)計(jì)和實(shí)現(xiàn)方法,并詳細(xì)闡明了它的硬件結(jié)構(gòu),重點(diǎn)敘述了該路由器的軟件設(shè)計(jì)思路和方法(包括操作系統(tǒng)的移植)。當(dāng)然,路由器具有很多相應(yīng)的功能,都需要通過軟件開發(fā)來實(shí)現(xiàn),現(xiàn)在最新的uclinux已經(jīng)是2.6內(nèi)核了,可以用它實(shí)現(xiàn)更多網(wǎng)絡(luò)功能。

本站聲明: 本文章由作者或相關(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日 /美通社/ -- 英國汽車技術(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中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

8月28日消息,在2024中國國際大數(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è)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(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年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

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