毕业设计-网络环境下ARM嵌入式监控技术的研究

发布时间:2017-06-01 21:31:40   来源:文档文库   
字号:

随着计算机网络技术的广泛应用以及通信技术和控制技术的发展,传统的工业控制领域正经历着一场前所未有的变革,工业控制开始向网络化方向发展。该设计从工业控制网络发展的需要出发,研究了以ARMLinux、嵌入式WEB服务器为核心的嵌入式远程监控系统,实现了嵌入式设备与Internet的连接,并通过WEB浏览器页面进行远程访问和控制,实现了远程监控。

本设计系统主要由硬件系统和软件系统两部分组成。硬件系统以S3C2440A嵌入式微处理器作为硬件平台核心,外扩64M NAND FlashSDRAM构成最小系统,在此基础上扩展了以太网接口、RS232接口等外设,构成嵌入式远程监控系统的硬件系统。

软件平台选择遵循GNU协议的嵌入式Linux操作系统进行了系统启动引导程序BootLoader的设计,实现系统上电后硬件的初始化Linux内核的运行;然后简要分析Linux的启动过程,并根据具体的硬件环境对内核进行了裁剪,实现了内核向硬件平台的移植;接着为系统定制了针对NAND FLASH设计的可读写的YAFFS嵌入式文件系统;同时根据本系统硬件配置要求,为系统编写并添加了网络驱动和A/D转换驱动程序,为上层应用程序的开发提供了方便的接口。在监控终端软件设计中,首先在开发平台上移植了BOA服务器;然后对BOA服务器进行了相关参数的配置,通过编写CGI程序,实现了通过动态WEB页面对系统进行远程控制以及获取数据信息的功能。

最后对系统进行了测试,通过IE浏览器实现远程监控,并对整个系统进行功能验证,结果表面系统运行完好,达到了预期设计目标,成功设计了一个基于网络的嵌入式远程监控系统。

关键词:嵌入式系统;ARMLinuxWEB浏览器



Abstract

With the development of the extensive application of computer network technology, communications technology and control technology, the traditional industrial control field is experiencing an unprecedented change to the direction of the network development. This design from the needs of industrial control network development which takes the ARM, Linux, embedded WEB server as the core achieves the embedded remote monitoring system, the Internet connection, and remote access through the WEB server page control.

The design of the system is mainly composed by two parts of the hardware and software systems. Hardware system takes the S3C2440A embedded microprocessor as the core and 64M NAND Flash and SDRAM are extended. On this basis, ethernet interface, RS232 interface are extended, which constitute the Embedded Remote Monitoring System hardware system.

The GNU agreement embedded Linux operating system is chosen as the software platform. This article also achieves system bootloader designing, initialization of the hardware and the Linux kernel running, giving a brief analysis of the Linux boot process, the kernel cutting depending on the hardware environment, and the transplantation of the kernel to the hardware platform. And the YAFFS embedded file system is designed for NAND FLASH. At the last, with the system hardware configuration requirements for the system, this article adds a network drive and A/D converter driver for the upper layer application. BOA server is transplanted to the software system ,then the BOA server is configured by CGI programs, to achieve dynamic WEB pages on the system for remote monitoring and data acquisition.

Finally, the system function is tested, and the remote monitoring function was tested through the IE browse. It shows that it achieves the desired design goals. a web-based embedded remote monitoring system is successfully constructed.

Keywords: embedded systemsARM Linux WEB server



第1章 绪论

1.1 前言

随着信息技术的发展和数字化产品的普及,以及高性能32位嵌入式微处理器的出现,以计算机技术、芯片技术和软件技术为核心的嵌入式系统成为当前研究应用的热点,通信、计算机、消费电子技术合一的趋势不可阻挡,各种机械装备的机械化程度和自动化程度越来越高,工业设备的售后服务和设备维护也显得越来越重要。首先,因为机械装置成本高,一旦设备不能正常运行不仅影响生产而且还可能造成设备自身难以补救的损伤,给企业和用户带来无法弥补的经济损失;另一方面,由于技术的专业性,需要各行的技术人员到现场进行诊断分析以排除故障,使得问题解决的及时性很差。因此,企业在制造大型机械设备中,不但要保证设备质量,同时还要确保设备能正常高效运行,在设备的寿命周期内提供优质的售后服务[1-2]这给大型设备企业的售后服务提出了一个新的难题,同时也为嵌入式远程监控技术的发展带来契机。嵌入式监控技术在虽然有一定发展,但是基于网络的嵌入式系统的应用不够普及,主要是由于其技术欠缺和价格昂贵造成的。

在经济全球化的今天,尤其是进入21世纪以来,国内的大型工业设备提供企业面临着更加激烈的竞争。实时掌握设备的工作状况,了解其性能的变化,同时建立有效的维护措施和诊断系统,发现设备运行过程中的潜在问题并及时给出解决方案展现着优越的竞争力。20世纪90年代以来,随着互联网技术、嵌入式计算机技术和控制技术等技术的发展,监控技术也朝着网络化、自动化和智能化的方向发展。研究出性价比高、实用性强的基于网络的嵌入式监控系统有着巨大的市场潜力[3-8]

1.2 国内外相关技术背景及研究现状

得益于现代信息的高速传播,无论在国内还是国外,32 位嵌入式微处理器已然成为高性能嵌入式系统的主流处理器。如今,人们的生活已经和网络紧密联系,这也对嵌入式技术提出了新的挑战,“设备网络”是“后 PC时代”嵌入式系统的发展趋势。嵌入式网络化技术的核心技术是:通过嵌入式设备与互联网的联接和信息的采集,实现不同设备间信息的交互,达到实时掌握嵌入式设备运行信息,并将反馈命令自动传送给主控设备的目的[9-11] 通过应用嵌入式动态 Web 技术,使信息家电实现访 Internet、收发 E-mail功能也能成为现实嵌入式监控系统可以实现这些方案,这种廉价解决方案可使得普通的电器或设备具有多种Internet功能从而使电器能够被远程监控,并能及时给出诊断方案,确保电器的运行。嵌入式系统是区别于通用计算机系统,以应用为中心,软硬件可根据具体情况裁减的,具有、低成本、可靠性高、严要求、综合性强的专用计算机系统,它主要由嵌入式核心微处理器、外围电路、嵌入式软件平台及应用软件系统等组成,软硬件功能齐全,能够独立工作[12-15]

在国外,工业设备的远程监控系统、远程故障诊断和维护系统等产品都已经相继问世,嵌入式远程监控理论已相当成熟,各种产品已经逐渐走入工业、尖端科技和生活中来,而我国在这方面才起步不久。目前,我国对设备的监控和维护技术存在一些不足的地方。我国目前的远程嵌入式监控系统较多采用RS485或者RS232现场总线技术、USB借口技术、蓝牙技术构建底层设备网络,实时性控制效果不够好,而工业控制的网络化能有效的解决这一难题,有着无限的发展空间。

网络监控虽然有非常光明的前景,但是在现阶段却受制于生产成本过高、市场需求小、标准不统一等问题,发展速度缓慢。因此,要使网络监控产品能够真正进入工业领域,在生产过程中得到普及以发挥其应有的作用,必须要从价格合理的产品做起,慢慢地培养起一个市场空间,最终实现远程监控发展目标。本文以嵌入式 Web 服务器为应用核心,提供了一种在大型设备和家电中通用性强且成本低的远程监控解决方案,这种方案不仅应用前景广阔,而且对推广嵌入式的应用有积极的意义[16-19]

