首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

物联网趋势以及智能家居和可穿戴应用的相关性(三)

物联网趋势以及智能家居和可穿戴应用的相关性(三)

任务架构
在任何可穿戴设计中,有三个关键任务:
获取数据
处理数据
与用户的输入和输出(显示)进行通信

传感器采集通常需要比其他任务更高的处理器操作频率,因为这种处理包括在大样本基础上运行的过滤器。因此,使用像Arm Cortex-M0 + 这样的低功耗核心来进行传感器数据的获取效率更高。处理传感器数据取决于所使用的算法的复杂性,开发人员必须在功率效率和处理速度之间权衡。 对于光处理,可以使用用于获取传感器数据的相同低功耗核心。然而,对于更多的实时操作,需要更高性能的处理器,如ARM Cortex M3/M4核心。 用户界面,通常是一个轻量级的过程,当涉及到简单的可穿戴显示和输入时,可以由任何一个核心处理,但理想的是在低功耗核心上实现。因此,为了在低功耗的可穿戴设备中实现最佳性能,需要一个双核结构。需要注意的是,可以利用双核架构来做固件框架管道化,通过加速任务完成来提高响应性能,并通过在核心之间共享时钟、RAM、Flash等资源,减少资源和功耗。

低功耗处理器,如Cortex M0 +,运行一个简单的任务调度器来处理频繁的、低带宽的任务,比如:
传感器数据采集
电容式感应扫描及处理
BLE链路层控制器维护BLE的连接和通告
系统管理,包括安全任务和传感器控制

高性能处理器,如 Cortex M4,作为运行 RTOS 的应用程序处理器,并处理处理器密集的应用程序级任务,如: 传感器数据处理(如定向计算、高度计算等) 显示图形,如绘制文字、图像、形状等 完整的指纹处理,包括匹配和注册算法 主机层任务,包括所有服务、配置文件和连接身份验证

在共享内存和快速的处理器间通信(IPC)是核心之间的桥梁,通信延迟几乎不存在,相比之下,两个设备在外部进行通信几乎是不可比的。

低功耗核心任务架构
在高级别上,低功耗核心执行两种类型的任务: 第1级: 在每个周期执行的周期性任务和二级任务: 周期性时间档任务,但在每个循环中执行一次(任务/周期的n个周期)。 一个计时器可以用来产生一个中断来表示一个周期的开始,比如每10毫秒(100hz)。 1级任务在中断事件中执行一次。时隙变量可以在每个中断时递增,并传递给二级任务管理器。根据插槽编号,执行适当的二级任务。表1提供了可在低功耗核心中执行的各种任务的例子。

任务类型BLE控制器Level 1电容式感应扫描和手势检测Level 1获取和处理GPSLevel 1压力 / 温度数据的获取Level 2紫外线数据的获取Level 2电池数据采集Level 2

在完成数据采集任务或任何需要通过高性能核心运行的任务(如已经检测到一个手势) ,就会形成一个消息包,并通过IPC发送到高性能核心。对高性能核心发出中断,处理消息包,并将数据适当传递给在高性能核心上执行的预期任务。

高性能核心任务架构
高性能核心使用一个RTOS来管理诸如BLE、运动感应、显示更新、GPS、压力/温度、紫外线和指纹检测等任务。 除了BLE、运动感应和指纹检测外,其他任务都需要等待来自低功耗核心的数据。

可以周期性地运行 BLE 任务(每次连接间隔一次)。 完成后,任务暂停,直到下一次唤醒。

运动感应任务可以是一个非周期性的任务,只要运动传感器本身提出一个中断,它就会运行。 像 Invensense MPU9255这样的运动传感器包括一个数字运动处理器(DMP),它收集芯片上的FIFO数据,并以预先配置的速率中断高性能核心。 在中断时,运动传感器任务通过SPI接口读取运动传感器中的FIFO,并处理数据以计算方向,步骤,卡路里燃烧等等。

指纹检测任务可以是一个非周期性的任务,当用户在滚动、验证或者删除指纹时都会运行。当用户指纹被注册并且显示被锁定时,这个任务也会运行。一个注册用户的指纹可以用来解锁和保护可穿戴设备。

显示任务也可以是一个非周期性的任务,只要数据需要在屏幕上进行更新(即传感器数据、时间、电池和来自其他任务的 BLE 通知) ,或者如果一个电容式感应的手势事件是从低功耗核心报告的。

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

任务优先级堆栈BLE9500运动传感器8500显示6500压力传感器8200GPS传感器8100指纹传感器75000

处理器间通信架构
两个同时运行的核心需要一个保护共享数据和通信的机制,以便同步固件中的任务。 双核体系结构需要支持多个IPC机制,如 IPC锁、消息传递和中断/通知。 任务代码可以使用IPC锁特性来保护共享数据和 IPC 消息传递到核心之间的通知和数据。

IPC锁
当访问共享数据进行修改时,访问核心/任务就会尝试获取与数据相对应的锁。 如果锁是空闲的,那么核心/任务将被授予访问数据的权限。 一旦更新/处理完成,该任务就可以释放锁来将数据访问到其他待完成的任务。 这保护数据不会被多个试图同时更新或使用数据的数据损坏。

IPC消息
除了保护共享数据外,还需要一种通信方式来同步核心之间的任务。 这可以通过在内核之间传递的"命令和参数"消息包来实现。 当一个核心希望对方执行一个动作时,它会将动作/命令ID包含任何需要的参数到消息中,并将消息传递给IPC。 一旦消息包准备好,核心会在另一个核心上触发一个IPC中断,在这个核心中,命令被解析,然后执行。

智能家居配备可穿戴设备
为了理解可穿戴设备与智能家居互动的一些方法,可以考察一些用例。


mmexport1524218367968.jpg
2018-11-20 06:20

上海.羿歌,主要立足于物联网之感知层的解决方案和组件设计制造。  18918134319
返回列表