描绘了一种无内部互锁的信息平推流式的32位嵌入式微处理器下,嵌入式Linux操作体系环境的家庭网关的体系结构。经过这种构架的完结和二次开发相应的驱动程序、使用程序和办理接口并结合无线通讯技能完结家庭网关,使家庭网关具有支撑非对称数字用户环路、无源光网络、以太网数据经过同轴电缆传输等接入方法的上行接口,并供给网络电话、互联网协议电视、个人计算机、通用串行总线接口、通用异步接纳/发送设备等下行接口和无线相容性认证的无线信号。家庭网关能够经过万维网浏览器、依据简略网络办理协议的办理方法和指令行界面等多种方法灵敏的进行信息交互、装备、更新及长途操控办理。
跟着以高速、交融、精品为特征的大宽带年代的全面到来,高宽带传输、全方位交融、多事务归纳将是家庭网络及事务使用的开展趋势。估计未来的10年中,国内家庭网关的商场容量将在200亿元以上。虽然国内已有少量文献[5]描绘了以无内部互锁的信息平推流式的微处理(Microprocessorwithoutinter-lockedpipedstages,缩写为MIPS)核的32位嵌入式微处理器作为硬件渠道,开发家庭网关,并取得了较好的研讨成果,但间隔工业使用还有必定时差。结合无线通讯技能,经过移植嵌入式Linux操作体系,在此根底上开发相应的驱动程序、使用程序和办理接口来完结家庭网关。家庭网关具有上行接口,支撑非对称数字用户环路(AsymmetricDigitalSubscriberLine,缩写为ADSL)、无源光网络(PassiveOpTIcalNetwork,缩写为PON,)、以太网数据经过同轴电缆传输(EthernetoverCoax,缩写为EOC)等接入方法,供给网络电话(VoiceoverInternetProtocol,缩写为VOIP)、互联网协议电视(InternetProtocolTelevision,缩写为IPTV)、个人计算机(PersonalComputer,缩写为PC)、通用串行总线接口(UniversalSerialBUS,缩写为USB)、通用异步接纳/发送设备(UniversalAsynchronousReceiver/Transmitter,缩写为UART)等下行接口,经过高速外围元件接口(PeripheralComponenTInterfaceExpress,缩写为PCIE)与无线相容性认证(WirelessFidelity,缩写为WiFi)模块相连供给WiFi无线信号。家庭网关能够灵敏增加使用程序、接口模块,长途办理家庭网络的智能终端设备完结事务的分发和装备办理操控。
1 硬件体系
1.1体系结构
家庭网关的硬件体系结构如图1所示,以32位的嵌入式MIPS微处理器芯片为中心,由外存储器闪存(FLASH)、双倍速率同步动态随机存储器(DoubleDateRate,缩写为DDR,)、WiFi模块、VOIP模块、网络沟通模块、USB存储模块、发光二极管(LightE-mitTIngDiode,缩写为LED)模块、串口模块、电源模块等构成。
1.2体系功用与完结
家庭网关能够选用多种操控方法灵敏方便地与用户进行沟通[6]。外存储器暂存数据,再传递到微操控单元(MicroControlU-nit,缩写为MCU)中。闪存经过串行外设接口(SerialPeripheralInterface,缩写为SPI)总线与MCU 相连,DDR经过介质无关接口(MediumIndependenTInterface,缩写为MII)与MCU 相连。WiFi模块经过PCIE接口与MCU 相连,供给2.4GHz的无线信号。VOIP模块经过MII接口与MCU 相连,其下端口联接一般电话机,能够经过电话机查询、设置家庭网关中VOIP口的网络状况。网络沟通模块包含上联接口和下联接口。微处理器内部集成了一个沟通引擎,供给五个契合802.3协议的10/100Mbps快速以太网MAC/PHY接口,可作为体系的上联端口和下联端口。上联端口为下行供给数据信号,下联端口能够衔接IPTV、PC等设备,并能够自在组网装备成VLAN。USB 存储模块用于存储家庭网关的装备信息。
LED模块显现体系状况,由MCU 的通用输入/输出(GeneralPurposeInputOutput,缩写为GPIO)口操控,LED的不同状况表明体系的不同状况。串口模块结合超级终端完结实时打印家庭网关的运转状况信息,并能够设置家庭网关的装备信息,如环境变量、内存信息、相关版别信息等,也能够更新嵌入式家庭网关的文件体系、镜像文件等。电源模块为整个体系供给电源。
2 软件体系
家庭网关的软件体系结构如图2所示,首要分为3个层次:Linux内核包含进程办理、文件办理、内存办理、中止和中止处理、体系初始化等;硬件驱动层包含WiFi、VOIP模块、串口、以太网、LED 等的驱动;使用程序层经过内核的调用,完结相应的使用服务,如串口通讯程序、Web方法拜访等。
硬件驱动层首要是供给操作体系和使用程序所需的驱动[7]。该层首要由板级初始化程序、与体系软件相关的驱动、与使用软件相关的驱动等3种类型的程序组成。板级初始化程序即引导加载程BootLoader,用来完结整个体系的加载发动使命。在该体系中挑选U-Boot作为引导加载程序。体系上电后,U-Boot程序初始化体系的硬件环境,如:嵌入式微处理器、中止操控器、存储器、直接内存存取(DirectMemoryAccess,缩写为DMA)和定时器的初始化。将体系的软硬件环境带到一个适宜的状况,以便为后续调用操作体系做好预备。与体系软件相关的驱动是操作体系和中间件等体系软件必备的驱动程序,详细开发依照体系软件的不同需求进行。操作体系内核所需的硬件支撑一般都已集成到嵌入式微处理器里了,因而开发人员只需在操作体系厂商供给的内核驱动的根底上编写相关驱动程序如:以太网驱动、串口驱动、外存驱动等驱动程序。与使用软件相关的驱动不必定需求与操作体系衔接,这些驱动的规划和开发由实践使用决议。
Linux操作体系移植首要包含BootLoader的编写和移植、Linux内核移植与装备以及Linux文件体系移植与装备[8]。
2.1U-Boot移植
该家庭网关体系的BootLoader选用U-Boot。在U-Boot/Board目录下增加家庭网关开发板的装备文件,修正U-Boot目录下的Makefile文件,包含设置编译环境和树立编译装备项。承认默许的穿插编译器与本机的穿插编译器是否共同,若不共同则需求对编译环境进行从头设置,宿主机的穿插编译器为gcc。树立编译装备项,在Makefile文件中增加编译句子,如:
gw_config:unconfig
@ 》include/config.h
@echo“#defineCONFIG_mipgw1”烅include/config.h
@./mkconfig-agw mipsmipsgw mipgw mipgw
在U-boot/Board/gw目录下增加Makefile文件,树立文件之间的依靠联系。如:
OBJS=$(BOARD).oflash.o.。/common/mipgw_pci.o 。./common/mipgw_flash.o 。./common/
mipgw_s26_phy.o
经过引证变量来指定方针文件,以便于适用于该模块的不同版别的开发,也是该体系的一个特色。在U-Boot/CPU/MIPS的目录下增加寄存内存操控器的装备文件。
在U-Boot/Board途径里增加初始化MCU 的USB装备、GPIO 口的装备、寄存器、数据段的文件和初始化WiFi模块主芯片GPIO 口的文件。
2.2Linux内核移植
操作体系层包含嵌入式内核、TCP/IP(TCP-TransferControlProtocol,传输操控协议,IP-Internet Protocol,网际协议)网络体系、文件体系、图形用户接口(GraphicalUserInterface,缩写为GUI)体系和电源办理等部分。其间嵌入式内核是必备的根底部分,其他部分可依据嵌入式体系的不同需求进行取舍[9]。在家庭网关体系中,嵌入式操作体系环境为Linux操作体系,嵌入式内核为MIPS内核,文件体系为jffs2。
在体系软件包的根目录下创立Linux目录,在其目录下增加Kernels文件夹,寄存Linux内核源码。修正内核源码文件夹下的Makefile文件,使其编译环境与宿主机的编译环境共同,详细代码如下所示:
SUBARCH := mips
ARCH ? = $(SUBARCH)
CROSS_COMPILE ? =
UTS_MACHINE := $(ARCH)
CONFIG_SHELL := $(shellif[-x“$$BASH”];thenecho$$BASH;\
elseif[-x/bin/bash];thenecho/bin/bash;\
elseechosh;fi;fi)
HOSTCC= gcc
HOSTCXX= g++
HOSTCFLAGS=-Wall-Wstrict-prototypes-O2-fomit-frame-pointer
HOSTCXXFLAGS=-O2
2.3文件体系移植
嵌入式文件体系包含Ramdisk、Jffs2、Yaffs、Cramfs、Romfs和Ramfs/Tmpfs[10]。该体系的文件体系挑选Jffs2。在文件体系的文件夹Rootfs里增加rcS文件,指定需求挂载的文件体系、挂载点、装备初始化进程及解压后寄存的方位,经过环境变量来传递接口。rcS文件的详细内容如下所示:
#! /bin/sh
mount-a
mount-oremount+w/
mount-tramfs-nnone/tmp
exportPATH=$PATH:/etc/ath
insmod/lib/modules/2.6.15/net/ag7240_mod.ko
exportETH0=eth0
exportETH1=eth1
ifconfig$ETH0up
ifconfig$ETH1up
2.4内存办理
操作体系中的内存办理单元担任办理整个体系的物理地址空间和虚拟地址空间,它是这个体系得以存在和运转的根底[11]。该家庭网关体系中,数据均寄存在4M 的闪存里,当体系发动后再将数据经过DDR 映射到MCU 的RAM 中,从地址0x81000000开端。
3 办理接口
3.1Web接口
Web功用是家庭网关体系供给给用户的面向对象的操作接口。用户经过WEB浏览器拜访,能够对家庭网关的各功用模块进行设置,即对衔接在家庭网关上的设备的办理操控。如:对以太网口进行VLAN 装备,自在安排虚拟网络;对VOIP口的网络状况进行装备,自行设置IP、VOIP事务等信息;对WiFi模块进行设置,挑选虚拟信道、设置无线网络的参数等。家庭网关的软件体系经过常见的使用程序接口模块CGI,衔接CGI接口和处理HTML静态文本文件完结Web功用。
Web服务器挑选Httpd服务器,经过移植Httpd源码并交融在Busybox里完结。在cgiMain()函数中描绘了Httpd服务器树立服务、接纳恳求、处理恳求、日志文件及断开衔接的进程。在Httpd.c文件中增加函数来设置Web服务器的装备,使Web服务器发动时就能依据当时环境完结Web服务器的装备。指定的HTML页面文件放到/usr/www 目录下,cgi外部扩展程序放到/usr/www/cgi-bin目录下,把链接交融在cgiMain里。经过在cgiMain()函数里调用环境变量树立服务器与CGI程序之间的信息交互,然后完结各个网页文件之间的链接。
假如家庭网关的IP地址为192.168.100.12,把家庭网关与PC机衔接在同一个网络里,在Web浏览器地址栏输入192.168.100.12即可显现家庭网关的装备页面。能够完结各个页面之间的动态衔接,修正家庭网关的装备参数。
3.2CLI接口
加载简略长途登录服务器Telnetd,经过指令行界面(CommandLineInterface,缩写为CLI)方法,使Telnetclient就能够登录到家庭网关体系,结合CLI供给的各种指令接口,完结对家庭网关的装备、测验和晋级等操作。在家庭网关的软件体系中,Telnetd作业时衔接一个伪终端设备,然后创立一个登陆进程,在伪终端侧有规范的输入、输出、过错。Telnet操作的伪终端主方履行telnet协议并传递长途客户端和登录进程中的字符。
在指令行窗口输入“telnet192.168.100.12暠呈现用户名、暗码提示窗口。输入正确的用户名和暗码,即可拜访家庭网关,检查体系的文件。翻开TFTP服务器,经过指令tftp能够更新页面文件等。
3.3UART接口
初始化MCU 内置的UART接口,设置串口特点如:波特率为115200、8位数据位、无奇偶校验、1位中止位、无流控。经过超级终端人机交互界面能够和家庭网关进行信息交互,实时监控家庭网关体系的运转状况、修正操控各类装备信息、更新U-boot、Linux内核、文件体系、映像文件等。
翻开超级终端、TFTP服务器,设置串口特点,发动家庭网关后,即可打印输出家庭网关的运转状况。进入更新文件状况,设置环境变量,如输入:
tftp0x80060000u-boot.bin//将u-boot.bin文件放在缓存区
erase0x9f000000+0x40000//擦除寄存U-Boot文件区域的内容
cp.b$fileaddr0x9f000000$filesize//把缓存区的文件复制到寄存U-Boot文件的区域
即可更新U-Boot文件。按此指令格局,输入对应的文件名和地址,文件体系、映像文件也相同可更新。
4 结语
该文描绘了一个以MIPS微处理器为中心、以嵌入Linux操作体系为开发环境的家庭网关。该家庭网关经过移植U-Boot、Linux内核、文件体系定制软件体系,增加Web、CLI、UATR 等接口功用,完结经过Web、CLI和SNMP等多种方法灵敏的与家庭网关进行信息交互、装备、更新。经测验该家庭网关体系完结了多事务功用,上联接口支撑多种接入方法能够为网络沟通模块供给数据信号,下联接口能供给VOIP功用、2.4GHz的无线信号,以太网口之间能自在装备VLAN。
实验测验的结果表明,该家庭网关合适高宽带传输、全方位交融、多事务归纳的家庭网络及事务使用的开展需求。