0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在单一设计中使用多个VL53L0X

工程师兵营 来源:互联网 作者:佚名 2018-07-23 09:00 次阅读

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

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

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

图 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 访问)进行编译。

总结

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2541

    文章

    49790

    浏览量

    746657
  • GPIO
    +关注

    关注

    16

    文章

    1165

    浏览量

    51441
收藏 人收藏

    评论

    相关推荐

    基于STM32CUBEMX驱动TOF模块VL53l0x(2)----修改设备地址

    测量环境光强度等应用。 在某些情况下,可能需要在同I2C总线上使用多个VL53L0X传感器,或与其他I2C设备共享总线资源。由于每个VL53L0X传感器具有默认的固定I2C地址,这
    的头像 发表于 12-01 15:46 1133次阅读
    基于STM32CUBEMX驱动TOF模块<b class='flag-5'>VL53l0x</b>(2)----修改设备地址

    基于STM32CUBEMX驱动TOF模块VL53l0x(3)----驱动多个VL53L0X

    在本章中,我们将探讨如何同时驱动多个VL53L0X传感器进行距离测量。我们将介绍如何有效地管理多个传感器之间的通信和控制,以确保它们能够同时进行准确的距离测量。通过本章的学习,将能够了解如何利用
    的头像 发表于 12-01 15:47 791次阅读
    基于STM32CUBEMX驱动TOF模块<b class='flag-5'>VL53l0x</b>(3)----驱动<b class='flag-5'>多个</b><b class='flag-5'>VL53L0X</b>

    代ToF 激光测距模块VL53L0X

    VL53L0X虽然 ToF 测距设备市场起初专注于仅以传感器为起点进行测距的单一设备,但机器人和手势感应等众多新兴应用要求使用多个接近传感器。这些应用必须考虑的其中个问题在于,使用
    发表于 04-06 14:03

    VL53L0X可以永久更改I2C地址吗?

    大家好!关于VL53L0X飞行时间测距和手势检测传感器的简短问题。数据表提到了“可编程I2C地址”。是否可以永久地将默认I2C地址更改为另个地址?新的I2C地址是否会永久存储在VL53L0X中?我
    发表于 10-23 16:46

    如何减少VL53L0X FOV?

    你好。有谁知道是否有可能减少VL53L0X FOV放在它前面小块塑料(黑暗?)管道? 它可以运作得足够好还是串扰会变得不可接受?任何其他选项,以减少检测FOV?提前感谢
    发表于 11-29 10:21

    是否可以为VL53L0X设置最小可检测范围?

    嗨,是否可以为VL53L0X设置最小可检测范围?我有个在10cm区域有些寄生反射的应用,我想忽略它。是否可以设置VL53L0X的可检测范围?以上来自于谷歌翻译以下为原文 Hi
    发表于 04-11 15:39

    VL53L0x不会受到什么样的材料干扰

    大家好,在我的项目中,它有个覆盖VL53L0x(约5厘米)以上。我想知道VL53L0x不会受到什么样的材料干扰。这意味着VL53L0x在其上方有盖子时可以正常工作。非常感谢。火星
    发表于 04-12 15:17

    VL53L0X X-NUCLEO-53L0A1盖玻片材料是什么

    我们正在使用VL53L0X IR飞行时间传感器开发产品。传感器必须位于塑料外壳内,透过IR透射窗口材料。为了测试这样的布置,X-NUCLEO-53L0A1配有气隙垫片和覆盖玻璃材料。我想知道这种玻璃
    发表于 06-12 07:15

    请问VL53L0X的FOV范围是多少?

    数据表显示 VL53L0X 具有 25 度的 FOV。然而,每个 VL53L0X 显示的 FOV 略有不同。比如VL53L0X好像是24度,另
    发表于 12-08 06:12

    如何添加多个vl53l0x传感器?

    我已经成功实现了vl53l0x 传感器,但希望添加更多。我找到了“AN4846 Application note Using multiple VL53L0X in a single
    发表于 12-27 06:48

    VL53L0X GUI无法识别NUCLEO-L476RG板怎么解决?

    X-NUCLEO-53L0A1 + NUCLEO-L476RG 连接到我的 USB 端口,启动应用程序并收到下个错误:为什么会这样?VL53L0X GUI 是否仅适用于 NUCLE
    发表于 01-09 06:06

    微雪电子测距传感器VL53L0X测距模块简介

    VL53L0X 飞行时间 测距传感器模块 2米 I2C接口 测距频率可达50Hz,低功耗,抗干扰 型号 VL53L0X Distance Sensor
    的头像 发表于 01-06 08:56 8374次阅读
    微雪电子测距传感器<b class='flag-5'>VL53L0X</b>测距模块简介

    Adafruit VL53L0X飞行时间距离传感器的使用

    VL53L0X是飞行时间距离传感器,与您使用过的其他传感器不同!该传感器包含个很小的不可见激光源和个匹配的传感器。 VL53L0X可以检测“飞行时间”,也可以检测光线反射回传感器所
    的头像 发表于 11-28 09:26 1.3w次阅读
    Adafruit <b class='flag-5'>VL53L0X</b>飞行时间距离传感器的使用

    使用VL53L0X激光传感器的Arduino高度测量

    电子发烧友网站提供《使用VL53L0X激光传感器的Arduino高度测量.zip》资料免费下载
    发表于 11-01 09:53 0次下载
    使用<b class='flag-5'>VL53L0X</b>激光传感器的Arduino高度测量

    Arduino和VL53L0X飞行时间+OLED显示教程

    电子发烧友网站提供《Arduino和VL53L0X飞行时间+OLED显示教程.zip》资料免费下载
    发表于 07-03 09:37 2次下载
    Arduino和<b class='flag-5'>VL53L0X</b>飞行时间+OLED显示教程