下载后可任意编辑油井压力数据采集系统的设计及其有用方法1下载后可任意编辑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 为采纳中断方式的程序流程。2下载后可任意编辑5 测试结果 该系统已应用于某油田的...