跟着Internet的飞速开展,网络运用越来越广泛,对各种工业操控设备的网络功用要求也越来越高。当时的要求是期望工业操控设备能够支撑TCP/IP以及其它Internet协议,然后能够经过用户了解的浏览器查看设备状况、设置设备参数,或许将设备收集到的数据经过网络传送到Windows或Unix/Linux服务器上的数据库中。
这就要求工控体系有必要具有两方面的功用:
一是要在现场完结杂乱的测控使命,因为一般一些使命都具有必定的实时性要求;
二是要求测控体系能够与某一类型的操控网相连,以完结长途监控。在现在运用的大多数测控体系中,嵌入式体系的硬件选用的是8/16位单片机;软件多选用汇编语言编程,因为这些程序仅包含一些简略的循环处理操控流程。
因而,单片机与单片机或上位机之间的通讯一般经过RS232、RS485来组网。这些网络存在通讯速度慢、联网功用差、开发困难等问题。工业以太网已逐步完善,在工业操控范畴取得越来越多的运用。工业以太网运用的是TCP/IP协议,因而便于联网,并具有高速操控网络的长处。
嵌入式Linux技能
嵌入式Linux是依照嵌入式操作体系的要求而规划的一种小型操作体系,它由一个Kernel(内核)及一些依据需求进行定制的体系模块组成。Kernel一般只要几百kB左右,即便加上其它有必要的模块和运用程序,所需的存储空间也很小。它具有多使命、多进程的体系特征,有些还具有实时性。一个小型的嵌入式Linux体系只需求引导程序、Linux微内核、初始化进程3个根本元素。运转嵌入式Linux的CPU可所以X86、Alpha、Sparc、MIPS、PPC等。与这些芯片调配的主板都很小,一般只要一张PCI卡巨细,有的乃至更小。嵌入式Linux所需的存储器不是软磁盘、硬盘、Zip盘、CD-ROM、DVD这些众所周知的惯例存储器,它首要运用Rom、CompactFlash、M-Systems的DiskOnChip、Sony的MemorySTIck、IBM的MicroDrive等体积极小(与主板上的BIOS巨细附近),且存储容量不太大的存储器。它的内存能够运用一般的内存,也能够运用专用的RAM。
与其它嵌入式操作体系比较,Linux的源代码是敞开的,不存在黑箱技能。Linux作为一种可裁剪的软件渠道体系,很或许开展成为未来嵌入式设备产品的绝佳资源。Linux与生俱来的优异网络血缘更为往后的开展铺平了一条广大平整的大道。因而,在坚持Linux内核体系更小、更安稳、更具价格竞争力等优势的一起,对体系内核进行实时性优化,愈加使之能够习惯对工业操控范畴高实时性的要求。这也正是嵌入式Linux操作体系在嵌入式工控体系中的开展地点。一起也使Linux成为嵌入式操作体系中的新贵。
规范的Linux内核一般驻留在内存中,每一个运用程序都是从磁盘运到内存上履行。当程序完毕后,它所占用的内存就被开释,程序就被下载了。而在一个嵌入式体系里,或许没有磁盘。有两种途径能够消除对磁盘的依靠,一是在一个简略的体系里,当体系发动后,内核和一切的运用程序都存在内存里。这是大多数传统的嵌入式体系的作业办法,相同Linux。第二种便是Linux所特有的功用,因为Linux已经有才能“加载”和“卸载”程序,因而,一个嵌入式体系就能够使用它来节约内存。一个比较典型的体系有大约8MB到16MB的闪存和8MBRAM,而闪存能够被用作文件体系。用闪存驱动程序作为从闪存到文件体系的界面便是一种挑选。当然,也能够用一个闪存磁盘。用闪存来脱节体系对一个磁盘的需求(依靠)具有DiskOnChip技能以及CompactFlash卡等办法。
用来衔接FlashMemory和文件体系的程序都以文件办法存储在Flash文件中,需求时能够装入内存,这种动态的、依据需求加载的才能是支撑其它一系列功用的重要特征。它能使初始化代码在体系引导后被开释。实际上,Linux相同还有许多内核外运转的共用程序,这些程序一般在初始化时运转一次,今后就不再运转。并且,这些共用程序能够用它们彼此共有的办法一个接一个地按次序运转。这样,相同内存空间能够被重复运用以“召入”每一个程序,就象体系引导相同。这样能够节约内存,特别是那些装备一次今后就不再更改的网络仓库。假如将Linux可加载模块的功用包含在内核里,驱动程序和运用程序就都能够被加载。因为它能够查看硬件环境并且为硬件装上相应的软件,然后消除了用一个程序占用许多FlashMemory来处理多种硬件的杂乱性。别的,软件的晋级愈加模块化,能够在体系运转时在Flashh上晋级运用程序和加载驱动程序,其装备信息和运转时刻参数能够作为数据文件储存在Flash中。
嵌入式工业操控网络的完结计划
依据嵌入式Linux的工控体系以嵌入式微处理器为中心来运转嵌入式Linux操作体系。运用程序可经过网络进行更新,并可经过键盘进行人机对话,数据可经过LCD现场显现,重要数据可用文件办法保存在Flash等闪存存储器中;数据和报警信息可经过串口向上位机传输,也能够经过以太网向工业以太网或Internet发布,用户还可经过网络完结长途监控和长途维护。更为要害的是,可充分使用Internet上已有的软件和协议(如:ftp,http以及ApachePHPMySQL等运用程序)敏捷建立前台数据收集体系,以完结测控体系和后台办理体系的通讯。这种办法的长处有:
(1)不需专用的通讯线路即可用现成的Inter-net网络将数据传送到任何地方。
(2)不只能够传递数据信号,也能够传递音频和图画信号。
(3)因为现在的Internet协议是现成和揭露的,因而,使用大到几十兆的MicrosofTIE浏览器,或小到只要600KB的Mosaic浏览器都能够对网络数据进行读取。
体系规划
1硬件规划
嵌入式体系的硬件运转渠道是开发运用程序的根底,整个开发板可依据IntelRSA-1110微处理器架构。[next]
嵌入式体系的硬件结构框图。该硬件针对网络服务的运用挑选了Intel系列中的StrongARMMCU。StrongARMSA-1110是一款高功能、低价位、高集成度微处理器。SA-1110芯片内部集成有能以206MHz运转的32-biTIntelStron-ggARMRISC处理器,以及速度可达100MHz的存储器总线和灵敏的存储器操控器,可支撑SDRAM、SMROM以及variable-latencyI/O设备,并可为体系规划供给较高的存储带宽。因为SA-1110能够习惯较大流量的网络运用,因而可为运转Linux供给硬件上的支撑。此外,SA-1110还在开发板上集成有32MB的SDRAM、8MB的Flash、10baseT以太网接口、RS232/RS485串口、I/O接口以及扩展Flash卡存储器等。有关SA-1110更详细的材料可参阅有关材料。
2软件规划
嵌入式操作体系是整个嵌入式体系的中心。如前面所述,嵌入式体系在内存容量和存储容量缺乏的情况下,有必要对Linux进行削减规划。在裁剪过程中,所触及的首要技能有下面几种。
(1)内核的精简
规范Linux是面向PC的,它集成了许多PC所需求而嵌入式体系并不需求的功用。因而,对一些可独立加上或卸下的功用块,可在编译内核时,仅保存嵌入式体系所需的功用模块,而删去不需求的功用块。这样,从头编译过的内核就会明显减小。
(2)虚拟内存机制的屏蔽
经过剖析发现,虚拟内存是导致Linux实时性不强的原因之一。在工业操控中,一些使命要满意必定的实时性要求,屏蔽内核的虚拟内存办理机制能够增强Linux的实时性。当要更改内核的某项机制时,一般不用大规模地写代码,可选用条件编译的办法。一起因为Linux体系对运用进程选用的是公正的时刻分配调度算法,但这一算法也不能确保体系的实时性要求,因而要求对其进行更改。更改途径有两种:一是经过POSIX,二是经过底层编程。笔者是经过Linux的实时有名管道(FIFO)的特别行列来处理实时使命的先后次序。实际上,实时有名管道就象实时使命相同从不换页,因而能够大
(3)设备驱动程序的编写
确认了内核的根本功用后,就要为特定的设备编写驱动程序,可依照在Linux下编写驱动程序的规矩进行编写。编写的设备驱动程序应当具有以下功用:
●对设备进行初始化和开释;
●完结数据从内核到硬件设备的传送和从硬件读取数据两项功用;
●读取运用程序传递给设备文件的数据以及回送运用程序恳求的数据;
●检测和处理设备呈现的过错。
(4)开发依据闪存的文件体系JFFS
运用程序和重要数据一般以文件的办法被存放在闪存文件体系中。JFFS2文件体系是日志结构化的,这意味着它根本上是一长列节点。每个节点包含着有关文件的部分信息。JFFS2是专门为象闪存芯片那样的嵌入式设备创立的,所以它的整个规划供给了更好的闪存办理,因而具有其它文件体系不行比较的长处。详细如下:
●JFFS2在扇区级别上履行闪存擦除/写/读操作要比Ext2文件体系好。
●JFFS2供给了比Ext2fs更好的溃散/掉电安全维护。当需求更改少数数据时,Ext2文件体系会将整个扇区复制到内存(DRAM)中,并在内存中合并成新数据再写回整个扇区。而JFFS2则能够随时更改需求的(不是重写)整个扇区,一起还具有溃散/掉电安全维护功用。
完结上述几个过程后,一个小型的Linux操作体系就结构完结了。结构后的Linux包含进程办理、内存办理和文件办理等三部分。它支撑多使命并行,有完好的TCP/IP协议,一起Linux内建有对以太网操控器的支撑,能够经过以太网口连到以太网上,以完结长途装备与监控。
将裁剪好的内核移植到所用的方针板上时,首要应将内核编译成针对该处理器的方针代码。因为不同硬件体系的移植发动代码会有所不同,因而,一些内核程序或许要改写。触及到编写Linux的引导代码和修正与体系结构相关部分代码首要是发动引导、内存办理和中止处理部分。将M-System公司的DOC2000作为体系的发动设备时,引导代码能够放在DOC上。这样3体系加电后,引导代码即可进行根本的硬件初始化,然后把内核映象装入内存并运转,最终,再将调试好的内核和运用程序烧录到闪存中。因为此刻裁剪后的Linux已成功移植到方针渠道上,因而,在发动可运转的开发体系时,就能够依据详细的运用来开发运用程序。如数据收集模块、数据处理模块、通讯和数据发布模块等等。
完毕语
现在,互联网运用正在转到以嵌入式设备为中心,因而,用工控体系与Internet相结合来完结网络化已是一种必定的趋势。而把嵌入式Linux微处理器内核嵌入到依据StrongARMSA1110的32位MCU体系中,然后经过结构TCP/IP多种网络协议和根本网络通讯协议,再使用嵌入式操作体系对底层硬件和网络协议的支撑,以及对工控体系实时性要求的Linux内核和虚拟内存机制进行改造,即可确保测控使命完结的实时性和牢靠性。能够预见,这种计划在工业操控范畴具有很好的运用远景,并且具有开发周期短、体系功能安稳牢靠、习惯性强等特色。