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

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

3天内不再提示

可穿戴设备和物联网设计的运动跟踪解决方案

电子设计 来源:互联网 作者:佚名 2018-08-02 10:22 次阅读

越来越多的可穿戴设备和物联网设计将检测方向和跟踪运动的能力视为重要要求。尽管已经有各种各样的可用运动传感器,但工程师还是不断受到挑战,探索以更低的功耗更快、更高效地集成这些设备,这在额外增加传感器时尤其具有挑战性。

为应对这些运动跟踪挑战,设计人员需要集成度更高的加速计陀螺仪和磁力仪五金件以及更加高效且智能的数据融合算法

本文将介绍TDK InvenSense提供的同时为硬件和软件提供帮助的解决方案。然后,本文还将介绍设计人员如何着手将该解决方案应用于简化需要复杂的运动感应功能的复杂低功耗多传感器应用的开发。

高效运动跟踪的挑战

利用传统的运动跟踪方法,开发人员可以同时为硬件和软件处理重要的集成问题。在硬件方面,开发人员通常会努力在采用单独的传感器(包括加速计、陀螺仪和磁力仪)构建的设计中最大限度减少其复杂性、尺寸和零件的数量。软件工程师则需要特别注意同步各种各样的传感器输出,以创建高级运动跟踪应用中所用传感器融合算法所需的统一数据流。对于硬件和软件开发人员而言,需要在设计中集成额外传感器类型的应用面临的挑战均显著增加。

但是,使用 TDK InvenSenseICM-20948,开发人员便能够以最少的工作量快速实现运动跟踪设计或其他多传感器系统。

运动跟踪解决方案

TDK InvenSense ICM-20948 是一种多芯片模块,尺寸只有 3 mm x 3 mm x 1 mm,它集成了提供完整运动跟踪解决方案所需的整套传感器、信号链、数据处理和接口电路(图 1)。

TDK InvenSense ICM-20948 的图片

图 1: TDK InvenSense ICM-20948 通过其专用的信号链、可编程滤波器、接口电路和数字运动处理器执行运动跟踪。(图片来源: TDK InvenSense)

该模块在全面工作模式下仅需要 3 毫安 (mA) 左右便能实现其全部功能。对于功率受限的应用,开发人员可以关闭模块的某些部分,从而将完全休眠模式下各阶段的电流消耗降低至 8 微安 (μA)。产生的功耗取决于工作电压 (VDD),根据设计要求,该电压值可以介于 1.71 伏特和 3.6 伏特。

单独的信号链集成在模块中,为集成的 3 轴加速计、3 轴陀螺仪和 3 轴磁力仪以及集成的温度传感器的每个通道提供支持。每个信号链都包括缓冲放大器和一个专用的 16 位模数转换器 (ADC),以及特定于传感器的电路,如驱动模块的霍尔效应磁力仪的电流源

为了提高每种信号链的输出,模块包括适用于每种进一步传感器类型的信号调节阶段。例如,磁力仪输出通过算术电路进行基本信号处理,而其他传感器的输出各自馈入自动的传感器特定调节阶段,以执行采样平均等处理功能。开发人员可以将 ICM-20948 设置为平均多达 128 个陀螺仪数据采样,或者将加速计设置为平均多达 32 个采样。最终,每个通道的信号调节阶段的输出馈入一组专用的传感器寄存器中。

ICM-20948 的核心是一个专有的数字运动处理器 (DMP),用于提供各种不同的功能,包括执行运动处理算法、校准和自测试。在正常工作期间,DMP 会处理来自专用传感器寄存器的数据。然后再将结果存储在模块的集成式 FIFO 中,供主机 MCU 通过共享的 I2C 或 SPI 总线访问。

DMP 和 FIFO 的功能为很多实际应用提供重要功能。很多情况下,应用以相对较慢的速度更新其运动跟踪结果,甚至允许其主机处理器在更新之间休眠,以降低总功耗。然而,运动跟踪算法需要的更新速度明显更高,以确保其在应用请求更新时以最低的延时提供精确的数据。DMP 能够在不需要主机参与的情况下维持高更新速度,这有助于确保准确性,而不会对主机应用本身的性能或功耗强加额外的要求。

简单的集成