1.3 本设计研究的目的及内容

本文提出一种通用性强、生产成本低、具有良好市场发展前景的解决方案,方案基于ARM9 微处理器为核心,嵌入式 Linux 作为软件平台,在软件平台上构建 Web 服务器,该服务器可供远程计算机登陆,然后获取采集到的现场设备的数据并进行远程控制。该系统为远程监控提供了一个通用平台,在此基础上通过适当扩展可以实现生产过程中各种数据的采集以及状态监控,以减少人力成本,提高工作效率。

本设计主要研究4方面的内容:

1) 根据系统功能要求进行方案分析与器件选型,构建嵌入式远程监控系统的硬件平台;

2) 构建嵌入式操作系统软件平台。采用Linux操作系统在实现的硬件平台上构建嵌入式操作系统软件平台,包括 BootLoader 的设计与移植Linux 内核的移植以及文件系统的移植

3) 研究 Linux 设备驱动的工作原理和设计方法,设计基于 CS8900 网路控制器的驱动程序;编写 S3C2440AA/D 转换驱动,实现对大型机械装备电压的实时采集;

4) 嵌入式 Web 服务器的搭建。分析了 BOA服务器的体系结构,进行了 BOA 服务器的移植,并在原有的基础上对它进行了配置。通过编写 CGI 代码,实现了基于 Web 服务器的远程监控功能。

1.4 本章小结

本章主要讲述了该方面设计的背景知识、国内外现状、课题的研究意义以及研究的目的和内容,内容从四个方面展开。我国在该方面的研究还处于起步阶段,有很大的发展空间,所以加强嵌入式系统的应用显得更为重要,而本设计有其自身的特点,具有积极的意义。



第2章 系统总体方案设计

2.1 总体框架设计

本系统采用以 ARMLinux、嵌入式 Web 服务器三大技术为中心的方案:整个系统由一个 32 位高性能的嵌入式处理器 S3C2440A 和嵌入式 Linux 操作系统组成然后在该处理器软件平台上搭建Web服务器使得用户可以通过网络浏览器进行远程访问,对现场设备群进行远程监控和管理。本文从监控设备的网络化出发,利用嵌入式系统和 Internet 技术的优势,设计了一种基于 B/SBrowser/Server)模式、具有高可靠性的嵌入式远程监控系统架构,整个系统的结构框图如图 2.1 所示。

2.1 嵌入式系统总体框图

2.2 硬件系统设计概述

嵌入式微处理器是整个系统的核心,ARM架构的微处理器具有体积小、低功耗、低成本、高性能等特点,广泛应用与嵌入式计算机领域。嵌入式网络监控系统要求超强的数据处理能力,数据现场采集能力和数据网络传输能力,根据上述的基本要求,系统微处理器芯片采用三星公司的 ARM9微处理器 S3C2440A,该芯片采用了 ARM920T(16/32-bit RISC CPU)内核,内部带有全性能的 MMU(Memory Management Unit),适用于设计移动手持产品设备,具有高性能、低功耗、接口丰富和体积小等优良特性[20-21] 整个系统硬件原理框图如图 2.2 所示。

2.2 系统硬件原理框图

2.3 软件系统设计概述

2.3.1 系统软件设计

鉴于嵌入式 Linux 强大的网络支持功能,选用其作为系统软件平台。构建嵌入式Linux 系统的工作主要包括建立交叉编译环境、引导程序 BootLoader 的设计、Linux 内核移植、文件系统的移植。系统软件结构如 2.3 所示。

2.3 系统软件结构

2.3.2 应用软件设计

系统的应用软件设计基于嵌入式 Linux 操作系统平台,整个系统应用软件根据功能分为底层驱动和上层应用软件,其中底层驱动软件主要完成了对 CS8900 网卡驱动的编写以实现嵌入式监控系统连接 Internet 的功能,以及 S3C2440AA/D 转换驱动编写,实现对系统电压的实时采集;上层应用软件主要编写基于嵌入式 Web CGI 程序实现ARM9系统与Web服务器数据交互

2.4 本章小结

本章首先介绍了监控系统总体框架设计,接着阐述了监控系统硬件开发平台的主要构成,并分析了采用该硬件平台的优势,然后设计了基于嵌入式 Linux 操作系统的软件结构,阐述了系统所要完成的功能。应用软件的设计是这个方案设计中的重点,它与系统实现的功能密切相关。



第3章 硬件系统设计

嵌入式硬件系统对整个嵌入式系统的稳定性具有至关重要的作用,在进行硬件设计时,要遵循一定的原则来进行设计,才可能使系统达到最优,减少出错率[17-18]

3.1 主板电路设计

3.1.1 S3C2440A 微处理器简介

ARM9 内核的 CPU S3C2440A含有LCD 控制器和触摸屏接口,方便了人机界面的设计。含有 MMU 单元,可以移植 Linux操作系统,保证了控制器的高效性和稳定性[22-24]

3.1.2 NAND FLASH电路设计

本系统选用三星公司的 FLASH1208 构成 64M 存储器,该 Flash 64M 字节的存储容量,支持快速读写,读取每字节数据时间只需 12μs,写入时间是 200μs 具体连接电路如图 3.1 所示。

3.1 NAND FLASH接口电路

3.1.3 SDRAM 电路设计

SDRAM 即同步 DRAM。它最大的特色就是可以与 CPU 的外部工作时钟同步,和系统中的 CPU、主板使用相同的工作时钟。这样将去掉时间上的延迟,可提高内存存取的效率。本系统的SDRAM采用的是三星公司的 K4S561632,单片容量为 32M,采用 2 片构成 64M SDRAM 模块,具体电路如图 3.2 所示。

3.2 SDRAM 接口电路原理图

3.1.4 JTAG接口电路设计

JTAG 国际上认可的一种标准协议,同时是用于调试嵌入式系统的接口,其芯片内部封装了专门的测试电路 TAPTestAccess Port,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。标准的 JTAG 接口是 4线:TMSTCKTDITDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出[25-26] 通过 JTAG 接口,可完成如下基本操作:

1) 停止程序的运行;

2) 检查和修改 ARM 的内核状态;

3) 观察和修改内存;

4) 恢复程序的运行。

此外还可通过 JTAG 接口对 Flash 器件进行在线编程,将程序烧写到 Flash 中,因而它是开发调试嵌入式系统的一种简洁高效的手段。S3C2440A JTAG 调试电路如图3.3 所示。

3.3 JTAG接口电路

3.1.5 网络接口电路设计

前,以太网作为一种局域网技术受到广泛的应用,主要原因是以太网组建局域网和联接Internet的方便性。随着以太网在不同领域的广泛应用和发展,多种多样的以太网控制芯片不断被开发出来CS8900 就是一种以太网控制芯片,有着十分优良的性能。它主要为嵌入式系统和某些适配卡等提供一种实现以太网联接的解决方案。

CS8900 除了具备其它以太网控制芯片所具有的基本功能外,还有它的工业级温度范围(-4080),3.3 V 工作电压,功耗低,高集成度等独特优点[27-28]

3.2 接口板电路设计

3.2.1 RS-232 串口通讯模块电路设计

RS-232 PC 机与通信工业中应用最广泛的一种全双工串行接口。RS-232 被定义为一种低速率串行通讯标准。其传送距离最大约15m,最高速率为 20Kb/s

本次开发的系统 RS-232 接口主要功能是:实现在调试系统软件时控制器与 PC 机的通讯。驱动芯片采用 MAX232 芯片,扩展了一路两线 RS-232 接口。该芯片具有以下特征:

1) 低功耗:工作电流只需 1μA,当接收不到任何外部和内部信号时,能够自动关断;

2) 辅助电路简单:在标准 3.3V 工作模式下,只需要一个 0.1μF 的小电容;

3) 工作电压范围宽:VCC +3.0V+5.5V 之间均可正常工作;

4) 最大数据传输速率可达 250KB/s

3.2.2 电源管理方案

作为工业产品,电源系统的稳定性对本系统有至关重要的影响。为了适应各种工作环境,设计两种供电方式,一种是通过配备的变压器将 220V 转换成 4.2V;另外一种是电池电压为 3.7V 充电电池为整个系统供电,因此考虑到电池特性,输入电压应该在+3.5V+4.2V 之间。供电方式主要有以下几种:

1) 由适配器供电,并且给内部备用电池充电;

2) 内部电池不存在的情况下,由外接电池供电;

3) 适配器一边给外部电池充电,一边给系统供电;

4) 外部不提供电源,仅由内部备用电池给系统供电。

供电方式如图3.4所示。

3.4 系统供电方式

3.2.3 复位看门狗电路设计

在一个具有 CPU 的系统中必须有 WatchDog,以提高系统的可靠性,本设计采用器件 MAX811,看门狗定时器的清除是 CPU 通过改变其 GPB2 引脚的输出状态完成的。在程序正常运行的时候,需要经常地改变 GPB2 引脚的电平状态,一个状态维持的最大时间为 1.6s,看门狗定时器在 1.6s 后未被清除,便输出 200ms 脉宽的复位信号,使系统重启[29-31]复位看门狗接口电路如图 3-5 所示。

3-5 复位看门狗电路

3.3 本章小结

可靠的硬件系统是整个嵌入式网络监控系统可靠运行的基础。本章中对本课题的硬件系统设计进行了详细的介绍,包括核心芯片的选择与介绍、NAND FLASH电路设计、SDRAM电路设计、JTAG接口电路的设计、网络接口电路的设计、RS232串口电路的设计、电源管理方案的设计、复位看门狗电路的设计等。这些硬件电路组成了整个系统的硬件系统。



第4章 软件系统设计

4.1 Linux开发平台的构建

4.1.1 Linux操作系统概述

Linux 是一个类似于 Unix 的操作系统是最为流行的一款开放源代码的操作系统。不仅能够运行于 PC 平台,还在嵌入式系统方面大放光芒。在各种嵌入式Linux OS 迅速发展的状况下,Linux OS 逐渐形成了可与 Windows CE EOSElectro Optical System)进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择 Linux 作为嵌入式操作系统[32-37]Linux 现已成为嵌入式操作系统的理想选择。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:

1) Linux系统启动的引导加载程序。由固化 boot 代码(可选)和 BootLoader 两大部分组成

2) Linux 内核。有多个公司研发不同的内核,内核不同系统的功能侧重方向有所不同

3) 系统的文件系统。一种为根文件系统,这个一般由Ramdisk来充当,还有一种就是建立于 Flash 内存设备之上文件系统。

4) 用户应用程序。这个可根据用户自己的需求来设定,很多用户会设置一个方便操作的视图窗口,常用的嵌入式 GUI 有:MicroWindowsMiniGUIQT 等。

当然,嵌入式 Linux也存在其不足之处,在实时领域内其实时性存在不足。Linux是一个分时系统,虽然间接实现了实时性,在很多的情况下还是无法满足实时性的需求。对于一些实时性要求强的环境需要改进[38-40]

4.1.2 嵌入式 Linux 系统的交叉编译环境

在裁减和定制后的嵌入式 Linux代码运用于系统之前,一般需要在客户端 PC 机上建立一个用于嵌入式系统的交叉编译环境。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。一般来说,交叉编译工具包括编译器(gcc二进制工具程序(binutils c 链接库(glibc)。当然链接库(glibc有多重选择,也可以用别的c库来代替 glibc,例如 uclibcdietlibc newlib。建立一个交叉编译工具链工作量大,并且设计过程复杂,网上有一些成型可用的交叉编译工具链可以下载。本文采用arm-linux-gcc-3.4.1.tar.bz2 作为交叉编译环境,将交叉编译环境放到根目录下解压缩:

[root@hdjd /]# tar jxvf arm-linux-gcc-3.4.1.tar.bz2. 解压缩完成后交叉编译环境就建立好了。

4.1.3 BootLoader 移植

BootLoader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。由于嵌入式系统的多样性,每个系统的系统引导程序 BootLoader 依赖于不同的硬件系统,所以几乎没有通用的BootLoader

由于 BootLoader 的实现依赖于硬件系统的设计结构,为了方便BootLoader的设计,现 BootLoader 分为 stagel stage2 两大部分。硬件系统初始化代码放在 stagel,该部分可以使用 ARM 公司提供的 ARM 指令集,用接近机器语言的汇编语言来实现,短小精悍。而 stage2 C 语言来编写为实现复杂的系统功能提供方便,同时使得程序的可读性和可移植性大大提高。

BootLoader 的第一阶段:

1) 基本的硬件设备初始化这是 BootLoader 一开始就执行的操作,其目的是为 stage2 的执行以及随后的 Kernel的执行准备好一些基本的硬件环境。它通常包括以下步骤:

1 屏蔽所有的中断。为中断提供服务通常是操作系统设备驱动程序的责任,因此在 BootLoader 的执行全过程中可以不必响应任何中断。中断屏蔽可以通过设置CPU 的中断屏蔽寄存器或状态寄存器(比如 ARM CPSR 寄存器)来完成;

2 设置 CPU 的速度和时钟频率;

3 RAM 初始化。包括正确地设置系统的内存控制器的功能寄存器以及各内存控制寄存器等;

4 初始化 LED。典型地,通过 GPIO 驱动 LED,其目的是表明系统的状态是正常还是不正常的。如果板子上没有 LED,那么也可以通过初始化 UART 向串口打印BootLoader Logo 字符信息来完成这一点;

5 关闭 CPU 内部指令。

2) 为加载 stage2 准备 RAM 空间为了获得更快的执行速度,通常把 stage2 加载到 RAM 空间中来执行,因此必须为加载 BootLoader stage2 准备好一段可用的 RAM 空间范围。

3) 拷贝 stage2 RAM 拷贝时要确定两点:一是stage2 的可执行映象在固态存储设备的存放起始地址和终止地址;二是RAM空间的起始地址。

4) 设置堆栈指针 SP。堆栈指针的设置是为执行 C 语言程序作准备。

5) 跳转到 stage2 C 程序入口点在上述一切都就绪后,就可以跳转到 BootLoader stage2 去执行了。比如,在 ARM系统中,这可以通过修改 PC 寄存器为合适的地址来实现。

BootLoader 的第二阶段:

1) 在本阶段初始化系统需要使用到的硬件设备包括:

串口、计时器等设备完成初始化后,可以输出一些提示信息程序名字字符串、版本号等。

2) 系统内存映射检测

内存映射是指在硬件系统的整个物理地址中对应寻址系统的那部分RAM单元通常情况下,CPU会预留出足够的地址空间给系统 RAM,但是CPU一般不会把所有预留的RAM空间分配给嵌入式系统,而只是把预留的全部 RAM 地址空间中的一部分映射到 RAM 单元上,而让其他剩下的 RAM 地址空间处于未使用状态。所以 BootLoader stage2 必须在它执行(比如,将存储在 Flash 上的内核映像读到 RAM 空间中)之前检测整个系统的内存映射情况,也即它必须知道 CPU 预留的全部 RAM 地址空间中的哪些被真正映射到 RAM 地址单元,哪些是处于“unused”状态[40-43]

3) 加载内核映像和根文件系统映像。

1 规划内存占用的布局。这里包括两个方面,一方面是内核映像所占用的内存范围;另一方面是根文件系统所占用的内存范围。在规划内存占用的布局时,主要考虑基地址和映像的大小两个面。

2 Flash 上拷贝。由于像 ARM 这样的嵌入式 CPU 通常都是在统一的内存地址空间中寻址 Flash 等固态存储设备的,因此从 Flash 上读取数据与从 RAM 单元中读取数据并没有什么不同。

4) 设置内核的启动参数。

应该说,在将内核映像和根文件系统映像拷贝到 RAM 空间中后,就可以准备启动Linux 内核了。但是在调用内核之前,应该作进一步准备工作,即:设置 Linux 内核的启动参数。

5) 调用内核。

Vivi 是由韩国 Mizi 公司开发的一种 BootLoader,适合于 ARM9 处理器,支持S3C2440A 处理器。和所有的 BootLoader一样,Vivi 有两种工作模式,即启动加载模式和下载模式。当 vivi 处于下载模式时,它为用户提供一个命令行接口,通过该接口能使用 Vivi 提供的一些命令集。

Vivi 作为一种 BootLoader ,其运行过程分成两个阶段。第一阶段的代码

vivi/arch/s3c2410/head.s 中,大小不超过 10KB。第二阶段的代码在 vivi/init/main.c 中,主要进行一些开发板初始化、内存映射和内存管理单元初始化等工作。需要注意的是在 Flash 中执行完内存映射后,会将 vivi 代码拷贝到 SDRAM 中执行。如图 4.1 所示,给出了 vivi 的详细的运行过程。

4.1 vivi运行过程

为了使移植工作更加快捷,本文选择 vivi0.1.4 版本。它不仅提供对 ARM-920T 内核的支持,而且直接提供了对于 S3C2440A 的板级支持,这使移植工作量相对减少。

4.1.4 Linux操作系统的移植

建立交叉编译环境和 BootLoader后,还需要实现 Linux 操作系统的移植,使Linux操作系统运行在嵌入式系统的硬件平台上。由于不同的硬件平台结构和电路不同,已有的代码需要被修改后才能移植到硬件平台上,与硬件电路和体系结构相结合。裁剪X86平台上的 Linux 系统后,通过移植可以使之运行在 PowerPC ARM等等其他多种硬件平台上。获得Linux操作系统的源代码后,

1) 建立交叉编译环境,这里使用 arm-linux-gcc-3.4.1 的交叉编译器。

2) 解压缩内核,将下载的内核放到根目录下

[root@hdjd /]# tar jxvf linux-2.6.13.tar.bz2

3) 修改 Makefile。这是必须的,因为要用交叉编译器来编译这个内核,所以要在 Makefile 中要指定交叉编译的环境,通过修改Makefile代码实现。

4) 配置内核。

在完成以上的配置以后,接着就可以编译新的内核了。Linux-2.6.13通过以下的步骤编译内核:

make mrproper (保证内核的源文件是干净可用的)

make dep(读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要)

make menuconfig(图形界面配置内核选项,另外可用的配置选项还有 make

configmake xconfig )

make (完成后在内核/arch/arm/boot 目录下生成适合在嵌入式系统上运行的 linux内核 zimage 文件)

4.1.5 YAFFS 文件系统的移植

嵌入式文件系统是管理和组织嵌入式系统物理设备上所有的文件的一种文件系统,操作系统上的所有数据以此为基础存在在物理设备上,它是系统中最为基本和重要的资源。Flash 存储器在各类嵌入式系统中得到最为广泛应用。应用于 Flash 的文件系统有很多种,例如cramfsJFFS/JFFS2romfsYAFFS/YAFFS2 等。本节介绍的是为NAND Flash定制设计的新型嵌入式文件系统 YAFFS/YAFFS2 及其本设计中的嵌入式 Linux 系统上的实现方法。

嵌入式文件系统(YAFFS文件系统)是与NAND FLASH的匹配性极好是专门针对NAND FLASH而选择的。 JFFS相比,它进行了一些裁剪,占用内存更少、速度更快。YAFFS 不支持文件的压缩,对存储容量大的系统更合适。目前YAFFS文件系统 YAFFS YAFFS2 两个版本,主要区别在YAFFS2 可以更好的支持容量更大 NAND FLASH 芯片[44-45]

YAFFS 文件系统的移植步骤:

1) 添加 YAFFS 文件系统源代码到内核在内核中建立 YAFFS 目录 fs/yaffs2,并把下载的 YAFFS 源代码复制到该目录下面。

2) 使内核获得 NAND FLASH的分区信息

3) 修改文件 fs/Makefile YAFFS 文件系统添加到 Linux 系统中/fs/Makefile 文件的最后加上“obj-$(CONFIG_YAFFS_FS) + = yaffs2/这样就把YAFFS 文件系统添加到了 Linux 的内核中了。

4) 制作支持 YAFFS 文件系统的 Linux 内核映像,配置 Linux 内核选中 MTD(Memory Technology Devices)支持和 YAFFS 支持,编译生成内核 zimage 文件。

实现把YAFFS 文件系统作为根文件系统可用下面两种方法:一种是YAFFS文件系统直接在宿主机上制作好,然后烧写到Flash 上;另一种是直接在Flash制作 YAFFS 文件系统。本设计中采用的是第一种方法其步骤如下:

1) 在宿主机上生成待烧写的YAFFS 文件系统映像文件

2) 上一步中生产的映像文件写到 NAND Flash 分区上;

3) 重启目标板并修改相应的命令行参数

Linux 内核就可以从 Flash 中加载 YAFFS 文件系统作为根文件系统了。接下来就是烧写 Vivi、内核、文件系统了。步骤如下:

1) Vivi 就像电脑里的 BIOS 一样,起到一个引导系统的作用。利用 JTAG 烧写工具烧写 VIVI NAND Flash

2) 启动超级终端,进入 Vivi,使用命令load flash kernel x,烧写内核;

3) 内核烧写完成后,使用命令load ram 0x32000000 x,烧写文件系统;烧写完成后,重新启动开发板,就进入Linux 操作系统字符界面。至此,嵌入式 Linux 移植工作完成

4.2 嵌入式驱动程序开发

4.2.1 Linux 设备驱动概述

