惯性测量传感器系统的简化设计方案

电脑杂谈  发布时间:2020-04-28 00:23:37  来源:网络整理

惯性测量单元_惯性动作捕捉系统_惯性测量系统

精确,可靠地感测位置,方向和运动已成为许多市场领域(包括消费,工业和军事/航空航天)中各种应用的必要要求. 为了提供此类复杂数据,适用的传感器系统除了需要基本陀螺仪传感器或加速度计的结果以外,还需要其他方面的结果.

很难从这些单独的传感器获得准确的读数. 系统设计人员还需要进一步组合多个传感元件的输出,并通过传感器融合来整合其输出. 但是,实现传感器融合的复杂性很容易导致系统开发停滞.

为此,设计人员可以切换到Bosch Sensortec的两个方向传感器设备. 这些设备为定制传感器融合设计提供了更简单的替代方案,并通过现成的解决方案加快了传感器融合功能的开发.

需要传感器融合

感知方向和运动的能力在依赖虚拟或物理运动的应用程序中起着至关重要的作用. 智能手机依靠这种能力来执行各种操作,例如从垂直显示切换到水平显示,以及复杂的功能(例如无需GPS即可操作的惯性导航应用). 除了智能手机和许多其他消费产品以及工业物联网(IoT)产品之外,医疗和汽车应用也越来越需要一定程度的方向感. 尽管在实现具有方向感的传感器融合设计时会遇到一些起伏,但这为设计人员提供了提供独特设计的机会.

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

但是,实际上,每个传感器在传输必要数据的能力上都存在严重的局限性. 加速度计的高灵敏度会引起高噪声. 陀螺仪会随着时间而漂移,因此它不能提供绝对旋转数据. 磁力计会响应所有磁场,并由于给定设置中存在磁性材料而产生异常结果.

此外,这些传感器类型均无法清楚地测量更复杂的运动(例如偏航),更不用说根据地球磁场来确定传感器的绝对方向了. 为了获得这些更复杂的结果,需要在一个称为“传感器融合”的过程中合并传感器数据.

传感器融合方法

传感器融合合并来自多个传感器的数据,以获得无法从单个传感器获得的结果. 方向和惯性导航专家使用一系列针对特定类型应用设计的传感器融合算法. 这些算法的细节不在本文讨论的范围之内,但是每种算法都试图优化原始传感器数据的组合,该组合静态或动态地由各种特征(例如传感器噪声和精度)加权. 结果是对诸如欧拉角或四元数之类的抽象概念的方向和运动的数学投影.

惯性动作捕捉系统_惯性测量单元_惯性测量系统

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

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

无论采用哪种算法惯性测量系统,传感器融合结果的准确性很大程度上取决于基础传感器设计. 作为传感器融合的基本要求,传感器测量值需要紧密/或足够紧密地同步,以满足时间分辨率的应用要求. 目标传感器的物理布局之类的问题可能会影响同步,尤其是对于传感器远离传感器处理设备的应用程序. 在这些情况下,传感器及其各自的信号处理链之间的不同时序路径可能会导致同步中的系统时序错误. 尽管开发人员可以解释这些差异,但是基于传感器的集成方法可以解决此问题.

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

集成的传感器设备将每个目标传感器放在同一模块上,从而消除了使用不同时序路径的实际问题. 此外,使用该设备,开发人员可以依靠他们的传感器模块设计人员来最小化可能影响传感器精度的噪声源或其他设计因素. 实际上,博世Sensortec通过其BMF055 9轴方向传感器进一步采用了这种方法. 该系统级封装(SiP)器件集成了Atmel ATSAMD20J18A 32位MCU和与其BMA280加速度计,BMG160陀螺仪和BMM150地磁传感器大致等效的传感器(图1). (请注意,BMF055的传感器在某些性能值上与它的独立等效产品不同. )

Bosch Sensortec BMF055 原理图

图1: Bosch Sensortec BMF055将传感器与基于Atmel Cortex-M0 +的MCU结合在一起,以收集原始传感器数据并执行传感器融合,从而简化了用于定向和惯性测量应用的传感器系统的设计. (图片: 博世Sensortec)

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

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

Bosch Sensortec BMF055 原理图

惯性测量单元_惯性测量系统_惯性动作捕捉系统

图2: Bosch Sensortec BMF055几乎不需要任何其他组件即可实现方向传感器系统,并提供了串行接口,用于开发传感器融合结果并将其传输到主机系统. (图片: 博世Sensortec)

BMF055 SiP消除了实现传感器融合设计硬件的主要障碍. 需要编写自己的传感器融合算法的开发人员可以使用BMF055作为集成替代方案,而无需创建基于MCU的传感器融合设计. 实际上,博世Sensortec在基于Atmel软件框架(ASF)的分层体系结构中提供了BSX-Lite传感器融合库.

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

Bosch Sensortec 传感器融合软件包图

图3: Bosch Sensortec提供了一个传感器融合软件包,该API允许对BSX-Lite传感器融合库,传感器和Atmel软件框架(ASF)进行API访问. (图片: 博世Sensortec)

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

void bmf055_sensors_initialize(无效)

{

/ *初始化BMA280 * /

bma_init();

惯性测量系统_惯性动作捕捉系统_惯性测量单元

/ *用于运行BSXLite的BMA设置: 范围= 2G,BW = 62.5Hz * /

bma2x2_set_range(BMA2x2_RANGE_2G);

bma2x2_set_bw(BMA2x2_BW_62_50HZ);

/ *初始化BMG160 * /

bmg_init();

/ *用于运行BSXLite的BMG设置: 范围= 500dps,BW = 64Hz * /

bmg160_set_range_reg(0x02);

bmg160_set_bw(0x06);

/ *初始化BMM150 * /

bmm_init();

惯性测量单元_惯性测量系统_惯性动作捕捉系统

/ *用于运行BSXLite的BMM设置: 预设模式=常规,功能状态=强制模式* /

bmm050_set_presetmode(BMM050_PRESETMODE_REGULAR);

bmm050_set_functional_state(BMM050_FORCED_MODE);

}

代码列表. BMF055软件包包含示例例程,这些例程显示了如何对某些操作使用高级例程,例如初始化设备的三个集成传感器. (代码来源: Atmel /博世Sensortec)

直接替代解决方案

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

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

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

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

摘要

诸如增强现实,无人机和智能手机之类的应用程序依赖于确定方向和运动的能力. 传感器融合基于无法单独生成信息或无法清晰快速地生成信息的传感器提供此信息. 对于设计师而言,创建合适的传感器解决方案面临着硬件设计和软件开发方面的主要挑战.

BMF055和BNO055器件可以满足快速开发用于传感器融合设计的定制和直接替换解决方案的需求.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-191333-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 刘渊
        刘渊

        烊烊最棒

      • 何普芳
        何普芳

        烊烊棒棒哒你就是我们心中的小王子

      • 高季兴
        高季兴

        没有经过战火洗礼就不能衡量实力

      热点图片
      拼命载入中...