当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]本文提出的基于嵌入式Linux的远程监控系统的方案已在小型局域网中得到实现。该系统在工业现场、远程诊断、信息家电中有着很好的应用前景。

1 引 言

单片机和微控制器在工业现场控制领域已得到广泛的应用,但这些控制系统通常采用RS232或RS485组网,作用距离短。如今,Internet飞速发展,已成为信息交流的重要渠道。而且,基于Web的B/S远程监控模式技术也越来越成熟。如果将这种模式应用于工业现场控制领域,则用户只要在有Internet接入的地方,就可以对工业现场设备进行远程监控。将其应用于家庭,则可以朝家电信息化迈出关键的一步。

上述系统的实现离不开嵌入式操作系统。后PC时代,随着嵌入式系统的广泛应用,嵌入式操作系统也越来越受到重视。嵌入式操作系统具有结构小巧、实时性强、稳定性高等特点。目前,商用嵌入式操作系统比较多,如Vxworks,QNX,Nucleaus,WinCE等,但价格都很昂贵,并不适合广泛应用。

嵌入式Linux为这个问题提供了良好的解决方案,其开放的源代码、强大的技术支持、良好的可扩展性及对众多硬件的支持都是它嵌入化的优势。所以我们选择嵌入式linux为操作平台,结合成熟的Web技术来进行远程监控系统的设计。

2 系统结构

该远程控制系统利用Internet/Intranet网络资源,只需一台联网的PC客户机,就可实现对远程设备状态的监视和控制。这里,我们提出系统结构的两种设计方案,如图1、2所示。



两种方案都利用了Internet/Intranet网络资源。不同的是,在方案一中,使用了一台PC机作为代理服务器接入Internet网络,这样便可利用代理服务器提供强大的数据库功能。该方案适用于测量设备较多,相对集中的场合。嵌入式设备可通过以太网线直接与服务器相连,这样,嵌入式设备实际上只需要实现一个以太网到RS232的转换。但是,在某些嵌入式的应用环境中,并不适合单独使用一台PC机作服务器,因此,我们提出方案二,嵌入式设备作为Web Server直接接入Internet/Intranet。嵌入式设备运行一个操作系统并在此基础之上实现WebServer的功能,这对系统硬件要求比较高,再加上小型嵌入式数据库技术的不成熟,使得它在数据管理方面稍有欠缺。尽管如此,我们仍采用方案二,因为我们认为它代表着嵌入式系统的发展方向,其应用范围更为广泛,并且,随着软硬件水平的不断提高,上述的缺点都是可以克服的。

我们的方案中,硬件上采用32位Motorola微处理器,2M Flash,16M SDRAM,及必要的外围设备即可满足系统的要求。

3 系统软件设计

3.1 Linux的选择

由于Linux过于庞大,要将它应用于小巧的嵌入式系统,首先必须将其小型化。目前,出现了各种不同的嵌入式Linux版本,有一些还具有一定的实时性。我们首先依据自己所选择的CPU类型,以公开的嵌入式Linux源代码为基础,根据自己设计的主板情况编写相应的bootloader程序或BIOS,运行自己的系统。一旦加载上了嵌入式Linux,则对于上层应用软件的编程与在运行普通Linux的PC机上一样,所有的程序都可以先在Linux的PC机上调试通过,然后只需要修改MakeFile文件,就可以完全移植到嵌入式Linux设备上运行。如果编译嵌入式Linux时选择网络文件系统(NFS),则调试的时候可利用gdbserver,省去了无数次下载程序的麻烦。这种方法有很大的灵活性与自由度,但也要注意到,由于硬件的配置不同,或程序本身原因,网上下载的源代码未必都合适,这需要自己对照源码去调试与发现。

3.2 应用程序设计

3.2.1 C/S(Client/Server)模式与B/S(Browser/Server)模式传统的C/S模式采用两层设计,客户应用层负责提供交互界面,实现应用逻辑以发送数据、请求并处理返回数据;数据库服务器层负责处理客户数据请求并返回结果,有效管理系统资源。该模式需独立开发和安装每个应用,系统升级维护困难,客户机负担重。此外,与数据库的直接交互导致应用程序对数据结构有很强的依赖性,且浪费数据库连接资源。

基于二层结构的C/S模式无法适应Internet网络的特性,因此出现了一种新的体系结构——B/S模式。B/S是一种基于Hyperlink,HTML,Java的三级或多级C/S,客户端仅需要单一的浏览器软件,其它大量工作都由Web Sever完成。B/S模式使用简单、易于维护、扩展性好,已逐渐成为主流。


3.2.2 客户端工作过程

该系统使用的是B/S模式,对客户端几乎没有特别要求。客户端只要基于普通Windows视窗系统,安装IE或Netscape即可。换句话说,任何一台上网的计算机,都可能成为客户端。

客户端的工作过程如下:通过Internet/Intranet网络访问监控中心的主页,根据需要输入用户名和密码,检验成功则进入Web Server系统的监控界面,点击相应的设备按钮可以获得该设备的运行状态并可以对设备的参数进行设置。


3.2.3 服务器端程序的设计

(1)服务器模式

为了进行服务器端程序的设计,首先要确定服务器的工作模型。我们知道,Linux系统网络服务器主要分为两种:循环服务器(Iterative Server)和并发服务器(ConcurrentServer)。循环服务器在同一时刻只能处理一个客户机请求,而并发服务器在同一时刻可以处理多个客户机请求。TCP套接字大多采用并发服务器提供服务。TCP并发服务器有多种实现方法:

·服务器对每个接收到的客户连接都创建一个新的子进程来处理客户请求;

·服务器预先创建多个子进程,由这些子进程处理客户机的请求。这种方式称为“预创建(prefork)”服务器;

·服务器用函数select实现对多个客户机连接的多路复用;

·由超级服务器(Inetd)激活的服务器。

其中,一个子进程对应一个客户机的服务器模型很简单,父进程完成接收连接和创建子进程的任务,子进程处理客户机的具体请求,每个子进程的处理过程完全独立。

这种服务器可以同时处理的客户机数目受到系统所允许的最大子进程数目的限制。这种服务器的缺点是,为每一个客户创建一个子进程的开销比较大。但如果我们能考虑到实际情况,并加以适当的变化,就会发现,它很适合我们的系统。首先,该系统是一个监控系统,决定了不会有过多客户同时发出监控命令,所以无须担心出现系统资源被耗尽的情况;其次,客户一旦进行监控,一般会持续较长时间,这种创建子进程的开销对服务器效率影响不大;最后,如果系统在Internet上运行,可能会有许多外来的好奇者想进入,为了减少开销,在系统设计中,并不是一旦建立连接就创建子进程,而是当口令通过后并向系统发出ASP请求才建立子进程。

(2)程序设计

根据我们的方案,服务器所需做的工作是:通过串口对设备进行数据的收发;对数据进行处理;将处理的数据交给Web Server子进程;子进程将数据显示到Web页下传给客户,并接收客户的参数设置命令,将参数设置上传到远程设备。

服务器程序结构如图4所示,父进程首先创建一个子进程专门处理数据,然后再根据用户的请求创建相对应的子进程。用户子进程与串口数据处理子进程之间采用进程间通信来实现数据交换。

服务器启动之后的第一件事,就是创建专用子进程来收发数据。服务器任何时刻都在监听用户请求。若用户发出监控请求,而且通过了密码校验,服务器就会产生一个子进程来处理该用户的请求:发送数据,接收设置等。

4 结束语

身处信息社会,人们已经能够利用网络资源快捷方便地获得信息,并能利用网络资源进行各种设备的远程监控。本文提出的基于嵌入式Linux的远程监控系统的方案已在小型局域网中得到实现。该系统在工业现场、远程诊断、信息家电中有着很好的应用前景。 (编辑:chiying)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