• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > SOHO路由器的设计与实现

SOHO路由器的设计与实现

录入:edatop.com     点击:

在图1所示的SOHO路由器中,其核心处理器就选用88E6218。该芯片提供了4个LNA口,可连接到10/100M以太网,另一个WAN口连接到广域网,各端口之间有交换功能。根据操作系统的存储和运行需要,芯片还设置了SDRAM存储器和FLASH存储器,SDRAM存储器由一片4×2 Mxl6 B的HY57V281620组成,是操作系统、应用程序运行和一些数据缓存的空间。FLASH存储器由一片512Kx8BIT的AM29LV040B组成,用于存放启动程序二进制的B00TLEADER文件、操作系统以及应用程序。20针的ARM JTAG口用于调试程序和烧写FLASH。RS232接口用于提供配置管理功能和反映信息运行情况。时钟电路由一个25 MHz的晶振和滤波电容组成,RESERT电路由一块DSl708TESA芯片加一个手动按扭组成低电平复位。电源电路的输入为5 V,通过DC变压后,可在电源调整引脚偏压下提供1.5 V、1.25 V、2.5V、3.3 V电压给处理芯片,以供芯片顺利工作。此外,电路中还有大量的滤波和稳压电容。为了让使用者能清楚路由器工作状态,系统连接了LED指示灯,可通过LED来判断SOH0路由器的连接状态和工作状态。

3 软件设计

SOH0路由器的软件结构如图3所示。本硬件平台以不含MMU (内存管理单元)的88E6218处理器为核心,因此,整个软件的开发可采用不带MMU的ARM微处理器的嵌入式操作系统uclinux为平台。uclinux是专门针对没有MMU单元的微处理器而设计的,它在标准linux基础上去除了MMU支持,并进行了适当紧缩、裁减和优化,再加上CGI(图形用户界面),因而可实现TCP/IP协议以及众多网络协议和路由交换功能,可满足SOHO路由器网络通信功能要求。UClinux采用romfs文件格式,它比Linux的ext3文件格式需要的空间更小,其代码加起来不超过900KB,可放在ROM、RAM、FLASH中启动。由于uclinux本身是免费的,这些源代码可以直接从网上获得,只需相对应用系统的需求作必要的修改即可,因而可以大大减少开发成本。

\

图3所示是SOHO路由器的软件平台体系结构。图中的这些协议基本上覆盖了所有路由器交换协议,并在管理模块方面加入通过SNMP、WEB,故可方便地对路由器进行设置。这些交换协议可基本满足SOHO路由器的网络通信要求。

该SOHO路由器的软件平台由系统引导程序Bootloader、uCLinux内核、应用文件系统等组成。其中嵌入式系统引导程序bootloader的作用类似于PC机的BIOS的作用,但它比PC机的BIOS运行任务更多的地方是还要将内核映像从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即启动操作系统。

3.1 系统引导

系统引导程序主要执行以下三个步骤:

首先是让PC指向复位地址入口处,即Ox200000处的Bootloader代码。由Bootloader初始化硬件设备,建立内存空间的映射图,以将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核准备好正确的环境。

其次由Bootloader将控制权交给操作系统内核的引导程序,并在设置好uCLinux内核的启动参数后,开始uCLinux内核的加载;

最后在uCLinux内核加载引导完成后启动init进程,以完成系统的引导过程。

3.2 对系统源码的修改

由于Bootloader依赖于具体的嵌入式板级设备配置,所以,通常需要修改Bootloader的源程序。本例在厂方提供的Bootloader源码里,对mvFlash.h中的static unsigned int mvFlashTypes[]函数的设置进行了修改,并将FLASH的型号换成上述硬件平台中的FLASH,同时重新设置了INTEL_FLASH。其三个初始化、读、写功能模块,即对应函数为unsigned int mvFlashlnit(unsigned int flashBaseAddress,unsig-ned int flashWidth,FLASH_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)中的循环次数和执行条件设置参数也相应进行了修改,只有使Bootloader初始化的硬件和具体设计硬件平台的器件对应起来,才能正确的驱动硬件。

3.3 uCLinux内核的编译和生成

在uCLinux内核编译之前,首先要对内核进行配置。目录的修改一般都是在config里面进行的,可以用make menuconfig进入编译界面进行选择编译选项的配置。可根据硬件平台的构造参数将必要选项选中,并将没有必要的选项去掉。系统类型的配置应选择相应的内核然后是块设备选择和配置以及在块设备选择和配置之上的文件系统配置。一旦串口驱动和uCLinux文件系统以及应用系统等设置好,就可以完成uCL-inux内核的配置,修改好后就可以编译内核。接下去执行命令make dep,make clean,make lib_only,make user onlv,make romfs,make image.共6个步骤,最终在image目录下生成2个文件zImage和romfs,(分别为内核映象文件和文件系统的映象文件)。这就是最后要烧录到硬件平台里FLASH中的文件。这样就完成了uCLinux的移植。

4 结束语

本文较为具体地介绍了基于嵌入式ARM9SOHO路由器的设计和实现方法,并详细阐明了它的硬件结构,重点叙述了该路由器的软件设计思路和方法(包括操作系统的移植)。当然,路由器具有很多相应的功能,都需要通过软件开发来实现,现在最新的uclinux已经是2.6内核了,可以用它实现更多网络功能。

作者:郭宝英 仰恩大学   来源:电子元器件应用

上一篇:浅谈交换的极致
下一篇:三层交换机测试调试及解决办法

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图