基于ARM处理器的嵌入式WEB服务器设计

发布者:喜茶我要七分糖最新更新时间:2011-06-07 关键字: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的结构框图。

7a.JPG[page]

1.3 硬件结构
    本系统的硬件结构框图如图2所示。本系统以AT91SAM9263为核心,通过网卡芯片CS8900以及RJ45接口来链接Ethernet网络。系统采用的
大容量存储器Flash是一种可在系统中进行电檫写、掉电后信息不丢失的存储器,主要用于存放系统启动代码(bootloader)、Linux内核和文件系统,也可以存放用户应用程序。本系统选用SAMSUNG公司的K9F1208UOB作为Flash存储器,并采用8bit总线,其单片容量为16 MB。

 

7b.JPG
    本系统中的SDRAM存储芯片选用的是MT48LC16M16A2TG,设计时可将两片16位MT48LC16M16A2TG并联为32位数据宽度64 MB空间的SDRAM存储系统。
    另外,系统还集成了一个USB HOST和USBDevice接口、一个JTAG接口、一个SD卡接口、一个RS232串口以及AC97音频接口。
1.4 网络接口电路设计
    Web服务器系统设计的一个核心部分就是网络接口电路。本设计的网络接口电路的构成电路如图3所示。该网络接口电路可与AT9lSAM9263
的外部总线相连接,其控制信号线主要有三根,分别是片选信号线、读有效和写有效信号线。另外,可通过控制总线、一组地址总线和一组数据总线将网络接口电路与ARM芯片相连。网络电路后端连接有RJ45接口,主要是提供与ETHERNET的连接通讯接口。

7c.JPG

