新闻中心

EEPW首页 > 测试测量 > 设计应用 > 在数据采集应用中怎样选择合适的采样率

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

作者:时间:2009-02-03来源:网络收藏

理想开关

理想开关的稳定时间永远是0,要保证所有开关的闭合都检测到,因此比最小闭合时间短。虽然看起来简单,但也有一个取舍的问题,如果σmin是10μs,我们是否要每10μs就检测一次?这样做肯定会耗尽CPU所有的可用资源。

克服这种问题的最好方法是考虑实际应用状况然后再做取舍。假如10μs的闭合时间确实是有可能的,但在每一千次闭合中才会出现一次(0.1%),由于99.9%的时间里σmin都大于10μs,那么5ms最小闭合时间更加切合实际,而且比10μs最小闭合时间使用的CPU资源要少很多。但漏掉一个10μs开关闭合对于一个具体的应用来说是不是可以接受呢?图5:去反弹算法的状态图和布尔函数。

答案取决于实际的应用。如果开关闭合是由人来操纵,我们可以假设按开关时太轻了,使用者只要按重一点就可以了;如果闭合是弹球机中的一个开关,我们可以认为开关没有真正闭合,结果也就是玩的人得不到分;但是如果开关的闭合与有毒气体的释放有关,那么我们就要把它测出来,在这种情形下,我们要将开关锁住,或者由一个专门的小处理器每隔10μs读取一次数据。

我们假设只有检测到σmin大于5ms的开关闭合是可以接受的,这时精度也有99.9%,但如果此时CPU过载了又怎么办?可不可以用10ms来代替5ms从而进一步使CPU负载减半呢?根据实验,这样精度会降到99.0%。如果在实际应用中没有问题,那么这种取舍还是值得的。但是如果改为10ms后精度降到了85%,这种取舍就有点危险了。记录下所有σmin的实验结果能有助于你正确评估如何在精度和CPU的利用率间找到平衡。

到现在为止所提到的开关都是理想状态下的开关,开关反弹对选择合适又增加了一些影响。非理想开关 我们来看一下图2a中的滚球开关。该开关的输出如图4a,过滤后的波形如图4b。输出通过去反弹算法过滤,以给应用处理代码提供一个纯净的信号,表示开关的闭合状态。已有很多文献介绍了多种硬件和软件去反弹算法。下面分析中所用到的算法如图5所示,它是一个同步,需要对同一数值进行两次连续采样,以记录开关的状态改变。对不同的算法,采样率分析和结果会有所不同。

在嵌入式处理器中可以直接用布尔代数执行这种算法,该方法的另一个优点是可对多个开关同时去反弹。例如表1中的代码显示了图5去反弹算法执行情况,这里同时对8个独立的输入进行处理,假设每个输入都用输入变量x的一位来表示。

如果硬件设计可以灵活改变,也可采用FPGA在硬件中执行逻辑。在这种情形下,不需要再用软件对开关进行去反弹,可以认为开关是理想的,硬件的时序和我们下面的分析没有太大区别。

如果开关关闭后在最小关闭时间内采样少于两次,开关的动作就会被过滤掉,这也就决定了采样周期的上限是σmin/2。

现在我们来看看采样周期的下限,我们将去反弹算法的最低要求看作是不能将两次连续的开关动作搞错。例如我们得到两个为1的样本,后面是两个0,然后又是两个1。假定只有最后两个1是稳定状态,此时过滤后的输出在稳定时间内至少有4个样本。为防止出现误判断,在开关关闭瞬间我们必须最多取三次样,所以采样周期要大于τmax/3。

将上限和下限合在一起,对于图5所示的状态机数字输入去反弹输入驱动器我们可得采样周期Ts(采样率fs=1/Ts)的条件:







有可能出现的值表明了采样率可接受取舍范围。假设τmax是3ms,σmin是10ms,那么由等式1可得1mss5ms。为了尽量减少采样占用的CPU时间资源,我们把采样时间定在5ms附近。

采取快速采样(如1ms)的另一个理由是试验获得的关闭时间也许不是最小值。如果希望采集到99.0%的开关闭合,快一些的采样率也许能将这个数值提高一点。但为了避免系统将反弹误认为是开关闭合,采样率绝不要小于1ms。

当然,也可能采样率范围都不可接受。我们以一个特殊的反弹开关作为例子,它的稳定时间是6ms,最小关闭时间是4ms。此时,式1得到一个空集,没有一个采样率可以保证捕获到开关的闭合且确保反弹不会误认为是好几次开关闭合。

要解决这个问题,设计人员就必须考虑其它的方法。有一种办法是采用不同的去反弹算法,如在三个1而不是两个连续的1中找出两个1;另一种办法是考虑开关闭合时的内部到达时间;第三种办法是要么提高σmin,偶尔错过开关的闭合,要么减少τmax,偶尔将一次开关闭合当作两个事件。不管选择哪一种,这些方法都要容易记录下来,如果选择被证明不好,更变设计仅仅只需改变采样率就可以了,或者改变有限状态机定义的算法。

本文结论

归纳起来,我们用试验和分析得到输入的采样率有效范围,当范围确定以后,再考虑实际应用的其它因素,在可接受范围内选择一个最佳采样率。采用这种方法可以相对较快地得到合适采样率,因其它应用和系统问题进行调节也只要几分钟就可以了,不需要用几天或几个星期的时间进行和微调。

虽然本文中提到的数字开关代表了很多嵌入式系统器件,但是它们还很不全面,不过我的目的是证明组合式分析实验方法的有效性,而不是提供对所有可能存在的传感器都适用的解决办法。该方法依具体使用的传感器、使用场合以及通过简单试验获得合理数据的能力的不同而需要作不同程度的修正。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