| 网站首页 | 科技前沿 | it产品项目 | 软件项目 | 硬件项目 | 发明专利 | 商业城 | 资源中心 | 博客 | 论坛 |  子站: it客栈 多奥网
会员中心
会员注册
繁體中文
推荐:索引 linux arm 手机 嵌入式 os wince dsp 音乐 游戏
 站内搜索:
项目资讯 资源中心
您现在的位置: 爱问科技网 >> 软件项目 >> linux >> 文章正文
嵌入式Linux的注塑机控制系统解决方案           
嵌入式Linux的注塑机控制系统解决方案
作者:佚名 文章来源:不详 更新时间:2006-12-7 10:17:28
摘 要:嵌入式Linux操作系统相对WinCE、pSOS、Palm OS有很多优点,有取代其他嵌入式操作系统的趋势;使得构造一个大型机器的复杂控制系统变得简单和容易。本文结合注塑机的工艺特点,研究将嵌入式Linux操作系统应用到塑料成型控制系统中的一些关键问题,来构造其控制器的软、硬件设计思路方法。

关键词:嵌入式操作系统 实时内核 注塑机控制

  注塑机由模具锁模机构、高分子塑料在螺杆加热、液压射胶、保压成型等工序组成。精密注塑需要控制的参数多,对实时性能、控制精度、安全性、可靠性的要求较高。传统的控制系统虽然可以达到上述要求,但却存在着开发成本高、开发时间过长、扩展性差、软件升级困难、兼容性和可移植性差、网络功能有限等缺点。随着嵌入式Linux的应用,其控制系统的开发变得简单和容易。

   嵌入式Linux由一个Kernel(内核)及一些根据注塑机控制需要定制的模块组成。Kernel很小,一般只有几百KB,即使加上其他必需的模块和应用程序,所需的存储空间也很小。它有多任务、多进程的系统特征,另外还具有实时性。一个小型的嵌入式Linux系统只需要引导程序、Linux微内核、初始化进程3个基本元素。运行嵌入式Linux的CPU可以是x86、Alpha、Sparc、MIPS、PPC等。与这些芯片搭配的主板都很小,与一张PCI卡大小相当,有的甚至更小。嵌入式Linux所需的存储器不是软磁盘、硬盘、Zip盘、CD-ROM、DVD这些众所周知的常规存储器,它使用Rom、CompactFlash机和M-Systems的DiskOnChip、Sony的MemoryStick、IBM的MicroDrive等体积极小(与主板上的BIOS大小相近),存储容量不太大的存储器。它的内存可以使用普通的内存,也可以使用专用的RAM。正是这些优点,使得塑料成型控制系统的研究开发变得越来越容易和简单。

1 嵌入式Linux内核体系结构

   嵌入式Linux的内核体系结构如图1所示,内核职能有4点。

   ① 硬件抽象层(HAL)包含了所有和硬件平台相关的代码,如上下文切换和I/O寄存器访问等。它存在于嵌入式Linux的最底层,直接访问和控制硬件,对其上层的硬件提供访问和控制服务。这样,可以简化内核的移植工作,除了设备驱动程序之外,在移植的时候只须修改HAL的代码即可。

 

   ② 内核是用来为大多数程序乃至OS(网络、文件系统、驱动程序)构建一系列在抽象的文件上工作的抽象机,使用户程序及上层OS组件对系统设备透明。这个内核主要实现如下一些接口:多任务、中断、异常及定时器函数,标准C函数库,应用程序的动态加载/卸载等等。

   ③ 实时内核提供对事件优先级的调度和抢占支持,增加系统实时调度的能力。

   ④ 对应用程序提供的函数接口,专门为用户定制网络、图形、视频等接口。

   嵌入式Linux内核的实现为微内核的体系结构,如图1所示。使用微内核的体系结构,使得嵌入式Linux的体积很小,便于直接放在ROM中,实现ROM固化;同时,方便进行模块化的扩展。

2 硬件设计体系结构

   硬件体系结构如图2所示。

   图2中,微处理器选用Intel的X86芯片;Flash Memory/ROM和RAM采用我们开发的电子盘来实现(电子盘加载驱动程序后就可以取代硬盘,作用是引导和启动嵌入式Linux操作系统,实时内核和所有的应用程序都固化在这个电子盘上);以太网接口用标准的网卡来实现;并口和串口都是采用标准的硬件芯片来实现,采用32位系统总线(可以根据需要改为其他的);其他外设如液晶显示屏等,根据需要可以很方便地添加。


3 构造嵌入式Linux内核

   对构造嵌入式Linux内核框架须考虑下面几个元素:

   ① 引导Linux内核(采用BIOS引导特征标志55、AA代码);

   ② Linux微内核由内存管理、进程管理和事务处理构成;

   ③ 初始化进程;

   ④ 硬件设备驱动程序(尽量利用现有标准化的设备驱动程序);

   ⑤ 实时内核模块(从RTLinux来定制裁剪);

   ⑥ 提供所需功能的应用程序(即控制程序、控制算法的计算机实现);

   ⑦ 精简的TCP/IP网络协议栈(对标准TCP/IP网络协议栈进行裁剪定制得到)。

   实现的方法,是从标准的Linux系统资源,按照微内核(Kernel)的需求来减少,以适应诸如电子盘容量、内存容量、处理器速度以及节能限制来定制嵌入式Linux内核。系统实现步骤如下:

   ① 重新编译Linux内核,去掉内核中不需要的模块,诸如PCMCIA之类的外设支持模块等,加入自己编写的内核模块;

   ② 编写Boot Loader,制作电子盘用于加载嵌入式Linux内核到内存中;

   ③ 重新设计以太网驱动程序、串/并口驱动程序以及I/O卡驱动程序;

   ④ 设计嵌入式Linux应用程序,管理打印服务的应用。

