1 引 言
单片机和微控制器在工业现场控制领域已得到广泛的应用,但这些控制系统通常采用RS232或RS485组网,作用距离短。如今,Internet飞速发展,已成为信息交流的重要渠道。而且,基于Web的B/S远程监控模式技术也越来越成熟。如果将这种模式应用于工业现场控制领域,则用户只要在有Internet接入的地方,就可以对工业现场设备进行远程监控。将其应用于家庭,则可以朝家电信息化迈出关键的一步。
上述系统的实现离不开嵌入式操作系统" title="嵌入式操作系统" target="_blank">嵌入式操作系统。后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系统的监控界面,点击相应的设备按钮可以获得该设备的运行状态并可以对设备的参数进行设置。