1、 目 录 第 1 章 序言 . 1 1.1选题背景 . 1 1.2选题目的及意义 . 1 1.3 选题完成情况 . 2 第 2 章 本项目用到的关键技术 . 3 2.1嵌入式系统构建技术 . 3 2.2 ARM9 体系结构技术概述 . 4 第 3 章 系统总体结构和硬件设计与实现 . 5 3.1嵌入式硬件环境的介绍 . 5 3.2核心部件选型 . 5 3.3系统硬件模块设计与实现 . 6 3.4硬件开发环境简介 . 7 3.5嵌入式系统开发环境的建立 . 7 第 4 章 系统软件设计与实现 . 8 4.1 LINUX2.6内核的移植 . 8 4.2嵌入式文件系统的移植 . 10 4.3以太网驱
2、动程序的移植 . 11 第 5 章 嵌入式 WEB 服务器的研究与实现 . 12 5.1嵌入式 WEB 服务器的原理 . 12 5.2 BOA 服务器工作过程 . 14 5.3 CGI 工作过程 . 15 第 6 章 嵌入式 WEB 服务器的应用 . 15 6.1 无人值守通信机房远程监控系统的应用 . 15 6.2无人值守通信机房远程监控系统的软件设计 . 16 6.3用户管理 . 18 6.4通信机房远程监测系统的实时数据模块 . 22 6.5通信机房远程监测系统的历史数据模块 . 23 第 7 章 实训总结 . 24 7.1 实训工作总结与展望 . 24 7.2 项目中未完成的工作 .
3、24 参考文献 . 25 1 第 1 章 序言 1.1 选题背景 近几十年来,随着嵌入式技术和网络技术,特别是以太网技术的快速发展,越来越多特定环境现场都需要能够借助于嵌入式系统接入 Internet 进行远程监控。嵌入式系统接入玩 Internet 成为了当前嵌入式领域研究的热点之一,将嵌入式 Web 服务器移植到嵌入式系统后接入 Internet,该嵌入式系统相当于一个功能齐全的小型 Web 服务器,在远程即可启动浏览器通过 Internet获取该Web 服务器发布的信息,进而实现远程实时监视、控制甚至维护。本文以 ARM9处理器芯片 S3C2410A 和嵌入式 Linux 为平台,结合了
4、 嵌入式 Web 技术和嵌入式数据库技术,对嵌入式 Web 服务器进行研究 。 1.2 选题目的及意义 近几十年来,随着嵌入式技术和网络技术,特别是以太网技术的快速发展,越来越多特定环境现场,比如无人值守的通信机房、大型粮库、电气火灾易发 场所等等,都需要能够借助于嵌入式系统接入 Internet 进行远程监控。嵌入式系统通过 HTTP协议将现场采集的数据以 Web页面的形式传送到远程计算机的浏览器上显示,维护人员能够在远程实时监视、控制、调节监控现场。相对于传统的远程监控模式,基于嵌入式的远程监控系统具有各个模块集成度高、性能 稳定、成本低、体积小等优点。 嵌入式系统接入 Internet
5、成为了当前嵌入式领域研究的热点之一。将嵌入式 Web 服务器移植到嵌入式系统后接入 Internet,该嵌入式系统相当于一个功能齐全的小型 Web 服务器,在远程即可启动浏览器 (比如 IE)通过 Internet 获取该 Web 服务器发布的信息,进而实现远程实时监视、控制甚至维护,并且,这种基于 HTML标准化的 web用户界面降低了为不同操作平台而定制人机界面的开发费用、人员培训费用和系统升级维护费用。 2 嵌入式 Web 服务器接入 Internet 后,需要处理来自远程客户端 的连接请求和传输大量的数据,一方面要求嵌入式硬件处理能力更强 ;另一方面随着传输数据增多,并且数据类型更加复
6、杂,在嵌入式系统中以文件存储数据的传统存储形式远远满足不了需求,解决办法是使用嵌入式数据库来存储并且管理数据。在设计嵌入式系统时使用嵌入式数据库将极大地增强嵌入式系统的整体性能,缩短嵌入式系统的开发周期,同时借助数据库的安全性检查可以提高嵌入式系统 的整体安全性能 。 正是基于以上背景,本论文搭建了 ARM9 嵌入式 Linux 的嵌入式软硬件平 台,在此软硬件平台之上实现了嵌入式 web 服务器 Boa 和嵌入式数据库 SQLite,采用 C语言和 HTML 设计了一个无人值守通信机房远程监控系统来体现嵌入 web服务器和嵌入式数据库的应用。 1.3 选题完成情况 1.3.1 嵌入式系统平台
7、的构建 嵌入式系统硬件采用 S3C241OA 为嵌入式处理器,主要的外围设备包括 :64MB 的 SDRAM、 ZMB 的 NORFlash、 64MB 的 NANDFlash 以及外扩的DM9O0010/100M 以太网控制器。裁剪 Linux2.6 内核为嵌入式操作系统,移植以太网驱动程序以及根文件系统的制作。 1.3.2 嵌入式 Web 服务器的研究与实现 选择 Boa 作为嵌 入式 Web 服务器,研究 Boa 服务器的源码,学习使用 CGI技术开发 Web应用程序 。 1.3.3 嵌入式 Web 服务器在无人值守通信机房远程监控系统中的应用。 以一个无人值守通信机房远程监控系统为例介
8、绍了嵌入式 web服务 器的应用,详细阐述了无人值守通信机房远程监控系统各个模块的设计。 3 第 2 章 本项目用到的关键技术 2.1 嵌入式系统构建技术 嵌入式系统是一类特殊的计算机系统,具有功耗低、体积小、集成度高等特点,通常由嵌入式硬件系统、嵌入式操作系统和应用软件构成。他们之间的关系如图 2-1所示。 图 2-1 嵌入式系 统基本结构图 在介绍了嵌入式系统的基本结构后,本章以下几小节将首先介绍嵌入式系统的硬件环境, 然后详细介绍嵌入式交叉编译环境的构建,接着阐述了嵌入式系统软件环境的建立,包括 Linux2.6 内核的移植、根文件系统的制作、以太网驱动程序的移植,最后对构建的嵌入式软硬
9、件平台进行了测试。 4 2.2 ARM9 体系结构 技术概述 对于 ARM9 系列,其基本内核是 ARM9TDMI,主要有 7 部分构成。比较最常用的是 ARM920T 内核。 ARM920T 结构主要部分有: ARM9TDMI 内核 CPU、 MMU、 Cache、协处理器接口、运行跟 踪信息接口 (ETM)、 JTAG 调试接口、总线接口等 7部分构成。 图 2-2 ARM920T 结构框 图 ARM9 采用哈佛( Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽。同时,大多数 DSP 都采用此结构。 RM9 为五级流水(取指,译码,执行,缓冲 /数据,回写),平均
10、功耗为 0.7mW/MHz。时钟速度为120MHz-200MHz,每条指令平均执行 1.5 个时钟周期。 ARM9 系列微处理器包含ARM920T、 ARM922T 和 ARM940T 三种类型,主要应用在手持产品、视频电话、 PDA、数字消费产品、机顶盒、家用网关等方面。 5 第 3 章 系统总体 结构和硬件设计 与实现 3.1 嵌入式硬件环境的介绍 本论文的硬件平台为广州致远电子有限公司的 MagicARM2410 教学实验平台,它的中央处理器 (CPU)是韩国三星公司基于 ARM920T 内核开发的 s3C2410A。s3C2410A 适用于 POS 机、手持设备、数字多媒体播放设备等等
11、,具有价格低、功耗低、性能高等优点。该实验平台主要由微处理器、存储模块、控制模块、以太网接口模块、 USB 接口模块、液晶显示模块、仿 真调试模块组成。 嵌入式硬件系统由嵌入式处理器和外围设备组成,为嵌入式系统软件运行提供了物理平台,是整个嵌入式系统的基础。嵌入式操作系统包括文件系统,操作系统内核以及驱动程序,是整个嵌入式系统的逻辑控制核心。嵌入式操作系统向上为应用程序开发提供 API 接口,向下提供与硬件设备交互的接口,同时还要管理复杂的系统资源,如内存管理,进程调度等。 3.2 核心部件选型 3.2.1S3C2410 处理器 S3C2410 处理器是 Samsung 公司基于 ARM 公司
12、的 ARM920T 处理器核,采用0.18um 制造工艺的 32 位 微控制器 。该处理器拥有:独立的 16KB 指令 Cache 和16KB 数据 Cache, MMU,支持 TFT 的 LCD 控制器, NAND 闪存控制器, 3路 UART,4 路 DMA, 4 路带 PWM 的 Timer , I/O 口, RTC, 8路 10 位 ADC, Touch Screen接口, IIC-BUS 接口, IIS-BUS 接口, 2 个 USB 主机, 1 个 USB 设备, SD 主机和 MMC 接口, 2 路 SPI。 S3C2410 处理器最高可运行在 203MHz。 核心板的尺寸仅相当
13、于名片的 2/3 大小,尺寸如此小巧的嵌入式核心板是国内首创。开发商可以充分发挥想象力,设计制造出小体积,高性能的嵌入式应用产品。 6 CL E16AL E17CE9RE8WE18R/ B7IO 1 29IO 2 30IO 3 31IO 4 32IO 5 41IO 6 42IO 7 43IO 8 44K9F1208D A T A 0D A T A 1D A T A 2D A T A 3D A T A 4D A T A 5D A T A 6D A T A 7C L EA L En F C En F R En F W ER /n B3.2.2 NAND Flash 存储器 S3C2410 内部有
14、NAND Flash 控制器,支持从 NADN Flash 启动。图 3-1 所示 是 NAND Flash 连接图 。 S3C2410 采用一组内部寄存器来完成 NAND Flash 的操作。 图 3-1 NAND Flash 连接图 3.3 系统硬件模块设计与实现 与嵌入式 Web 服务器应用相关的几个模块 :微处理器 S3C241OA、存储模块、以太网接口模块。 3.3.1微处理器 S3C241OA S3C2410A 采用了 ARM 公司设计的 ARM92OT 内核, 0.18um 工艺的 CMOS 存储器单元和标准宏单元。 s3C241OA以下丰富的内部设备 :16KB的指令 Cach
15、e和 16KB的数据 cache, MMu 虚拟存储器管理,支持 NANDFlash 系统引导,系统管理器,3通道 UART, 4 通道 DMA, 1/0 端口, RTc, 8 通道 10 位 ADc, USB 主机接口,USB 设备接口, 2个 SPI 总线接口以及内部 PLL 时钟倍频器。 3.3.2存储模块 S3C24lOA通过外部总线接口扩展了 2片 SDRAM和 1片 NORFlash。其中, SDRAM使用的是 H 师公司的 HY57V651620,容量为 64MB;NORFlash 采用的是 SST 公司的 SST39vF1601,容量为 ZMB。这两种存储器相当于通用计算机的内
16、存条,用来7 运行各种程序。 NANDFlash(Samsung 公司的 K9F1208)是 S3C2410A 通过NANDFlashBUS 扩展的一片存储设备,容量为 64MB。它就相当于通用计算机的硬盘,用来存放各种数据和程序。 53C2410A 既支持从 NANDFlash 启动,又支持从NORFlash启动,可通过 OMO引脚进行选择,当 OMO为低电平时,系统从 NANDFlash启动 ;当 OMO 为高电平或悬空时,系统从 NORFlash 启动。 3.3.3以太网接口模块 本实验平台使用 DAVICOM 公司的 DM9000 快速以太网控制处理器,该处理器配备有标准 10M/10
17、0M 自适应, 16K 大容量的 FIFO, 4 路多功能 GPIO,全双工工作等 功能。 MagicARM2410 试验箱主板使用 16位总线控制 DMg000 以太网控制器,数据总线 DATA1DATA15 与 DM9000 的 SD0SD15 接,地址线 SA4 一 SA4 进行了相应的连接,片选线 nGCG3 与芯片的 AEN 相连。 DM9000 以太网控制器的工作基址为 0X300。 3.4 硬件开发环境简介 硬件平台为广州致远电子有限公司的 MagicARM2410 教学实验平台,它的中央处理器 (CPU)是韩国三星公司基于 ARM920T 内核开发的 s3C2410A。 s3C
18、2410A适用于 POS 机、手持设备、数字多媒体播放设 备等等,具有价格低、功耗低、性能高等优点。该实验平台主要由微处理器、存储模块、控制模块、以太网接口模块、 USB 接口模块、液晶显示模块、仿真调试模块组成。 3.5 嵌入式系统开发环境的建立 由于嵌入式系统缺乏足够的系统资源而不能在本机上 (目标机 )进行开发,因此,嵌入式软件开发形成了自己独特的交叉开发方式。也就是说,在开发者将软件编写好以后,先在宿主机上采用适合目标机的编译器对软件进行编译,然后将编译后的可执行程序下载到目标机。如果可执行程序在目标机上不能达到用户的预期目标,则要在宿主机上对目标机进行相应的交叉调 试。嵌入式系统开发
19、环境一般由如下部分构成 :宿主机,目标机,工作站以及将 连接网络环境 。 8 所谓宿主机,就是进行交叉编译的主机,论文采用的基于 32 位 X86 平台的Cent0S 服务器。目标机就是交叉编译后的可执行程序实际运行的环境,也就是MagicARM2410 实验平台。根据宿主机与目标机通信的目的不同,他们之间的连接方式分为三种 : 以太网连接主要用于嵌入式操作系统内核和根文件系统的下载 ; 并口连接主要用于 BootLoader 的移植和系统的调试 ; 串口连接主要用于应用软件的调试。 通过交换机和网线将工作站、宿主机、嵌 入式系统组建成一个小型的局域网,两两之间能够相互通信,在本论文中,直接操
20、作宿主机不太方便,效率较低,解决的办法就在工作站安装了 windowsXP 系统,通过工作站利用远程联机软件登入宿主机,这样既解决了操作不便的问题,又能够对宿主机和目标机进行操作和管理。 第 4 章 系统软件设计与实现 4.1 Linux2.6 内核的移植 由于 Linux 操作系统的内核源代码是使用 C 语言编写的,这使得它具有良好的可移植性,只需要一些修改就能移植到不同的处理器平台上。同时 Linux是一款 GNU 标准的开源操作系统,用户可以免费下载,并 能够依据需要对其进行修改。所以 Linux 操作系统成为嵌入式系统开发首选的操作系统。 Linux 内核 2.6 版本对 53C241
21、0A 处理器的支持十分完善,在 S3C241OA 处理器上移植 Linux 只需要要较少的修改。内核移植主要包括修改内核代码和配置内核选项两部分,具体移植步骤如下 : 1、准备 Linux2.6.28 内核源代码。先下载源代码,并解压至 /base 目录下: #tarzxvflinux-2.6.28.tar.gz C /base #cd/base/linux-2.6.28 2、内核依据各个分层次结构的 Makefile进行编译,首先修改 Linux-2.6.28 目录下的顶层 Makefile 文件,目的是为了修改 Linux 内核支持的处理器体系结构和指定编译内核所需的编译器。 #vi Makefile