嵌入式工业控制网络的实现方案
基于嵌入式Linux的工控系统以嵌入式微处理器为核心来运行嵌入式Linux操作系统。应用程序可通过网络进行更新,并可通过键盘进行人机对话,数据可通过LCD现场显示,重要数据可用文件形式保存在Flash等闪存存储器中;数据和报警信息可通过串口向上位机传输,也可以通过以太网向工业以太网或Internet发布,用户还可通过网络实现远程监控和远程维护。更为关键的是,可充分利用Internet上已有的软件和协议(如:ftp,http以及Apache PHP MySQL等应用程序)迅速搭建前台数据采集系统,以实现测控系统和后台管理系统的通讯。这种方式的优点有:
(1)不需专用的通信线路即可用现成的Inter-net网络将数据传送到任何地方。
(2)不仅能够传递数据信号,也可以传递音频和图像信号。
(3) 由于目前的Internet协议是现成和公开的,因此,利用大到几十兆的 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处理器,以及速度可达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 软件设计
嵌入式操作系统是整个嵌入式系统的核心。如前面所述,嵌入式系统在内存容量和存储容量不足的情况下,必须对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公司的DOC 2000作为系统的启动设备时,引导代码可以放在DOC上。这样?3系统加电后,引导代码即可进行基本的硬件初始化,然后把内核映象装入内存并运行,最后,再将调试好的内核和应用程序烧录到闪存中。由于此时裁剪后的Linux已成功移植到目标平台上,因此,在启动可运行的开发系统时,就可以根据具体的应用来开发应用程序。如数据采集模块、数据处理模块、通信和数据发布模块等等。
嵌入式工业控制网络的实现方案
基于嵌入式Linux的工控系统以嵌入式微处理器为核心来运行嵌入式Linux操作系统。应用程序可通过网络进行更新,并可通过键盘进行人机对话,数据可通过LCD现场显示,重要数据可用文件形式保存在Flash等闪存存储器中;数据和报警信息可通过串口向上位机传输,也可以通过以太网向工业以太网或Internet发布,用户还可通过网络实现远程监控和远程维护。更为关键的是,可充分利用Internet上已有的软件和协议(如:ftp,http以及Apache PHP MySQL等应用程序)迅速搭建前台数据采集系统,以实现测控系统和后台管理系统的通讯。这种方式的优点有:
(1)不需专用的通信线路即可用现成的Inter-net网络将数据传送到任何地方。
(2)不仅能够传递数据信号,也可以传递音频和图像信号。
(3) 由于目前的Internet协议是现成和公开的,因此,利用大到几十兆的 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处理器,以及速度可达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 软件设计
嵌入式操作系统是整个嵌入式系统的核心。如前面所述,嵌入式系统在内存容量和存储容量不足的情况下,必须对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公司的DOC 2000作为系统的启动设备时,引导代码可以放在DOC上。这样?3系统加电后,引导代码即可进行基本的硬件初始化,然后把内核映象装入内存并运行,最后,再将调试好的内核和应用程序烧录到闪存中。由于此时裁剪后的Linux已成功移植到目标平台上,因此,在启动可运行的开发系统时,就可以根据具体的应用来开发应用程序。如数据采集模块、数据处理模块、通信和数据发布模块等等。
举报