基于ARM处理器的嵌入式WEB服务器设计
扫描二维码
随时随地手机看文章
摘要:随着嵌入式系统的大规模发展,智能化信息终端通过Internet实现互联已成为当今发展的主要趋势,而嵌入式Web服务器正是嵌入式Internet中的关键技术。文中研究了嵌入式WeM艮务器,并给出了其在Linux环境下的实现方法。
关键词:ARM处理器;Internet;嵌入式Web服务器;Linux
0 引言
随着计算机技术、网络技术和微电子技术的深入发展,特别是各种高性能SOC(system onchip)的设计开发和嵌入式操作系统的出现,嵌
入式系统日益广泛地被用于航空航天、工业控制、移动通讯、家用电器以及消费电子等设备中。“设备即网络”是后PC时代对嵌入式系统的
客观要求。因此,需要建立嵌入式的web服务器,以便在智能家居系统中通过智能终端设备(如掌上电脑等),实现对信息家电的远程控制,而信息家电也可以根据需要自动将设备运行的状态信息发送给设定的目标对象。因此。嵌入式web技术给人们的日常生活和工作带来了极大的方便,在各种企业和工业系统中也都有非常重要的实际意义。
嵌入式web服务器以其低成本、小体积、低功耗等诸多优点,而在生产、生活的许多领域发挥着越来越重要的作用。嵌入式系统的CPU已从过去的8位发展到如今的32位,并且大多采用RISC(Reduced Instruction Set Computer)结构,其处理器速度可达几百兆赫兹。由于ARM对多种操作系统的兼容,故可以很方便地运行嵌入式等操作系统,而且功能十分强大。ARM公司生产的32位嵌入式芯片就以其优良的性能而在嵌入式市场上占有相当的份额。另外,在操作系统方面,Linux也因为其强大的功能和开放的优势。在嵌入式系统中得到了广泛的应用。本文以基于ARM9的嵌入式系统为基础,详细介绍了Linux环境下嵌入式web服务器的实现方法。
1 嵌入式web服务器的硬件设计
1.1 微处理器的选择
AT91SAM9263是一种基于ARM926EJ-S内核的ARM处理器,它带有MMU存储器管理单元,当其运行在200MHz时拥有220MIPS的运算性能,并具有DSP扩展指令和JAVA硬件加速功能。AT9lSAM9263有能力连接多种内存设备和大容量硬盘设备,并嵌入有LCD控制器、2D图形加速器、图像传感器接口、标准外设接口、多媒体卡接口、CAN控制器等。AT9lSAM9263拥有两个独立的外部存储器总线EBI0 (External Bus InterfaceO)和EBIl(External Bus1),本设计正是采用外部总线来扩展网卡芯片,从而实现嵌入式web服务器的。
1.2 网卡芯片的选择
本设计采用CS8900A来扩展嵌入式系统外围网口。CS8900A是Cirrus公司生产的一种高集成度且全面支持IEEE802.3标准的以太网控制器,可支持8位、16位微处理器,并可以工作在I/O方式和Memory方式。它的片内集成有4KB容量的Packetpage结构的RAM,该4KB存储器映像结构RAM包括片内各种控制、状态、命令寄存器,以及片内发送、接收缓存。用户可以通过I/O方式、Memory方式或DMA方式访问它们,图l所示是CS8900A的结构框图。
[!--empirenews.page--]
1.3 硬件结构
本系统的硬件结构框图如图2所示。本系统以AT91SAM9263为核心,通过网卡芯片CS8900以及RJ45接口来链接Ethernet网络。系统采用的
大容量存储器Flash是一种可在系统中进行电檫写、掉电后信息不丢失的存储器,主要用于存放系统启动代码(bootloader)、Linux内核和文件系统,也可以存放用户应用程序。本系统选用SAMSUNG公司的K9F1208UOB作为Flash存储器,并采用8bit总线,其单片容量为16 MB。
本系统中的SDRAM存储芯片选用的是MT48LC16M16A2TG,设计时可将两片16位MT48LC16M16A2TG并联为32位数据宽度64 MB空间的SDRAM存储系统。
另外,系统还集成了一个USB HOST和USBDevice接口、一个JTAG接口、一个SD卡接口、一个RS232串口以及AC97音频接口。
1.4 网络接口电路设计
Web服务器系统设计的一个核心部分就是网络接口电路。本设计的网络接口电路的构成电路如图3所示。该网络接口电路可与AT9lSAM9263
的外部总线相连接,其控制信号线主要有三根,分别是片选信号线、读有效和写有效信号线。另外,可通过控制总线、一组地址总线和一组数据总线将网络接口电路与ARM芯片相连。网络电路后端连接有RJ45接口,主要是提供与ETHERNET的连接通讯接口。
[!--empirenews.page--]
2 WEB服务器软件设计
2.1 Linux系统移植
本设计采用Linux作为操作系统,Linux系统具有开放源码、软件资源丰富、内核功能强大、性能高效、稳定、可支持多种硬件平台等特点。除此之外,Linux还具有完善的网络通信功能,可支持TCP/IP等多种协议,而且Linux系统内核中已经紧密地集成了网络功能并有大量的网络应用程序,可为实现网络通信提供有力的支持。Linux强大的网络功能是选用其作为嵌入式web服务器软件系统的一个重要原因。
一个嵌入式系统通常可以分引导加载程序、内核、文件系统为3个层次。因此,Linux的系统移植也包括3个部分:即引导程序(BootLoa-der)移植、内核移植和文件系统制作。
Bootloader (引导加载程序)是系统加电后运行的第一段代码。它的运行时间非常短,但对于嵌入式系统来说。这是一个非常重要的系统组成部分,主要负责ARM硬件的初始化,设置Linux的启动参数,然后跳转到Linux内核启动代码的第一行语句引导Linux。本系统采用U-boot作为bootloader。U-Boot的全称是Universal Boot Loader,是遵循GPL条款的开放源码项目,它从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。
内核是所有嵌入式Linux系统的核心软件,内核移植是一个比较复杂的任务,也是嵌入式系统开发中非常重要的一个过程。内核移植一般包括内核配置、编译和内核下载三大部分。移植过程的关键步骤如下:
(1)准备下载linux源码
本设计选用的内核版本是linux-26.22,然后通过解压缩得到内核源码。同时在linux系统开发环境下安装交叉编译器arm-linux-gcc。
(2)修改内核代码
修改内核代码主要是选定Linux内核对处理器的支持和修改以及与外部设备相关的内核代码。首先在linux-2.6.22根目录下修改Makefile文件,主要应当修改下面两行内容:
ARCH=arm;说明目标是ARM体系结构;
CROSS_COMPILE =/usr/local/arm/1.3.1/bin/aim-linux-gcc;设置为宿主机上交叉编译工具链的绝对路径。
除此之外。还需要修改与AT91SAM9263处理器相关的代码,这些代码集中在arch目录中和include目录下文件名以asm开头的子目录中。
(3)配置和编译内核
配置内核选项是移植内核过程中很重要的一步,主要是对内核功能模块进行选择及参数设定。在内核源代码目录下运行make menuconfig可对内核进行配置,主要是载入AT91SAM9263参考开发板的默认配置,并在此基础上进行相关的驱动选择等。配置完成后,可保存退出配置菜单界面,然后在内核源代码目录上输入命令make,这样。编译完成后,就会生成uImage文件。
本设计所采用的文件系统是直接从网络上获取一个已经生成的文件系统,并在此基础上进行添加和修改,最后形成自己的文件系统。在开发过程中,可利用Linux系统所提供的NFS服务,并通过网络挂载文件系统进行系统调试。最后将Uboot映像文件、Linux内核文件uImage、文件系统镜像文件烧写到NANDflash上相应的分区。
2.2 Web服务器的移植
Web服务器Boa是一个单任务的小型HTTP服务器,源代码开放、性能优秀,运行所需空间仅为140 KB左右。特别适合于在嵌入式系统中。本设计采用移植Boa的方法来实现嵌入式Web服务器部分,以满足访问网页的要求,其主要移植过程如下:
首先是下载Boa源代码。Boa web服务器的源代码可以从http:∥www.boa.org下载,本文中的下载文件为:boa-0.94.13.tar.gz.
其次是安装并编译Boa源代码,操作时可执行以下命令:
#cd/home/
#tar zxvfboa.tar.gz
#cd boa/src
生成Makefile文件#./configure后,即可修改Makefile文件,找到CC=gcc,将其改成CC=armlinux-gcc;再找到CPP=gee-E,其将其改成CPP=arm-linux-gec-E,然后保存退出。
运行make进行编译后,即可在boa/src目录下生成Boa文件,该文件即为Boa Web服务器执行文件。
势头应当配置Boa Web服务器。Boa启动时将加载一个配置文件boa.conf。用户可以根据自己的需要对boa.conf进行修改,但必须保证其它的辅助文件和设置必须与boa.conf里的配置相符,否则,Boa就不能正常工作。Boa源码boa-0.94.13目录下已有一个示例文件boa. conf位于boa/example下面,可以根据需要在其基础上进行修改。然后将修改好的配置文件Boa.conf存放于嵌入式系统根文件/etc/boa目录下。
最后就是测试Boa的运行。在re文件中执行:#ifconfig eth0 192.168.0.1命令给嵌入式Web服务器配置IP。并通过IE浏览器连接到运行Boa的嵌入式系统http:∥192.168.0.1/,这样,就可以访问到之前放置的index页面了。
3 结束语
本设计以AT9lSAM9263为核心,在此基础上给出了一个web服务器。并在硬件方面设计了一个嵌入式系统,该系统包括网络接口、AD卡接
口、USB接口等各种外设。文中还在网络接口的基础上,给出了将Linux移植到硬件平台,并最终移植web服务器的实现方法。这种方法通过页
面访问的测试,结果表明,本系统运行稳定,且访问速度正常。