使用模拟传感器进行超级采样
当物理量发生变化时,模拟传感器返回连续电压。
当物理量发生变化时,模拟传感器返回连续电压。换句话说,在它们的输出端,存在与所测量事件类型成比例的电位差。有数百种模拟传感器类型,它们的最佳用途是连接到配备ADC输入的微控制器,用于测量检测和处理最终动作。
在这里,我们探索使用两个模拟执行此重要操作的最佳技术 传感器类型 进行我们的观察:LM35精密温度传感器和OH49E磁场传感器(或同等产品)。这两种传感器都很便宜,在市场上很容易获得。
温度和磁场传感器
LM35 是用于温度测量的精密集成电路。它的输出是线性的,与温度成正比,以摄氏度为单位。它不需要外部校准,并提供与温度成比例的电压,通常在 –55°C 和 150°C 之间。它还具有低输出阻抗、良好的线性度测量和出色的内部校准精度。在电子系统中连接和使用设备是一件简单的事情。它仅吸收60 μA,因此其热量极低,不会影响测量输出。它可以由 4 V 至 20 V 之间的直流电压供电以测量正温度,也可以与双电源一起使用以测量负温度。输出电压是指温度。
OH49E 体积小巧,用途广泛 霍尔效应 线性器件,由永磁体或电磁铁产生的磁场驱动。它比LM35温度计小。输出电压取决于电源的输出电压,并与磁场强度成比例变化。它不需要外部滤波器,因为输出是低噪声的。内部精密电阻可确保更高的稳定性和精度。
图1显示了两个传感器的主要特性。输出电压是指磁场,以高斯表示,包括正磁场和负磁场。工作温度介于 –20°C 至 100°C 之间,电流消耗约为 4.2 mA V抄送 = 5 V。
图 1:LM35 和 OH49E 传感器及其各自的封装、引脚排列和输出特性曲线(来源:美国国家半导体 [LM35]、南京欧卓科技 [OH49E] 数据表)
一次读取一个样本的错误
如今,ADC系统广泛用于采集和处理各种模拟数据。在 工程学校,用于这种类型的获取的方法通常效率低下,因为教师通常专注于理论而不是实际系统中发生的实际含义。
即使是经验丰富的设计人员,最常见的错误之一是在每个时间间隔通过ADC系统获取单个信息样本。尽管单次读数很简单,但从来都不是一个好的解决方案,因为如果在读取数据时噪声或干扰影响系统,结果将变得不可靠。
图2显示了每秒采样的单个温度的错误采集,没有进一步的、更复杂的处理。示例中的图形是指 30 秒内的通用温度采集。
图 2:一次采集单个样本的 ADC 并不总是最佳解决方案。(来源:乔瓦尼·迪玛丽亚)
如图所示,由于噪声、干扰或传感器问题等电气因素,系统测量的一个样本不正确,该值无疑会对测量产生不利影响。采集温度的平均计算返回一个异常值,因为它还考虑了测量误差。另一方面,固件将尝试通过使用数学方法和智能过滤器来最小化测量误差。
部分解决问题的一种方法是丢弃超出可接受值窗口的样本。这样,所有高于或低于某个范围的值将被自动消除。随着错误样本的增加,或者换句话说,当样本偏离数据的平均值时,问题变得更加明显。
另一种选择是使用几何平均值而不是算术平均值来确定测量间隔的平均温度。这种技术非常成功,并且通常是决定性的,但是由于两者的原因,它在小型微控制器中的实现并不总是那么容易。 内存和硬件电源.
超级采样
以下示例是通用的,适用于任何类型的MCU或嵌入式系统,并通过伪代码表示。设计人员可以轻松地使该方法适应自己的逻辑系统。
图3所示的超采样是提高ADC分辨率的有用技术。从MCU的模拟端口读取意味着将读取电压值的数字分配给整数类型变量。
为了更好地理解系统,请注意,1位ADC的分辨率为2.5 V,其中数字值00对应于0 V至2.5 V之间的电压,数字值01对应于2.5 V至5 V之间的电压。另一方面,2位ADC的分辨率为1.25 V,具有以下采集组合:
数字值 00 对应于 0 V 和 1.25 V 之间的电压。
数字值 01 对应于 1.25 V 和 2.5 V 之间的电压。
数字值 10 对应于 2.5 V 和 3.75 V 之间的电压。
数字值 11 对应于 3.75 V 和 5 V 之间的电压。
ADC系统中每增加一个位,模拟数据的采集容量和读取分辨率就会翻倍。显然,成本也与分辨率有关,因此8位ADC系统的成本相对较低,而24位采集电路的成本要高得多。
下表显示了根据ADC位数获得数字化电压的可能性。
位模数转换器 | 组合 | 分辨率 (0–5 V) |
8 | 256 | 19.531毫伏 |
10 | 1,024 | 4.882毫伏 |
12 | 4,096 | 1.220毫伏 |
16 | 65,536 | 76.293 μV |
20 | 1,048,576 | 4.768 μV |
24 | 16,777,216 | 298.023 nV |
36 | 68,719,476,736 | 72.759 pV |
其方程如下:
例如,我们已经看到,每秒的顺序读取节奏是一个有缺陷的解决方案,因为电路上可能发生干扰。对同一端口进行多次近距离读取,对采集的样本求和并计算相对算术平均值(更好的是几何平均值),极大地改善了结果。采集图显示了这种技术的有效性,特别是当信号受到噪声影响时。几何平均是大多数应用的最佳解决方案。必须使用对数进行计算。
这本质上是超采样方法,它允许设计人员以比当前ADC系统更高的分辨率进行“仿真”。通过执行许多近距离采集,分辨率随着系统数字速率的降低而提高,不确定性水平转换为接近实际值的水平。在较短的时间间隔内获取的读数越多,最终分辨率就越高。
图 3:通过超采样,测量更准确,错误率降低。(来源:乔瓦尼·迪玛丽亚)
数字温度计和磁场探测器
现在我们可以谈谈数字温度计的两个电路图和 磁场探测器 与 LM35 和 OH49E 集成电路配合使用(图 4)。
图4:温度传感器和磁场探测器的示意图(来源:Giovanni Di Maria)
两个图均提供5 V电压。输出端子必须连接到微控制器的ADC。电阻R1根据LM35的官方数据表计算,具有以下关系:
理论上,可以简单地将测试仪连接到两个传感器的输出端,读取输出电压并将其转换为有效的温度和磁场测量值。当然,使用微控制器,操作更简单,并且还可以将数据存储在内存中。两个传感器提供电压,必须使用适当的公式将其转换为各自的物理量。
在以 V 运行的系统中裁判 5 V 和 10 位 ADC 时,使用 LM35 计算温度的公式如下:
以下公式可用于在具有 5V 基准电压和 10 位 ADC 的系统中使用 OH49E 集成电路确定磁场:
还应该记住,1 特斯拉 = 10,000 高斯,因此可以轻松完成此转换。
伪代码
第一个伪代码现在涉及从模拟传感器采集数据。(我们在检查中使用的两个传感器之间的区别是无关紧要的,因为原理是相同的,并且适用于两者。
假设我们想每秒获取一个温度(或磁场值)。第一个伪代码适用于任何系统,涉及无需任何处理即可简单获取样本的原始数据。在这种情况下,录音可能会受到错误和干扰的影响。
另一方面,性能更高、效率更高的源列表涉及使用超级采样,在这种情况下,每秒执行 100 次。如图5所示,通过提高超采样程度,信号得到改善并变得更清晰,特别是线路上可能发生的任何零星噪声。
图 5:来自模拟温度计的信号通过不同程度的过采样进行数字化。(来源:乔瓦尼·迪玛丽亚)
图表的第一次记录(顶部和黑色)显示了信号的“原始”采集,使用之前看到的传统技术。图形的第二个记录(红色)显示了过采样度为 10 的信号采集。该值模拟大约 13 位的 ADC 分辨率。第三个图形记录(绿色)显示过采样率为100的信号采集。该值模拟大约 16 位的 ADC 分辨率。图中的第四条记录(蓝色)显示了过采样度为 1,000 的信号采集。该值模拟大约 20 位的 ADC 分辨率。
换句话说,我们已经以零成本将ADC从10位转换为20位。
最 高级别的 ADC
使用过采样通常意味着提高嵌入式系统或MCU的ADC分辨率。一个 微控制器 例如,配备10位数字模拟输入,只需引入过采样概念即可提高其分辨率。下表显示了通过一个虚拟采集系统实现的分辨率,从过采样程度开始。
超采样程度 | ADC的仿真分辨率 |
1 | 10 位 |
2 | 11 位 |
4 | 12 位 |
8 | 13 位 |
16 | 14 位 |
32 | 15 位 |
64 | 16 位 |
128 | 17 位 |
256 | 18 位 |
512 | 19 位 |
1,024 | 20 位 |
2,048 | 21 位 |
4,096 | 22 位 |
8,192 | 23 位 |
16,384 | 24 位 |
这意味着,如果源代码中的循环包括 100 个求和和平均步长,则根据以下基本公式,就好像一个人的 ADC 的分辨率为 16.6438 位:
公式中的十进制位数对于计算的准确性很重要。要获得整数位数,始终建议使用幂为 2 的超级采样度,以控制最终分辨率(2、4、8、16 等)。
超采样技术可以大大提高使用模拟传感器的数据采集电路的性能。实际上,该方法提高了系统的信噪比。超级采样可用于增强动态范围,即使这样做需要编写一些额外的源代码。
一个警告提醒:由于传感器引脚排列可能因型号而异,因此始终建议仔细检查它们。
本文最初发表于 电子电气时报.
Giovanni Di Maria一直喜欢电子,数学和DIY。他是一名计算机程序员,也是一名计算机科学和数学老师。他喜欢数字,他总是在寻找大的质数。他还写了一本关于PIC Microcontroller 16F84使用mikroBasic编程的书。他是Elektrosoft的所有者,Elektrosoft是一家处理电子和信息技术的公司。他是一名全职培训师和老师。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。