基于ATM9TDMI+Linux的SOHO 路由器设计方案


基于ATM9TDMI+Linux的SOHO路由器设计方案
引言
随着信息技术的不断发展,SOHO(Small Office and Home Office)路由器在小型办公室和家庭网络中的应用越来越广泛。然而,当前SOHO路由器设计方案存在一些问题,如难以满足高速接入网用户的要求,系统稳定性较差等。为了解决这些问题,本文提出了一种基于ATM9TDMI+Linux的SOHO路由器设计方案,该方案不仅提高了系统的稳定性和安全性,还满足了高速接入网用户的需求。
1. 背景与现状分析
当前的SOHO路由器设计主要采用ARM7TDMI+μClinux架构。ARM7内核微处理器的工作频率大约在50MHz左右,而以太网控制芯片的工作频率一般为100MHz,处理器速度难以满足高速接入网用户的要求。此外,μClinux操作系统不具备内存保护机制,任何程序都有可能导致内核崩溃,系统稳定性较差。
为了解决这些问题,本文提出采用ARM920T内核微处理器和Linux操作系统。ARM920T内核微处理器的工作频率为200MHz,能够满足高速接入网用户的要求,并且具有先进的MMU(Memory Management Unit)体系结构,支持WinCE、EPOC32、Linux等多种操作系统。Linux操作系统具有内存保护机制和强大的网络控制功能,能够防止恶意程序对系统的破坏,并实现防火墙功能,有效地提高了系统的稳定性和安全性。
2. 系统硬件设计
2.1 主控芯片选择
本系统采用的主控芯片是S3C2410X,这是一款由SAMSUNG公司开发的低价、低功耗、高性能的微处理器,主要应用于PDA和Internet设备。S3C2410X的工作频率为200MHz,能够满足高速处理要求。
详细型号:S3C2410X
在设计中的作用:
核心处理器:S3C2410X作为系统的核心处理器,负责整个系统的控制和管理。
系统总线:通过系统总线连接FLASH和SDRAM,构成存储系统。系统上电后,微处理器从FLASH中读取初始化程序,SDRAM为程序运行和数据处理提供临时存储空间。
接口连接:S3C2410X的外部中断信号EINT14与DM9000芯片的引脚INT相连,用于处理中断请求。S3C2410X的片选信号nGCS4和地址线MA2分别连接DM9000的AEN引脚和CMD引脚,用于片选和数据传输。
2.2 以太网控制芯片
以太网控制芯片选用的是DM9000,这是一款高性价比的以太网控制芯片,具有通用处理接口以太网MAC控制器,能够与10Base-T的UTP3/4/5和100Base-T的UTP5接口连接,满足高速接入网的要求。同时,DM9000还支持通过MII接口与其他MII接口的收发器互联。
详细型号:DM9000
在设计中的作用:
数据传输:DM9000通过MII接口与交换控制芯片RTL8305S的PORT4口相连,实现数据传输。
接口连接:DM9000的引脚INT与S3C2410X的外部中断信号EINT14相连,用于处理中断请求。DM9000的AEN引脚和CMD引脚分别与S3C2410X的片选信号nGCS4和地址线MA2相连,用于片选。DM9000的读引脚IOR#和写引脚IOW#分别与S3C2410X的nOE引脚和nWE引脚相连,实现数据传输。
2.3 交换控制芯片
交换控制芯片选用的是RTL8305S,这是台湾瑞昱公司最新设计的5端口10/100Mbps高速以太网络交换控制芯片。RTL8305S的五个端口分成三个组(X组、Y组、第五端口),可通过相关引脚灵活配置。RTL8305S集成了5个MAC(媒体存取控制器)、5个实体层收发器、1M SRAM和1K MAC地址记忆区,有效地减少了查表时间和转储时间,适用于高速局域网交换器。
详细型号:RTL8305S
在设计中的作用:
数据交换:RTL8305S通过四个端口与局域网集线器、交换机或电脑相连,进行数据交换。
接口连接:RTL8305S的第五端口设定为MII接口,与DM9000的MII接口相连,实现数据交换。
2.4 存储器
系统扩展了1片64MB的NAND Flash芯片和2片SDRAM芯片。NAND Flash芯片中存储Bootloader引导程序和Linux内核,系统上电复位后从中执行初始化代码。SDRAM为程序运行和数据处理提供临时存储空间。
详细型号:
NAND Flash:64MB
SDRAM:2片
在设计中的作用:
存储程序:NAND Flash芯片存储Bootloader引导程序和Linux内核,系统上电复位后从中执行初始化代码。
数据存储:SDRAM为程序运行和数据处理提供临时存储空间,提高系统性能。
2.5 其他硬件
系统还配备了必要的调试接口、电源电路和时钟发生电路,以确保系统的正常运行和调试。
3. 系统软件设计
3.1 Bootloader移植
Bootloader是与系统硬件高度相关的初始化代码,担负着初始化硬件和引导操作系统的双重责任。本系统采用在嵌入式系统开发中应用最广的引导代码U-BOOT。
移植步骤:
针对目标平台对各配置文件做相应的修改。
建立相应的配置文件。
修改U-BOOT的makefile文件,在其中加入对目标系统的编译支持,并运行以下命令:
$make clean
、$makesmdk2410-config
、$make all
生成目标文件。通过JTAG接口将u-boot.bin文件烧写到Flash的零地址,复位后就可以引导系统。
3.2 Linux操作系统移植
Linux操作系统移植主要包括内核配置、编译和根文件系统构建。
内核配置:
修改makefile文件。
使用
make menuconfig
命令来配置内核。内核编译:
使用make dep
、make zImage
命令对内核进行编译,得到内核压缩镜像文件zImage。根文件系统构建:
Bootloader引导程序通过以太网接口把Linux内核移到目标系统的Flash上,然后构建根文件系统。
3.3 NAT技术实现
SOHO路由器采用NAT(Network Address Translation)转换技术,将局域网内部私用IP地址转换成一个合法的公网IP地址,使私有网络中多台主机共享一个合法的IP地址访问因特网。
实现方式:
利用Linux内核支持IP Masquerade(IP伪装)技术实现NAT转换。客户机将实现IP Masquerade的Linux机器设置为缺省网关,当IP Masquerade的Linux机器收到客户机的数据包时,对其进行改写,将源地址替换为自己的IP地址,将源端口号换成一个新的端口号,并对该过程进行记录。当接收到响应数据包时,如果其端口号正是先前所指定的端口号,则再对该数据包进行改写,将其目的IP地址及目的端口号替换为原来记录的客户机IP地址和端口号,然后再发送给客户机。
3.4 数据包处理
Netfilter是Linux内核实现数据过滤、数据包处理和NAT功能的框架。它为每种网络协议(IPv4、IPv6等)定义一套钩子函数(IPv4有5个钩子函数),内核中任何模块可以对协议中的钩子函数进行注册与挂接。这些钩子函数在数据包流经协议栈时被调用,注册后的模块可以检查、修改、丢弃数据包及指示Netfilter将数据包传入用户空间队列,进行异步处理。
数据包处理流程:
数据包从左边进入系统,进行IP校验。
数据包经过第一个钩子函数NF_IP_PRE_ROUTING进行处理。
进入路由代码,决定该数据包是需要转发还是发给本机的。
若该数据包是发给本机的,则该数据经过钩子函数NF_IP_LOCAL_IN处理后传递给上层协议。
若该数据包应该被转发,则它被NF_IP_FORWARD处理。
经过转发的数据包经过最后一个钩子函数NF_IP_POST_ROUTING处理后,再传输到网络上。
本地产生的数据经过钩子函数NF_IP_LOCAL_OUT处理后,进行路由选择处理,然后经过NF_IP_POST_ROUTING处理以后发送到网络上。
4. 系统性能与优化
本系统采用ARM920T内核微处理器和Linux操作系统,具有高性能和高稳定性。同时,通过优化存储系统、提高数据传输速率、优化NAT技术和数据包处理流程等措施,进一步提高了系统的性能和稳定性。
5. 结论
本文提出了一种基于ATM9TDMI+Linux的SOHO路由器设计方案,采用ARM920T内核微处理器和Linux操作系统,有效地提高了系统的稳定性和安全性,满足了高速接入网用户的要求。通过优化硬件和软件设计,系统性能得到了进一步提升。未来,将继续优化系统性能,提高系统的可靠性和安全性,以满足更多用户的需求。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。