在数据采集应用中怎样选择合适的采样率

2009-02-03 16:40:18来源: 工业控制

     在具体数据采集用中,试错测试可能使用得最为普遍,但它既不是最快的也不是最好的确定抽样率的方法。采用系统工程分析并通过一系列预先设计好的试验,可以帮助快速找到适合的采样率。本文以弹球开关为例,介绍选择采样率时应考虑的一些因素。

      最近我问一个工程师他系统所使用的采样率是多少,他回答说:“5毫秒”。我接着问他为什么,“因为它合适,”他说道。“我们花了很多天来测试不同的采样率,只有这个最合适。”

      他的系统是一个按钮开关,要求去除掉一些反弹效应。他和他的试验小组最后选择5ms作为间隔是因为在测试过程中,采用这样的采样率既不会将一个信号错误地认为是两个信号,且由于速度快,也不会将有用的双击误认为是反弹。图1:带有反弹效应的机械开关响应波形。

     5毫秒也许是一个可以接受的数值,但由于没有考虑系统其它因素,尤其是实时反应时间,我们确实无法知道这是不是最好的答案。

      假设处理器过载,例如5ms采样时间造成40%过载,情况会怎样呢?可以将采样时间间隔增加到10ms而把代码占用的CPU资源降低到20%,另外一种方法是保持采样率不变,而将控制码执行的速度降低一半。那么从系统的角度来看哪一种方法更好呢?在采样资源和处理器利用率以及其它实时因素(如调度与优先级调换)间有没有一种好的折衷方法呢?下面让我们具体来看一看。

选择标准

       在选择采样率时,有几个对立的因素要考虑,这些因素包括:

      ·采样应尽可能快,这样精度才高

      ·采样应尽可能慢,以节约处理器的时间

      ·采样应快到能提供足够的响应时间

     ·采样应慢到输入信号不受噪声的影响

     ·采样率应为控制算法频率的倍数,以减少抖动

      由于没有一个答案能满足所有的要求,所以在考虑具体应用特性时只能找到一种比其它都更好的采样率,本文介绍的技术将有助于确定这个采样率,包括下面几个步骤:

     1. 测量传感器的特性。

     2. 如果输入有噪声,应选择合适的算法将其滤掉。

     3. 只在满足功能的基础上计算采样率的最高和最低界限。

     4. 在最高和最低界限之间确定均衡点。

     5. 按均衡点优先次序在最高和最低界限间确定采样率。

      这种方法适用于所有传感器,下面我们以实例集中讨论数字开关的情形。

数字开关

     数字输入最简单的形式是开关,当开关合上时,开关的值是1,打开时值为0,如果是负逻辑,结果刚好相反。很多嵌入式系统都有一个或多个开关,如果开关很少,少于纯数字输入/输出(DIO)端口数量时,它们通常直接接到DIO端口上;开关数量多的时候则由一个开关矩阵来控制,这个以后另文再述。图3:测量σmin和τmax的电路。

     一个理想的开关在合上时的信号为1,打开时信号是0,从一种状态到另一种状态的转换是瞬时完成的。但实际上,还有上升和下降时间需要考虑,由于这些时间和电路电容成正比,所以通常只有几个纳秒。在我们的分析中,只要传感器数据读取速度慢过每秒10万次,就可以将上升和下降时间忽略不计,因为读取速度慢,有些开关如光开关和结构紧固的瞬态开关其特性还是非常理想的。

      然而大多数机械开关都有反弹效应。当开关合上时,从0到1的转换不是在瞬间完成或者说不是连续上升的。图1a显示了从示波器上看到的一个机械开关输出转换过程的波形,图1b是开关输出的数字信号波形。主脉冲前后多余的脉冲就是所谓的反弹,它产生于开关内部机械弹片发生接触的时候。如果反弹会造成不良的影响,就必须对其进行滤波,这个过程通常称为去反弹。

