手持式终端设备中电源监测技术研究与实现

时间:2012-07-16来源:网络

2 电源监测系统驱动程序设计

鉴于文中所述的超级终端系在Linux环境下运行,各个检测环节的驱动程序和相关的实施策略、编写方法亦多有特点,现详细描述如下。

2.1 Linux驱动程序工作原理

在Linux内核中,设备驱动程序是作为文件系统的一个模块存在的,它对下负责与硬件设备的交互,对上通过一个通用的接口挂接到文件系统上,从而和系统的内核等联系起来。它是软件概念和硬件设备间的一个抽象层。系统调用是内核和应用程序之间的接口,而设备驱动程序则是内核和外设之间的接口。

设备驱动程序为应用程序屏蔽了外设硬件的细节,从应用程序角度来看,对于外设的操作方法与普通文件一样。设备驱动程序与系统外设关系如图2所示。

手持式终端设备中电源监测技术研究与实现

图2 Linux驱动程序与系统外设关系图

2.2 字符设备

字符设备是Linux系统中最简单的设备,可以像文件一样访问。当字符设备初始化的时候,其驱动程序向Linux核心登记,在chrdevs向量表中增加一个device_STruct数据结构条目。这个设备的主设备标识符用作这个向量表的索引。一个设备的主设备标识符是固定的。chrdevs向量表中的device_struct数据结构包括一个登记设备驱动程序名称的指针和一个指向一组文件操作的指针。这组文件操作本身位于这个设备的字符设备驱动程序中,并处理一些特定任务。本电池监测系统在Linux下的驱动程序就把外设视为字符设备,在驱动程序里实现了打开、读、写和关闭等操作。

2.3 电池监测驱动实现策略

系统内部,I/O设备的存取使通过一组固定的入口点来进行的。这组入口点由特定设备的设备驱动程序提供,在数据结构file_operatiONs()中定义。该程序定义了一个数据结构为file_operations()的变量adc_fops。

手持式终端设备中电源监测技术研究与实现

2.3.1 adc_open函数

此函数打开并初始化设备以待I/O操作。adc_open()子程序必须对其做好必要的准备,如果设备是独占的,adc_open()子程序必须设置一些标志以表示设备处于忙状态。

2.3.2 adc_read函数

对AD转换器设备文件进行读操作时调用adc_read()子程序。电池监测系统要求实时读取外设监测点的电压值。因此,在adc_read()函数中实时触发AD转换器开始工作,并且利用程序轮询方式读取转换后的数据。adc_read()函数内容如下:

手持式终端设备中电源监测技术研究与实现

1 2 3

关键词: 研究 实现 技术 监测 终端设备 电源 手持

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版