比定制传感器融合设计更简单的替代方案
eeskill 2022-08-12

准确可靠地感测位置、方向和运动已经成为许多细分市场(包括消费、工业和军用/航空)各种应用领域的必要需求。 要提供这种复杂的数据,适用的传感器系统除了整合来自基本的陀螺仪传感器或加速计的结果外,还需其他方面的结果。

从这些单独的传感器获得准确的读数本身就很难,系统设计人员还需进一步组合多个传感元件的输出,并通过传感器融合来整合其输出。 然而,实施传感器融合的复杂性极易造成系统开发停滞不前。

为此,设计人员可以转而使用BoschSensortec 的两款方向传感器器件。 这些器件提供了一种比定制传感器融合设计更简单的替代方案,通过现成的解决方案加快传感器融合功能的开发。

传感器融合的需求

感知方向和运动的能力在依赖虚拟或物理运动的应用中起着至关重要的作用。 智能手机依靠这种能力来进行各种操作,简单如纵向显示切换到横向显示,复杂如无需GPS辅助即可操作的惯性导航应用。 除了智能手机及许多其他消费品和工业物联网 (IoT) 产品外,医疗和汽车应用越来越需要一定程度的方向感知功能。 虽然在实施具有方向感知的传感器融合设计上会有所起伏,但这让设计人员有机会提供与众不同的设计。

在硬件层面,底层传感系统用加速计检测运动,用陀螺仪感测旋转,并用磁力仪识别航向。 理论上,这些传感器可以提供确定方向、位置和航向所需的所有必要信息。

然而在实践中,每种传感器在其传输必要数据的能力方面都表现出严重的局限性。 加速计的高灵敏度会带来高噪声。 陀螺仪会随时间产生漂移,因此不能提供绝对旋转数据。 磁力仪会响应所有磁场并会因给定设置中发现的磁性材料产生异常结果。

此外,这些传感器类型中没有一个能够明确地测量偏航等更复杂的运动,更不用说根据地球的磁场识别传感器的绝对方向。 要取得这些更复杂的结果,需要在所谓的“传感器融合”的过程中组合传感器数据。

传感器融合方法

传感器融合会合并来自多个传感器的数据,以得出从单个传感器无法得出的结果。 方向和惯性导航专家采用为特定类别的应用设计的一系列传感器融合算法。 这些算法的细节不在本文的探讨范围内,但每种算法都力求优化原始传感器数据的合并,这些数据经传感器噪声和精度等各种特性进行了静态或动态加权。 结果是使用诸如欧拉角或四元数等抽象概念的方向和运动的数学投影。

幸运的是,开发人员不必成为传感器融合算法的专家就能利用这些算法的功能。 在构建传感器融合应用时,开发人员可以使用现有的软件解决方案,如NXPSemiconductors 传感器融合库。 设计用于在 Kinetis K20 之类的MCU上运行的 NXP 软件可以组合使用由可编程增益放大器(PGA)、比较器和模数转换器(ADC) 组成的 MCU 集成模拟信号链采集的传感器数据。

这种基于 MCU 的方法在满足特定应用需求方面具有极大的灵活性。 没有传感器融合理论经验的开发人员可以使用现成的库开发经过优化的系统。 希望实施更专业算法的专家可以在目标应用程序中替换其代码。 即使如此,所有开发人员在前端传感器系统自身的设计上仍面临重大挑战。

不管算法如何,传感器融合结果的精度很大程度上取决于底层传感器设计。 作为传感器融合的基本要求,传感器测量值需要紧密/或足够紧密地同步,以满足时间分辨率的应用要求。 目标传感器的物理布局等问题会影响同步,特别是对于传感器远离传感器处理设备的应用而言。 在这些情况下,传感器及其各自的信号处理链之间的不同时序路径会导致同步中出现系统定时误差。 虽然开发人员可以解释这些差异,但基于集成传感器的方法化解了这个问题。

集成传感器模块简化了融合

集成传感器器件将每个目标传感器放置在同一个模块上,消除了有关不同时序路径的实际问题。 此外,使用这种器件,开发人员可以依赖于其传感器模块设计人员来尽量减少噪声源或会影响传感器精度的其他设计因素。 事实上,Bosch Sensortec 通过其 BMF055 9 轴方向传感器使这种方法更进一步。 这种系统级封装 (SiP) 器件将AtmelATSAMD20J18A 32 位 MCU 和与其 BMA280 加速计、BMG160 陀螺仪和 BMM150 地磁传感器(图 1)大致相当的传感器加以集成。 (注意,BMF055 的传感器在某些性能值方面与其独立的等效产品有所不同。)

图 1: Bosch Sensortec BMF055 将传感器与基于Atmel Cortex-M0 + 的 MCU 相结合,收集原始传感器数据并执行传感器融合,简化了方向和惯性测量应用的传感器系统设计。 (图片: Bosch Sensortec)

基于ARM® Cortex®-M0+ 内核的内置 Atmel ATSAMD20J18A MCU 集成了 32 KB 的 SRAM和 256 KB 的闪存。 它用作本地主机,通过 SPI总线获取原始传感器数据,并在模块内执行传感器融合软件算法。 反过来,Atmel MCU 通过 USART接口与外部主机通信,以传输最终的传感器融合结果。

硬件设计简单明了。 BMF055 只需要一个外部 32 KHz晶体和电容即可完成传感器融合设计(图 2)。 事实上,Bosch Sensortec BMF055 评估套件提供了一个简单的即用型开发平台,将分线板与包含 BMF055 和所有必要组件的小板组合在一起。

图 2: Bosch Sensortec BMF055 几乎不需要额外组件来实施方向传感器系统,并提供串行接口用于开发及将传感器融合结果传输到主机系统。 (图片: Bosch Sensortec)

BMF055 SiP 消除了传感器融合设计硬件实施的重大障碍。 需要自行编写传感器融合算法的开发人员可以使用 BMF055 作为集成替代方案,不用再创建基于 MCU 的传感器融合设计。 事实上,Bosch Sensortec 在基于 Atmel 软件框架 (ASF) 的分层架构中提供了 BSX-Lite 传感器融合库。

该软件包在每一层上都公开了一系列 API,用于访问 BSX-Lite 库、传感器驱动程序和底层 ASF 驱动程序(图 3)。 实际的运行时间代码驻留在随分发包提供的封装库中。 开发人员可以在提供的堆栈上快速构建其应用程序,根据特定应用程序需求替换自己的专有传感器融合库。

图 3: Bosch Sensortec 提供传感器融合软件包,允许通过 API 访问 BSX-Lite 传感器融合库、传感器和 Atmel 软件框架 (ASF)。 (图片: Bosch Sensortec)

Bosch Sensortec 软件包甚至包含示例代码,该代码能展现用于执行各种器件操作(代码列表)的高级调用。 软件为每个传感器提供了分类,因此从特定传感器读取数据就像为相应类别的实例调用适当的方法一样简单。 传感器支持库中的低级例程执行必要的总线读取,由嵌入式 MCU 执行,以通过 SiP 模块的内部 SPI 总线访问传感器器件寄存器。

void bmf055_sensors_initialize (void)

{

/* Initialize BMA280 */

bma_init();

/*BMA settings for running BSXLite: Range = 2G, BW = 62.5Hz*/

bma2x2_set_range(BMA2x2_RANGE_2G);

bma2x2_set_bw(BMA2x2_BW_62_50HZ);

/* Initialize BMG160 */

bmg_init();

/* BMG settings for running BSXLite: Range = 500dps, BW = 64Hz*/

bmg160_set_range_reg(0x02);

bmg160_set_bw(0x06);

/* Initialize BMM150 */

bmm_init();

/*BMM settings for running BSXLite: Preset mode = Regular, Functional state = Forced mode*/

bmm050_set_presetmode(BMM050_PRESETMODE_REGULAR);

bmm050_set_functional_state(BMM050_FORCED_MODE);

}

代码列表。 BMF055 软件包含有示例例程,展示了如何使用高级例程进行一些操作,例如对器件的三个集成传感器进行初始化。 (代码来源: Atmel/Bosch Sensortec)

直接替代型解决方案

凭借完整的可编程性,BMF055 为需要定制功能,甚至专门的传感器融合计算的应用提供了有效的解决方案。 对于寻求快速直接替代型解决方案的开发人员,Bosch Sensortec BNO055 将传感器融合固件与传感器和 MCU 集成,直接输出固件所生成的高级信息。 BNO055 使用基于寄存器的方法,能让主机获得最终的结果,包括加速度、线性加速度、重力矢量、磁场强度、角速率、温度,以及欧拉角或四元数的方向。