测量关闭时间

      要决定采样率,就需要知道最小开关关闭时间,我们用σmin表示,它也是确保采样软件探测到开关状态的最短时间。有时候系统会具体规定,在没有规定的情况下,就需要通过实验,在具体系统需求和硬件特性的基础上确定。

      最小开关时间一般用来作为数据噪声的阈值使用,而不是实际开关打开或关闭的时间。如果在输入端检测到脉冲的持续时间小于最小关闭时间,软件就可能把它漏过,我们不把这个看作是故障。另一方面,如果脉冲时间等于或大于σmin,软件将保证检测到开关的状态。

     下面是我和一些工程技术人员对弹球机的研究经验分析,弹球机是一种很好的实验工具,因为它具备好几种类似于数字输入开关的机构,每种都有不同的特性,图2显示了其中的一些。 图2a中的开关必须经常监测,因为弹球运行速度很快,对于这类开关,我们测量得到它的σmin大概是10ms。(实际测量值带有小数位,我们分析时也是使用带小数的实际测量值,但为讨论方便起见本文中我们都四舍五入取为整数。)这个值根据环境不同而有所不同,改变环境特性可能会得到不同的最快开关关闭时间。也可以通过测量和分析来确定弹球通过开关的最快速度,如果这样的话,σmin可通过数学方法推导出来,它是最大球速和开关尺寸的函数。

      图2b是一个中速开关。由于弹球方向改变,球通过开关时的速度值范围比最高速度要慢很多。在这个实验中,我们测得这些开关的最短开关关闭时间是50ms。

      慢速开关是指在软件检测到之前它总是关闭的,直到发出重新打开的命令,图2c就是这样一种开关。在上面一个图中,球落在装有开关的洞里,当软件检测到有球存在以后,再触发电磁阀将球弹出去;在下面图中,球打在挡片上使弹簧将挡片拉下来,然后电磁阀再启动将挡片重新推上去。

      对于慢速开关,最短开关闭合时间是触发电磁阀的控制软件的函数,在我们实验中电磁阀触发频率是10Hz。 一般我们假定开关闭合后没有被锁住,采用锁住的方法通常不现实,有时候根本不可能,如像开关矩阵。如果把开关锁住,结果就如图2c中的开关一样,其速度是发出解除锁存信号任务的函数。

      如果开关不是理想的,还必须测量它的稳定时间,我们用τ来表示,它指达到正确反映开关状态的稳定值之前,开关可能弹起的时间。图4:滚球开关的输出波形图。

     我们发现图2a中左边的滚轮开关并不理想,但右边的光电开关却非常理想,它没有任何反弹。出于分析的目的,我们对最坏情况稳定时间τmax特别感兴趣。

     通过实验我们可得到σmin和τmax。测量时我们把开关放在Vcc和GND之间,并通过一个限流下拉电阻,Vout接在逻辑分析仪上,然后将逻辑分析仪设定为上升沿触发(图3)。

     用最快的速度将开关闭合后再打开。如果是一个理想的或接近理想的开关,你可以看到开关很平滑地从0变为1,再从1变为0;如果是一个有反弹的开关,输出的波形跟图4就有点类似。将这个实验反复几十次,记录下每次的σmin和τmax

     在进行这些实验的时候,必须要考虑最终应用中开关的工作情况。在弹球机上,球通过开关的速度比人按下再放开的速度要快,也比人用手将球滚过开关的速度要快,正因为此,在测试过程中我们采用电磁阀来触动推杆将球推过开关,而不是用手指来触动开关或用手将球滚过开关。

      设计为手工操作的开关要经历各种按压,因此应针对不同情况重复进行实验。例如轻轻按下时开关稳定时间快,但闭合时间也短;而使劲按下开关闭合时间长,但也许由于反弹其稳定时间也长,实验时要记录下最小、平均及最大σmin和τmax。为了使采样数据真实,可以在工休场所进行实验,要求进来休息的每一个人很快地按几下开关,再慢慢地按几下,再几次连着按两下,其目的是为了能得到尽可能接近使用者的数据。如果是小孩用的东西,就叫小孩来按开关;如果使用者是18至80岁的人,就让这个年龄段的人来试。多收集数据或许可以防止灾难性的结果,不会使生产出来的产品有些人根本就不能正常使用。

[1] [2]

关键字:采样率  试错测试  状态机

编辑:赵彦桥 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2009/0203/article_466.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
采样率
试错测试
状态机

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved