使用单一 I²C 总线组合多个接近传感器

近年来,接近传感器越来越备受关注。  例如,接近传感器现今广泛用于智能手机,在手机进行通话时停用触摸屏模式,因为此项功能可在用户视线离开屏幕时禁用触摸灵敏度,从而降低手机功耗。 此外,接近传感器还可最大限度地减少因用户身体部位碰触手机,而导致通话意外断开的风险。 直到最近,接近传感器仍是由发射 IR 光脉冲的红外 LED 和测量目标物反射光振幅的红外检测器组成。 这项技术使主机处理器能够估算传感器与目标物之间的距离。  然而,目标物反射的光量取决于目标物表面的颜色和光滑度等若干因素,这一点导致估算精度受限。

STMicroelectronics 的 FlightSense™ 技术采用了另一种完全不同的方法。 此项技术准确测量光传播到最近的物体,并反射回传感器的总时间。 这种“渡越时间”(ToF) 法的优势在于光反射回程的时间仅由光行走的距离决定,而不必考虑反射回程的光量。 众所周知,光速的精度极高,所以回程距离的计算公式也很简单,即“光速” x “时间延迟”。

VL53L0X 是新一代 ToF 激光测距模块,采用目前市场上最小型的封装,可基于各种目标物颜色和反射特性进行精确测距。  该设备测量的绝对距离可长达 2 m,精度高达 3%,具体取决于所选功耗与精度的平衡。

STMicroelectronics VL53L0X ToF 激光测距模块框图

图 1:VL53L0X 框图。

如图 1 所示,VL53L0X 集成了人眼完全可见的 940 nm VCSEL 发射器(垂直腔面发射激光器)。 此激光器不会对眼睛造成任何伤害,完全满足针对 1 类激光设备的最新标准(IEC 60825-1:2014 - 第 3 版)。  此外,VL53L0X 还配有内置物理红外滤光片,可增大测量距离、增强对环境光的抗扰度,以及对玻璃罩光学串扰的抗扰度。  反射回程的 IR 光通过高灵敏度的领先 SPAD(单光子雪崩二极管)阵列进行测量,SPAD 阵列是先进医疗扫描仪的首选技术。

在单一设计中使用多个 VL53L0X

虽然 ToF 测距设备市场起初专注于仅以传感器为起点进行测距的单一设备,但机器人和手势感应等众多新兴应用要求使用多个接近传感器。  这些应用必须考虑的其中一个问题在于,使用多个接近传感器对主机处理器 GPIO 资源的需求。 

单个 VL53L0x 传感器需要四个主机 MCU 的 GPIO 引脚(图 1)。 其中,两个引脚提供 I²C 串行时钟 (SCL) 信号和串行数据 (SDA) 信号,第三个引脚 (XSHUT) 用于 MCU 复位传感器,而第四个 (GPIO1) 引脚可帮助主机控制器中断时序关键型应用,或者在应用无需快速响应新测距任务时,用作轮询输入。 

然而,这并不表示两个传感器需要八个 GPIO 引脚,或三个传感器需要十二个 GPIO 引脚,因为所有传感器都可共享相同的 I²C 时钟线路和数据线路。  当多个传感器共享同一条 I²C 总线时,必须各自拥有不同的总线地址。 总线地址由主机 MCU 分配,MCU 将按顺序复位所有传感器,并及时发出写入命令。 因此,MCU 必须能够直接通过其中一个 GPIO 引脚或 GPIO 扩展芯片,逐个复位/重启所有传感器。

从本质上来说,如果设计人员不希望在 GPIO 计数、封装尺寸和板复杂性三个方面对 MCU 作出过高指定,将存在三种情形。

情形 1 是指可用的 GPIO 引脚数量(假定已有两个 GPIO 引脚专用于 I²C 时钟信号和数据信号)至少是 VL53L0x 接近传感器数量两倍的情况。 这种情况无需 GPIO 扩展芯片,并且每个传感器的 XSHUT 引脚和中断 (GPIO1) 引脚均可直接连接到主机 MCU 的 GPIO 引脚。

情形 2 涉及可用于处理系统中所有 VL53L0x 传感器的 XSHUT 信号和中断 (GPIO1) 信号的 GPIO 引脚数量不足的情况。 如图 2 所示,在这种情况下,一对 GPIO 扩展器,例如 Fairchild FLX6408UMX,允许八个接近传感器共享同一条 I²C 总线。 这一对扩展器中,一个用于为传感器提供 XSHUT 复位信号,另一个负责接收输出测距信号。

I²C GPIO 扩展器示例图

图 2:I²C GPIO 扩展器示例。

最后,情形 3 属于上述两者的中间情况,即板包含 N 个传感器,而 MCU 可用的 GPIO 引脚数量至少达到了 N+1,这使设计人员省去了一个 GPIO 扩展器。 对于这种情况,首选方案是利用 GPIO 扩展器(图 2 中的 U1)向传感器提供 XSHUT 信号,同时将传感器输出直接连接到 MCU 的 GPIO 引脚。  这种方法可避免通过 GPIO 扩展器传送中断信号所固有的延时问题,从而使系统能够更快响应测距过程中发生的任何变化。

采用 VL53L0x 进行设计

为加快 VL53L0x 应用的开发进程,ST 提供了 X-NUCLEO-53LAO1 扩展板等多种开发板,用于 STM32 MCU 开发环境和 STSW-IMG005 API 封装。 为确保用户能够在尽可能接近最终应用的环境中验证 VL53L0X,X-NUCLEO-53L0A1 扩展板均附带一个底座,可安装 3 种厚度不同的垫片(分别为 0.25 mm、0.5 mm 和 1 mm),用于模拟 VL53L0X 和玻璃罩之间的气隙。

VL53L0X API 封装提供了一组用于控制 VL53L0X 的 C 语言函数,其中包括传感器初始化和测距数据采集功能的函数,可帮助实现最终用户应用的开发。 这款封装的结构使其能够基于任何类型的平台,通过一个孤立的平台层(主要针对低级 I²C 访问)进行编译。

总结

接近感应已携手新型设备进入了历史新纪元,这些设备具备前所未有的测量精度,此外还提供硬件和软件支持工具,可帮助设计人员以低成本方式快速测试新应用、制作应用原型以及实现其工业化。这些应用都具备基于单一控制板统一管理多个感应器的能力。

  • 使用单一 I²C 总线组合多个接近传感器已关闭评论
    A+
发布日期:2019年07月14日  所属分类:参考设计