首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
便携式数据采集系统的设计
来源:本站整理  作者:佚名  2009-12-08 15:43:46



    Linux设备驱动程序实现的功能包括驱动程序的注册与注销、设备的打开与释放、设备的读写操作、设备的控制操作等。当用户需要通过设备文件与硬件通信时,必须通过调用open、read、write、close、ioctl等系统函数实现,这些函数都由file_operations结构体的函数指针成员给出入口地址,file_operations结构体的每一个成员名都对应一个系统函数嗍。用户进程利用系统调用在对设备文件进行诸如read、write操作时,系统调用通过设备文件的主设备号找到相应的设备驱动程序,然后读取该数据结构相应的函数指针,接着把控制权交给该函数。因此,编写设备驱动程序就是编写file_operations数据结构的各个函数指针对应的各个函数,随着Linux设备驱动程序的复杂程度越来越高,file operations结构体的成员数越来越多,但并不是每种设备的驱动程序都需要利用file_operations中的全部功能,大多数驱动程序只是利用其中一部分,对于驱动程序中无需提供的功能,只需将相应位的数值设为NULL。本系统将ADS8364作为字符型设备设计驱动程序,对于字符设备来说,file_operations结构体中要提供的主要入口有:打开设备文件open()、释放设备文件release()、读取A/D转换的数据read()、启动A/D转换和选取A/D转换的读数通道号write()、A/D转换参数快速设置ioctl()。
    结合ADS8364与S3c24lO的接口电路,设计驱动程序时,采用中断方式或者查询方式读取转换数据。采用查询方式在驱动程序中需将通用输入输出引脚GPF4设置成输入模式,在应用程序中反复查询GPF4的输入状态,当查询到低电平时表明A/D转换器完成一次转换,此时可调用驱动程序中的read()函数读取转换结果;采用中断方式需在驱动程序中将GPF4设置中断方式,将中断触发方式设置下降沿触发,ADS8364产生的EOC信号触发Linux系统的外中断EINT4,应用程序只需打开ADS8364所对应的设备文件,并采用write()函数启动相应通道开始转换,然后由驱动程序中的中断服务函数将数据存放到一个全局变量中,应用程序通过read()函数读取数据,因此,利用中断方式采集数据速度更高、读数控制更简单。图4为采用中断方式的程序流程。


5 测试结果
    该系统已应用于某油田的井口多参数采集装置,前端分别接压力、流量、流速、温度等传感器,用来测量采油井井口的多种参数。经测试,该系统与传统的基于单片机的多参数测量装置相比,具有界面美观,易操作,精度高,可方便利用存储卡或U盘存储重要设置参数、系统运行状态的数据和测量数据,便于使用者管理和维修等优点。表1为该系统设计所测量值与实际值的对比情况。

    从表1看出,该系统的测量误差很小,其中所测量的多个电压点,相对误差都小于O.08%,这样的精度可满足数据采集应用需求。


6 结束语
    本文提出的基于嵌入式Linux技术的便携式数据采集系统,与传统的单片机或DSP技术实现的数据采集系统相比较,具有功耗低、体积小、用户操作界面友好、采集精度高、便于扩展升级等优点。ARM的片上资源丰富,Linux操作系统的功能强大,该系统通过外接不同传感器可实现多种参数采集,利用系统的丰富GPIO接口编程设计多个外部设备控制动作,完成多通道PWM输出。该系统在石油钻采、工厂自动化等领域具着广泛的应用前景。

上一页  [1] [2] [3]  下一页

关键词:

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

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

推荐阅读

图文阅读

热门阅读

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