嵌入式Linux的应用基础知识介绍.doc

上传人:hw****26 文档编号:4209286 上传时间:2019-10-04 格式:DOC 页数:6 大小:38.50KB
下载 相关 举报
嵌入式Linux的应用基础知识介绍.doc_第1页
第1页 / 共6页
嵌入式Linux的应用基础知识介绍.doc_第2页
第2页 / 共6页
嵌入式Linux的应用基础知识介绍.doc_第3页
第3页 / 共6页
嵌入式Linux的应用基础知识介绍.doc_第4页
第4页 / 共6页
嵌入式Linux的应用基础知识介绍.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、 随着Internet的飞速发展,网络应用越来越广泛,对各种 工业控制设备的网络功能要求也越来越高。当前的要求是希望 工业控制设备能够支持TCP/IP以及其它Internet协议,从而能 够通过用户熟悉的浏览器查看设备状态、设置设备参数,或者 将设备采集到的数据通过网络传送到Windows或Unix/Linux服 务器上的数据库中。 这就要求工控系统 必须具备两方面的功能: 一是要在现场完成复杂的测控任务,因为通常一些任务都 具有一定的实时性要求; 二是要求测控系统能够与某一类型的控制网相连,以实现 远程监控。在目前应用的大多数测控系统中,嵌入式系统的硬 件采用的是8/16位单片机;软件多采用

2、汇编语言编程,由于这 些程序仅包含一些简单的循环处理控制流程。 因此,单片机与单片机或上位机之间的通信通常通过 RS232、RS485来组网。这些网络存在通信速度慢、联网功能差、 开发困难等问题。工业以太网已逐步完善,在工业控制领域获 得越来越多的应用。工业以太网使用的是TCP/IP协议,因而便 于联网,并具有高速控制网络的优点。 嵌入式Linux技术 嵌入式Linux是按照嵌入式操作系统的要求而设计的一种 小型操作系统,它由一个Kernel(内核)及一些根据需要进行定 制的系统模块组成。Kernel一般只有几百kB左右,即使加上其 它必须的模块和应用程序,所需的存储空间也很小。它具有多 任务

3、、多进程的系统特征,有些还具有实时性。一个小型的嵌 入式Linux系统只需要引导程序、Linux微内核、初始化进程3 个基本元素。运行嵌入式Linux的CPU可以是 X86、Alpha、Sparc、MIPS、PPC等。与这些芯片搭配的主板都 很小,通常只有一张PCI卡大小,有的甚至更小。嵌入式Linux 所需的存储器不是软磁盘、硬盘、Zip盘、CD-ROM、DVD这些众 所周知的常规存储器,它主要使用Rom、CompactFlash、M- Systems的Disk On Chip、Sony的Memory Stick、IBM的 MicroDrive等体积极小(与主板上的BIOS大小相近),且存储

4、容 量不太大的存储器。它的内存可以使用普通的内存,也可以使 用专用的RAM。 与其它嵌入式操作系统相比,Linux的源代码是开放的, 不存在黑箱技术。Linux作为一种可裁剪的软件平台系统,很 可能发展成为未来嵌入式设备产品的绝佳资源。Linux与生俱 来的优秀网络血统更为今后的发展铺平了一条宽广平坦的大路。 因此,在保持Linux内核系统更小、更稳定、更具价格竞争力 等优势的同时,对系统内核进行实时性优化,更加使之能够适 应对工业控制领域高实时性的要求。这也正是嵌入式Linux操 作系统在嵌入式工控系统中的发展所在。同时也使Linux成为 嵌入式操作系统中的新贵。 标准的Linux内核通常驻

5、留在内存中,每一个应用程序都 是从磁盘运到内存上执行。当程序结束后,它所占用的内存就 被释放,程序就被下载了。而在一个嵌入式系统里,可能没有 磁盘。有两种途径可以消除对磁盘的依赖,一是在一个简单的 系统里,当系统启动后,内核和所有的应用程序都存在内存里。 这是大多数传统的嵌入式系统的工作模式,同样Linux。第二 种就是Linux所特有的功能,因为Linux已经有能力“加载” 和 “卸载” 程序,因此,一个嵌入式系统就可以利用它来节省内存。 一个比较典型的系统有大约8MB到16MB的闪存和8MB RAM,而闪 存可以被用作文件系统。用闪存驱动程序作为从闪存到文件系 统的界面就是一种选择。当然,

