可穿戴设备应用程序的实现

描述

在本系列文章的第一部分中,我们介绍了物联网市场趋势、智能家居和可穿戴应用的相关性,并展示了智能家居门锁控制器的示例实现。在第二部分中,我们将探讨可穿戴设备应用程序的实现。

手表不再只是为了报时。智能手表通过启用短信、电话和健康监测,将我们的手腕变成了智能手机皮套。可穿戴设备是用户“几乎总是”佩戴的无线设备。例如,健身监测器是一种可穿戴设备,可以通过监测心率、运动、睡眠习惯、体温、汗水等参数来跟踪一个人的健康状况。这些设备具有多个传感器,通常可以与连接到互联网的设备(如智能手机或PC)进行通信。这些设备具有三个主要功能:

始终开启:由于健身监测器连续运行,因此这些设备需要较长的电池寿命。设计可穿戴设备时的最大挑战之一是它们耗电,并且通常可以容纳的电池尺寸有限。

监控活动:健身监测器感知、处理、记录和报告用户活动。这包括监控多个传感器和执行“传感器融合”,其中来自多个传感器的数据使用类似DSP的引擎进行关联,以分析更复杂的行为并以用户可以理解和使用的方式跟踪它们。

交换数据:这包括将收集和分析的信息传达给其他设备的能力,例如向/从智能手机发送通知和警报。

图 2 显示了使用嵌入式 MCU(如PSoC 6 BLE)实现可穿戴健身监视器的过程。

嵌入式

活动监控:计步器和卡路里计数器计算一个人的步数并计算燃烧的卡路里数。为了检测步长,需要使用加速度计传感器。压力传感器还用于测量步行/跑步时的海拔变化。大多数传感器具有数字接口,通常为 I2C、SPI 或 UART。需要对采集的数据进行额外的过滤和处理,以计算步数、海拔高度、燃烧的卡路里等值。这些传感器还用于实现低功耗系统功能,例如在检测到运动时唤醒整个系统,以便执行实时分析。为了支持可穿戴设备可能需要的多个传感器,嵌入式MCU将需要多个数字接口。理想情况下,这些接口可以在I2C、SPI和UART之间进行配置,为开发人员提供最大的传感器选择和实现灵活性。此外,嵌入式MCU需要支持双核架构,其中MCU能够执行传感器融合和复杂分析,低功耗MCU用于执行运动唤醒等系统任务。

环境监测:监测仪可能还需要收集环境数据,例如紫外线暴露测量、环境温度、大气压力、指南针航向等。

全球定位系统:GPS传感器通常是带有UART接口的数字传感器。GPS 传感器提供位置(纬度和经度)、速度和高度信息。

音频:在音频数据通过无线链路传输之前,数字域中的音频信号处理是任何音频系统的重要组成部分。数据通常使用基于 PDM 麦克风的声级计收集,然后进行测量、过滤和/或压缩。集成了DSP功能和音频功能的嵌入式MCU可以大大简化高质量、不间断声学音频子系统的设计。

安全:可穿戴设备需要能够跟上不断变化的安全协议和措施。具有安全启动功能的嵌入式MCU可确保可穿戴设备仅执行经过身份验证的代码。此外,设备可以支持无线 (OTA) 更新,以使更新对用户透明。

用户界面:今天的用户已经习惯于使用按钮、滑块和接近感应的触摸显示器。还可以支持不同输出类型的嵌入式MCU可以支持各种显示技术,例如Eink,OLED等。

无线连接:设备需要支持低功耗蓝牙 (BLE) 连接,并为可穿戴设备运行提供必要的服务。

支持所有这些功能需要全面的固件流程(参见图 3)。支持可穿戴设备应用的制造商可以提供完整的库,从而加速开发并降低整体设计投资。

嵌入式

任务体系结构

在任何可穿戴设计中,都有三项关键任务:

获取数据

处理数据

与用户通信 – 输入和输出(显示)

通常,传感器采集比其他任务需要更高的处理器操作速率,因为此类处理包括在大型样本基上运行的滤波器。因此,使用低功耗内核(如 Arm Cortex-M0+)执行传感器数据采集更节能。处理传感器数据取决于所用算法的复杂性,开发人员必须在能效和处理速度之间进行权衡。对于光处理,可以使用用于采集传感器数据的相同低功耗内核。但是,对于更实时的操作,需要更高性能的处理器,例如Arm Cortex M3 / M4内核。用户界面,在涉及简单的可穿戴显示器和输入时通常是一个轻量级的过程,可以由任一内核处理,但理想情况下在低功耗内核上实现。因此,为了在低功耗可穿戴设备中实现最佳性能,需要双核架构。请注意,可以利用双核架构对固件框架进行流水线,通过加快任务完成速度来提高响应能力,并通过在内核之间共享时钟、RAM、闪存等资源来降低资源和功耗。

低功耗处理器(如 Cortex M0+)运行一个简单的任务调度程序,可处理频繁的低带宽任务,例如:

传感器数据采集

电容感应扫描和处理

维护BLE连接和通告的BLE链路层控制器

系统管理,包括安全任务和传感器控制

高性能处理器(如 Cortex M4)用作运行 RTOS 并处理处理器密集型应用级任务的应用处理器,例如:

传感器数据处理(即方向计算、高度计算等)

显示图形,如绘图文本、图像、形状等。

完整的指纹处理,包括匹配和注册算法

BLE 主机层任务,包括所有服务、配置文件和连接身份验证

通过内核之间的共享内存和快速处理器间通信 (IPC) 通道桥接,与两个设备在外部通信相比,通信延迟几乎不存在。

低功耗核心任务架构

在高级别上,低功耗内核执行两种类型的任务 - 级别 1:在每个周期中执行的周期性任务和级别 2:周期性但每“n”个周期执行一次的时隙任务(n = 任务的周期/每个周期持续时间)。定时器可用于生成中断以指示周期的开始,例如每 10 毫秒 (100 Hz)。级别 1 任务在中断事件上逐个执行。时隙变量可以在每个中断时递增并传递给 2 级任务管理器。根据插槽编号,执行相应的 2 级任务。

表1提供了可在低功耗内核中实现的各种任务的示例。

桌子1. 低功耗核心任务

 

任务 类型 周期(毫秒)/插槽(共 50 个插槽)
蓝牙控制器 级别 1 10/-
电容感应扫描和手势检测 级别 1 10/-
全球定位系统获取和处理 级别 1 10/-
压力/温度数据采集 级别 2 500/1
紫外数据采集 级别 2 500/3
电池数据采集 级别 2 500/7

 

在数据采集任务完成或需要与高性能核心上运行的其他任务通信的任何事件(如手势被检测到)时,将形成一个消息数据包并通过IPC发送到高性能核心。在高性能内核上引发中断,处理消息数据包,并将数据适当地传递到在高性能内核上执行的预期任务。

高性能核心任务架构

高性能内核使用 RTOS 来管理 BLE、运动传感、显示更新、GPS、压力/温度、UV 和指纹检测等任务。除了 BLE、运动传感和指纹检测外,其他任务都等待来自低功耗内核的数据。

BLE任务可以定期运行(每个连接间隔一次)。完成后,任务将自行挂起,直到下一次需要唤醒。

运动检测任务可以是非周期性任务,每当运动传感器本身引发中断时都会运行。像Invensense MPU9255这样的运动传感器包括一个数字运动处理器(DMP),该处理器在片上FIFO上收集数据,并以预配置的速率中断高性能内核。中断时,运动传感器任务通过SPI接口读取运动传感器中的FIFO,并处理数据以计算方向、步数、燃烧的卡路里等。

指纹检测任务可以是非定期任务,每当用户注册、验证或删除指纹时都会运行。注册用户指纹并锁定显示时,也会运行此任务。已注册的用户指纹可用于解锁和保护可穿戴设备。

显示任务也可以是非周期性任务,每当需要在屏幕上更新数据(即传感器数据、时间、电池和来自其他任务的BLE通知)或从低功耗内核报告电容感应手势事件时,就会运行该任务。

GPS、压力/温度和紫外线任务可以是伪周期性任务,因为它们不会定期挂起和唤醒。相反,任务唤醒是在从各个传感器收集数据后从低功耗内核触发的。由于数据收集速率在低功耗内核中是周期性的,因此这些任务可以在高性能内核上定期执行。

表 2 显示了高性能内核管理的任务示例。

桌子2. 高性能核心任务

 

任务 优先权 类型 唤醒源
唔唔�� 9 500 周期的 操作系统每 BLE 连接间隔唤醒一次 (vTaskdelay)
运动传感器 8 500 非周期的 来自传感器的中断
显示 6 500 非周期的 来自其他任务的通知
压力 8 200 伪周期 来自低功耗内核的通知
紫外线 8 150 伪周期 来自低功耗内核的通知
全球定位系统 8 100 伪周期 来自低功耗内核的通知
指纹 7 5000 非周期的 来自显示任务和中断的通知 (SMIF/SPI)

 

处理器间通信体系结构

同时运行的两个内核需要一种机制来保护共享数据和通信,以便在固件中同步任务。双核架构需要支持多种 IPC 机制,例如 IPC 锁定、消息传递和中断/通知。任务代码可以使用 IPC 锁定功能来保护共享数据和 IPC 消息传递,以在内核之间交换通知和数据。

IPC 锁:每当访问共享数据进行修改时,访问核心/任务都会尝试获取与数据对应的锁。如果锁是空闲的,则核心/任务被授予对数据的访问权限。更新/处理完成后,任务可以释放锁以授予对其他挂起任务的数据访问权限。这可以防止数据被多个源同时尝试更新/使用数据而损坏。

IPC 消息:除了保护共享数据外,还需要一种通信方式来同步内核之间的任务。这可以通过在内核之间传递的“命令和参数”消息数据包来实现。每当一个内核希望另一个内核执行操作时,它都会将带有任何必需参数的操作/命令 ID 打包到消息中,并通过 IPC 传递消息。消息数据包准备就绪后,内核将在另一个内核上触发 IPC 中断,在该内核上解析命令,然后对其执行操作。

在第二部分中,我们通过一个示例实现讨论了可穿戴设备应用。在第三部分中,我们将说明如何利用可穿戴实现与智能家居网络进行交互。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分