传感器的数量在整个地球表面和人们生活周遭空间激增,提供世界各种数据讯息。这些价格亲民的传感器是物联网发展和我们的社会正面临数字化革命背后的驱动力,然而连接和获取来自传感器的数据并不总是直线前进或那么容易。本文将介绍传感器技术指标、5大设计技巧及代工企业。
首先技术指标是表征一个产品性能优劣的客观依据。看懂技术指标,有助于正确选型和使用该产品。传感器的技术指标分为静态指标和动态指标两类:静态指标主要考核被测静止不变条件下传感器的性能,具体包括分辨力、重复性、灵敏度、线性度、回程误差、阈值、蠕变、稳定性等;动态指标主要考察被测量在快速变化条件下传感器的性能,主要包括频率响应和阶跃响应等。
由于传感器的技术指标众多,各种资料文献叙述角度不同,使得不同人有不同的理解,甚至产生误解和歧义。为此,以下针对传感器的几个主要技术指标进行解读:
1、分辨力与分辨率:
定义:分辨力(Resolution)是指传感器能够检测出的被测量的最小变化量。分辨率(Resolution)是指分辨力与满量程值之比。
解读1:分辨力是传感器的最基本的指标,它表征了传感器对被测量的分辨能力。传感器的其他技术指标都是以分辨力作为最小单位来描述的。
对于具有数显功能的传感器以及仪器仪表,分辨力决定了测量结果显示的最小位数。例如:电子数显卡尺的分辨力是0.01mm,其示指误差为±0.02mm。
解读2:分辨力是一个具有单位的绝对数值。例如,某温度传感器的分辨力为0.1℃,某加速度传感器的分辨力是0.1g等。
解读3:分辨率是与分辨力相关而且极为相似的概念,都表征了传感器对被测量的分辨能力。
二者主要区别在于:分辨率是以百分数的形式表示传感器的分辨能力,它是相对数,没有量纲。例如上述温度传感器的分辨力为0.1℃,满量程为500℃,则其分辨率为0.1/500=0.02%。
2、重复性:
定义:传感器的重复性(Repeatability)是指在同一条件下、对同一被测量、沿着同一方向进行多次重复测量时,测量结果之间的差异程度。也称重复误差、再现误差等。
解读1:传感器的重复性必须是在相同的条件下得到的多次测量结果之间的差异程度。如果测量条件发生变化,测量结果之间的可比性消失,不能作为考核重复性的依据。
解读2:传感器的重复性表征了传感器测量结果的分散性和随机性。而产生这种分散性和随机性的原因,是因为传感器内部和外部不可避免地存在各种各样的随机干扰,导致传感器的最终测量结果表现为随机变量的特性。
解读3:重复性的定量表述方法,可以采用随机变量的标准差。
解读4:对于多次重复测量情形而言,如果以全部测量结果的平均值作为最终测量结果,则可以得到更高的测量精度。因为平均值的标准差显著小于每个测量结果的标准差。
3、线性度:
定义:线性度(Linearity)是指传感器输入输出曲线与理想直线的偏离程度。
解读1:理想的传感器输入输出关系应该是线性,其输入输出曲线应该是一条直线(如下图中的红色直线)。
但是,实际上的传感器或多或少都存在各种各样的误差,导致实际的输入输出曲线并非是理想的直线,而是一条曲线(如下图中绿色曲线)。
线性度就是表征了传感器实际特性曲线与离线直线之间的差异程度,也称非线性度或非线性误差。
解读2:由于在不同大小的被测量情况下传感器实际特性曲线与理想直线之间的差异是不同的,因此常常以全量程范围内二者差异的最大值与满量程值之比。显然,线性度也是一个相对量。
解读3:由于对于一般测量场合而言,传感器的理想直线是未知的,无从获取。为此,常常采用折中的办法,即直接利用传感器的测量结果计算出与理想直线较为接近的拟合直线。具体计算方法包括端点连线法、最佳直线法、最小二乘法等。
4、稳定性:
定义:稳定性(Stability)是指传感器在一段时间内保持其性能的能力。
解读1:稳定性是考察传感器在一定时间范围内是否稳定工作的主要指标。而导致传感器不稳定的因素,主要包括温度漂移和内部应力释放等因素。因此,增加温度补偿、增加时效处理等措施,对提高稳定性是有帮助的。
解读2:根据时间段的长短不同,稳定性可以分为短期稳定性和长期稳定性。当考察时间过短时,稳定性与重复性相接近。因此,稳定性指标主要考察长期稳定性。具体时间的长短,依据使用环境和要求来确定。
解读3:稳定性指标的定量表示方法,既可以采用绝对误差,也可以使用相对误差。例如,某应变式力传感器的稳定性为0.02%/12h。
5、采样频率:
定义:采样频率(Sample Rate)是指传感器在单位时间内可以采样的测量结果的多少。
解读1:采样频率反映了该传感器的快速反应能力,是动态特性指标中最重要的一个。对于被测量快速变化的场合,采样频率是必须要充分考虑的技术指标之一。依据香农采样定律,传感器的采样频率应不低于被测量变化频率的2倍。
解读2:随着采用频率的不同,传感器的精度指标也相应有所变化。一般而言,采样频率越高,测量精度越低。
而传感器给出的最高精度往往是在最低采样速度下甚至是在静态条件下得到的测量结果。因此,在传感器选型时必须兼顾精度与速度两个指标。
我们再看看传感器五大设计技巧
1、先从总线工具开始
第一步,工程师应当采取首次介接到传感器时,是透过一个总线工具的方式以限制未知。一个总线工具连接一台个人计算机(PC),然后到传感器的I2C、SPI或其他可让传感器可以“说话”的协议。与总线工具相关的PC应用程序,提供了一个已知与工作来源用以发送和接收数据,且不是未知、未经认证的嵌入式微控制器(MCU)驱动程序。在总线工具的工作环境下,开发人员可以传送和接收讯息以得到该部分如何运作的理解,在试图于嵌入式等级操作之前。
2、在Python编写传输接口码
一旦开发者已尝试使用总线工具的传感器,下一步就是为传感器编写应用程序代码。并非直接跳到微控制器的代码,而是在Python编写应用程序代码。许多总线工具在编写脚本(writing scripts)配置了插件(plug-in)和范例码,Python通常是随着.NET中可用的语言之一。在Python编写应用程序是快速且容易的, 其并提供一个方法已在应用程序中测试传感器,这个方式并未如同在嵌入式环境测试的复杂。拥有高层级的代码,将使非嵌入式工程师易于挖掘传感器的脚本及测试,而不需要一个嵌入式软件工程师的照看。
3、以Micro Python测试传感器
在Python写下第一段应用程序代码的其中一个优势是,透过调用Micro Python,应用程序调用到总线工具应用程序编程接口(API)可易于进行更换。Micro Python运作在实时嵌入式软件内,其中有许多传感器可供工程师来了解其价值,Micro Python运作在一个Cortex-M4处理器,且其是一个很好的环境,以从中为应用程序代码除错。不仅是简单的,这里也不需要去写I2C或SPI驱动程序,因为它们已被涵盖在Micro Python的函式库中。
4、利用传感器供货商代码
任何可以从传感器制造商“搜括”到的范例码,工程师需要走一段很长的路才能了解传感器如何工作的原理。不幸的是,许多传感器供货商并非嵌入式软件设计的专家,因此不要期待可以发现一个可投入生产的漂亮架构和优雅的例子。就使用供货商代码,学习这部分如何运作,之后重构的挫折感将出现,直到它可以被干净利索地整合到嵌入式软件。它可能如“意大利面条般(spaghetti)”开始,但利用制造商对其传感器如何运作的理解,在产品推出之前,将有助于减少许多得 被毁掉的周末时间。
5、使用一个传感器融合函式库
机会是,传感器的传输接口并不是太新,且先前没有人这么做过。已知的所有函式库,如由许多芯片制造商提供的“传感器融合函式库”,以协助开发人员快速掌握、甚至更好,更可避免他们陷入重新开发或大幅修改产品架构的轮回。许多传感器可以被整合至一般类型或类别,而这些类型或类别将使驱动程序顺利被开发,若处理得当,几乎是普遍或是少可重复使用。寻找这些传感器融合函式库,并学习它们的优点和短处。
感测器被整合至嵌入式系统时,有许多方式可以帮助提高设计时程和易用性。开发者在开始设计时,透过一个高层次抽象概念,以及在把传感器整合进一个较低等级的系统之前,学习传感器如何运作,就绝对不会“走错路”。今天存在的众多资源将可协助开发人员“旗开得胜”,而无须从头开始。