ICM-20948 结合了小封装、系统集成功能及主机独立操作等特点,特别适合在移动设备、可穿戴设备和物联网设计中使用。模块的高水平集成意味着,开发人员仅使用三个电容器便可以执行典型的运动跟踪设计。按照 TDK InvenSense 使用陶瓷 X7R 零件的建议,开发人员将在模块的 REGOUT 引脚上增加一个 0.1 μF 电容器进行稳压器滤波,并在其 VDD和 VDDIO引脚上增加一个该电容器用于电源旁通(图 2)。

添加到基于 MCU 的设计中的 TDK InvenSense ICM-20948 的框图

图 2: 设计人员可以将 TDK InvenSense ICM-20948 轻松添加到基于 MCU 的设计中,从而通过 SPI(此处所示)或 I2C 接口连接到 MCU,后者使用相同的配置,但引脚 22 (nCS) 与 VDDIO相关联。(图片来源: TDK InvenSense)

虽然 ICM-20948 为运动跟踪设计提供了近乎直接替代型的解决方案,但很多应用还是对其他传感器类型提出了要求。为帮助开发人员简化这些多传感器设计,ICM-20948 为其他外部传感器提供单独的 I2C 接口和内置支持。开发人员在此将兼容 I2C 的智能传感器连接到模块的专用辅助 I2C 端口(图 3)。

TDK InvenSense ICM-20948 模块的辅助 I2C 接口的框图

图 3: 在 SPI(或 I2C)与主机 MCU 连接的同时,开发人员可以使用 TDK InvenSense ICM-20948 模块的辅助 I2C 接口(AUX_CL 和 AUX_DA)连接外部传感器,并通过 ICM-20948 的辅助设备专用寄存器管理它们。(图片来源: TDK InvenSense)

在正常操作中,ICM-20948 将充当 I2C 总线控制器,以与外部传感器通信。在此模式下,开发人员可编程一组专用的模块寄存器,以定义外部设备的 I2C 地址、输出数据地址以及其他的传输参数。用此信息,模块可以将外部传感器数据读入其 FIFO 和外部设备数据寄存器中,从而在传感器 I2C 总线上使用单字节或多字节读取,而不会涉及到主机 MCU。

ICM-20948 提供专门设计用于协调 ICM-20948 与外部传感器之间时间的一项额外功能。除了使用模块的专用中断 INT 引脚之外,开发人员还可以使用外部传感器的中断或同步脉冲驱动模块的 FSYNC 引脚。例如,在图像稳定应用中,开发人员可以使用图像传感器的帧同步输出来将图像数据与 ICM-20948 传感器读数同步。使用模块的 FSYNC_CONFIG 寄存器,开发人员甚至可以将模块配置为测量外部传感器 FSYNC 事件与 ICM-20948 数据事件之间的时间,从而在图像和运动数据间提供更密集的同步。

但是,作为专用的运动跟踪设备,ICM-20948 缺乏使用一般由主机 MCU 处理的那种设备特定设置操作来配置外部传感器所需的功能。为简化系统初始化过程,该模块提供一种直通模式,以使用集成的接口旁通多路复用器将主机系统处理器直接连接到外部传感器上。

在直通模式下,该设备使用其集成的模拟开关将辅助 I2C 引脚 AUX_CL(引脚 7)和 AUX_DA(引脚 21)直接以电气方式连接到主机 I2C 总线(引脚 23 和 24)。该工作模式提供一种简单的方法,以允许主机处理器处理与每个外部传感器相关的任何配置和设置要求。初始化后,开发人员禁用旁通多路复用器,以允许 ICM-20948 接管正常操作时的外部传感器访问。

快速开发

尽管 ICM-20948 提出了相对简单的接口要求,但希望评估运动跟踪解决方案的开发人员甚至可以避免该水平的硬件原型开发。TDK InvenSense 的DK-20948评估板和参考设计提供现成的开发平台,其结合了主机 MCU、嵌入式调试器、USB 接口和用于增加其他传感器的多个连接器、无线连接和其他功能(图 4)。

图 4: TDK InvenSense DK-20948 板提供一种完整的运动感应设计,其结合了 ICM-20948 模块与Microchip TechnologyATSAMG55J19BMCU(左侧中间)和基于 MicrochipAT32UC3A4256MCU(位于板的后侧)的嵌入式调试器。(图片来源: TDK InvenSense)

DK-20948 板基于 Microchip Technology ATSAMG55J19B MCU,使用 ICM-20948 提供完整的运动传感器设计。同时,该板包括一个提供嵌入式调试功能的 Microchip AT32UC3A4256 MCU,从而在与主机 ATSAMG55 MCU 结合使用时消除对外部工具的需求。开发人员可以使用该板评估 ICM-20948,在此过程中,无需进一步的硬件工作或者其他定制或可用子板来扩展其功能。开发人员完成其 ICM-20948 评估后,可以使用套件的示意图、详细的 BOM 和板设计文件创建定制设计。

对于软件工程师而言,DK-20948 套件同样包括用于快速评估和定制开发的选项。对于评估,公司基于 MotionLink GUI 的工具可使开发人员探索不同的配置设置及评估它们对所产生运动数据的影响。然而,对于大多数开发人员来说,套件的软件开发包将很快成为他们的主要关注点。

定制软件

对于定制软件开发,TDK InvenSenseeMD(嵌入式运动驱动器)SmartMotion 软件包提供应用编程接口 (API) 说明文档、驱动源代码、传感器融合文库以及预建的 DMP 固件图像。同时,该软件包还包括构建和闪现定制固件图像的工具以及与评估板进行控制台交互的命令行实用程序。

eMD 软件平台设计用于与 Atmel/Microchip Technology Atmel Studio 配合使用,包含两个 Atmel Studio 包:内核和应用。内核包包含编程和操作 ICM-20948 所需的底层驱动器和固件,以及 DK-20948 板的 Microchip ATSAMG55J19B 主机 MCU 的预建运动算法和 math 文件。

应用包包含一个样例应用程序,用于演示内核包的使用,包括从顶层应用向下延伸到串行总线交易的主要设计模式。例如,主要的 C 例程展示开发人员如何初始化 ICM-20948 和获取数据(列表 1)。

int main (void)

{

...

/* Initialize icm20948 serif structure */

struct inv_icm20948_serif icm20948_serif;

icm20948_serif.context = 0; /* no need */

icm20948_serif.read_reg = idd_io_hal_read_reg;

icm20948_serif.write_reg = idd_io_hal_write_reg;

icm20948_serif.max_read = 1024*16; /* max num bytes allowed per serial read */

icm20948_serif.max_write = 1024*16; /* max num bytes allowed per serial write */

icm20948_serif.is_spi = interface_is_SPI();

...

* Setup the icm20948 device */

icm20948_sensor_setup();

/*

* Now that Icm20948 device was initialized, proceed with DMP image loading

* This step is mandatory as DMP image are not store in non volatile memory

*/

load_dmp3();

/*

* Initialize Dynamic protocol stuff

*/

DynProTransportUart_init(&transport, iddwrapper_transport_event_cb, 0);

DynProtocol_init(&protocol, iddwrapper_protocol_event_cb, 0);

/*

* Initializes the default sensor ODR in order to properly init the algorithms

*/

sensor_configure_odr(period_us);

InvScheduler_init(&scheduler);

...

while (1) {

InvScheduler_dispatchTasks(&scheduler);

if (irq_from_device == 1) {

inv_icm20948_poll_sensor(&icm_device, (void *)0, build_sensor_event_data);

__disable_irq();

irq_from_device = 0;

__enable_irq();

}

}

return 0;

}

列表 1: 开发人员可以检查 DK-20948 eMD SmartMotion 软件包中提供的示例源代码,以了解主要设计模式,如示例应用的main.c例程中此代码片段所列的 ICM-20948 初始化和传感器轮询模式。(代码来源: TDK InvenSense)

编程 ICM-20948 等高度集成的设备时,开发人员很容易发现自己不仅要应付设备的很多配置选项,还要应付高效操作设备所需的大量软件组件。eMD 内核包通过一系列的抽象(包括软件结构和服务层)消除了该复杂性。例如,关键软件结构inv_icm20948收集了操作 ICM-20948 所需的所有数据和元数据,包括其串行接口定义(列表 2)。

/** @brief ICM20948 serial interface

*/

struct inv_icm20948_serif {

void * context;

int (*read_reg)(void * context, uint8_t reg, uint8_t * buf, uint32_t len);

int (*write_reg)(void * context, uint8_t reg, const uint8_t * buf, uint32_t len);

uint32_t max_read;

uint32_t max_write;

inv_bool_t is_spi;

};