6、也可以用一个闪存磁盘。用闪 存来摆脱系统对一个磁盘的需求(依赖)具有Disk On Chip技术 以及CompactFlash卡等方式。 用来连接Flash Memory和文件系统的程序都以文件形式存 储在Flash文件中,需要时可以装入内存,这种动态的、根据 需要加载的能力是支持其它一系列功能的重要特征。它能使初 始化代码在系统引导后被释放。实际上,Linux同样还有很多 内核外运行的公用程序,这些程序通常在初始化时运行一次, 以后就不再运行。而且,这些公用程序可以用它们相互共有的 方式一个接一个地按顺序运行。这样,相同内存空间可以被反 复使用以“召入” 每一个程序,就象系统引导一样。这样可

7、以节 省内存,特别是那些配置一次以后就不再更改的网络堆栈。如 果将Linux可加载模块的功能包括在内核里,驱动程序和应用 程序就都可以被加载。由于它可以检查硬件环境并且为硬件装 上相应的软件,从而消除了用一个程序占用许多Flash Memory 来处理多种硬件的复杂性。另外,软件的升级更加模块化,可 以在系统运行时在Flashh上升级应用程序和加载驱动程序,其 配置信息和运行时间参数可以作为数据文件储存在Flash中。 嵌入式工业控制网络 的实现方案 基于嵌入式Linux的工控系统以嵌入式微处理器为核心来 运行嵌入式Linux操作系统。应用程序可通过网络进行更新, 并可通过键盘进行人机对话,数

8、据可通过LCD现场显示,重要 数据可用文件形式保存在Flash等闪存存储器中;数据和报警信 息可通过串口向上位机传输,也可以通过以太网向工业以太网 或Internet发布,用户还可通过网络实现远程监控和远程维护。 更为关键的是,可充分利用Internet上已有的软件和协议(如: ftp,http以及Apache PHP MySQL等应用程序)迅速搭建前台数 据采集系统,以实现测控系统和后台管理系统的通讯。这种方 式的优点有: (1)不需专用的通信线路即可用现成的Inter-net网络将数 据传送到任何地方。 (2)不仅能够传递数据信号,也可以传递音频和图像信号。 (3) 由于目前的Intern

9、et协议是现成和公开的,因此,利 用大到几十兆的 Microsoft IE浏览器,或小到只有600 KB的 Mosaic浏览器都可以对网络数据进行读取。 系统设计 1 硬件设计 嵌入式系统的硬件运行平台是开发应用程序的基础,整个 开发板可基于IntelRSA-1110 微处理器架构。 嵌入式系统的硬件结构框图。该硬件针对网络服务的应用 选择了Intel系列中的Strong ARM MCU。Strong ARM SA-1110 是一款高性能、低价位、高集成度微处理器。SA-1110芯片内 部集成有能以206MHz运行的32-bit Intel Stron-ggarm RISC 处理器,以及速度可

10、达100MHz的存储器总线和灵活的存储器控 制器,可支持SDRAM、SMROM以及variable-latency I/O 设备, 并可为系统设计提供较高的存储带宽。由于SA-1110可以适应 较大流量的网络应用,因而可为运行Linux提供硬件上的支持。 此外,SA-1110还在开发板上集成有32MB的SDRAM、8MB的 Flash、10 base T以太网接口、RS232/RS485串口、I/O接口以 及扩展Flash卡存储器等。有关SA-1110更详细的资料可参考有 关资料。 2 软件设计 嵌入式操作系统是整个嵌入式系统的核心。如前面所述, 嵌入式系统在内存容量和存储容量不足的情况下,必