[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服务器的实现方法。这种方法通过页
面访问的测试,结果表明,本系统运行稳定,且访问速度正常。
 

 

关键字:ARM处理器  Internet  嵌入式Web服务器  Linux 引用地址:基于ARM处理器的嵌入式WEB服务器设计

上一篇:基于ARM920T内核的S3C2410处理器的移动电子邮件终端
下一篇:基于ARM芯片ADμC7022和MMA7260Q加速度传感器的电子笔设计

推荐阅读最新更新时间:2024-03-16 12:36

基于Linux下USB主机接口设计
  由于人们对数字形式信息的需求量越来越大,数据通信及其应用技术受到越来越广泛的关注和应用。随着技术的发展。USB通信正向高速、方便快捷、稳定可靠的方向发展。目前,大多数USB设备都是需要与PC机相连进行通信,而USB设备之间的通信则无法实现。而对于一些处在特殊环境下的称重设备的数据传输和系统升级,PC机很不方便实现,因此迫切要求开发出能够识别USB设备的主机端口。这样使用U盘等设备就能实现数据传输。本系统设计在AT91SAM7X256控制器的基础上,增加了主机端口,适用于工矿企业中称重设备的数据更新和系统升级。   1系统整体方案   USB(UniversalSerialBus)即通用串行总线,提供一种兼容不同速度的、
[嵌入式]
Android arm linux 系统调用实现
In this article we will dive into system call interface implementation in arm linux(with gnu eabi).我们将从bionic中的open函数开始追溯arm linux的系统调用实现(使用gnu eabi)。 Linux的应用程序要想访问内核必须使用系统调用从而实现从usr模式转到svc模式。在arm中,这个过程是通过swi(或者和它等价的指令)来实现模式转换的。 从bionic libc中的open函数追溯系统调用实现 相关文件: bionic/libc/unistd/open.c bionic/libc/arch-arm/
[单片机]
基于3c2410的linux2.6.22移植(5)
三、 网卡和LCD驱动的移植1. 网卡驱动移植: 这块板使用的是DM9000的网卡芯片,驱动的源代码在内核源代码的目录中可以找到: $root@host:/home/arm/# cd kernel/linux-2.6.22 $root@host:/home/arm/kernel/linux-2.6.22# cd drivers/net $root@host:/home/arm/kernel/linux-2.6.22/drivers/net# ls dm* dm9000.c dm9000.h 修改dm9000.c: $root@host:/home/arm/kernel/linux-2.6.22
[单片机]
Linux下建立强大的FTP搜索引擎
在Linux下建立强大的FTP搜索引擎 Linux正大行其道,不少朋友相信已经用它架设过各种服务,什么Web、FTP、BBS等等等啦,这次,我向大家介绍另外一个在linux下运行的服务器软件----NoseyParker,一个强大的FTP搜索引擎,只要一些简单的步骤,一个强大的搜索引擎举手间就建立起来了,各位且听我慢慢道来。   parker是一个FTP服务器搜索引擎,是基于Linux的开放源码软件。主要检索各个FTP服务器上面的文件,然后将目录信息保存在本地的文件中,如果有查询请求,将检索本地的数据,将相关的信息(文件所在的地址)返回给请求者。教育网内很多FTP站点都采用这个作为搜索引擎,比如清华九井等。   使用方法很简单,如果
[嵌入式]
ARM Linux开机后自动运行特定程序的方法
系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中。有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的SHELL提示符界面。其实可通过注释掉rc.local文件中调用图形界面的命令,增加运行用户应用程序的命令,达到开机自动运行用户应用程序的目的。 下面以我做的实验为例,描述具体的实现步骤。该方法源于网络,我加以验证,稍做修改,此文相当于转载。 1.进入pc机的Linux 操作系统,在/nfs/usr/下通过mkdir lz 命令新建一个名为lz的文件夹,进入lz文件夹,通过mkdir hello新建一个hello文件夹用来存放我们将要编写的hello.c文件和编译生
[单片机]
基于Internet网络架构的无线传感器网络系统
摘要: 由MD600G和无线传感器节点组成了基于Internet网络架构的无线传感器网络系统,实现了远程分布节点的过程行为实时数据跟踪和实时数据库生成。本系统不仅具有低功耗、低成本、分布式和自组织的特点,而且还实现了通信信息的无线透明传输和基于Internet可视化动态数据显示等功能。   引言   随着微机电系统(MicroElectroMechanism System, MEMS)、片上系统(System on Chip,SoC)、无线通信和低功耗嵌入式技术的飞速发展,无线传感器网络(Wireless Sensor Networks, WSN)也以其低功耗、低成本、分布式和自组织等特点带来了信息感知的一场变革。无线传感器网
[工业控制]
基于<font color='red'>Internet</font>网络架构的无线传感器网络系统
OK6410A 开发板 (八) 106 linux-5.11 OK6410A tmpfs 文件系统
tmpfs 是 内存文件系统(不对应磁盘文件),却有 page cache tmpfs 和 shmem 有什么关系 CONFIG_SHMEM 是 CONFIG_TMPFS 的基础,当 CONFIG_SHMEM 选择了 , CONFIG_TMPFS 才可以选 CONFIG_TMPFS 是 CONFIG_SHMEM 的前端,CONFIG_TMPFS呈现给用户空间的接口 CONFIG_TMPFS 和 tmpfs 是 两个东西,tmpfs 不必依赖 CONFIG_TMPFS 而 存在. CONFIG_TMPFS 只有 在 CONFIG_SHMEM 存在时才存在, 而 tmpfs 可以 在 CONFIG_SHMEM 不存在时而存在 t
[单片机]
基于ARM9内核和嵌入式Linux的网络投影机系统设计
投影机网络化正成为投影机发展过程中的一个重要趋势, 通过标配的有线及无线网络接口或选配的网络适配器, 用户可以通过计算机更方便地向投影机传送显示控制信号, 在投影机上显示输出内容, 可通过计算机来监控管理投影机。 设计开发了一套用于投影机的嵌入式远程监控系统,利用Internet,通过对底层设备驱动编程和上层软件系统的设计开发, 客户端可通过浏览器访问嵌入式系统内置的http 服务器, 将投影机的相关参数直观实时地在Web 页面上显示出来,并且可以实现对于投影机现场相关显示参数的设置。   1 嵌入式计算机系统的特点   嵌入式计算机系统同通用型计算机系统相比具有以下特点:   (1) 嵌入式系统通常面向特定应用。
[单片机]
基于ARM9内核和<font color='red'>嵌入式</font><font color='red'>Linux</font>的网络投影机系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved