位置:51电子网 » 技术资料 » 嵌入式系统

基于Linux的嵌入式闸门智能监控系统

发布时间:2008/5/27 0:00:00 访问次数:292

  摘要:介绍了基于linux 操作系统的嵌入式闸门智能监控系统,探讨了针对该系统的linux 个性化定制方法,并对今后采用jffs 文件系统做了展望。

  关键词:linux ;嵌入式系统;闸门智能监控

 引言

  闸门系统是水资源调度中重要的组成部分,国内目前多采用手动和部分电动的操作方式,真正实现闸门的智能控制还少有报道。文中采用的是基于linux 操作系统的嵌入式技术,实现水利工程闸门的集视频监控与水位、闸位、库容、流量等参数实时监控一体化的本地/ 远程自动监控。

linux 与嵌入式系统

  嵌入式系统是一种以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应实际应用对功能、可靠性、成本、体积、功耗等要求严格的专用计算机系统。它面向特定应用,有较高的可靠性和较长的市场生命周期。由于嵌入式系统的功能越来越复杂,硬件条件越来越好,选择合适的嵌入式操作系统成为系统开发的关键问题。

  目前嵌入式系统的开发方法主要有两种:一是依赖现有商业软件提供的开发平台和组件,如vxworks ,uc/os ,windows ce ,qnx等等,其技术成熟,功能强大,提供大量可用函数调用接口,大大缩短了产品的开发周期,但是价格不菲;二是基于自由软件linux 做开发,根据自己系统的需求进行定制,并且不必为获得使用许可而支付额外的费用,可大大降低开发成本。

  linux 是一个以unix 核心为基础的、多任务多进程的嵌入式操作系统,支持广泛的计算机硬件。开发人员可以根据自己的需要对操作系统进行自行修改和定制,它有大量的开放的应用代码可以使用,并且linux 有可支持多达11 种操作平台的c ,c ++ ,object c 编译器gcc ,功能强大,执行效率高出一般编译器20 %~30 %。在基于linux 的嵌入式操作系统中,有许多改良品种迎合了嵌入式/ 实时市场,包括rtlinux(实时linux) 、μclinux(用于非mmu 内存管理单元处理器的linux) 、montavista linux(用于arm、mips、ppc 的linux 分发版) 、arm2linux(arm 上的linux) 等等。针对目前闸门智能监控系统对操作的实时性要求并不高的特点,我们在本次应用中选用linux2.4.22 内核基础上的red hat 9. 0 作为开发环境。

linux 定制

 内核配置

  由于嵌入式系统的存储空间有限,因而要将linux 用于嵌入式系统就必须对其定制,即要对内核中不必要的模块诸如scsi、floppy 之类的外设支持模块等进行裁减。

  (1) 清除设置环境     make mrproper

  (2) 设置配置 make config

  (3) 编译内核及模块 make dep ;make clean ;make bzimage ;make modules

  编译出的内核文件为/ usr/ src/ linux/ arch/ i386/ boot/ bzimage及/ usr/ src/ linux/ system. map

 制作系统电子盘

  在标准linux 环境下,将电子盘mount 到/ ramdisk 上,在电子盘上制作引导和启动。

  (1) 修改lilo. conf 文件,系统直接从电子盘启动。

  (2) 创建一个内核文件系统ext2 :mke2f s - i 8192 - m 0/ dev/ ram 50 ,并在/ ramdisk 目录下,建立运行系统所必需的目录文件:bin dev etc lib mnt proc sbin tmp usr var ,以及各个目录下必要的文件,特别是应用程序所需要的库文件。

  (3) 将内核文件放入ramdisk : # dd if = bzimage of = / dev/ ram bs = 1k. 并加载根系统文件: # dd if = /tmp/ ram-image. gz of = / dev/ fd0 bs = 1k seek = 内核数据块数。其中ram-image. gzj 是压缩后的根系统文件,内核数据块数就是内核的大小。

快速启动及开机画面

  由于该系统是基于rad hat 910 基础之上开发的,因此启动过程较长,从系统加电直至系统控制台显示“login :”为止,需要三十多秒的时间。通过测试,内核启动时有大量的时间耗费在硬件初始化上。例如linux 一共要探测20 个ide 接口(包括主、从盘) ,通过修改linux 源代码中max-hwifs 的定义值,由10 改为1 ,以减少linux探测ide 接口的时间来缩短系统启动的时间。真正加快启动时间,则是通过改写rc. sysinit ,rc 等启动脚本,让系统只做必要的硬件模块的初始化工作及服务来达到目的。

  快速启动时只需显示用户定义的界面,可将256 色640x480 象素的1pcx 或1tif 格式的图片数据替换linuxlogo.h 中原有的数据,并对driver/ video/ fbcon. c 源代码做少量修改,将宏定义logo- h 80 改为640 ,logo- w 80改为480 ,并修改相应的函数。

非正常关机

  在系统使用过程中,为了方便用户使用,应该支持非正常关机,即在直接切断电源的情况下避免可能引发的问题。通常采用ext2 文件系统是非日志型文件系统,系统在重新启动时会耗费大量的时间来检查文件系统,有时甚至产生致命错误(fatal error) ,强迫用户手工使用命令fsck 检查文件系统。

  摘要:介绍了基于linux 操作系统的嵌入式闸门智能监控系统,探讨了针对该系统的linux 个性化定制方法,并对今后采用jffs 文件系统做了展望。

  关键词:linux ;嵌入式系统;闸门智能监控

 引言

  闸门系统是水资源调度中重要的组成部分,国内目前多采用手动和部分电动的操作方式,真正实现闸门的智能控制还少有报道。文中采用的是基于linux 操作系统的嵌入式技术,实现水利工程闸门的集视频监控与水位、闸位、库容、流量等参数实时监控一体化的本地/ 远程自动监控。

linux 与嵌入式系统

  嵌入式系统是一种以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应实际应用对功能、可靠性、成本、体积、功耗等要求严格的专用计算机系统。它面向特定应用,有较高的可靠性和较长的市场生命周期。由于嵌入式系统的功能越来越复杂,硬件条件越来越好,选择合适的嵌入式操作系统成为系统开发的关键问题。

  目前嵌入式系统的开发方法主要有两种:一是依赖现有商业软件提供的开发平台和组件,如vxworks ,uc/os ,windows ce ,qnx等等,其技术成熟,功能强大,提供大量可用函数调用接口,大大缩短了产品的开发周期,但是价格不菲;二是基于自由软件linux 做开发,根据自己系统的需求进行定制,并且不必为获得使用许可而支付额外的费用,可大大降低开发成本。

  linux 是一个以unix 核心为基础的、多任务多进程的嵌入式操作系统,支持广泛的计算机硬件。开发人员可以根据自己的需要对操作系统进行自行修改和定制,它有大量的开放的应用代码可以使用,并且linux 有可支持多达11 种操作平台的c ,c ++ ,object c 编译器gcc ,功能强大,执行效率高出一般编译器20 %~30 %。在基于linux 的嵌入式操作系统中,有许多改良品种迎合了嵌入式/ 实时市场,包括rtlinux(实时linux) 、μclinux(用于非mmu 内存管理单元处理器的linux) 、montavista linux(用于arm、mips、ppc 的linux 分发版) 、arm2linux(arm 上的linux) 等等。针对目前闸门智能监控系统对操作的实时性要求并不高的特点,我们在本次应用中选用linux2.4.22 内核基础上的red hat 9. 0 作为开发环境。

linux 定制

 内核配置

  由于嵌入式系统的存储空间有限,因而要将linux 用于嵌入式系统就必须对其定制,即要对内核中不必要的模块诸如scsi、floppy 之类的外设支持模块等进行裁减。

  (1) 清除设置环境     make mrproper

  (2) 设置配置 make config

  (3) 编译内核及模块 make dep ;make clean ;make bzimage ;make modules

  编译出的内核文件为/ usr/ src/ linux/ arch/ i386/ boot/ bzimage及/ usr/ src/ linux/ system. map

 制作系统电子盘

  在标准linux 环境下,将电子盘mount 到/ ramdisk 上,在电子盘上制作引导和启动。

  (1) 修改lilo. conf 文件,系统直接从电子盘启动。

  (2) 创建一个内核文件系统ext2 :mke2f s - i 8192 - m 0/ dev/ ram 50 ,并在/ ramdisk 目录下,建立运行系统所必需的目录文件:bin dev etc lib mnt proc sbin tmp usr var ,以及各个目录下必要的文件,特别是应用程序所需要的库文件。

  (3) 将内核文件放入ramdisk : # dd if = bzimage of = / dev/ ram bs = 1k. 并加载根系统文件: # dd if = /tmp/ ram-image. gz of = / dev/ fd0 bs = 1k seek = 内核数据块数。其中ram-image. gzj 是压缩后的根系统文件,内核数据块数就是内核的大小。

快速启动及开机画面

  由于该系统是基于rad hat 910 基础之上开发的,因此启动过程较长,从系统加电直至系统控制台显示“login :”为止,需要三十多秒的时间。通过测试,内核启动时有大量的时间耗费在硬件初始化上。例如linux 一共要探测20 个ide 接口(包括主、从盘) ,通过修改linux 源代码中max-hwifs 的定义值,由10 改为1 ,以减少linux探测ide 接口的时间来缩短系统启动的时间。真正加快启动时间,则是通过改写rc. sysinit ,rc 等启动脚本,让系统只做必要的硬件模块的初始化工作及服务来达到目的。

  快速启动时只需显示用户定义的界面,可将256 色640x480 象素的1pcx 或1tif 格式的图片数据替换linuxlogo.h 中原有的数据,并对driver/ video/ fbcon. c 源代码做少量修改,将宏定义logo- h 80 改为640 ,logo- w 80改为480 ,并修改相应的函数。

非正常关机

  在系统使用过程中,为了方便用户使用,应该支持非正常关机,即在直接切断电源的情况下避免可能引发的问题。通常采用ext2 文件系统是非日志型文件系统,系统在重新启动时会耗费大量的时间来检查文件系统,有时甚至产生致命错误(fatal error) ,强迫用户手工使用命令fsck 检查文件系统。

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!