1Linux设备驱动程序实现的功能包括驱动程序的注册与注销、设备的打开与释放、设备的读写操作、设备的控制操作等。当用户需要通过设备文件与硬件通信时,必须通过调用open、read、write、close、ioctl等系统函数实现,这些函数都由file_operations结构体的函数指针成员给出入口地址,file_operations结构体的每一个成员名都对应一个系统函数嗍。用户进程利用系统调用在对设备文件进行诸如read、write操作时,系统调用通过设备文件的主设备号找到相应的设备驱动程序,然后读取该数据结构相应的函数指针,接着把控制权交给该函数。因此,编写设备驱动程序就是编写file_operations数据结构的各个函数指针对应的各个函数,随着Linux设备驱动程序的复杂程度越来越高,fileoperations结构体的成员数越来越多,但并不是每种设备的驱动程序都需要利用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为采用中断方式的程序流程。25测试结果该系统已应用于某油田的井口多参数采集装置,前端分别接压力、流量、流速、温度等传感器,用来测量采油井井口的多种参数。经测试,该系统与传统的基于单片机的多参数测量装置相比,具有界面美观,易操作,精度高,可方便利用存储卡或U盘存储重要设置参数、系统运行状态的数据和测量数据,便于使用者管理和维修等优点。表1为该系统设计所测量值与实际值的对比情况。从表1看出,该系统的测量误差很小,其中所测量的多个电压点,相对误差都小于O.08%,这样的精度可满足数据采集应用需求。6结束语本文提出的基于嵌入式Linux技术的便携式数据采集系统,与传统的单片机或DSP技术实现3的数据采集系统相比较,具有功耗低、体积小、用户操作界面友好、采集精度高、便于扩展升级等优点。ARM的片上资源丰富,Linux操作系统的功能强大,该系统通过外接不同传感器可实现多种参数采集,利用系统的丰富GPIO接口编程设计多个外部设备控制动作,完成多通道PWM输出。该系统在石油钻采、工厂自动化等领域具着广泛的应用前景。目录前言.......................................................................................................................................41井下压力、流速数据采集系统概述...............................................................................51.1设计目标.................................................................................................................51.2设计描述.................................................................................................................52硬件系统设计....................................................................................................................72.1信号电路板设计......................................................................................................72.2压力传感器...........................................................................................................72.2.1压力传感器的定义........................................................................................72.2.2压力传感器原理............................................................................................72.3磁电式转速传感器.................................................................................................82.4信号调理电路..........................................................................................................82.4.1.压力信号调理电路........................................................................................92.4.2流速信号调理电路.......................................................................................92.5仪表放大器.............................................................................................................92.5.1仪表放大器的概念.......................................................................................92.6主机板电路设计....................................................................................................112.7通信电路板设计...................................................................................................133软件设计..........................................................................................................................153.1压力数据采集子程序............................................................................................153.2流速数据采集子程序...........................................................................................173.3串行口设置和串行中断服务子程序....................................................................183.4IDL方式,延时等待子程序................................................................................214调试过程..........................................................................................................................224.1软件调试............................................................................................................224.2仿真调试.............................................................................................................225结论.................................................................................................................................23附录.....................................................................................................................................24什么是压力传感器以及其分类..................................................................................24什么是磁电式传感器..................................................................................................24仪表放大器及应用......................................................................................................25参考文献.............................................................................................................................264油井压力、流速数据采集系统前言目前,我国油井测试仍以手工测试为主,半自动为辅。在测试过程中,由于外界干扰