基于WINCE系统的实时数据采集方法.doc

上传人:gs****r 文档编号:1809449 上传时间:2019-03-16 格式:DOC 页数:5 大小:105KB
下载 相关 举报
基于WINCE系统的实时数据采集方法.doc_第1页
第1页 / 共5页
基于WINCE系统的实时数据采集方法.doc_第2页
第2页 / 共5页
基于WINCE系统的实时数据采集方法.doc_第3页
第3页 / 共5页
基于WINCE系统的实时数据采集方法.doc_第4页
第4页 / 共5页
基于WINCE系统的实时数据采集方法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1基于 WINCE 系统的实时数据采集方法【摘要】Windows CE 操作系统是常见的嵌入式操作系统,具有良好人机交互界面,常用于消费类产品。该系统应用于工业控制领域时,实时数据采集能力差。本文通过对硬件定时器编程,探索了一种保证实时性数据采集的方法,可以较的解决 Windows CE 操作系统在工业领域的应用。 【关键词】Windows CE 数据采集 驱动层硬件定时器 一、概述 Windows CE(以下简称 WinCE)是微软公司开发的一种小型的、基于ROM 的、具有 Win32 子集 API 的精简操作系统。由于 WinCE 操作系统的简洁(最小系统需要的存储容量可达 10M 字节以

2、下)和系统软件的开发便利(其应用软件与桌面操作系统 window 具有较好的兼容性) ,其在手机和掌上电脑等嵌入式产品中有着广泛的应用。随着工业测控设备的发展需求趋向于智能化、小型化,WinCE 在工业测控设备中也得到越来越多的使用。 在工业测控设备对操作系统一个很重要的要求就是具有实时处理能力。而 WinCE 的实时处理能力一直作为其软肋遭人诟病。在这里我们针对公司的具体项目的要求,通过反复的实验,找到了一种在 WinCE 下实现定时数据采集功能的方法,为公司测控设备的智能化、小型化做了一定的技术准备。 2二、定时数据采集系统要求 (一)功能要求 在公司生产的一个地面测试设备中,要求每 2m

3、s 采集一次输入的模拟量,并将采集到的数据绘制成曲线,在液晶屏上实时显示。 (二)硬件和软件开发环境 在采用 ARM9 技术核心的 S3C2440 芯片为主 CPU 的硬件平台上,安装定制 WinCE 操作系统,并开发相应的驱动程序和应用软件。 WinCE 操作系统的版本选择为 5.0,驱动程序开发环境为相应的Platform Builder 5.0,应用软件开发环境为 Embedded VC 4.0。 (三)测试方法 定时采集系统的输入模拟信号用函数发生器 HP33250A 产生,信号类型为正弦波,频率 10Hz,峰峰值为 2V,直流偏置 1V。 定时采集系统将采集到的数字量保存在文件中,使

4、用 Excel 打开并绘制曲线,观察采集到的数字量是否满足每 2ms 一个数据点的要求。 三、定时数据采集系统的设计 (一)系统功能划分 定时数据采集功能的实现包括三个部分: a. 控制硬件(模数转换器)进行定时数据采集; b. 对采集到的数据进行处理和保存; c. 根据采集的数据进行绘图操作。 整个采集系统设计的关键是数据采集的定时是否可靠。数据保存与绘图操作的实时性误差不会造成系统的错误,而数据采集必须每间隔准3确的 2ms 时间间隔就进行一次,否则将无法反映外接输入模拟量的实时变化情况。在实际的实验中,数据采集、数据处理和保存的方法和位置的不同,直接影响着系统功能是否能够可靠实现。下面根

5、据使用定时器的不同、数据处理方法的不同分别介绍几种方案。 (二)应用层软件定时器方案 WinCE 操作系统下的应用软件开发环境 EVC 与桌面操作系统 windows下的 VC+环境基本相同,提供了几乎相同的类函数的封装,同样也可以调用基本的 Win32API 函数。 在应用层编程中常用的定时器包括 MFC(微软基本类库)提供的Timer 事件和 windows 提供的多媒体定时器。 Timer 事件定时器先使用 SetTimer()来定时,再在程序中增加定时响应函数 OnTimer() ,并在此函数中增加相应的处理语句完成时间到时的操作。精度在毫秒级别,一般其响应时间为 55ms,且系统越忙

6、精度越差。所以不符合 2ms 定时采集的要求。 多媒体定时器是 windows 提供的内置定时器。通过调用timeSetEvent()函数,将需要周期性执行的任务定义在 lpFunction()回调函数中(如:定时采样、控制等) ,从而完成所需处理的事件。在定时器使用完毕后,调用 timeKillEvent()将之释放。下面是使用多媒体定时器定时的部分代码。 将数据缓存 dataBuf 中的数据保存到文件中,使用 Excel 打开后,得到的数据曲线,但 AD 采集到的数据点间隔并不是严格的 2ms。 (三)驱动层硬件定时器方案 4鉴于软件定时器的误差较大,考虑为 CPU 自带的定时器 time

7、r0 编写驱动程序。在驱动程序中,配置好 timer0 后,创建一个中断服务线程;中断服务线程在 timer0 产生硬件中断后,触发中断事件;中断服务线程中循环执行的程序段检测到中断事件,即开始一次 AD 采集。 硬件定时器 timer0 每 2ms 控制 AD 采集数据,并将数据保存在数据缓存 dataBuf 数组中。但应用层无法直接调取驱动层的变量。所以,在驱动层可被映射到应用层的 IO 函数中,将 dataBuf 数组地址映射到应用层传递过来的地址指针中。 在结果数据绘制的数据看到,每 100ms 时 AD 采集到的数据出现缺失,即此时的 AD 并没有采集到数据。怀疑为 100ms 定时

8、读取数据时,占用CPU,或是驱动程序中保存 AD 采集数据的数据缓存,导致 AD 采集到的数据无法保存。 (三)创建独立线程读取驱动数据 为了让应用层对数据缓存的调用不会影响到驱动层的数据缓存,考虑在应用程序中创建一个独立线程,由事件驱动,定时读取驱动层中的数据缓存。编写完软件后将应用层采集的数据保存到文件中,并用 Excel打开,绘制数据出波形为连续正弦波。这种数据读取和处理方法不会影响到驱动层中 AD 的定时数据采集,也获得了比较精确的数据采集时间间隔,满足了定时采集数据系统的要求。 四、总结 从上面的一系列实验可以看出,要在 WinCE 操作系统下实现精确的定时数据采集,必须使用硬件定时器控制 AD 采集;在应用层读取 AD 采5集数据尽量采用独立线程方式,以减小对 CPU 和数据缓存独占情况的出现。这种设计方法一定程度上解决了对实时采集和即时控制要求较高的工业测控设备,在向系统级实时性较差的便携式操作系统发展时所遭遇的矛盾,为工业领域的测控设备的智能化、集成化发展提供了一定的技术准备。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 学科论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。