11、须对 Linux进行裁减设计。在裁剪过程中,所涉及的主要技术有下 面几种。 (1)内核的精简 标准Linux是面向PC的,它集成了许多PC所需要而嵌入式 系统并不需要的功能。因此,对一些可独立加上或卸下的功能 块,可在编译内核时,仅保留嵌入式系统所需的功能模块,而 删除不需要的功能块。这样,重新编译过的内核就会显著减小。 (2)虚拟内存机制的屏蔽 经过分析发现,虚拟内存是导致Linux实时性不强的原因 之一。在工业控制中,一些任务要满足一定的实时性要求,屏 蔽内核的虚拟内存管理机制可以增强Linux的实时性。当要更 改内核的某项机制时,一般不必大规模地写代码,可采用条件 编译的方法。同时由于L

12、inux系统对应用进程采用的是公平的 时间分配调度算法,但这一算法也不能保证系统的实时性要求, 因此要求对其进行更改。更改途径有两种:一是通过POSIX, 二是通过底层编程。笔者是通过Linux的实时有名管道(FIFO) 的特殊队列来处理实时任务的先后顺序。实际上,实时有名管 道就象实时任务一样从不换页,因而可以大大减少由于内存翻 页而造成的不确定延时。 (3)设备驱动程序的编写 确定了内核的基本功能后,就要为特定的设备编写驱动程 序,可按照在Linux下编写驱动程序的规则进行编写。编写的 设备驱动程序应当具有以下功能: 对设备进行初始化和释放; 完成数据从内核到硬件设备的传送和从硬件读取数据

13、两 项功能; 读取应用程序传递给设备文件的数据以及回送应用程序 请求的数据; 检测和处理设备出现的错误。 (4)开发基于闪存的文件系统JFFS 应用程序和重要数据通常以文件的形式被存放在闪存文件 系统中。JFFS2 文件系统是日志结构化的,这意味着它基本上 是一长列节点。每个节点包含着有关文件的部分信息。JFFS2 是专门为象闪存芯片那样的嵌入式设备创建的,所以它的整个 设计提供了更好的闪存管理,因而具有其它文件系统不可比拟 的优点。具体如下: JFFS2 在扇区级别上执行闪存擦除/写/读操作要比 Ext2文件系统好。 JFFS2 提供了比 Ext2fs 更好的崩溃/掉电安全保护。 当需要更改

14、少量数据时,Ext2文件系统会将整个扇区复制到内 存(DRAM)中,并在内存中合并成新数据再写回整个扇区。而 JFFS2 则可以随时更改需要的(不是重写)整个扇区,同时还具 有崩溃/掉电安全保护功能。 实现上述几个步骤后,一个小型的Linux操作系统就构造 完成了。构造后的Linux包括进程管理、内存管理和文件管理 等三部分。它支持多任务并行,有完整的TCP/IP协议,同时 Linux内建有对以太网控制器的支持,可以通过以太网口连到 以太网上,以实现远程配置与监控。 将裁剪好的内核移植到所用的目标板上时,首先应将内核 编译成针对该处理器的目标代码。由于不同硬件体系的移植启 动代码会有所不同,因

15、此,一些内核程序可能要改写。涉及到 编写Linux的引导代码和修改与体系结构相关部分代码主要是 启动引导、内存管理和中断处理部分。将M-System公司的DOC 2000作为系统的启动设备时,引导代码可以放在DOC上。这样 3 系统加电后,引导代码即可进行基本的硬件初始化,然后 把内核映象装入内存并运行,最后,再将调试好的内核和应用 程序烧录到闪存中。由于此时裁剪后的Linux已成功移植到目 标平台上,因此,在启动可运行的开发系统时,就可以根据具体 的应用来开发应用程序。如数据采集模块、数据处理模块、通 信和数据发布模块等等。 结束语 如今,互联网应用正在转到以嵌入式设备为中心,因此, 用工控系统与Internet相结合来实现网络化已是一种必然的趋 势。而把嵌入式Linux微处理器内核嵌入到基于Strongarm SA1110 的32位MCU系统中,然后通过构造TCP/IP 多种网络协 议和基本网络通信协议,再利用嵌入式操作系统对底层硬件和 网络协议的支持,以及对工控系统实时性要求的Linux内核和 虚拟内存机制进行改造,即可保证测控任务完成的实时性和可 靠性。可以预见,这种方案在工业控制领域具有很好的应用前 景,而且具有开发周期短、系统性能稳定可靠、适应性强等特 点。 作者:小叶女贞

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。