0 引言
目前,国内大多数闸门控制系统采用的是强电接触器的硬接线方式 ,而且多为20世纪七八十年代的产品,已严重老化,达不到运行可靠性要求,存在着严重的安全隐患。同时,闸室多依河道而建 ,闸门间距少则近百米 ,多则上千米 ,因无法实现集中控制而使得闸门反应速度慢 ,无法应对诸如突发性大水等特殊情况。目前,闸室调水主要由工作人员靠经验目测,造成了水资源的大量浪费 ,如何提高闸门控制的智能化、实现闸门的集中控制,是急需解决的问题。
现代计算机技术的发展为解决上述问题提供了技术支持,尤其是Linux嵌入式系统的发展与应用。Linux系统具有体积小、可裁减、运行速度高、网络性能良好等优点 ,而且具有源码公开、可以免费使用等特点,这些都使得Linux系统得以快速发展和广泛应用,并使嵌入式Linux系统在闸门控制中的应用成为可能。随着Linux2.6内核的发布,在嵌入式系统市场 ,Linux向主流的实时操作系统供应商提出了挑战,例如VxWorks和WinCE,它们具有许多新的特性,将成为更优秀的嵌入式操作系统。
嵌入式Linux系统具有高性能、高可靠性 ,并具有多媒体电脑特点,特别适用于工业现场控制和远程图像监控。
针对上述闸门控制中急需解决的问题以及嵌入式Linux系统的特点,本文对嵌入式Linux系统的闸门智能控制系统进行设计和探讨。系统采用了先进的计算机传感器技术,对多路闸位、水位进行实时跟踪显示,并提供相应的闸门闭环控制模型,使水资源利用率达到最优。
1 嵌入式Linux系统的构建
1.1 嵌入式闸门控制系统的主要性能要求
1)具有高可靠性、高响应性 ,能在一定程度上达到或接近实时操作系统的性能。
2)系统整机能适应较恶劣的工作环境,而且功耗低。
3)有一定的多媒体(图像、声音)处理能力。
4)有性能良好的图形用户接口(GUI)解决方案 ,以及方便、实用的人机接口。
5)系统有一定的伸缩能力,能支持通用的硬件设计。
针对上述性能要求,本设计将首先构建一个基本操作系统,并在此基础上构建闸门控制系统[1]。
1.2 操作系统平台的选择
在众多主流嵌入式操作系统中选择Linux2.6作为操作系统的内核 ,主要基于以下考虑:
1)Linux是一个公开源代码的操作系统,可以形成具有自主知识产权的操作系统。
2)Linux采用微内核结构,内核部分(含进程调度、内存管理、文件管理、设备驱动等)一般不大于1MB,即使加上小型的GUI系统也不会大于16MB,比较适合嵌入式系统的要求。
3)Linux2.6内核引进了内核抢占式的调度功能,因此 ,响应时间相比以前的内核有大幅度缩减。
4)Linux支持多种硬件体系结构。在开发初期,为了缩短开发周期,可以先选择支持x86的奔腾系列处理器平台;后期在进行很少改动的前提下,就可移植到其他硬件平台上。
1.3 操作系统的开发流程
本系统的定制主要有2个部分:一是系统内核及基本根文件系统的定制 ,二是GUI的实现[2]。
1.3.1 系统内核及根文件系统定制
定制一个4MB~8MB的基本Linux系统,提供如下基本操作系统功能:多进程、多用户;文件、内存管理;用户操作终端。这部分工作是后续系统定制和应用软件开发的基础。
采用2.6版本以上内核,在编译中加入内核抢占式调度功能、Ramdisk支持、中文字符集支持。根据文件系统只读部分采用 Ext2 文件系统 ,读写部分可采用Cramdisk等嵌入式文件系统。此部分的工作主要有:建立交叉编译环境;剪裁内核(这是一个反复的过程);剪裁根文件系统 ,建立运行环境,编写各个运行脚本;提供基本硬件的支持。
1.3.2 GUI的实现
基于X2Server定制一个16MB~32MB的X2Windows环境,能提供较丰富的GUI功能。提供一个系统自动运行的程序,使开机至工程启动的时间控制在30s内,并在此基础上提供中文输入功能。GUI的实现是为基于此平台的闸门控制软件提供图形库操作接口,使得该软件具有较好的人机交互界面。
此部分的工作主要有:编写 X2Windows的各种配置文件;剪裁其不需要的程序,只保留基本程序;编写X2Windows 的各个脚本文件[3]。
2 系统的硬件结构
在本设计中 ,闸门控制系统由闸门操作、视频采集和水情监测3个部分组成。基本结构如图1所示。