列表 2: 为帮助降低软件复杂性,DK-20948 eMD SmartMotion 软件内核例程提供很多 C 语言结构,这就是其中一个例子,该示例定义 ICM-20948 串行接口的设置及 I2C 或 SPI 交易所需的适当底层读取和写入例程的指示器。(代码来源: TDK InvenSense)

在实例化 eMD 结构及初始化设备本身之后,开发人员可以调用单个例程inv_icm20948_poll_sensor(),以使用inv_icm20948结构实例读取传感器和通过 DMP 处理数据。这份记录齐全的例程有 900 多行,为开发人员详细演示了操作传感器、管理 FIFO 和利用 DMP 的核心功能的使用。

有兴趣从更基础的层面了解 ICM-20948 操作的开发人员可以转向底层内核例程,如设备自测试Icm20948SelfTest.c模块中使用的例程。在此模块中,int inv_do_test_accelgyro等例程显示了控制设备的典型寄存器操作(列表 3)。

static int inv_do_test_accelgyro(struct inv_icm20948 * s, enum INV_SENSORS sensorType, int *meanValue, int *stMeanValue)

{

...

// Set Self-Test Bit

if (sensorType == INV_SENSOR_GYRO)

{

// Enable gyroscope Self-Test by setting register User Bank 2, Register Address 02 (02h) Bit [5:3] to b111

result = inv_icm20948_write_single_mems_reg(s, REG_GYRO_CONFIG_2, BIT_GYRO_CTEN | SELFTEST_GYRO_AVGCFG);

} else

{

result = inv_icm20948_write_single_mems_reg(s, REG_ACCEL_CONFIG_2, BIT_ACCEL_CTEN | SELFTEST_ACCEL_DEC3_CFG);

}

...

}

列表 3: 开发人员可以在 DK-20948 eMD SmartMotion 软件包中发现演示 ICM-20948 在多个抽象层面使用的例程,包括Icm20948SelfTest.c模块此代码片段中显示的寄存器级访问。(代码来源: TDK InvenSense)

在列表 3 中,(相对)高级的inv_icm20948_write_single_mems_reg()函数会调用低级例程inv_icm20948_write_reg(),从而传递给常见的inv_icm20948结构实例。该调用会向下传达到低层,最终到达实际执行寄存器写入操作的例程中。为执行此操作,该最终低级函数使用软件初始化期间加载到inv_icm20948_serif串行接口结构实例中的寄存器写入例程指示器,如前面的列表 2 所示。这种分层方法对于帮助最大限度降低软件复杂性和最大限度提高性能是必不可少的。

对于开发人员,eMD SmartMotion 架构提供一个在一组一致的关键预定义结构上构建的灵活框架。使用 eMD 软件包,开发人员可以在高水平上工作,从而使用抽象快速执行应用。同时,开发人员可以轻松跳入低层以执行定制功能,而不会失去与更高级软件的一致性。eMD SmartMotion 软件包和 DK-20948 开发板一起使用,可以提供全面的平台来快速开发运动感应应用。

总结

TDK InvenSense ICM-20948 模块为运动感应提供了完全集成的解决方案。使用相关的 DK-20948 开发套件和 eMD SmartMotion 软件包,开发人员可以快速构建能够满足最低尺寸和功耗要求的运动感应解决方案。

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

    关注

    112

    文章

    15223

    浏览量

    171175
  • DMP
    DMP
    +关注

    关注

    1

    文章

    37

    浏览量

    16530
  • ICM-20948
    +关注

    关注

    4

    文章

    3

    浏览量

    5279
