电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1929|回复: 0
收起左侧

嵌入式怎样学习_一种嵌入式WEB服务器设计与实现

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-8-3 11:12:33 | 显示全部楼层 |阅读模式
嵌入式怎样学习_一种嵌入式WEB服务器设计与实现,   

  



随着计算机技术、网络技术和微电子技术的深入发展,SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来, SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。“设备即网络”是后PC时代对嵌入式系统的客观要求。因此,需要建立嵌入式的web服务器,以便在智能家居系统中通过智能终端设备(如掌上电脑等),实现对信息家电的远程控制,而信息家电也可以根据需要自动将设备运行的状态信息发送给设定的目标对象。因此,嵌入式web技术给人们的日常生活和工作带来了极大的方便,在各种企业和工业系统中也都有非常重要的实际意义。

嵌入式web服务器以其低成本、小体积、低功耗等诸多优点,而在生产、生活的许多领域发挥着越来越重要的作用。嵌入式系统的CPU已从过去的8位发展到如今的32位,并且大多采用RISC(Reduced Instruction Set Computer)结构,RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80 年代的MIPS主机(即RISC 机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。RISC概念已经引领了微处理器设计的一个更深层次的思索。设计中必须考虑到:指令应该如何较好的映射到微处理器的时钟速度上(理想情况下,一条指令应在一个时钟周期内执行完);体系结构需要多“简单”;以及在不诉诸于软件的帮助下,微芯片本身能做多少工作等等。

1 嵌入式web服务器的硬件设计

1.1 微处理器的选择

AT91SAM9263是一种基于ARM926EJ-S内核的ARM处理器,它带有MMU存储器管理单元,当其运行在200MHz时拥有220MIPS的运算性能,并具有DSP扩展指令和JAVA硬件加速功能。AT9lSAM9263有能力连接多种内存设备和大容量硬盘设备,并嵌入有LCD控制器、2D图形加速器、图像传感器接口、标准外设接口、多媒体卡接口、CAN控制器等。

1.2 网卡芯片的选择

本设计采用CS8900A来扩展嵌入式系统外围网口。CS8900A是Cirrus公司生产的一种高集成度且全面支持IEEE802.3标准的以太网控制器,可支持8位、16位微处理器,并可以工作在I/O方式和Memory方式。它的片内集成有4KB容量的Packetpage结构的RAM,该4KB存储器映像结构RAM包括片内各种控制、状态、命令寄存器,以及片内发送、接收缓存。图l所示是CS8900A的结构框图。

  

1.3 硬件结构

本系统的硬件结构框图如图2所示。本系统以AT91SAM9263为核心,通过网卡芯片CS8900以及RJ45接口来链接Ethernet网络。系统采用的大容量存储器Flash是一种可在系统中进行电檫写、掉电后信息不丢失的存储器,主要用于存放系统启动代码(bootloader)、Linux内核和文件系统,也可以存放用户应用程序。flash的英文解释为:n.闪光,闪现,一瞬间,闪现,反射,使迅速传便,vt.使闪光,反射 adj.闪光的,火速的。Flash也是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公司收购。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash也是存储芯片的一种,通过特定的程序可以修改里面的数据。

  

本系统中的SDRAM存储芯片选用的是MT48LC16M16A2TG,设计时可将两片16位MT48LC16M16A2TG并联为32位数据宽度64 MB空间的SDRAM存储系统。

另外,系统还集成了一个USB HOST和USBDevice接口、一个JTAG接口、一个SD卡接口、一个RS232串口以及AC97音频接口。

1.4 网络接口电路设计

Web服务器系统设计的一个核心部分就是网络接口电路。本设计的网络接口电路的构成电路如图3所示。WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

的外部总线相连接,其控制信号线主要有三根,分别是片选信号线、读有效和写有效信号线。另外,可通过控制总线、一组地址总线和一组数据总线将网络接口电路与ARM芯片相连。网络电路后端连接有RJ45接口,主要是提供与ETHERNET的连接通讯接口。

  

2 WEB服务器软件设计

2.1 Linux系统移植

本设计采用Linux作为操作系统,Linux系统具有开放源码、软件资源丰富、内核功能强大、性能高效、稳定、可支持多种硬件平台等特点。除此之外,Linux还具有完善的网络通信功能,可支持TCP/IP等多种协议,而且Linux系统内核中已经紧密地集成了网络功能并有大量的网络应用程序,可为实现网络通信提供有力的支持。Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最着名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。

一个嵌入式系统通常可以分引导加载程序、内核、文件系统为3个层次。因此,Linux的系统移植也包括3个部分:即引导程序(BootLoa-der)移植、内核移植和文件系统制作。

Bootloader (引导加载程序)是系统加电后运行的第一段代码。它的运行时间非常短,但对于嵌入式系统来说。这是一个非常重要的系统组成部分,主要负责ARM硬件的初始化,设置Linux的启动参数,然后跳转到Linux内核启动代码的第一行语句引导Linux。

内核是所有嵌入式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。

本设计所采用的文件系统是直接从网络上获取一个已经生成的文件系统,并在此基础上进行添加和修改,最后形成自己的文件系统。在开发过程中,可利用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服务器的实现方法。



QICK
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表