首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于Linux的嵌入式数据采集系统
来源:本站整理  作者:佚名  2009-04-22 16:47:00



微型计算机的存储空间较小, 而标准Linux是面向PC 的,需要对Linux 内核进行裁减。对一些可独立加上或卸下的功能块,可在编译内核时仅保留嵌入式系统所需的功能支持模块, 删除不需要的功能。为了满足一定的实时性要求,需屏蔽内核的虚拟内存管理机制来增强的Linux实时性。系统中微机主板属于X86体系结构,兼容一般桌面PC的Linuxi386版本。这样,我们可以直接使用X86体系的编译器对Linux核心源代码直接进行编译及裁剪,并避免了对Linux 核心源代码中涉及CPU的部分模块以及内存管理模式模块的修改。增加了文件系统和GUI根据系统需要,文件系统应包括: 基本文件系统结构、基本应用程序、基本配置文件、基本设备/dev/hd* 和/dev/tty*、基本程序运行所需的函数库。GUI 是软件可视化设计不可

缺少的,也为将来的现场检修维护提供可视化的界面。编写Linux的引导代码, 将diskonchip作为系统的启动设备,引导代码放在diskonchip上。系统加电后,由引导代码进行基本的硬件初始化,然后把内核经映像装入内存运行。

2.2.2 设备驱动程序

系统需要对I/O口、串口编写设备驱动程序。设备驱动程序是操作系统内核与硬件之间的接口,属于内核的一部分,主要功能应包含:对设备初始化或释放、把数据从内核传送到硬件及从硬件读取数据、读取应用程序传送给设备的数据和回送应用程序请求的数据、监测和处理设备出现的异常。

设备驱动程序的实质就是中断处理。Linux中断处理程序分为上半部和下半部。上半部即一般的中断服务程序, 由硬件中断触发,一般运行在关中断的方式下,应当尽可能短小,处理尽可能快;下半部运行在开中断和任务串行化的环境下,处理需较长时间的任务。驱动程序上半部在处理完实时性很强的任务后,用queue_task函数将下半部处理函数挂入立即队列, 并用mark_bh函数来激活立即队列,下半部就可以最优先地被执行。

用户进程是通过设备文件与硬件打交道,对设备文件的操作方式是系统调用,由file_operations结构实现系统调用。这个结构的每一个成员的名字都对应着一个系统调用。用户进程对设备文件进行操作时,系统调用通过设备文件的主设备号找到相应的设备驱动程序,然后读取这个数据结构相应的函数指针,接着把控制权交给该函数。这就是Linux 设备驱动程序工作的基本原理。编写设备驱动程序的主要工作就是编写子函数,并填充file_operations的各个域。

设备驱动程序以模块方式加入内核,在init_module模块中,当检查设备存在后,用request_irq函数为设备申请系统中空闲的中断,用kmalloc为设备驱动程序申请输入输出缓存队列, 如果申请成功, 用regis2ter_chrdev函数将设备驱动程序注册到系统中,加载完成。在clearup_module模块中,先用free_irq函数释放申请到的中断,然后用kfree函数释放申请到的内存空间,最后用unregister_chrdev函数释放注册的设备驱动程序。

2.2.3 应用程序设计

在基于嵌入式Linux系统的微机中,应用程序的主要模块有数据采集模块、数据处理模块、数据通信模块和数据诊断模块。应用程序流程图见图4。

图4  应用程序流程图

数据采集模块是通过对I / O 口操作实现的。利用inb、inb_p、outb、outb_p 等4 个函数编写读取和写入程序。inb_p 、outb_p与inb、outb 的区别在于前者在存取I/O时有等待(pause),可适应慢速的I/O设备。为了防止存取I/O 时发生冲突,Linux提供对端口使用情况的控制。在使用端口之前,可以检查需要的I/O是否正在被使用,如果没有,便把端口标记为正在使用,使用完后再释放。

数据处理模块实现数据的均值与极值计算, 以文件的方式存储数据。历史数据对焊缝数据采集系统很重要,可上传到服务器以便预报系统根据设置的模型进行预测,还可不断修正数据诊断模块所需的模型。

数据诊断模块实现实时分析诊断,根据已设置的模型,在系统工作期间对系统数据进行测试分析。诊断程序设置为嵌入式系统中中断级别最低的中断服务程序,在不影响系统工作的前提下实现实时诊断,并上传给上位机,以便跟踪诊断校准,保证系统的可靠性。

数据通信模块主要任务是通过串口与上位PC机实现数据传输。在Linux系统中,串口是用做字符设备处理的。使用文件操作函数对串口进行处理,利用open函数打开串口,利用termios结构设定串口通信参数。

2.2.4 系统执行

经过以上步骤,在嵌入式Linux系统上实现数据采集系统已基本构成。系统执行流程见图5。

图5  系统执行流程图

3 小结:

本文作者创新点是基于嵌入式Linux的数据采集系统具有数据检测的实时性、检测精度高、自动化程度高、具有良好的可靠性、稳定性和抗干扰性等特点。实际运行证明高性能的AMR9微处理器和Linux操作系统的运用提高了系统的实时响应性能和多任务处理能力,使系统的可靠性和可扩展性得以明显提高。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:298,121.10000 毫秒