收藏 人收藏

    评论

    相关推荐

    大数据推动可穿戴设备的发展

    的前提。 可穿戴设备因为有了大数据的支撑才具有了“智能”,而大数据更是因为有了可穿戴设备的采集数据才真正变成了足够的“大”,这是天造地设的一双。不过,光有数据还不行,专注于智能化解决方案的上海顺舟
    发表于 09-10 20:55

    可穿戴设备开发相关攻略及主要厂商精选

    `  可穿戴设备作为联网的重要组成部分吸引了众多目光。人们所憧憬的便捷、智能化生活正一步步走来,更是给各大业内厂商带来了巨大的商机。  可穿戴设备不仅仅是一种硬件
    发表于 01-04 16:29

    世平-可穿戴设备上微信平台解决方案

    `世平集团技术团队已成功完成可穿戴设备经由微信 Wechat API,与厂商服务器进行通讯的功能验证。推出基于 TI CC254X 可穿戴设备上微信平台解决方案,为可穿戴设备厂商提供微
    发表于 02-03 23:41

    2015中国(深圳)可穿戴设备应用技术高峰论坛

    频宽、低功耗且低成本的设计要求,加之联网应用正如火如荼开展,大大刺激相应测试测量需求跟着水涨船高。本次技术论坛主要亮点包括:吉时利提供可穿戴设备的功耗测试“杀手锏”如何突破复杂的传统耗电测试
    发表于 08-21 15:09

    可穿戴设备

    确的话,容易出事情。如果数据不准确,基于数据的分析及解决方案都是空谈。如果监测慢性疾病的设备,能够通过CDC健康认证等,则会大大增加用户的使用信心。可穿戴设备,不是一种品类。它更像是一种传统事物的升级:手表升级为智能手表,戒指升
    发表于 01-15 08:11

    未来,智能可穿戴设备行业将会是这样的

    出现更多新的品牌和产品。比如高通在2013年就发布了一款Toq智能手表,通过轻量级的系统实现良好的互动功能。预计芯片厂商会逐渐将可穿戴设备平台化,推出更方便的解决方案;而由于设计制造可穿戴设备并不像手机
    发表于 04-22 09:09

    低功耗蓝牙可穿戴设备创造人机交互新体验?

    技术打破了传统的交互模式,使人与智能设备成为一体,提高了人与的整体交互和计算能力,它的诞生给人类提供一种无处不在的计算和无时不有的交互。蓝牙可穿戴设备解决方案蓝牙
    发表于 09-02 13:13

    探讨可穿戴设备的未来

    的数量巨大,安全算法被黑客攻破(使得数据传输失去安全性)的风险始终存在。因此,可穿戴设备制造商必须考虑独立的数据加密措施,比如Dialog针对可穿戴设备解决方案所采取的措施。即使蓝牙安全协议被破解
    发表于 12-05 15:01

    联网时代 智能穿戴设备的挑战与解决方案

    的数据传输服务。本篇SKYLAB君将为大家详细介绍联网时代智能穿戴设备的挑战和解决方案
    发表于 01-06 10:09

    ADI可穿戴设备电源管理解决方案

    解决方案呢?看看ADI亚太区医疗行业市场经理王胜怎么说吧! 迎合电源管理低功耗、小体积及低成本要求“可穿戴设备本身是很宽泛的概念覆盖各类产品形态,包括传统便携设备(如手表),也包括在非设备
    发表于 09-17 10:43

    ON Semiconductor真正可拓展可穿戴设备开发神器

    目前可穿戴设备企业所面临的困扰。  安森美半导体以广泛能力领跑市场  通过对创新技术的长期投入和战略性收购,安森美半导体已经成长为试算年销售约50亿美元的公司,拥有全面的移动设备电源和数据管理解决方案
    发表于 11-08 10:48

    联网可穿戴设备对健康的影响

    健康技术市场上有30多万个应用程序,诸如联网(IoT)、视频会议和可穿戴设备等技术趋势正在广泛被引入,以使留在家中老人的选择变得更加可行。 据羿戓信息所了解,预计到2021年,全球将卖出5.05亿台
    发表于 11-20 06:45

    可穿戴设备电源管理方案

    方案选型和产品设计中能有参考。ADI亚太区医疗行业市场经理王胜发表可穿戴设备技术主题演讲一张图看清ADI在可穿戴系统中的功率器件产品链
    发表于 12-20 09:30

    可穿戴设备的构成和分类

    近几年,可穿戴设备市场非常火热,人们一致看好可穿戴设备市场。最近Apple Watch的热销,让人们对可穿戴设备的前景更加充满信心。可穿戴设备种类有很多,并且在不断延伸,主要分为:应用
    发表于 07-10 06:37

    可穿戴设备是信息共享还是隐私侵犯?

    现如今关于可穿戴设备的所有讨论几乎都涉及到了联网,以及全方位的连接能带来的新能力。我们如今仍在联网这个生态系统的早期阶段,但有一些问题必
    发表于 04-30 07:39