Altium Designer

为什么应该在嵌入式系统中采用数字输入信号采样

周末我特别喜欢在超市里购物。在杂货部分,有各种食品的货样,从乳酪面包片到白咖啡。虽然我喜欢从一个货样站买到另一个货样站,但我5岁的儿子耍赖总是要求再买一回。

在电子产品中,采样与休闲地吃各种零食有着不同的意义。在嵌入式系统中,数字输入信号发挥着重要作用,它告诉系统下一步如何进行行动。我意识到数字输入采样的重要性是在,我所设计的停车机器决定在豪华轿车通过之前降落自动栏杆。以下是如何使用数字输入采样来避免处理这些场景。

 

什么是输入采样,为什么它很重要?

我在大学时代学习到的第一个信号采样概念是奈奎斯特采样定理,当采样频率至少是其原始频率的两倍时,才可以重建带宽受限信号。在我的设计中,我发现这种方法很有用,不是重建波形,而是消除我的系统行为不正常。

理论上,数字信号转换为逻辑1和0。在嵌入式系统中,它们通常用电压值表示。如果一个微控制器工作在3.3V,逻辑1将是3.3V,逻辑0将是0V。在纸面上,这些逻辑电平看起来像一个连续运行的完美水平线,直到逻辑状态改变。实际上,这些信号常常被引起电压突然上升或下降的电气噪声打断。

在自动收费停车系统中,在指定停车区的入口和出口处设有自动栏杆。驾驶员通常通过从机器中检索票证或刷感应卡来进入这些区域。保护入口和出口的停车设备配有车辆探测器。这些检测器使用逻辑电平来指示在其感测区域中是否存在车辆。

在自动栏杆落在豪华轿车上的案例中,当车辆通过时,系统错误地检测到来自入口检测器的负信号。当车辆在它下面时,它关闭了栏杆。当这个事件在几个不同的地方重演时,我要求查看机器的固件。我惊奇地意识到,关闭栏杆的决定是由评估车辆检测器信号的单个实例做出的。

 

如何在嵌入式系统中采样数字输入信号

通常,数字采样涉及以特定间隔捕获信号的值并将其存储在循环缓冲器中。循环缓冲器是微控制器中的缓冲方法。一个值作为一个变量数组存储在静态随机存取存储器(SRAM)中,当它到达末尾时,它会在开始时重写。取决于应用,采样周期为1毫秒,采样可以在5到10之间变化。

使用这种方法,微控制器有多个值,作为其逻辑算法中下一个操作的基准。在车辆检测器中存在电气噪声的情况下,微控制器可以从10个采样中读取一个错误值,并且在车辆通过之前阻止关闭自动栏杆。在关键应用中,程序员可以对样本进行更严格的要求。这是通过在进行算法处理之前要求所有样本具有相同的逻辑来完成的。

在固件中实现数字采样是很容易的,它们可以有效地稳定系统。

在我的停车系统中,我迅速修复了固件,采用这种简单的采样方法。这样,有问题的停车系统不会对其他车辆造成更多的损害。当更新的固件被部署时,停车机器不再无意地关闭栏杆。当然,如果PCB本身没有正确设计信号完整性,固件中的数字采样就不那么有效了。

Tagged

About Simon Wang

发表评论

电子邮件地址不会被公开。 必填项已用*标注