Linux 操作系统的主要任务之一就是控制所有的硬件设备。它必须对设备发布命令,捕捉中断并进行错误处理,还要提供一个设备与系统其余部分简单易用的接口,如图4.2所示。设备驱动程序对应用程序而言屏蔽了硬件的细节,使得应用程序在运行过程中只是把硬件设备当做一个设备文件来处理它可以像管理和运行普通文件一样处理硬件设备。设备驱动程序是内核的一部分,其功能如下

1) 对设备初始化和释放;

2) 把数据从内核传送到硬件和从硬件读取数据;

3) 读取应用程序传送给设备文件的数据和回送应用程序请求的数据;

4) 检测和处理设备出现的错误。

4.2 设备驱动程序接口

4.2.2 Linux 网络驱动程序开发

以太网(Ethernet)是由 Xerox 公司创建并与 Intel DEC 公司联合开发的基带局域网规范,它使用 CSMA/CD技术,以10Mbit/s 的速率运行在多种类型的电缆上。以太网并不是一种具体的网络,而只是一种技术规范。它是当今局域网中被广泛应用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。以太网在互联网之间以 10-100Mbit/s 的速率而成为应用最广泛的以太网技术[46-47]

以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制。网络中发送的所有信息以太网中的每个节点都透明化,因此,以太网也可认为是一种广播网络。下面以太网中主机传输数据为例

1) 帧听信道上是否在传输信号。如有信号传输表明信道忙,就继续帧听,直到信道检测不到传输信号为止

2) 任何信号,就开始新一轮的数据传输

3) 数据传输的时候保持帧听,如发现冲突则执行退避算法,然后重新执行步骤 1

4) 无冲突则发送成功,计算机自动返回到帧听信道状态。

本系统硬件设计采用 Cirrus Logic 公司的以太网芯片 CS8900 来扩展网络接口。该芯片提供 ISAIndustrial StandardArchitecture)总线接口,内部集成 E2PROM 控制器、802.3MAC 控制器、片内 RAM 10BASE-T 收发滤波器,支持 I/O 和内存模式两种模式,可采用 DMA 方式与主机以 16 位或 8 位数据长度进行数据交换,如图4.3 的内部结构框架。

4.3 CS8900以太网接口的内部结构

嵌入式 Linux 网络设备驱动的体系结构如图 4.4 所示,从上到下可以划分为四层,依次为网络协议接口层、网络设备接口层、提供实际功能的设备驱动层以及网络设备与媒介层。

4.4 嵌入式Linux网络驱动程序的结构

驱动程序的设计如下

1) CS8900 网卡驱动设计CS8900 是一种广泛应用的网络设备。在设计网络设备驱动的过程中,设备驱动功能设计是关键,因此在CS8900驱动程序编写过程中实际上主要完成用具体的针对 CS8900的操作来填充模板的工作其内容如下

1 把编写过程中的数据放入专为 CS8900设计的私有信息结构体

2 设备初始化模块的编写。初始化 net_device模块将其注册入内核。

3 数据发送模板。

4 中断处理程序数据包接收函数的填充

5 设备打开函数与释放函数的填充

6 设备配置模块与数据统计模块的填充以及设备冲突函数填充

2) 网络设备CS8900 网卡初始化、注册与注销net_device 结构体中的 init()函数用来实现CS8900 设备驱动程序的初始化。CS8900 驱动的模块卸载函数需要释放 CS8900 的私有信息结构体,然后释放在模块加载函数中申请的 I/O 地址区域,并注销net_device 设备结构体。

3) CS8900 网卡发送数据包流程 I/O 模式下,CS8900 发送数据包的步骤如下:

1 向控制寄存器 TXCMD 寄存器发送命令的写入

2 TXLENG 寄存器写入数据发送长度

3 读取PacketPage 空间内的BUSST 寄存器数据,确定其最后一位被设置为Rdy4TxNOW设备处于准备发送数据状态中

4 PORT0寄存器中循环写入将要发送的数据

4) CS8900 网卡接收数据流程CS8900 接收数据包的过程如下所示

1 查询到网络适配器产生的中断,然后查询相对于 I/O 基地址偏移 0008H 中断状态队列端口,判断中断类型为接收中断;

2 PORT0 寄存器依次获得接收状态 rxStatus、接收数据长度 rxLength

3 循环 PORT 寄存器读取 rxLength 次,获得整个数据包。

4.2.3 S3C2440A A/D 转换驱动设计

本系统 A/D 采样驱动程序用于实时采样嵌入式系统的电压值。S3C2440A 内部集成了 8 10 A/D 转换器,分辨率为 10 位。使用起来非常方便,在硬件电路上只需将电压检测线直接与 S3C2440A 的八路输入口的任意一位相连接就可实现。同时,该 A/D 转换器可以通过软件设置为休眠模式,以减少功率损失,最大转换速率可达 500Kbit/s,非线性度为±1 位。

转换流程如下:

1) A/D 采样的频率。A/D 采样的时钟频率由 A/D 采样预分频寄存器(ADCPSR)决定。

2) 启动采样。A/D 控制寄存器的 bit[0]1可以启动转换,当启动转换后,该位被自动清0。同时启动转换时还需要指定转换通道,通过设置控制寄存器的 bit[5:3]来完成

3) 取得 A/D 转换结果。当 A/D 转换结束后,可以通过读取 A/D 数据寄存器 ADCDAT0 的值获取转换结果。通过检查 A/D 控制寄存器的 ECFLA 位(bit[15])的值,可以确定 A/D 转换是否完成,当转换完成后就可以从数据寄存器读出转换结果。

A/D 转换流程如图4.5所示。

4.5 A/D转换流程图

4.3 嵌入式 WEB 服务器及监控终端软件设计

随着Internet应用的广泛普及,信息化产品对网络的需求越来越大。这些产品可以通过 Web页面进行远程访问,并且操作者可以通过Web浏览器修改远程设备的配置信息,查看信息化产品的工作情况,甚至可以对其更新Web浏览器远程访问中,操作者只需要通过 IP 地址即可访问,十分方便。这种基于Web浏览器的嵌入式系统将成为信息产品网络化的新生力量之一,将会工业设备、家庭医疗设备、自动化农业、智能小区、信息化家电、远程监控报警系统等领域得到广泛应用

4.3.1 嵌入式 WEB 服务器的实现

WEB服务器作为系统的用户程序运行在现场设备端,接受监控端的各种请求,一方面采集设备的运行信息,将其发送给浏览器,另一方面根据监控端的要求向现场设备发送控制信息,其数据流可用如图4.6所示。

4.6 B/S 模式的服务器信息数据流

BOA作为一个单任务小型服务器,性能优秀、源代码开放嵌入式系统有着极好的兼容性。通过分析嵌入式系统自身资源的应用限制后本系统选择 BOA。再根据本系统设计中的特殊需要进行裁剪,并通过移植后构造出合适本系统的Web 服务器。BOA 服务器与其他 Web 服务器相比优点如下所示

1) 通过CGI 程序编程时无需设置环境变量,所需IP地址 REMOTE-ADDR 变量中就已提供,从而使 BOA有更好的移植性,并且使用方便。

2) BOA服务器中有些模块可以直接进行任意的剪裁,从而大大提高系统的性能,同时可以提高系统运行速度;

3) BOA服务器是开源的,用户可以获取全部的代码进行相应的裁剪,并且性能高,占用系统资源少,因此速度更快。

