【ACCESS精品源码栏目提醒】:本文主要为网学会员提供“MIPS核的嵌入式Linux系统的家庭网关 - 培训资料”,希望对需要MIPS核的嵌入式Linux系统的家庭网关 - 培训资料网友有所帮助,学习一下!
第33卷暋第12期2011年12月武暋汉暋理暋工暋大暋学暋学暋报JOURNALOFWUHANUNIVERSITYOFTECHNOLOGYVol.33暋No.12暋棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁棁Dec.2011DOI:10.3963/j.issn.1671灢4431.2011.12.027MIPS核的嵌入式Linux系统的家庭网关瞿锦霞张劲松武汉邮电科学研究院武汉430074摘暋要:暋描述了一种无内部互锁的信息平推流式的32位嵌入式微处理器下嵌入式Linux操作系统环境的家庭网关的体系结构。
通过这种构架的实现和二次开发相应的驱动程序、应用程序和管理接口并结合无线通信技术实现家庭网关使家庭网关具备支持非对称数字用户环路、无源光网络、以太网数据通过同轴电缆传输等接入方式的上行接口并提供网络电话、互联网协议电视、个人计算机、通用串行总线接口、通用异步接收/发送装置等下行接口和无线相容性认证的无线信号。
家庭网关可以通过万维网浏览器、基于简单网络管理协议的管理方式和命令行界面等多种方式灵活的进行信息交互、配置、更新及远程控制管理。
关键词:暋家庭网关暋Linux操作系统暋无干扰微处理器暋管理接口中图分类号:暋TP393.0文献标识码:暋A文章编号:1671灢4431201112灢0120灢05HomeGatewayBasedonEmbeddedLinuxofMIPSQUJin灢xiaZHANGJing灢songWuhanResearchInstituteofPostandTelecommunicationsWuhan430074ChinaAbstract:暋ThesystemarchitectureofhomegatewaywasdescribedwhichusedLinuxoperatingsystemasdevelopmentenvironmentandundermicroprocessorwithoutinterlockedpipedstages32灢bitembeddedmicrocontrolunit.BymigratingembeddedLinuxoperatingsystemdevelopedtheappropriatedriversapplicationsandmanagementinterfaceonthisba灢siscombinedwithwirelesscommunicationtechnologytoachievehomegateway.ThehomegatewayhaduplinkinterfacessupportedasymmetricdigitalsubscriberlinepassiveopticalnetworkEthernetovercoaxandotheraccessmethodsalsoprovideddownstreaminterfacessuchasvoiceoverinternetprotocolinternetprotocoltelevisionpersonalcomputeruni灢versalserialBUSuniversalasynchronousreceiver/transmitterandwirelessfidelitywirelesssignal.Thehomegatewaycouldexchangeinformationconfigureupdateandremotecontrolflexiblyviaworldwidewebbrowsersimplenetworkmanagementprotocolandcommandlineinterfacemeans.Keywords:暋homegateway暋Linuxoperatingsystem暋MIPS暋managementinterface收稿日期:2011灢09灢17.作者简介:瞿锦霞1986灢女硕士生.E灢mail:jinxiaqu163.com随着以高速、融合、
精品为特征的大宽带时代的全面到来高宽带传输、全方位融合、多业务综合将是家庭网络及业务应用的发展趋势1灢4。
预计未来的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和定时器的初始化。
将系统的软硬件环境带到一个合适的状态以便为后续调用操作系统做好准备。
与系统软件相关的驱动是操作系统和中间件等系统软件必备的驱动程序具体开发按照系统软件的不同需求进行。
操作系统内核所需的硬件支持一般都已集成到嵌入式微处理器里了因此开发人员只需在操作系统厂商提供的内核驱动的基础上编写相关驱动程序如:以太网驱动、串口驱动、外存驱动等驱动程序。
与应用软件相关的驱动不一定需要与操作系统连接这些驱121第33卷暋第12期暋暋暋暋暋暋瞿锦霞张劲松:MIPS核的嵌入式Linux系统的家庭网关动的设计和开发由实际应用决定。
Linux操作系统移植主要包括BootLoader的编写和移植、Linux内核移植与配置以及Linux文件系统移植与配置8。
2.1暋U灢Boot移植该家庭网关系统的BootLoader采用U灢Boot。
在U灢Boot/Board目录下添加家庭网关开发板的配置文件修改U灢Boot目录下的Makefile文件包括设置编译环境和建立编译配置项。
确认默认的交叉编译器与本机的交叉编译器是否一致若不一致则需要对编译环境进行重新设置宿主机的交叉编译器为gcc。
建立编译配置项在Makefile文件中添加编译语句如:gw_config:unconfiginclude/config.hechodefineCONFIG_mipgw1烅include/config.h./mkconfig灢agwmipsmipsgwmipgwmipgw在U灢boot/Board/gw目录下添加Makefile文件建立文件之间的依赖关系。
如:OBJSBOARD.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.2暋Linux内核移植操作系统层包括嵌入式内核、TCP/IPTCP灢TransferControlProtocol传输控制协议IP灢InternetProtocol网际协议网络系统、文件系统、图形用户接口GraphicalUserInterface缩写为GUI系统和电源管理等部分。
其中嵌入式内核是必备的基础部分其他部分可根据嵌入式系统的不同需要进行取舍9。
在家庭网关系统中嵌入式操作系统环境为Linux操作系统嵌入式内核为MIPS内核文件系统为jffs2。
在系统软件包的根目录下创建Linux目录在其目录下添加Kernels文件夹存放Linux内核
源码。
修改内核
源码文件夹下的Makefile文件使其编译环境与宿主机的编译环境一致具体代码如下所示:SUBARCH:mipsARCH暋SUBARCHCROSS_COMPILEUTS_MACHINE:ARCHCONFIG_SHELL:shellif灢xBASHthenechoBASHelseif灢x/bin/bashthenecho/bin/bashelseechoshfifiHOSTCCgccHOSTCXXgHOSTCFLAGS灢Wall灢Wstrict灢prototypes灢O2灢fomit灢frame灢pointerHOSTCXXFLAGS灢O22.3暋文件系统移植嵌入式文件系统包括Ramdisk、Jffs2、Yaffs、Cramfs、Romfs和Ramfs/Tmpfs10。
该系统的文件系统选择Jffs2。
在文件系统的文件夹Rootfs里添加rcS文件指定需要挂载的文件系统、挂载点、配置初始化进程及解压后存放的位置通过环境变量来传递接口。
rcS文件的具体内容如下所示:/bin/shmount灢amount灢oremountw/mount灢tramfs灢nnone/tmp221暋暋暋暋暋暋暋暋暋暋暋暋武暋汉暋理暋工暋大暋学暋学暋报暋暋暋暋暋暋暋暋暋暋暋暋暋暋2011年12月exportPATHPATH:/etc/athinsmod/lib/modules/2.6.15/net/ag7240_mod.koexportETH0eth0exportETH1eth1ifconfigETH0upifconfigETH1up2.4暋内存管理操作系统中的内存管理单元负责管理整个系统的物理地址空间和虚拟地址空间它是这个系统得以存在和运行的基础11。
该家庭网关系统中数据均存放在4M的闪存里当系统启动后再将数据通过DDR映射到MCU的RAM中从地址0x81000000开始。
数据在闪存中存放的地址空间如图3所示。
3暋管理接口3.1暋Web接口Web功能是家庭网关系统提供给用户的面向对象的操作接口。
用户通过WEB浏览器访问可以对家庭网关的各功能模块进行设置即对连接在家庭网关上的设备的管理控制。
如:对以太网口进行VLAN配置自由组织虚拟网络对VOIP口的网络状态进行配置自行设置IP、VOIP业务等信息对WiFi模块进行设置选择虚拟信道、设置无线网络的参数等。
家庭网关的软件系统通过常见的应用程序接口模块CGI连接CGI接口和处理HTML静态文本文件实现Web功能12。
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.2暋CLI接口加载简单远程登录服务器Telnetd通过命令行界面CommandLineInterface缩写为CLI方式使用Telnetclient就可以登录到家庭网关系统结合CLI提供的各种命令接口实现对家庭网关的配置、测试和升级等操作。
在家庭网关的软件系统中Telnetd工作时连接一个伪终端设备然后创建一个登陆进程在伪终端侧有标准的输入、输出、错误。
Telnet操纵的伪终端主方执行telnet协议并传递远程客户端和登录过程中的字符。
在命令行窗口输入“telnet192.168.100.12暠出现用户名、密码提示窗口。
输入正确的用户名和密码即可访问家庭网关查看系统的文件。
打开TFTP服务器通过命令tftp可以更新页面文件等。
3.3暋UART接口初始化MCU内置的UART接口设置串口属性如:波特率为115200、8位数据位、无奇偶校验、1位停止位、无流控。
通过超级终端人机交互界面可以和家庭网关进行信息交互实时监控家庭网关系统的运行状态、修改控制各类配置信息、更新U灢boot、Linux内核、文件系统、映像文件等。
打开超级终端、TFTP服务器设置串口属性启动家庭网关后即可打印输出家庭网关的运行状态。
进入更新文件状态设置环境变量如输入:tftp0x80060000u灢boot.bin//将u灢boot.bin文件放在缓存区erase0x9f0000000x40000//擦除存放U灢Boot文件区域的内容321第33卷暋第12期暋暋暋暋暋暋瞿锦霞张劲松:MIPS核的嵌入式Linux系统的家庭网关cp.bfileaddr0x9f000000filesize暋//把缓存区的文件复制到存放U灢Boot文件的区域即可更新U灢Boot文件。
按此命令格式输入对应的文件名和地址文件系统、映像文件也同样可更新。
4暋结暋语该文描述了一个以MIPS微处理器为核心、以嵌入Linux操作系统为开发环境的家庭网关。
该家庭网关通过移植U灢Boot、Linux内核、文件系统定制软件系统添加Web、CLI、UATR等接口功能实现通过Web、CLI和SNMP等多种方式灵活的与家庭网关进行信息交互、配置、更新。
经测试13该家庭网关系统实现了多业务功能上联接口支持多种接入方式能够为网络交换模块提供数据信号下联接口能提供VOIP功能、2.4GHz的无线信号以太网口之间能自由配置VLAN。
试验测试的结果表明该家庭网关适合高宽带传输、全方位融合、多业务综合的家庭网络及业务应用的发展需求。
参考文献1暋刘剑波.有线网络与网络技术发展趋势浅析J.广播与电视技术200011:109灢115.2暋严国荣.家庭网络的网关技术J.电声技术20018:36灢39.3暋叶朝辉杨士元.智能家庭网络研究与开发J.计算机应用研究20026:38灢40.4暋刘文超万暋象.大宽带背景下的家庭网络应用技术研究及发展探讨J.电信科学20102:5灢9.5暋张立涛.基于智能网关的数字家庭网络系统架构设计J.现代电子技术20109:84灢8690.6暋刘暋洁张晓虎.基于ARM灢毺Clinux的无线家庭网关设计J.电子设计应用20061:91灢94.7暋罗文华.基于ARM的嵌入式监控系统的研究与实现D.杭州:浙江大学2006.8暋黄红艳侯彤璞.基于Linux的嵌入式Web服务器设计与应用J.计算机与数字工程20104:157灢159.9暋罗暋蕾.嵌入式实时操作系统及应用开发M.北京:北京航空航天大学出版社2007.10刘暋刚赵剑川.Linux系统移植M.北京:清华大学出版社2011.11杨暋峰.基于Linux内核的动态内存管理机制的实现J.计算机工程2010365:85灢89.12刘暋磊.基于嵌入式Linux的家庭网关的研究与实现D.成都:电子科技大学2007.13瞿锦霞张劲松.多业务家庭网关功能的简易测试方法J.武汉工程大学学报20117:104灢107.421暋暋暋暋暋暋暋暋暋暋暋暋武暋汉暋理暋工暋大暋学暋学暋报暋暋暋暋暋暋暋暋暋暋暋暋暋暋2011年12月