4 实时内核的实现

   要将Linux应用到工业控制系统中,首先要解决的问题就是其实时性问题。

   本系统的实时内核是通过内核模块编程的方法来实现的。实现的途径,是参考美国新墨西哥州大学计算机科学系Victor Yodaiken和Michael Brananov开发的RTLinux,并在RTLinux的源代码基础上,结合POSIX.1b的实时扩展规范,对其定制成标准的Linux可加载/卸载的内核模块。这个模块主要提供一些必要的功能,如底层任务创建、中断服务程序,并且为底层任务、ISR和Linux进程之间进行通信排队。

   实时内核模块提供了实时任务的编程和控制接口(API)。通过使用这些API,可以提供对实时任务的创建和删除、任务调度和控制等功能,从而实现工业上的实时控制。

   实时内核提供的编程和控制接口(API)模块主要有:

   ① 中断控制API函数;

   ② 时钟控制和获取;

   ③ 线程的创建和删除以及线程优先级和调度策略的控制API函数;

   ④ POSIX方式的驱动接口;

   ⑤ FIFO设备驱动程序;

   ⑥ 串口驱动程序的API函数;

   ⑦ mbuff驱动API函数;

   ⑧ 浮点运算API函数。

   一些主要的任务处理函数:rt_task_init()用来创建并开始一个任务,能指定堆栈的大小和优先级;rt_task_make_periodic()以一定间隔周期性地设置任务运行;rt_task_wait()阻塞任务。实时任务与Linux进程之间通信的主要方法是FIFO:rtf_create()创建 一个一定大小的FIFO,用rtf_put()将数据送入FIFO,如果FIFO满,则返回一个错误。类似地,rtf_get()从FIFO中取出数据,如果FIFO空,则返回一个错误。线程管理:pthread_create()创建一个线程,pthread_delete()删除一个线程,并且释放该线程的所有资源,pthread_setschedparam()设置一个线程的调度参数。时钟函数:clock_getres()获得clock时钟的解析度,等等。

5 实验和程序调试方法

   实验装置采用486/586微机主板作为注塑机的硬件电路,用电子盘作为嵌入式操作系统的引导和启动设备,去掉硬盘、软盘和其他设备,TCP/IP接口用标准网卡来实现,调试程序的时候可以加上键盘和显示器,驱动信号从并口/串口输出(调试时)。

   以上方法,在标准Linux环境下,编写好电子盘的设备驱动程序和控制算法的计算机程序(外加I/O板时还需要I/O板的驱动程序),定制好嵌入式Linux内核和实时内核(为zImage),并将电子盘(在Linux中是ram)Mount到/RamDisk上,在电子盘上制作引导和启动盘。具体制作方法如下:

   ① 修改LILO.CONF,使得系统可以直接从电子盘启动;

   ② 创建一个内核文件系统ext2:mke2fs -i 8192 -m 0 /dev/ram 50;

   ③ 在/RamDisk目录下,建立运行系统所必需的目录文件:bin dev etc lib mnt proc sbin tmp usr var,以及各个目录下必要的文件,特别是应用程序所需要的库文件;

   ④ 设置内核镜像文件中的ramdisk的偏移量,以指出如何确定定位根文件系统,可以通过命令rdev来设置;

   ⑤ 将内核文件放到RamDisk中:

   #dd if=zImage of=/dev/ram bs=1k

   ⑥ 加载根系统文件:

   #dd if=/tmp/ram_image.gz of=/dev/fd0 bs=1k seek=内核数据块数

   其中ram_image.gz压缩后的根系统文件,内核数据块数就是内核的大小。

   这样就做成了系统启动盘,可以去掉硬盘、软盘等部件,直接从电子盘来启动系统。在根文件系统中存放有RT Linux的启动模块和各种控制算法应用程序,再接上控制信号的驱动装置和一些其他必要的装置,就可以直接对机器的各个参数进行控制了。

6 小 结

   嵌入式Linux的出现使得构造工业控制系统有了更好的选择。Linux操作系统的高性能、高可靠性、众多高效免费的开发工具和应用程序,使得可以在很短的时间内设计出一个强大、高效、复杂、低成本的控制系统。

参考文献

1 Mantegazza P,et al. RTAI: Real-Time Application Interface
2 Rick Lehrbaum. Using Linux in Embedded and Real-time Systems. http://www.linuxdevices.com

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    相关文章
    网页中嵌入Flash的方法讨…
    嵌入式软件测试的十大秘…
    用GPRS modem实现嵌入式…
    嵌入式用户图形接口uC/G…
    嵌入式系统实时性的问题
    嵌入式系统中串口驱动概…
    交互式数字电视中的嵌入…
    [嵌入式开发]嵌入式处理…
    嵌入式实时操作系统uC/O…
    嵌入式系统发展趋势
    更多内容
    专题栏目
    更多内容
    最新推荐 更多内容
    | 设为首页 | 加入收藏 | 关于我们 | 版权申明 | 友情链接 | 谷歌 雅虎 百度 | 管理登录 | 

    爱问科技网
    爱问科技网

    21aw@21aw.com
    粤icp备06099319