BOA移植过程如下:

1) 下载 Boa 源码

2) 生成 Makefile 文件,其命令为:

[root@hdjd src]# ./configure

3) 修改Makefile文件。由于本系统所用到的交叉编译器连接工具是 arm-linux-gcc,所以我们还要修改Makefile文件:

CC = /usr/local/arm/3.4.1/bin/arm-linux-gcc

CPP = /usr/local/arm/3.4.1/bin/arm-linux-gcc E

4) 交叉编译

[root@hdjd src]# make

5) 去除调试信息减小体积

[root@hdjd src]# /usr/local/arm/3.4.1/bin/arm-linux-strip boa

6) BOA服务器的配置

BOA移植完成后还需要配置相关参数使其使其支持 CGI 程序的运行。BOA服务器配置过程中需要在/etc目录下建立一个BOA目录,用来存放其配置文件 boa.conf。一般情况下BOA源码下自带一个示例 boa.conf,我们只需在示例 boa.conf中根据系统的具体要求进行修改,不同的系统,需要进行配置不同。最后把编译好的可执行文件BOA加到文件系统中,对其进行移植,操作步骤如下:

1) 拷贝编译好的 BOA可执行程序放到根文件系统的/bin 目录下;

2) 在文件系统的/etc 目录下建立 boa 目录,拷贝 boa.conf 文件到/etc/boa/目录下;

3) 在文件系统的/var 目录下建立 log www 目录,在/var/www 目录下建立 cgi-bin目录,将我们自己编写的 index.html 及相关 Web 网页文件放在/var/www 目录下;

4) 由于嵌入式板上的程序是只读的,所以为了使系统在启动时自动运行BOA 服务器,我们还需要修改 Linux 操作系统的启动文件。在 Linux 操作系统的/etc/init.d/rcS 文件中加入一行:/bin/boa这样系统在启动时就会去自动地执行这 boa 这个脚本。

5) 重新生成文件系统,烧写进嵌入式远程监控系统的 FLASH 存储器中,即完成了BOA服务器的移植。

4.3.2 远程监控与 CGI 编程

远程控制过程中,前端的 RS-485 总线将采集到的数据传送至嵌入式 ARM 板中的 BOA服务器中,客户端PC通过访问 BOA 服务器来获取前端请求表单数据。该数据通过适合浏览器的 html文件返回给PC机客户端,供浏览器访问,当然数据存储还有其他的方式使得别的程序也能处理该数据

CGI是外部应用程序与WEB服务器数据交互的端口CGI脚本是 Web服务器上的可执行程序,服务器通过执行CGI脚本来响应请求。简而言之,CGI 就是可运行在服务器上的一段程序,客户端修改和调用[48-52]执行CGI 脚本程序后,客户端的信息通过服务器传送给此程序,该脚本程序处理完客户信息后,将运行结果回送给服务器,服务器就循环传递客户端进数据和信息。CGI 的作用体现在处理一些表单和搜索引擎,其工作模式如图4.7

4.7 CGI 数据交换模式

在系统运行时CGI 请求通过客户端浏览器进行上传,当服务器进程接收到该请求时,将设置相应的环境变量使得CGI 程序服务器可直接进行交互。在本系统的WEB服务器设计中,用户是以表单的形式进行 CGI 数据请求,而数据获取则与所采用的HTTP 请求方法有关。CGI 程序属于可供用户编程的外部程序,它被定义一种接口,只是被定义为 HTTP 服务器与可执行程序之间起到联通的作用要想在服务器端运行,我们需要将其编译成可执行文件。要想通过浏览器就可以显示所有返回的数据,只需在客户端调用 CGI 程序

在对本系统的远程监控过程中,由于C语言的可移植性强,我们采用 C 语言来编写 CGI 程序实现动态 Web 页面以及程序的高可移植性CGI 的程序编写HTML 代码和 C 代码两个部分组成,而系统功能框图如图4.8所示。

4.8 系统功能框架图

Web 服务器接受请求数据后,通过 CGI程序来进行处理,CGI 程序与 BOA 服务器之间以命令行参数、环境变量和标准输入等方式通信。CGI 程序分为以下几部分来编写

1) 根据 POST 方法或 GET 方法,接收客户端提交的数据。

2) URL 编码的解码。

3) 根据上一步的结构,判断请求的具体意义,并传送消息给应用程序主进程,来响应客户端请求,如时间设置、数据采集和系统重启;然后执行结果通过应用程序返回给 CGI 进程,并有CGI进程产生 HTML 源代码,并将最终的结果返回给浏览器。

最终编写的代码如下:

#include

#include

#include "myhdr.h"

#include "cgihead.h"

int datareceive();

int intoreboot();

int reboot_system();

int settimeshow();

int settime();

int main(int argc,char* argv[]){

char *querystring;

struct splitback string,tmp;

int i;

int flag = 1;

flag = strcmp(argv[0],"/home/httpd/cgi-bin/config.cgi");

querystring=getenv("QUERY_STRING"); /*获取环境变量*/

string=splitstring(querystring,'&'); /*&分离获取的变量*/

for(i=0;i<(string.count);i++){

tmp=splitstring(string.stringout[i],'=');

snprintf(string.stringout[i],100,"%s",tmp.stringout[1]);

}

/*根据 flag 标志确定跳转到不同的功能模块*/

if(strcmp(string.stringout[0],"55")==0)

datareceive();

else if(strcmp(string.stringout[0],"33")==0)

intoreboot();

else if(strcmp(string.stringout[0],"34")==0)

reboot_system();

else if(strcmp(string.stringout[0],"52")==0)

settimeshow();

else if(strcmp(string.stringout[0],"53")==0)

settime();

else if(strcmp(string.stringout[0],"150")==0)

about();

else

printf("System error!");

return(0);81

");

#endif

return(0);

}

/*************************************************/

// reboot_system() 系统重启函数

//获取客户机的控制命令,重启系统

/**************************************************/

int reboot_system(){

printf("Content-type:text/html\n\n");

printf("

content=now>");

printf("");

printf("

");

#if defined (HHTECH_CGI_CHINESE)

printf("系统正在重新启动,请在几秒钟之后重新登录...");

printf("

登录 onClick=\"location='/login.html'\">

");

if(vfork() == 0){

close(0);

execl("/sbin/reboot","/sbin/reboot",NULL);

return 0;}

#else

printf("The gateway is rebooting......");

printf("You can re-connect to the router after serveral seconds...");

printf("

");

#endif

printf("

");

faintsystem2("reboot");

}

/*************************************************/

// settimeshow() 设置时间显示界面函数

// web 网页的形式显示到客户机,供客户端设置时间

/**************************************************/

int settimeshow() {

time_t tm;79

}

/*************************************************/

// datareceive() 读取 A/D 转换结果函数

//将结果以 web 网页的形式显示到客户机

/**************************************************/

int datareceive(){

int adc_fd,ret;

int adc_value = 0;

adc_fd = open(DEVICE_NAME, O_RDWR); /*打开设备节点*/

if (adc_fd == -1)

{

printf("open device %s error\n",DEVICE_NAME);

}

ret = read(adc_fd, &adc_value, sizeof adc_value); /*读取转换结果*/

printf("Content-type:text/html\n\n");

printf("

</span><span class='_25'>数据采集</span><span class='_25'>

系统电压采集

采集到当前系统电压值为:

/

/

name=hour>

确定>

当前系统时间

最后将编译编写好的 CGI 程序,并将产生的二进制文件存储在var/www/cgi-bin/目录下,使得CGI程序具有可执行性

4.4 本章小结

合理的系统软件结构保证了基于网络的嵌入式远程监控系统可以稳定高效地运行。本章在对系统软件结构进行介绍之后,详细介绍了构成软件系统的各个部分,包括:BootLoader、操作系统的移植、文件系统的移植。为后续驱动软件和应用软件的编写提供了系统软件平台。然后介绍了 Linux 设备驱动的原理和开发方法。在分析了网路设备驱动的体系结构基础上,详细介绍了 CS8900 网络控制芯片驱动的开发过程和方法;最后针对电源模块设计了 S3C2440AA/D 转换驱动,实现对系统电压的数字量采集。最后介绍了 Web服务器 Boa 的移植和应用及动态 Web 页面的开发技术,构建了一个操作简便的用户应用平台。



5 系统集成测试

5.1 测试环境与方法

客户端:PC 兼容机,Pentimu(R)4CPU2.80GHz,内存:512M

操作系统:双操作系统,其中 Windows Windows XP Professional SP2Linux RedHat9.0

网络:机房百兆局域网。

远程监控终端:自行设计的嵌入式监控终端如图 5-1 所示,该系统以 S3C2440A 为核心,64MB NandFlash 64MB SDRAM,10M 以太网口。

测试方法:将监控终端置于实验室机房,通过机房局域网登陆监控终端 Web 服务器,根据设计要求逐项测试功能。

5-1 嵌入式远程监控系统测试平台

5.2 功能测试

通过将远程 PC 机作为客户端,利用 Linux 操作系统下的 IE 访问 Web 服务器,在IE 中输入远程监控系统的 IP 地址:http://192.168.0.1,显示如图 5-2 所示登陆主界面:

5-2 系统登录主页面

在主界面客户端的浏览器直接登录到BOA Web Server 上,这时客户端和设备之间并没有数据的交换,所以 Boa 不需要调用 CGI 函数来处理这次请求。当点击数据采集这个超链接后,在客户端发出请求后,这时 BOA就会调用 CGI 函数来传递数据,实现信息的交换。

1. 点击数据采集后,如图 5-3 所示采集到的当前系统电压值。

5-3 数据采集页面

2.点击时间设置后,在相应的项目下填入设定的时间如图 5-4 所示:

5-4 修改系统时间界面

填入完成后,点击确定按钮,这时 Web Server 就会改变设备的系统时间,然而 BOA返回给客户端浏览器时间设置成功界面如图 5-5 所示:

5-5 时间修改成功界面

3.点击系统重启按钮后,系统进入是否要重启远程系统界面,如图 5-6 所示:

3.点击系统重启按钮后,系统进入是否要重启远程系统界面,如图 5-6 所示:

5-6 系统重启操作界面

点击确定按钮后,远程系统开始重启,如图 5-7 所示:

5-7 系统重启成功界面

5.3 性能测试

当系统构建完成后,还要对其进行稳定性、安全性等方面的调试,这是开发过程中必不可少的环节。

1、实时性问题。从功能测试结果中分析,在 BOA Web Server 应用到远程控制体系中时,能及时的响应客户端的请求,并将结果及时的返回到客户端浏览器。在建立连接的初期,信息可能有几秒钟的延迟,在消息建立后,这个延迟会消失,测试在 1 分钟内不停登陆系统采集数据 30 次,系统能实时的显示数据,Boa Web Server 和客户端之间能及时的通信,嵌入式 Web 服务器所表现的性能也很稳定,没有出现延时和 Web 服务器死机的现象。

2、稳定性问题。系统在运行多种功能时能够顺利的得到结果,同时也进行了多次掉电测试,掉电后上电时能系统能够自启动并运行相应程序,验证了程序和功能上智能化。重复进行上面测试,结果完全相同。说明了系统功能具有较好的稳定性。

5.4 本章小结

本章主要介绍了设计的系统的测试方面的问题。首先介绍了测试的环境与方法,然后着重测试了系统的功能和性能。本章的环节在整个设计中也是非常关键的,本人调试的过程并没有想象中那么简单,出现过很多问题,然后不断在软件和硬件上找问题,逐一的解决。经过多次调试,终于得到了一个稳定性和实时性的系统,让我的付出也得到了回报。

6 总结与展望

6.1 工作总结

本文研究设计了基于网络的嵌入式远程监控系统,用户利用 IE 浏览器即可进行远程监控。系统实现了实时电压采集、系统时间设置和系统重启的功能。概括起来,本文的具体研究工作及特色主要体现在以下几个方面:

1) 采用三星公司的 S3C2440AARM920T 内核)高性能嵌入式处理器为核心,针对基于网络的嵌入式远程监控系统需要的各个功能进行方案分析与器件选型,并完成了嵌入式网络监控器的原理图设计与硬件实现;

2) 嵌入式硬件平台上构建了一个适合本系统开发要求的嵌入式 Linux 系统软件平台。主要进行了系统启动引导程序 BootLoader 的设计,以及嵌入式 Linux 内核的定制,添加了相关网络协议,删减了与系统无关的驱动模块,得到一个短小精悍的嵌入式 Linux内核;成功移植了可读写的嵌入式文件系统 YAFFS

3) 研究了 Linux 设备驱动的工作原理和开发方法,开发了 CS8900 网路控制器的驱动程序,实现了系统与 Internet 的连接;编写了 S3C2440A A/D 转换驱动程序,实现对系统电压的实时采集;

4) 构建了嵌入式 Web 服务器并编写 CGI 程序,实现了通过动态 Web 页面远程监控现场的设备,用户通过浏览器就可以采集系统电压、设置系统时间、远程对系统重启。虽然本文中所开发的硬件系统和软件系统实用而方便,但不可避免都存在一些漏洞和缺陷,有待于进一步的改进和完善。

6.2 工作展望

由于精力和水平的限制,本系统只是实现了基本的远程监控功能。要想成为一个真正功能强大的商业级的产品,显然还有许多工作要做,这里对本系统下一步的工作提出以下几点展望:

1) Web Server CGI 程序进行改进,同时在硬件上做一些扩充,使系统能处理一些较复杂的控制,如视频采集、温湿度采集等,可以实现对被控对象更好的控制。

2) 远程设备监控维护的安全问题。进行远程监控时,若某用户知道终端的 IP 地址就可访问终端设备,可设置不同的权限,用户需密码验证方能登陆;大量数据通过各种介质在多点之间传输,如果不加保护的话,极易受到黑客的攻击,今后将在防火墙、虚拟目录、数据加密等安全措施方面展开工作。

3) 在实际应中,可能会因为各种需要而要求系统保存现场设备采集的大量数据,由于嵌入式系统的存储空间有限,因此必须借助其它存储区扩展数据容量,所以接下来需要在存储这方面开展工作。

由于本人理论水平及实践能力有限,论文中难免有一些不成熟和欠妥之处,恳请诸位老师、专家批评指正。



参考文献

[1] 张恒宇,大型机械设备远程监测分析系统的设计与研究,大连理工大学硕士论文,2007.

[2] David Seal. ARM Architecture Reference Manual Addison-Wesley 2000.

[3] 江虹,吕杨,嵌入式系统的发展及挑战[J]. 云南大学学报,2007Vol.29(S2):286-289.

[4] 田泽.嵌入式系统开发与应用[M]. 北京:北京航空航天大学出版社,2005.

[5] 潘伟森,基于网络的嵌入式远程监控系统的设计与实现,华东交通大学硕士论文,2008.

[6] Aacck W. Szyrnensky. Embedded Internet Technology in Process Control

Device[J].IEEE.9,2004:35-37

[7] 康强.嵌入式Internet多设备的Web监控研究与研制[D].大连理工大学硕士学位论文,2004

[8] 黄卫东,晓军,基于ARM嵌入系统的动态WEB技术的研究与实现[J].微计算机信息,2007,23(6-2):148-150

[9] 王勇,姚亦峰,陈抗生.一种嵌入式系统接入Internet的方法实现。电子技术[J].2000(9):12-15.

[10]Burton H.Lee. Embedded Internet Systems :Poised for Takeom [J]. 1998:25-27

[11]Ohan Sakinnan. Integrate Internet Solutions you’re your Energy Management Network.IEEE.3,2008:18-20

[12]Kevin Dankwardt. Real-Time and Linux, Part2:The preemptible Kernel.

Embedded Linux Journal.20O2.18(8):26-30

[13] V. Olive, S. Martin, A. Vareille. OS for embedded systems: state of the art and prospects[J]. Microelectronic Engineering, 2000, Vol. 54(1-2): 113-121.

[14] 黄卫东,晓军,基于ARM嵌入系统的动态WEB技术的研究与实现.微计算机信息,200723(6-2):148-150.

[15] 魏洪兴,谌卫军,康一梅,.嵌入式系统设计师教程[M].北京:清华大学出版社,2006:2

[16] 王晓霄.基于现场总线的嵌入式远程监控系统的设计与实现[D].广西师范大学硕士论文,2008.

[17]Luo Z C, Liu C Q,Luo D S. Research on the industrial remote monitoring system with B/S framework[J]. Process Automation Instrumentation, 2010, 31(10):32-34

[18] 孟旭霞.基于嵌入式Web的远程监控系统的研究与实现[D].广西:广西师范大学,2008

[19] PengLiu, Guojun Dai and Tingting Fu, A web services based email extension for remote motinoring of embedded system. Proeeedings –SNPD 2007: Eighth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel Distributed Computing, 2007(2):412-416.

[20] 张静,叶梧等.基于ARM920T的嵌入式Linux系统开发.现代电子技术,2005(4):22-24.

[21]张望池,冯光焰.基于ARM920T的嵌入式网络应用平台构建[7].无线电工程,2006,36(4):4-7.

[22] Zhu D, He W. Performance test system for noncombustible material based on embedded MPU[J]. Instrument Techniques and Sensor, 2010,1; 38-41

[23] Wei W,Jiang A P,Lu T J, et al Design of an 8-bit low-cost embedded MCU core [J]. Microcomputer Information,2007,29: 1-3

[24] 林晓飞,刘彬,张辉,基于ARM嵌入式Linux应用开发与实例教程,清华大学出版社,2007.

[25]朱继杭,杨世蔬基于AT91RM9200uboot移植方法〔J.仪器仪表用户,2005.7148张和君,张跃.基于GNU工具的嵌入式Bootloader设计与开发[J].计算机工程,2006,32(15).:277-279.

[26]刘森等.嵌入式接口设计与Linux驱动程序开发[M].北京:北京航空航天大

学出版社,2006.

[27] Hanzalek Z., Schmieder E.and Wenzel P,Creation of the laboratory for

Fieldbus-based automation systems, Computer Standards & Interfaces,

1999(21):128-129

[28] L Sha R Rajkumar, J Leboczky. Priority Inheritance protocols:An Approach to Real-Time Synchronization[J].IEEE Trans on Computers,1990,39(9):1175-1185.

[29]王洪涛.基于ARM的嵌入式网络控制系统研究[D].哈尔滨理工大学硕士学

位论文,2009

[30] Wayne Wolf. Computers as Component: Principles of Embedded Computing

System Design[J].Morgran Kaufmann,2001

[31] Williams T. Designers looking for the road to distributed real-time systems[J] Computer Design.9,2003

[32] Etxebarria A,Oleaqordia I,Sanehez M,Telelaboratory:Real-time remote access in Internet, [J]. Computer and Computational Engineering in Control,1999:375-379

[33]刘森等.嵌入式接口设计与Linux驱动程序开发[M].北京:北京航空航天大

学出版社,2006.

[34]刘文峰,李程远等.嵌入式Linux操作系统的研究[JJ.浙江大学学报(工学版),2004,38(4):447-452

[35]许信顺,贾智平等.嵌入式Linux应用编程[M].机械工业出版社,2007.

[36]孙纪坤.嵌入式 Linux 系统开发技术详解[M]. 北京:人民邮电出版社,2006

[37]袁俊杰,曹作良.基于Linux嵌入式系统开发平台的建立=J.天津理工大学学报,2006,22(3):26-29.

[38]康涌泉,桑楠等.嵌入式Linux交叉开发环境[J].计算机应用,

2006,26(6):261-263.

[39]刘凯,余立建.基于嵌入式Linux系统的远程数据采集〔J].计算机应用,

2006,26(6):264-265.

[40]黄贤英,李玉桃.基于Linux的嵌入式实时数据库的设计[J.微计算机信息,

2007,23(1-2):118-120.

[41]Ran F, Yang H,Huang S P. Design of real-time color video capture system for area array CCD[J]. Optics and Precision Engineering, 2010,18(1): 273-280

[42]Wang Y W, Liu G X. Design of video capture system based on V4L[J]. Railway Computer Application, 2010, 19(7): 30-34

[43]Huang J. Design and implementation of video capture card based on DSP and PCI[J]. Computer Measurement & Control, 2010,18(1): 226-229

[44]Wang, John Y A. Frame-accurate video capturing system and method. US

Patents: 6289163[P],Nov-09-2001

[45]袁毅.基于嵌入式Web服务器的网络视频监控[J].电网技术,2000,24(5):71-73

[46]催春来,.基于Internet的远程测控技术研究及其在智能家庭中的应用=D].湖南大学硕士毕亚论厂2004.

[47]耿海霞,陈启军等.基于web的远程控制机器人研究[J],2002,24(4):375-37

[48] S.H.YangX.Chen,J.L.Alty.Design Issues and Implement of lntemet-Based Process Control Engineering Praetice.2003(11):709-720.

[49] Andrews Tanenbaum.Computer Networks(Fourth edition),Prentice Hall,2004.1.

[50] Zhang Z Y,Zhao L H,Tan M M,et aL Study on MCU based programmable frequency detector [J]. 2011,328-330: 2036-2039

[51]刘伟,李小武,罗明.CGI技术全面接触[M].北京:清华大学出版社,2001

[52]付保川,王中杰,班建民,.基于CGI嵌入式监控系统动态数据交互的

实现[J]. 2005,31(24): 196-198

本文来源:https://www.2haoxitong.net/k/doc/876e336ab5daa58da0116c175f0e7cd1842518c3.html

《毕业设计-网络环境下ARM嵌入式监控技术的研究.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式