“在最基本的尝试玩硬件的过程中,我们经常将传感器直接连接到微控制器I / O引脚。在理想的无噪声和无静电的世界中,这将是一种合理的方法。
”在几乎所有情况下,您都应该考虑在传感器和计算平台之间采取某种形式的输入保护。
可能需要将传感器连接到的三种主要系统类型:
直接连接到MCU(微控制器):直接连接到引脚(外部)和寄存器(内部)
单板计算机(SBC):具有操作系统的功能更强大的处理器
Arduino和类似Arduino的系统:具有一组标准化库函数的MCU,使使用变得更加容易
我们还介绍了将传感器连接到这些系统的三种方法,如下所示:
• 直接数字
• 直接模拟
• 基于协议
系统的另一部分通常很少被谈论,但同样重要:传感器和计算系统之间的关系。
在最基本的尝试玩硬件的过程中,我们经常将传感器直接连接到微控制器I / O引脚。在理想的无噪声和无静电的世界中,这将是一种合理的方法。
在此图中,我们具有传感器的所有三种基本类型:基于协议的加速度计,直接数字按钮开关和模拟电位计。全部都直接连接到Arduino。(来源:杜安·本森(Duane Benson)
但是我们既不生活在理想世界中,也不生活在无噪音(任何形式)的世界中。传感器和系统以不同的电压运行,我们周围的空气充满离子和电噪声,而长电线充当天线。
传感器带来了重要的环境数据,但它们也可能带来很多不必要的行李。系统中的一个小尖峰和一个不受保护的微控制器(有时是非常昂贵的微控制器)可能会被损坏或破坏。或者,电噪声可能会使传感器失明或导致其提供看似合理但完全错误的数据。
基本上,我要说的是,除了最常见的情况以外,您实际上应该考虑在传感器和计算平台之间采取某种形式的输入保护。
如下表所示,常见的保护方法包括衰减,削波,光隔离和滤波:
常见保护方法的利弊(来源:Duane Benson)
当有源传感器在与微控制器不同的电压下工作时,也可能需要保护电路。
该原理图剪辑中所示,来自Digilent的Chipkit uc32使用3.3 V 32位Microchip MCU,但Arduino兼容板生活在5 V世界中。它在其模拟输入上组合实现两种不同类型的保护:削波二极管(用于防止过压)和串联电阻(用于限制电流)。(来源:杜安·本森(Duane Benson)
具有与主机MCU不同的工作电压的基于协议的传感器出现了另一个电压转换需求,例如连接到3V或1.8V微控制器的基于5V I2C协议的传感器 。来自1.8V MCU的“高”信号可能不够高,无法被传感器视为逻辑“ 1”。3V“高”电平可能会通过,但您可能无法依靠它,因为并非所有逻辑“ 1”信号都与系统电压匹配,因此您最终可能会看到一个2.2V信号,即“不确定”由传感器的5V I2C决定。
此外,传感器的逻辑“ 1”可能处于5 V或接近5 V的水平,这可能烧坏3-V MCU(一定是1.8-V MCU)上的I / O端口。相反,这对于5V MCU和较低电压传感器来说是一个风险。我已经烧毁了比5V微控制器更多的3V加速度计。
模拟传感器输出的电压高于MCU的电压,也会引起相同的问题。最重要的是,传感器和MCU电压不匹配会导致损坏,就像嘈杂的环境一样。
使用基于协议的传感器,您将需要一个所谓的线路电平转换器来在两个电压之间改变信号电平。可以使用一些分立的晶体管来限制这些设备,但也可以将它们用作特殊的集成电路。它们将具有一个公共接地点,并且将以一侧的一个系统电压和另一侧的更高或更低电压对系统进行分割。
该示意图显示了用于I2C总线的3.3V至5V双向线路电平转换器。未显示连接两侧的公共接地。(来源:杜安·本森(Duane Benson)
线路级转换器有双向和单向版本。有些人将串联电阻(更多是限流系统)用于单向信号。如果您对系统电流了解足够多,以确保附带的压降足够大,则可以使用此功能。
对于工作电压高于MCU的模拟传感器,您可以使用电阻分压器来确保不改变斜坡特性并使电压保持在危险水平以下。电阻的选择将取决于模拟输入的电流消耗规格。
分享到:
猜你喜欢