1、浙江科技学院本科毕业设计 (论文 ) 1 基于 ARM的嵌入式远程控制系统的研究与应用 徐永强 (自动化与电气工程学院 指导教师:邵世凡 ) 摘要: 计算机技术发展到今天,嵌入式系统的应用越来越广泛:嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含 5-10 个嵌入式微处理器。而随着网络技术日新月异的发展,各种网络器件成为嵌入式系统新的应用。微处理器产生后,价格低廉、结构小巧的 CPU 和外设连接提供了稳定可靠的硬件架构。 20 世纪 90 年代, ARM32 位嵌入式 RISC 处理器扩展到世界范围,占据了低功耗、低成本和高性能 的嵌入式系统应用领域的领先地
2、位。 Linux 因其可应用于多种硬件平台;是免费软件,源代码可以得到;微内核,本身内置网络支持和高度模块化等优点,非常适合做嵌入式开发的操作系统。 Uclinux 是 Linux 的一个分支,是专为没有 MMU(内存管理单元)的 CPU 而设计的。 本论文主要研究了基于 ARM 的嵌入式 Linux 开发。这个研究开发是在实践的基础上完成的,设计了以三星 ARM7TDMI CPU 为核心的嵌入式硬件系统,并在此基础上嵌入 Uclinux 操作系统,在 uclinux 系统上可以开发各种应用,本文主要研究了其中一个 应用 -嵌入式 WEB 服务器,该 WEB 服务器采用 HTTP 协议。我们已
3、经成功解决了 ARM 的开发难题,研究了 ARM的开发方案,以及 uclinux 针对 ARM 的移植难题,这在嵌入式系统研究领域,有较高的实践和研究价值。我们所研究的这个嵌入式系统具有低成本,高效率的特点,值得推广。最后本论文对所做的工作地总结并展望了本嵌入式系统的其它应用。 关键词: 嵌入式 ; WEB 服务器 ; 远程控制 ; ARM; Internet 应用 Abstract:With the rapid development of computer technology,embedded system is more and more widely used. By now, em
4、bedded computer system is much more than common computer in quantity: there are about 5-10 microprocessor in the peripheral equipment of a computer. At the mean time, lots of network equipments become the new application environment of embedded system since the progressively development of network t
5、echnology. The cheap and powerful microprocessor and various kinds of peripheral equipments have make the hardware frames of all kinds of embedded applications stable and reliable. Since 1990s ,ARM which is 32-bit embedded RISC microprocessor,has been spread to the range of the world and occupied in
6、 the field of application of 浙江科技学院本科毕业设计 (论文 ) 2 low consumption, low cost and high performance embedded system. Because its excellent kernel design and application performance, Linux is running on many kinds of hardware .Linux also owns other merits such as its free source code, its inherit networ
7、king functions and its modularization design in kernel. Therefore Linux is very suitable to be the operate system of embedded system. uClinux is a branch of embedded Linux And it is designed for NO-MMU CPU. In this thesis, the embedded Linux system based on ARM has been developed .The embedded hardw
8、are system was designed taking Samsung ARM7TDMI CPU as core. And a small uClinux system can be developed. This thesis introduces one application embedded web server and its protocol-HTTP. We have already solved the problem of developing ARM and rescarched the project of developing ARM.The important
9、thing is that we successfully solved the difficultyes of porting uClinux into ARM hardware platform. This provides with a higher practice and research value in the field of studying embedded system. Our embedded system has the characters of low cost and high efficiency. At last, a sum-up and prospec
10、t of some other usage of Linux embedded system are given. Keywords: Embedded; WEB servers; Remoto control; ARM; Internet Application 1 前 言 随着互联网技术在全球的飞速发展,网络技术广泛应用于各种企业和工业系统,越来越多的信息化产品需要能够接入互联网通过 web 页面进行远程访问和控制。嵌入式 web 服务器是当今研究嵌入式的应用热点,可广泛的应用到工业设备,自动化农业,信息化家电,远程监控报警系统等。目前正在开发的嵌入式系统中,将近一半的项目都选用 Linu
11、x 作为嵌入式操作系统,而 uClinux 是一个经过对标准 Linux 内核改动, 高度优化、代码紧凑的嵌入式 Linux 它保留了Linux 的大多数优点,具有良好的移植性、优秀的网络功能 123。目前,基于三星 S3C4510b与 uClinux 下 web 服务器已经实现,而基于 S3C44B045与 uClinux 下 web 服务器的实现尚不多见。本文通过网口控制芯片 RTL8109AS 与 S3C44B0 的连接,实现了硬件设计,采用 uClinux源代码和 boa 服务器源代码的编译以及 CGI 网关接口程序的编写实现了软件设计,在自行设计的 S3C44B0 开发板上实现了基于
12、 uClinux 下的 boa 服务 器和动态网页 CGI 网关接口程序,通过浙江科技学院本科毕业设计 (论文 ) 3 浏览器输入开发板的 IP 地址就可以动态地访问开发板上的网页,通过网页控制远程电机执行相关 操作 。 1.1 嵌入式系统现状及发展趋势 在当前的数字信息技术和网络技术高速发展的信息时代 ,嵌入式系统已经广泛的渗入到人们的生产 ,生活等各个方面中。随着国内外嵌入式产品的进一步开发和推广 ,嵌入式技术越来越和人们的生活紧密相结合。嵌入式系统技术涉及到硬件软件技术 ,已经成为目前最热门的技术之一。 1.1.1 嵌入式系统的理解 一般来说,嵌入式系统是 执行专用功能并被内部计算机控制
13、的设备或者系 统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,用术语表示就是固件( firmware),终端用户很难或者不可能改变固件。 1.1.2 嵌入式系统特点及应用领域 与通用型计算机系统相比,嵌入式系统功耗低、可靠性高;功能强大、性能价格比高;实时性强,支持多任务;占用空间小,效率高;面向特定应用,可根据需要灵活定制。 嵌入式系统应用广泛:可用于移动计算平台 (PDA、掌上计算机 ),信息家电 (数字电视、机顶盒、网络设备 ),无线通信设备 (智能手机、股票接收设备 ),工业 /商业控制 (智能工控设备、 POS/ATM机 ),电子商务平台,甚至军事应用等诸多领域。据估计,
14、其在全球每年带来的相关工业产值已超过 1 万亿美元。 1.1.3 嵌入式系统的发展趋势 Internet 功能成为必然趋势 随着二十一世纪的来临、全球化的趋势越来越明显、 Internet 作为获取信息的便捷手段,已逐渐被人们所共识。另外,未来 Internet 接入设备将呈现多元化的特征,因此嵌入式操作系统浙江科技学院本科毕业设计 (论文 ) 4 作为嵌入式 Internet 接入设备的灵魂必然向完善的 Internet 支持方向发展,并随着 Internet 的发展而发展。 SOC( System on Chip) 随着微电子技术的快速发展,软件硬件的紧密结合, SOC 将成为趋势。这不仅
15、能降低成本、缩小产品体积,还可以增强产品的可靠性。 无线互联 近几年来,无线互联已成为发展的主流,全球知名厂商纷纷推出自己的无线互联的解决方案。嵌入式设备,特别是消费电子类产品,具有很强的移动性,所以嵌入式操作系统对于无线互联的支持显得尤为重要,以实现任何人在任何地方任何时间获取任何信息。 个性化与标准化并存 由于嵌入式设备种类繁多、千差万别,因而具有很强的个性特征。嵌入式操作系统为了满足这些需求,必须在个性化和标准化之间达到 平衡以实现最优。 嵌入式操作系统产业关联度大,市场前景好。发展嵌入式软件将有利于增强企业持续创新能力,有利于刺激消费,有利于培植新的经济增长点。中国有巨大的市场需求,有
16、从事操作系统方面的开发队伍,中国企业呼唤中国的操作系统。 1.2 嵌入式操作系统 嵌入式操作系统由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。能够运行在各种不同的硬件平台上,提供最基本的程序运行环境和接口,成为应用软件运行的基础。 1.2.1 嵌入式操作系统的概述 67 嵌入式操作系统 EOS( Embedded OperatingSystem)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。 EOS 负责嵌人系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比
17、较成功的 EOS 产品系列。随着 Internet 技术的发展、信息家电的普及应用及 EOS 的微型化和专业化, EOS 开始从单一的弱功能向高专业化的强功能方向发展。嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专浙江科技学院本科毕业设计 (论文 ) 5 用性等方面具有较为突出的特点。 嵌入 式操作系统作为嵌入式系统的核心。能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口 API;嵌入式应用软件丰富。 1.2.2 嵌入式操作系统的特点
18、实时性 在信息时代,人们需要在有效的时间里对接受的信息进行处理,为进一步的工作和决策争取时间,这就要求工作系统具有很高的实时性。所谓实时性,其核心含义在于操作系统在规定时间内准确完成应该做的事情,并且操作系统的执行线索是确定的,而不是 单纯的速度快。 大多数嵌入式操作系统工作在对实时性要求很高的场合,主要对仪器设备的动作进行检测控制,这种动作具有严格的、机械的时序;而一般的桌面操作系统基本上是根据人在键盘和鼠标发出的命令进行工作,人的动作和反应在时序上并不很严格。比如,用于控制火箭发动机的嵌入式系统,它所发出的指令不仅要求速度快,而且多个发动机之间的时序要求非常严格,否则就会失之毫厘,谬以千里
19、。在这样的应用环境中,非实时的普通操作系统无论如何是无法适应的。即使我们所开发的并不是生命攸关的或者生产控制那样的关键任务系统,例如对嵌入式 操作系统应用来说很有前途的领域 -消费电子产品,设备的高可靠性可以有效地减低维护成本,软件运行效率高也会降低对 CPU 的要求,从而降低硬件成本。对于此类价格十分敏感的产品,实时性、可靠性仍然是非常值得重视的问题。因此,实时性是嵌入式系统最大的优点,在嵌入式软件中最核心的莫过于嵌入式 RTOS 实时操作系统。 可剪裁性 能否根据悠扬的乐曲对系统的功能模块进行配置是嵌入式系统与普通系统的另一区别。这可以从以下几个方面分析: i. 从硬件环境来看,普通系统具
20、有标准化的 CPU 存储和 I/O 架构,而嵌入式环境的硬件环境只有标准化的 CPU,没有标准的存储、 I/O 和显示器单元。 ii. 从应用环境来看,桌面操作系统面向复杂多变的应用,而嵌入式操作系统面向单一设备的固定的应用。 浙江科技学院本科毕业设计 (论文 ) 6 iii. 从开发界面来看,桌面操作系统给开发人员提供一个 黑箱 ,让开发人员通过一系列标准的系统调用来使用操作系统的功能,而嵌入式试图为开发人员提供一个 白箱 ,让开发人员可以自主控制系统的所有资源。普通系统的研究开发是尽可能在不改变自身的前途下具有广泛的适应性。也就是说:不论应用环境怎么改变,都不应对自身做太多的变化。而应用于
21、嵌入式环境的 RTOS,在 研发的时候就必须立足于面向对象,改变自身、开放自身,让开发人员可以根据硬件环境和应用环境的不同而对操作系统进行灵活的裁剪和配置,因为对于任何一个具体的嵌入式设备,它的功能是确定的,因此只要从原有操作系统中把这个特定应用所需的功能拿来即可以。可剪裁性在软件工程阶段是利用软件配置方法实现软件构建的 即插即用 。 可靠性 一般来说,嵌入式系统一旦开始运行就不需要人的过多干预。在这种条件下,要求负责系统管理的嵌入式操作系统具有较高的稳定性和可靠性。而普通操作系统则不具备这种特点。这导致桌面操作环境与嵌入式环境在设计 思路上有重大的不同。 i. 桌面环境假定应用软件与操作系统
22、相比而言是不可靠的,而嵌入式环境假定应用软件与操作系统一样可靠。运行于嵌入式环境中的 RTOS 要求应用软件具有与操作系统同样的可靠性,这种设计思路对应用开发人员提出了更高的要求,同时也要求操作系统自身足够开放。 ii. 桌面操作系统比较庞大复杂,而嵌入式系统提供的资源有限,由于硬件的限制,嵌入式操作系统必须小巧简捷。对于系统来说,组成越简单、性能越可靠,组成越复杂,故障概率越大是一个常理。局部的不足会导致整体的缺陷,系统中任何部分的不可靠都会导致系统整 体的不可靠。 8910 1.2.3 嵌入式操作系统的发展趋势 目前各种嵌入式 Linux 操作系统正迅速发展,已经形成了能与 Windows
23、 CE 等嵌入式操作系统进行有力竞争的局面。嵌入式 Linux 操作系统的迅速崛起,主要由于人们对自由软件的渴望与嵌入式系统应用的特制性,要求提供系统源码层次上的支持,而嵌入式 Linux 正适应了这一需求,它不仅具有开放源代码,系统内核小、效率高、内核网络结构完整,裁减后的系统很适于如信息家电等嵌入式系统的开发。嵌入式 Linux 操作系统的产品化及可靠性是目前受制约的一个重要 因素。 浙江科技学院本科毕业设计 (论文 ) 7 微软的 Win CE 是一个较具代表性的、由桌面操作系统演变而成的实时嵌入式操作系统。虽然提供了较为强大的类似于桌面操作系统的功能,但针对嵌入式系统的特征与特性而言,
24、Win CE 显得笨拙且在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。以VxWorks 为代表的传统嵌入式操作系统是应用最广泛、市场占有率较具优势的几个系统,它们是专门为嵌入式微处理器设计的高模块化、高性能的实时操作系统,广泛应用于高科技产品中,包括消费电子设备、工业自动化、无线通信产品、医疗仪器、数字电视与多媒体设备,具有很 好的安全性、容错性以及系统灵活性。虽然它们都提供专有的 API 接口,但是缺乏应用的高效性,网络连接功能较差,系统对应用程序开发支持相对较弱。对现在复杂的、网络化的、多处理器的嵌入式系统的许多应用需要而言,它已显得力不从心。 随着硬件技术、应用需求和开发需求的
25、变化,如,微电子技术 -芯片的集成技术和片上系统;强实时、高可靠应用需求 -飞机、火箭控制等;开发需求 -信息家电需要越来越多的研究和设计人员参与嵌入系统的开发,如同台式系统一样嵌入系统需要使用方便、功能强大的开发系统,嵌入操作系统也需要支持面向对 象和可重用等技术。 11121314 1.2.4 几种主流嵌入式操作系统的比较 在嵌入式操作系统中,可供选择的有很多,比如 winCE, VxWorks, uClinux, cos 等,但是如 WinCE, VxWorks 等价格比较高的操作系统就不予考虑了。 uClinux 和 ucos 都是不错的选择。 比较 ucos 和 uClinux: u
26、cos 和 uClinux 操作系统,是当前得到广泛应用的两种免费且公开源码的嵌入式操作系统。uc/os 适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强 等特点,最小内核可编译至 2k。 uClinux 则是继承标准 linux 的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统,开发者可利用标准 linux 先验知识等优势。其编译后目标文件可控制在几百 k 量级。 ucos 是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。其内核是针对
27、实时系统的要求设计实现的,相对简单,可以满足较高的实时性要求。 uClinux 是一种优秀的 嵌入式 linux 版本 15。 uClinux 是 micro-conrol-linux 的缩写。同标准浙江科技学院本科毕业设计 (论文 ) 8 linux 相比,它集成了标准 linux 操作系统的稳定性、强大网络功能和出色的文件系统等主要优点。但是由于没有 mmu(内存管理单元 ),其多任务的实现需要一定技巧。在结构上继承了标准linux 的多任务实现方式,仅针对嵌入式处理器特点进行改良。还继承了 linux 网络操作系统的优势,可以很方便的支持网络文件系统且内嵌 TCP/IP 协议,这为 uC
28、linux 开发网络接入设备提供了便利。 根据以上比较,在开源性,结构上面 ucos 和 uClinux 都比较好,体积上 ucos 更小,但是uClinux 在网络上支持比较好,在实现多个移动机器人交互时比较方便, ucos 在实时性方面比较好, uClinux 是分时系统,如果要实现实时的话需要带有 RTlinux 模块。 鉴于我们采用 ARM 系列的高性能单片机,我们不需要采用实时性比较高的操作系统,加上考虑以后的网络扩展等, uClinux 也相对比较容易实现,加上 uClinux 资料相对多,所以最终方案决定采用 uClinux。 1.3 ARM 概述及其应用领域 ARM 即 Adv
29、anced RISC Machines 的缩写 , ARM嵌入式处理器是一种高性能、低功耗的 RISC芯片。采用 ARM技术 IP核的微处理器遍及汽车、消费电子、成像、工业控制、海量存储、网络、安保和无限等各类产品市场。目前,基于 ARM技术的处理器已经占据了 32位 RISC芯片 75的市场份额。可以说, ARM技术几乎无处不在。 1.3.1 ARM 概述 ARM( Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 161718 1991 年 ARM 公司成立于英国剑桥 ,主要出售芯片设计技术的授权。目
30、前,采用 ARM 技术知识产权( IP)核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。 ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商浙江科技学院本科毕业设计 (论文 ) 9 从 ARM 公司购买其设计的 ARM 微处 理器核,根据各自不同的应用领域,加入
31、适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 1.3.2 ARM 微处理器的特点及应用领域 采用 RISC 架构的 ARM 微处理器一般具有如下特点: 1、具有大量的寄存器。绝大多数操作都在寄存器中进行,通过 Load/Store 的体系结构在内存和寄存器之间传递数据。 2、寻址方式简 单。 3、采用固定长度的指令格式。 4、除此之外, Arm 体系采用了一些特别的技术,在保证高性
32、能的同时尽量减小芯片体积,减低芯片的功耗。这些技术包括: 5、在同一条数据处理指令中包含算术逻辑处理单元处理和移位处理。 6、使用地址自动增加(减少)来优化程序循环处理。 7、 Load/Store 指令可以批量传输数据,从而提高数据传输的效率。 8、所有指令都可以根据前面指令执行结果,决定是否执行,以提高指令执行的效率。 到目前为止, ARM 微处理器及技术的应用几乎已经深入到各个领域: 1、工业控制领域:作为 32 的 RISC 架构,基于 ARM 核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展, ARM 微控制器的低功耗、高性价比,向传统
33、的 8 位 /16 位微控制器提出了挑战。 2、无线通讯领域:目前已有超过 85%的无线通讯设备采用了 ARM 技术, ARM 以其高性能和低成本,在该领域的地位日益巩固。 3、网络应用:随着宽带技术的推广,采用 ARM 技术的 ADSL 芯片正逐步获得竞争优势。此外, ARM 在语音及视频处理上行了优化,并获得广泛支持,也对 DSP 的应用领域提出了挑战。 4、消费类电子产品: ARM 技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 浙江科技学院本科毕业设计 (论文 ) 10 5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用 ARM 技术。手机中的32 位 S
34、IM 智能卡也采用了 ARM 技术。 除此以外, ARM 微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的用。 1.3.3 ARM7TDMI 系列的原理与特点 ARM7 系列微处理器核集成了 16 位的 Thumb 指令系统,具有 32 位机的性能, 8 16 位机的成本,其低成本和低功耗的特性在消费电子领域显得尤为重要。 ARM7 系列有四种 32 位 RISC微处理器核 ARM7TDMI、 ARM7TDMI-S、 ARM7EJ-S 和 ARM720T,其微处理器核体系结构比较如 下 表所示。 ARM7 系列微处理器核体系结构比较 arm7tdmi arm7tdmi-s arm
35、7ej-s arm720t 内存管理单元 MMU * 高速缓存 Cache 8KB 外围总线接口 * Java 功能模块 * ICE 调试 * * * * ETM7 接口 * * ETM9 * Thumb 扩展 * * * * ARMv4T 指令集架构 * * ARMvT5EJ * ARM7 内核 * * * * 相比 ARM7TDMI 微处理器核而言, ARM7EJ-S 集成了增强的数字信号处理技术和 Java 技术, ARM720T 增加了高速缓存、 AHB(Advanced High-performance Bus)外部总线接口和存储器管理单元,兼容先进的嵌入式实时操作系统如 Linux、 Palm OS、 Symbian OS 和 Windows CE 等。然而, ARM7 系列微处理器核具有以下基本特性。 .Von Neumman 计算机结构; 指令执行 3 级流水线结 构,运行速度高达 0.9MIPS MHz; 代码密度高并兼容 16 的 Thumb 指令集: 嵌入式 ICE 实时调试功能;