应用说明 – BMI085 和 BMI088 的数据同步
文档修订版本 1.0
发布日期: 2020年7月
文档编号: BST-MIS-AN006-00
适用产品编号: 0 273 141 365; 0 273 141 366
注: 本文档中的数据和描述可能会随时更改,恕不另行通知。产品照片和图片仅用于说明目的,可能与实际产品外观有所不同。
BMI08x IMU 的数据同步
目录
- 简介
- 1.1 概念
- 技术实现
- 2.1 应用原理图
- 2.2 软件
- 2.3 传感器初始化
- 2.4 读取同步传感器数据
- 2.5 示例代码
- 同步功能时序
- 法律免责声明
- 4.1 工程样品
- 4.2 产品使用
- 4.3 应用示例和提示
- 文档历史和修改记录
1. 简介
BMI08x 系列是一款系统级封装惯性测量单元 (IMU),可提供精确的加速度和角速度测量。由于采用系统级封装技术(单封装中包含两个传感器),陀螺仪和加速度计数据的采集是非同步的。然而,可以轻松实现加速度计与陀螺仪之间的同步。本文件描述了如何在增强现实(AR)或虚拟现实(VR)等典型应用中实现加速度计与陀螺仪的同步。
要实现 BMI08x 的数据同步,需要将陀螺仪的 “数据准备好” 中断信号连接到 BMI08x 加速度计的一个中断引脚(可配置为输入引脚)。加速度计的内部信号处理单元利用来自陀螺仪的 “数据准备好” 信号,同步并插值加速度计的数据,同时考虑传感器的组延迟。然后,加速度计部分可以通知主机数据可用。使用此技术,可以实现同步数据,并为加速度计提供高达 2 kHz 的输出数据率。该数据同步功能支持 400 Hz、1000 Hz 和 2 kHz 的数据率。
1.1 概念
数据同步功能支持 BMI085 和 BMI088 两种传感器。同步数据意味着陀螺仪和加速度计数据的采集发生在同一时间,信号具有相同的传播时间。从运动到寄存器读取的时间取决于信号处理路径和模数转换导致的物理传播时间,每个传感器的时间具体不同。陀螺仪和加速度计信号的典型组延迟如下表所示:
加速度计输出数据率 (Hz) | BMI085 组延迟 (ms) | BMI088 组延迟 (ms) |
---|---|---|
1600 | 0.625 (典型值) | 1.1 (典型值) |
800 | 1.25 (典型值) | 1.8 (典型值) |
400 | 2.5 (典型值) | 3 (典型值) |
陀螺仪输出数据率 (Hz) | BMI085 和 BMI088 组延迟 (ms) |
---|---|
2000 | 1.5 (典型值) |
1000 | 2.5 (典型值) |
400 | 7 (典型值) |
通过加速度计的内部处理单元,可以实现加速度计和陀螺仪数据在同一时间点和相同组延迟上的同步。加速度计部分的内部处理单元测量加速度计模数转换数据准备信号的时间戳以及陀螺仪数据准备信号的时间戳。最后,处理单元使用时间戳差值和每个信号路径的已知组延迟插值加速度数据,将同步数据存储在通用寄存器中,并将 “数据准备好” 中断引脚置为高电平。主机可以从加速度计和陀螺仪的数据寄存器读取同步的传感器数据。寄存器的刷新速率与陀螺仪数据率 (400 Hz, 1 kHz, 2 kHz) 相关联。
BMI08x 的硬件中断引脚(INT1 / INT3)用于数据同步功能。中断引脚 INT2 可用于 BMI08x 向主机发送 “数据准备好” 通知。
2. 技术实现
2.1 应用原理图
使用 BMI08x 同步数据输出的典型应用电路图如下:在 PCB 上需要外部连接 BMI085 的中断引脚 INT1 和 INT3。主机通知应使用 INT2 引脚。对于对延迟敏感的多传感器应用,建议使用 SPI 接口以获得最快的传感器数据读取(建议的 SPI 时钟速度 >2MHz)。此外,建议在主控单元 (MCU) 上使用边沿触发中断配置。
2.2 软件
为了使用 BMI08x 的数据同步功能,需要在每次上电复位(POR)或软复位后进行传感器配置。此外,还需要将二进制代码加载到加速度计部分的处理单元中。强烈建议使用 Bosch Sensortec 的 BMI08x 传感器 API(GitHub 链接)。
2.3 传感器初始化
传感器 API 包含一个名为 DataSync.md 的自述文件,用户可以在其中找到设置同步功能所需的 API 调用。强烈建议注意不同 API 调用之间有时需要的延迟。
2.4 读取同步传感器数据
当 BMI08x 通过 “数据准备好” 中断(INT2)通知主机时,可以从数据寄存器读取同步的 IMU 数据。角速度数据可以从陀螺仪部分的数据寄存器(0x02–0x07)中读取,而同步的加速度数据可以在加速度计部分的通用数据寄存器(0x1E 和 0x27)中找到。除了同步数据外,还可以从相应寄存器读取原始加速度数据和(如需要)传感器时间。
加速度计数据存储在以下寄存器中:
- 原始传感器数据:0x12(长度 = 6 字节:ax, ay, az)
- 同步加速度计数据 ax, ay:0x1E(长度 = 4 字节:ax_sync, ay_sync)
- 同步加速度计数据 az:0x27(长度 = 2 字节:az_sync)
- 传感器时间:0x18(长度 = 3 字节)
2.5 示例代码
关于接收同步数据所需步骤的示例代码,可以在 Bosch Sensortec 的网页工具 COINES 中找到:链接。
3. 同步功能时序
参数 | 时间 | 备注 |
---|---|---|
陀螺仪采样时间 | 典型值 500 µs | |
加速度计内部采样时间 | 典型值 625 µs | |
同步加速度计数据采样时间 | 典型值 500 µs | 与陀螺仪 “数据准备好” 中断同步 |
加速度计 “数据准备好” 延迟时间 | 典型值 25 µs | 从陀螺仪 “数据准备好” 中断到加速度计 “数据准备好” 中断 |
同步精度 | 典型值 <100 µs | |
同步数据延迟 / 组延迟 | 典型值 1.5 ms @ 2 kHz ODR | |
典型值 2.5 ms @ 1 kHz ODR | ||
典型值 7 ms @ 400 Hz ODR |
4. 法律免责声明
4.1 工程样品
工程样品以 * 或 (e) 标记。这些样品可能与数据表中描述的产品系列技术规范有所不同,因此不适合转售给第三方或用于最终产品。其唯一目的是内部客户测试。
4.2 产品使用
Bosch Sensortec 的产品仅为消费品行业设计,不适用于生命维持或安全关键系统(例如,可能导致人身伤害、死亡或严重财产损失的系统)。此外,不得直接或间接用于军事目的、核能、深海或航天应用。
4.3 应用示例和提示
本文中的任何示例、提示或典型值均仅供说明用途,不构成功能、性能或无错误保证。
5. 文档历史和修改记录
版本 | 章节 | 修改/更改描述 | 日期 |
---|---|---|---|
1.0 | 全文 | 文档创建 | 2020年7月 |
博世传感器技术有限公司
地址:德国雷特林根,Gerhard-Kindler-Straße 9
邮箱:contact@bosch-sensortec.com
网址:www.bosch-sensortec.com