基于ATM9TDMI+Linux的SOHO 路由器設(shè)計(jì)方案


基于ATM9TDMI+Linux的SOHO路由器設(shè)計(jì)方案
引言
隨著信息技術(shù)的不斷發(fā)展,SOHO(Small Office and Home Office)路由器在小型辦公室和家庭網(wǎng)絡(luò)中的應(yīng)用越來越廣泛。然而,當(dāng)前SOHO路由器設(shè)計(jì)方案存在一些問題,如難以滿足高速接入網(wǎng)用戶的要求,系統(tǒng)穩(wěn)定性較差等。為了解決這些問題,本文提出了一種基于ATM9TDMI+Linux的SOHO路由器設(shè)計(jì)方案,該方案不僅提高了系統(tǒng)的穩(wěn)定性和安全性,還滿足了高速接入網(wǎng)用戶的需求。
1. 背景與現(xiàn)狀分析
當(dāng)前的SOHO路由器設(shè)計(jì)主要采用ARM7TDMI+μClinux架構(gòu)。ARM7內(nèi)核微處理器的工作頻率大約在50MHz左右,而以太網(wǎng)控制芯片的工作頻率一般為100MHz,處理器速度難以滿足高速接入網(wǎng)用戶的要求。此外,μClinux操作系統(tǒng)不具備內(nèi)存保護(hù)機(jī)制,任何程序都有可能導(dǎo)致內(nèi)核崩潰,系統(tǒng)穩(wěn)定性較差。
為了解決這些問題,本文提出采用ARM920T內(nèi)核微處理器和Linux操作系統(tǒng)。ARM920T內(nèi)核微處理器的工作頻率為200MHz,能夠滿足高速接入網(wǎng)用戶的要求,并且具有先進(jìn)的MMU(Memory Management Unit)體系結(jié)構(gòu),支持WinCE、EPOC32、Linux等多種操作系統(tǒng)。Linux操作系統(tǒng)具有內(nèi)存保護(hù)機(jī)制和強(qiáng)大的網(wǎng)絡(luò)控制功能,能夠防止惡意程序?qū)ο到y(tǒng)的破壞,并實(shí)現(xiàn)防火墻功能,有效地提高了系統(tǒng)的穩(wěn)定性和安全性。
2. 系統(tǒng)硬件設(shè)計(jì)
2.1 主控芯片選擇
本系統(tǒng)采用的主控芯片是S3C2410X,這是一款由SAMSUNG公司開發(fā)的低價(jià)、低功耗、高性能的微處理器,主要應(yīng)用于PDA和Internet設(shè)備。S3C2410X的工作頻率為200MHz,能夠滿足高速處理要求。
詳細(xì)型號:S3C2410X
在設(shè)計(jì)中的作用:
核心處理器:S3C2410X作為系統(tǒng)的核心處理器,負(fù)責(zé)整個(gè)系統(tǒng)的控制和管理。
系統(tǒng)總線:通過系統(tǒng)總線連接FLASH和SDRAM,構(gòu)成存儲系統(tǒng)。系統(tǒng)上電后,微處理器從FLASH中讀取初始化程序,SDRAM為程序運(yùn)行和數(shù)據(jù)處理提供臨時(shí)存儲空間。
接口連接:S3C2410X的外部中斷信號EINT14與DM9000芯片的引腳INT相連,用于處理中斷請求。S3C2410X的片選信號nGCS4和地址線MA2分別連接DM9000的AEN引腳和CMD引腳,用于片選和數(shù)據(jù)傳輸。
2.2 以太網(wǎng)控制芯片
以太網(wǎng)控制芯片選用的是DM9000,這是一款高性價(jià)比的以太網(wǎng)控制芯片,具有通用處理接口以太網(wǎng)MAC控制器,能夠與10Base-T的UTP3/4/5和100Base-T的UTP5接口連接,滿足高速接入網(wǎng)的要求。同時(shí),DM9000還支持通過MII接口與其他MII接口的收發(fā)器互聯(lián)。
詳細(xì)型號:DM9000
在設(shè)計(jì)中的作用:
數(shù)據(jù)傳輸:DM9000通過MII接口與交換控制芯片RTL8305S的PORT4口相連,實(shí)現(xiàn)數(shù)據(jù)傳輸。
接口連接:DM9000的引腳INT與S3C2410X的外部中斷信號EINT14相連,用于處理中斷請求。DM9000的AEN引腳和CMD引腳分別與S3C2410X的片選信號nGCS4和地址線MA2相連,用于片選。DM9000的讀引腳IOR#和寫引腳IOW#分別與S3C2410X的nOE引腳和nWE引腳相連,實(shí)現(xiàn)數(shù)據(jù)傳輸。
2.3 交換控制芯片
交換控制芯片選用的是RTL8305S,這是臺灣瑞昱公司最新設(shè)計(jì)的5端口10/100Mbps高速以太網(wǎng)絡(luò)交換控制芯片。RTL8305S的五個(gè)端口分成三個(gè)組(X組、Y組、第五端口),可通過相關(guān)引腳靈活配置。RTL8305S集成了5個(gè)MAC(媒體存取控制器)、5個(gè)實(shí)體層收發(fā)器、1M SRAM和1K MAC地址記憶區(qū),有效地減少了查表時(shí)間和轉(zhuǎn)儲時(shí)間,適用于高速局域網(wǎng)交換器。
詳細(xì)型號:RTL8305S
在設(shè)計(jì)中的作用:
數(shù)據(jù)交換:RTL8305S通過四個(gè)端口與局域網(wǎng)集線器、交換機(jī)或電腦相連,進(jìn)行數(shù)據(jù)交換。
接口連接:RTL8305S的第五端口設(shè)定為MII接口,與DM9000的MII接口相連,實(shí)現(xiàn)數(shù)據(jù)交換。
2.4 存儲器
系統(tǒng)擴(kuò)展了1片64MB的NAND Flash芯片和2片SDRAM芯片。NAND Flash芯片中存儲Bootloader引導(dǎo)程序和Linux內(nèi)核,系統(tǒng)上電復(fù)位后從中執(zhí)行初始化代碼。SDRAM為程序運(yùn)行和數(shù)據(jù)處理提供臨時(shí)存儲空間。
詳細(xì)型號:
NAND Flash:64MB
SDRAM:2片
在設(shè)計(jì)中的作用:
存儲程序:NAND Flash芯片存儲Bootloader引導(dǎo)程序和Linux內(nèi)核,系統(tǒng)上電復(fù)位后從中執(zhí)行初始化代碼。
數(shù)據(jù)存儲:SDRAM為程序運(yùn)行和數(shù)據(jù)處理提供臨時(shí)存儲空間,提高系統(tǒng)性能。
2.5 其他硬件
系統(tǒng)還配備了必要的調(diào)試接口、電源電路和時(shí)鐘發(fā)生電路,以確保系統(tǒng)的正常運(yùn)行和調(diào)試。
3. 系統(tǒng)軟件設(shè)計(jì)
3.1 Bootloader移植
Bootloader是與系統(tǒng)硬件高度相關(guān)的初始化代碼,擔(dān)負(fù)著初始化硬件和引導(dǎo)操作系統(tǒng)的雙重責(zé)任。本系統(tǒng)采用在嵌入式系統(tǒng)開發(fā)中應(yīng)用最廣的引導(dǎo)代碼U-BOOT。
移植步驟:
針對目標(biāo)平臺對各配置文件做相應(yīng)的修改。
建立相應(yīng)的配置文件。
修改U-BOOT的makefile文件,在其中加入對目標(biāo)系統(tǒng)的編譯支持,并運(yùn)行以下命令:
$make clean
、$makesmdk2410-config
、$make all
生成目標(biāo)文件。通過JTAG接口將u-boot.bin文件燒寫到Flash的零地址,復(fù)位后就可以引導(dǎo)系統(tǒng)。
3.2 Linux操作系統(tǒng)移植
Linux操作系統(tǒng)移植主要包括內(nèi)核配置、編譯和根文件系統(tǒng)構(gòu)建。
內(nèi)核配置:
修改makefile文件。
使用
make menuconfig
命令來配置內(nèi)核。內(nèi)核編譯:
使用make dep
、make zImage
命令對內(nèi)核進(jìn)行編譯,得到內(nèi)核壓縮鏡像文件zImage。根文件系統(tǒng)構(gòu)建:
Bootloader引導(dǎo)程序通過以太網(wǎng)接口把Linux內(nèi)核移到目標(biāo)系統(tǒng)的Flash上,然后構(gòu)建根文件系統(tǒng)。
3.3 NAT技術(shù)實(shí)現(xiàn)
SOHO路由器采用NAT(Network Address Translation)轉(zhuǎn)換技術(shù),將局域網(wǎng)內(nèi)部私用IP地址轉(zhuǎn)換成一個(gè)合法的公網(wǎng)IP地址,使私有網(wǎng)絡(luò)中多臺主機(jī)共享一個(gè)合法的IP地址訪問因特網(wǎng)。
實(shí)現(xiàn)方式:
利用Linux內(nèi)核支持IP Masquerade(IP偽裝)技術(shù)實(shí)現(xiàn)NAT轉(zhuǎn)換??蛻魴C(jī)將實(shí)現(xiàn)IP Masquerade的Linux機(jī)器設(shè)置為缺省網(wǎng)關(guān),當(dāng)IP Masquerade的Linux機(jī)器收到客戶機(jī)的數(shù)據(jù)包時(shí),對其進(jìn)行改寫,將源地址替換為自己的IP地址,將源端口號換成一個(gè)新的端口號,并對該過程進(jìn)行記錄。當(dāng)接收到響應(yīng)數(shù)據(jù)包時(shí),如果其端口號正是先前所指定的端口號,則再對該數(shù)據(jù)包進(jìn)行改寫,將其目的IP地址及目的端口號替換為原來記錄的客戶機(jī)IP地址和端口號,然后再發(fā)送給客戶機(jī)。
3.4 數(shù)據(jù)包處理
Netfilter是Linux內(nèi)核實(shí)現(xiàn)數(shù)據(jù)過濾、數(shù)據(jù)包處理和NAT功能的框架。它為每種網(wǎng)絡(luò)協(xié)議(IPv4、IPv6等)定義一套鉤子函數(shù)(IPv4有5個(gè)鉤子函數(shù)),內(nèi)核中任何模塊可以對協(xié)議中的鉤子函數(shù)進(jìn)行注冊與掛接。這些鉤子函數(shù)在數(shù)據(jù)包流經(jīng)協(xié)議棧時(shí)被調(diào)用,注冊后的模塊可以檢查、修改、丟棄數(shù)據(jù)包及指示Netfilter將數(shù)據(jù)包傳入用戶空間隊(duì)列,進(jìn)行異步處理。
數(shù)據(jù)包處理流程:
數(shù)據(jù)包從左邊進(jìn)入系統(tǒng),進(jìn)行IP校驗(yàn)。
數(shù)據(jù)包經(jīng)過第一個(gè)鉤子函數(shù)NF_IP_PRE_ROUTING進(jìn)行處理。
進(jìn)入路由代碼,決定該數(shù)據(jù)包是需要轉(zhuǎn)發(fā)還是發(fā)給本機(jī)的。
若該數(shù)據(jù)包是發(fā)給本機(jī)的,則該數(shù)據(jù)經(jīng)過鉤子函數(shù)NF_IP_LOCAL_IN處理后傳遞給上層協(xié)議。
若該數(shù)據(jù)包應(yīng)該被轉(zhuǎn)發(fā),則它被NF_IP_FORWARD處理。
經(jīng)過轉(zhuǎn)發(fā)的數(shù)據(jù)包經(jīng)過最后一個(gè)鉤子函數(shù)NF_IP_POST_ROUTING處理后,再傳輸?shù)骄W(wǎng)絡(luò)上。
本地產(chǎn)生的數(shù)據(jù)經(jīng)過鉤子函數(shù)NF_IP_LOCAL_OUT處理后,進(jìn)行路由選擇處理,然后經(jīng)過NF_IP_POST_ROUTING處理以后發(fā)送到網(wǎng)絡(luò)上。
4. 系統(tǒng)性能與優(yōu)化
本系統(tǒng)采用ARM920T內(nèi)核微處理器和Linux操作系統(tǒng),具有高性能和高穩(wěn)定性。同時(shí),通過優(yōu)化存儲系統(tǒng)、提高數(shù)據(jù)傳輸速率、優(yōu)化NAT技術(shù)和數(shù)據(jù)包處理流程等措施,進(jìn)一步提高了系統(tǒng)的性能和穩(wěn)定性。
5. 結(jié)論
本文提出了一種基于ATM9TDMI+Linux的SOHO路由器設(shè)計(jì)方案,采用ARM920T內(nèi)核微處理器和Linux操作系統(tǒng),有效地提高了系統(tǒng)的穩(wěn)定性和安全性,滿足了高速接入網(wǎng)用戶的要求。通過優(yōu)化硬件和軟件設(shè)計(jì),系統(tǒng)性能得到了進(jìn)一步提升。未來,將繼續(xù)優(yōu)化系統(tǒng)性能,提高系統(tǒng)的可靠性和安全性,以滿足更多用戶的需求。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來源于網(wǎng)絡(luò)引用或其他公開資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對本文的引用持有異議,請聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對此聲明的最終解釋權(quán)。