新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM920T和Linux的SOHO路由器设计

基于ARM920T和Linux的SOHO路由器设计

作者:时间:2014-12-30来源:网络收藏

  (4) 系统实现

本文引用地址:http://www.eepw.com.cn/article/267506.htm

  S3C2410X 微处理器通过系统总线连接FLASH和SDRAM构成存储系统,系统上电后,微处理器从FLASH 中读取初始化程序,SDRAM 为程序运行和数据处理和转发提供临时存储空间。以太网控制芯片DM9000,经单端口隔离变压器和RJ45 接口与互联网相连。DM9000 通过MII(独立媒体接口)与交换控制芯片RTL8305SC 的PORT4 口相连,RTL8305SC 经过4 端口隔离变压器和四个RJ-45 接口连接局域网集线器,交换机或电脑,进行数据交换或通过微处理器控制与广域网连接。



  DM9000 与S3C2410X、RJ45 接口电路如图2 所示,DM9000E 芯片的引脚INT 与S3C2410X 芯片的外部中断信号EINT14 相连,S3C2410X 片选信号nGCS4 和地址线MA2分别连接DM9000的AEN 引脚和CMD 引脚。SA6 到SA0 对应地址总线,而SA9 与SA8引脚设置为高电平,SA7 引脚设置为低电平,用来片选DM9000;3C2410X 的nOE 引脚连接DM9000 的读引脚IOR#,nWE 引脚连接DM9000 的写引脚IOW#,并将S3C2410X 数据线MD[0..15]与DM9000 的数据线SD[0..15]连接,实现数据传输。将 RTL8305S 第5 端口设定为一个MII 接口与以太网控制芯片DM9000R MII接口相连,RTL8305S 与四端口隔离变压器和RJ45 接口与图2 类似。

  3 系统软件构建

  软件构建主要包括 操作系统移植和NAT 技术实现。

  3.1 操作系统移植

  (1) Bootloader 移植

  Bootloader 是与系统硬件高度相关的初始化代码,担负着初始化硬件和引导操作系统的双重责任。本文使用在嵌入式系统开发中应用最广的引导代码U—BOOT。移植具体步骤:1 针对目标平台对各配置文件做相应的修改。2 建立相应地配置文件。3 修改U—BOOT的makefile 文件,在其中加入对目标系统的编译支持,并运行以下命令$make clean、$makesmdk2410-config、$make all 生成目标文件。最后通过JTAG 接口将u-boot.bin 文件烧写到Flash 的零地址,复位后就可以引导系统。

  (2) 内核构建、移植与根文件系统实现

  1 修改makefile 文件。2 使用make manuconfig 命令来配置内核。3 使用make dep、makezImage 命令对内核进行编译,得到内核压缩镜像文件zImage 件。4 Bootloader 引导程序通过以太网接口把Linux 内核移到目标系统的Flash 上。5 构建根文件系统。

  3.2 Netfilter 框架分析与NAT 技术实现

  Netfilter 是Linux2.4 内核实现数据*滤、数据包处理和NAT 功能的框架。它为每种网络协议(IPv4, IPv6 等)定义一套钩子函数(IPv4 有5 个钩子函数),内核中任何模块可以对协议中的钩子函数进行注册与挂接,这些钩子函数在数据包流经协议栈时被调用,注册后的模块可以检查、修改、丢弃数据包及指示Netfilter 将数据包传入用户空间队列,进行异步处理。一个数据包按图3 所示的过程通过Netfilter 系统。



  数据包从左边进入系统,进行IP 校验后,数据包经过第一个钩子函数NF_IP_PRE_ROUTING[1]进行处理;然后就进入路由代码,其决定该数据包是需要转发还是发给本机的;若该数据包是发给本机的,则该数据经过钩子函数NF_IP_LOCAL_IN处理后传递给上层协议;若该数据包应该被转发则它被NF_IP_FORWARD[3]处理;经过发的数据包经过最后一个钩子函数NF_IP_POST_ROUTING[4]处理后,再传输到网络上。

  本地产生的数据经过钩子函数NF_IP_LOCAL_OUT[5]处理后,进行路由选择处理,然后经过NF_IP_POST_ROUTING[4] 处理以后发送到网络上。Netfilter 框架支持多种NAT,NAT 一般可分为源NAT 与目的NAT。源NAT 在数据包经过NF_IP_POST_ROUTING 时修改数据包的源地址,伪装是一个特殊的SNAT,目的NAT在数据包经过F_IP_LOCAL_OUT 或NF_IP_PRE—ROUTING 时修改数据包目的地址。

  本文利用 IPtables 实现IP 伪装、Port Forward 端口转发、ALG。IPtables 是一个在Linux2.4内核中基于Netfilter 框架的数据包选择系统。地址转换会导致许多对NAT 敏感的应用协议无法正常工作,而地址转换应用网关(NAT ALG, Application Level Gateway),对载荷中的IP地址和端口号进行替换,从而实现对该协议的透明中继。IPtables 要求数据包流经指定的规则表,其中设定的规则用于实现数据*滤,网络地址转换及数据包处理,从而实现多台主机共享一个合法的IP 地址访问因特网,并实现*滤防火墙。

  4 结束语

  本文作者创新点:提出了一种基于嵌入式 Linux 操作系统的 路由器设计方案。与现有设计方案相比,本文采用ATM9TDMI+Linux 构架设计 路由器,能满足高速接入网用户需求,具有更高地系统稳定性和用户安全性。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程


路由器相关文章:路由器工作原理


路由器相关文章:路由器工作原理



上一页 1 2 下一页

关键词: ARM Linux SOHO

评论


相关推荐

技术专区

关闭