对于硬件集成,模块提供I2C和UART端口用于连接到主机,并需要与 BMF055 相同的基本晶体和电容器补充。 与 BMF055 一样,Bosch Sensortec 还提供了一个 BNO055 开发板,其中包括该器件和所有必需的组件。

因为 BNO055 执行传感器融合计算并提供最终结果,所以软件界面相对简单。 基本器件驱动程序处理外部主机通过 I2C 或 UART 硬件接口访问器件所需的总线读写操作。

低级软件例程会访问 BNO055 的专用寄存器来检索特定的传感器融合结果。 例如,驱动程序例程 bno055_read_accel_xyz() 会读取原始线性加速度数据,bno055_convert_float_accel_xyz_msq() 函数会将数据转换为以 m/s2 为单位的浮点值。

总结

增强现实、无人机和智能手机等应用依赖于确定方向和运动的能力。 传感器融合基于不能单独生成信息或者不能明确和快速生成信息的传感器来提供这些信息。 对于设计人员来说,创建合适的传感器解决方案在硬件设计和软件开发方面都面临重大挑战。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 浅谈新型非易失存储

    非易失存储,Non-Volatile Memory (NVM),是相对DRAM(掉电后数据丢失)而言的,指可以持久化保存数据的存储介质。广义上来说,NAND Flash也是一种非易失存储。近些年来,不论在学术界还是工业界,新型非易失存储技术都是关注的重点且取得了一定的突破。新型

    09-29
  • 将飞机发电机输出的三相交流电变换成直流电源

    随着多电飞机和全电飞机成为现代飞机的发展趋势,同时由于现代电力电子技术的飞速发展,直流稳压电源在航空领域得到了广泛的应用。根据某型飞机对直流电源的实际需求,本文

    09-29
  • 高压并联电容再投入的最小时间间隔计算

    在刚脱开电网的高压并联电容器的端子间存在一定的剩余电压。这种剩余电压如不能及时下降到允许值以下,会对操作人员的安全及电容器的安全运行带来危害。所以在大部分高压并

    09-28
  • 一张图了解物联网,如何应用 mavlink 通信协议

    背景介绍: 在9012年,即便不知道什么是“物联网通信技术”肯定也听说过 物联网 三个字。 本文用浅显易懂的表达说一说:“物联”是怎么回事儿? 重点说一说:物与物之间的联系是依靠怎样的硬件和软件建立起来的,并介绍 mavlink 通信协议的用法。 一张图了解

    09-28
  • 详解STM32 Flash

    本文将根据ST官方Flashprogramming manual,文档编号:PM0059,讲解STM32F207内部Flash编程。 01 概述 这里的flash是指STM32F207内部集成的Flash Flash存储器有以下特点 最大1M字节的能力 128位,也就是16字节宽度的数据读

    09-28
  • 安防系统的安全设计与防雷设计

      十多年来,安防行业的“防雷设计”几乎是“专业防雷”的一统天下,“防雷必须接地,不接地就不能防雷”的设计思想几乎“深入人心,天经地义”,贯彻“专业防雷”设计思

    09-27
  • 通过BQ25570 PMIC 启动能量采集

    能量收集设计的根本缺陷是电源不可靠,但也有一些例外情况,例如流量计,其中液体的运动是持续的,采集器可从这种流动中吸收一部分动能大多数情况下,采集器只能达到较低持

    09-27
  • 分散式储能系统的布局

    时下,储能行业正在大力发展,锂离子电池和铅蓄电池是该领域应用最多的两种技术,但除了电池,还有哪些问题需要关注的呢?发展规模储能是解决可再生能源大规模接入、提高常

    09-27
  • 脉冲电镀的基本原理及优越性

    前言脉冲电镀是通过槽外控制方法改善镀层质量的一种强有力的手段,相比于普通的直流电镀镀层,其具有更优异的性能(如耐蚀、耐磨、纯度高、导电、焊接及抗变色性能好等),

    09-23
  • 简述场效应管的选型及应用

    场效应管宽泛运用正在模仿通路与数目字通路中,和咱们的生涯密没有可分。场效应...场效应管宽泛运用正在模仿通路与数目字通路中,和咱们的生涯密没有可分。场效应管的劣势正在于:首前人动通路比拟容易。

    09-23
下载排行榜
更多
广告