创建众多传感器设计所通用基本系统

描述

打造新的多传感器系统可能是一项艰苦工作,因为您必须确保设计符合传感器的特定要求,并做到长期的准确性和可靠性。 当根据应用的要求,需要更多无线连接时,设计师很难提供这样一种解决方案——既能最大限度提高无线电灵敏度,扩大其覆盖范围,又能维持无噪声信号链运行。 专为传感器应用而设计的单板计算机 (SBC) 可提供出色的解决方案,来满足无线传感器的复杂要求,而不影响紧凑的项目时间表。

通常,传感器系统设计会将微控制器 (MCU) 与更多的模拟电路与数字控制逻辑相结合,后者用于准确可靠地获取并发送传感器数据(图 1)。 SBC 可通过提供结合软硬件与传感器应用开发工具的测试平台,来加快这些系统的设计。 开发人员可以专注于优化所需的特性与功能以满足其独特应用的特定要求,而不必花时间重新创建众多传感器设计所通用的基本系统。

图 1: 大多数传感器系统都采用共同的设计,其中包含用于传感器信号采集的微控制器 (MCU) 和模拟前端 (AFE)、用于将传感器数据发送至其他设备或主机系统的通信子系统。 (图片来源: Texas Instruments)

Texas Instruments 和 NXP 推出的专业板级系统专门用于传感器应用,结合了无线传感器硬件和专业软件库,以及能帮助加快设计和测试这些应用的完整开发环境。

紧密集成的 SBC

Texas Instruments SensorTag 提供一种紧密集成的解决方案,可以在仅 5 x 6.7 x 1.4 cm 的封装内提供全面的传感器处理系统。 SensorTag 基于 TI CC2650 无线 MCU 的功能构建,并增加了一些必要的元器件,用于连接 CC2650 与在 SensorTag 板上构建的多个传感器和用户接口备(图 2)。

图 2:Texas Instruments SensorTag 利用 TI CC2650 无线 MCU 的无线通信及传感器处理的集成功能,为传感器应用的快速开发提供多个传感器和接口。 (资料来源: Texas Instruments)

TI SensorTag 专门用于所连接传感器应用的快速开发,是一个全面的、可支持许多不同开发风格的开发套件。  实际上,开发人员使用其默认模式就可以开始快速处理传感器数据。 在以默认模式启动后,SensorTag 会向智能手机等支持低功耗蓝牙的核心设备广播自己。 开发人员通过云端从 SensorTag 即可访问传感器数据,或者使用 JavaScript 和 jQuery 直接访问数据。 在此模式下,开发人员可以使用 Android 或 iOS 移动应用作为起点,或根据与套件一起提供的网络应用项目样例中的源代码写入独立于 HTML5 平台的代码。

对于更复杂的定制应用,SensorTag 硬件会提供一个基于开放式硬件解决方案构建的高级开发平台。其中,开放式硬件解决方案旨在展示如何使用多样化低功耗传感器。 开发人员可以使用称为 DevPack 的子卡进一步扩展 SensorTag,这使设计和测试其他类型的传感器和致动器变得容易。 需要特别说明的是,SensorTag 和可用的 Debug DevPack 结合后,可提供一个实惠、全面的平台,用于为传感器应用开发定制软硬件(图 3)。

图 3:Texas Instruments 的 SensorTag Debugger DevPack 用于为 SensorTag 增加测试和调试功能,包括 JTAG 调试功能、可简化硬件添加的 Grove 连接焊盘(例如添加 Seeed Technology 的 Grove 指纹传感器时)。 (图片来源:Texas Instruments)

对于无线部署,SensorTag 套件包括低功耗蓝牙 (BLE) 堆栈,进而在 TI 实时操作系统 (TI-RTOS) 软件环境中运行。 TI-RTOS 是一个实时、先占式、多线程操作系统,可以同步执行应用程序与 BLE 协议栈,此二者皆在 RTOS 内作为单独任务运行。 在此,BLE 堆栈按最高优先顺序运行,以帮助确保可靠通信。

在 SensorTag 中,无线事务本身利用 CC2650 的集成 RF 核心,其中包括与模拟 RF 及基带电路集成的 ARM® Cortex®-M0 处理器。  尽管工程师无法对 RF 核心的 M0 处理器进行编程,但 TI 提供高级别、基于命令的应用编程接口 (API),可实现从主处理器上运行的代码发布命令至 RF 核心。 RF 核心转而使用其专用的 4 KB SRAM(用于数据)和 ROM(用于代码),以自主方式处理无线协议的时间关键型部分——减轻主 CPU 的负载,并保留资源供应用本身使用。

简化的软件开发

借助 CC2650 中的集成自主处理器——传感器控制器引擎 (SCE),传感器信号的处理可以同样高效。 正如 RF 核心可独立地执行无线事务,SCE 可独立于主处理器控制传感器和关联的外设。 因此,SCE 可以运行模数转换器 (ADC) 或通过集成的串行外设接口 (SPI) 轮询数字传感器而不用唤醒主处理器,从而消除了采集传感器数据所需的的额外功耗和唤醒时间。

与 RF 核心不同,工程师可以对 SCE 进行编程。 通过使用类 C 语言,开发人员可以编写定制代码来执行传感器轮询或应对特殊条件和处理要求。 因此,开发人员可以创建更多动态传感器处理功能,而不必依靠为传感器数据采集设置外设时常用的这种静态配置。 TI 针对传感器代码部署提供 Sensor Controller Studio (SCS),这是一种用于为 SCE 编写、测试和调试代码的特殊软件工具(图 4)。

图 4:开发人员使用 TI Sensor Controller Studio 软件开发工具和类 C 语言对 CC2650 的集成传感器控制器引擎进行编程。 这会生成 C 源代码,以纳入专门在 CC2650 无线 MCU 上运行的主要应用中。 (图片来源: Texas Instruments)

SCS 会生成传感器控制器接口驱动程序,即一组 C 源文件。 开发人员会转而使用 TI Code Composer Studio (CCS) 编译这些 C 源文件,其中的任何其他定制代码专门作为主要应用的一部分在 CC2650 的 ARM Cortex-M3 主机处理器上运行。

CCS 是一个基于 Eclipse 的集成开发环境 (IDE),为 TI MCU 系列的应用开发和调试提供给了全套工具。 在其开发功能中,Code Composer Studio 包括一个不断优化的 C/C++ 编译器、源代码编辑器、项目构建环境、调试器和分析器——全部通过 IDE 的单用户接口访问,该接口旨在方便开发人员完成应用程序开发的每个阶段。

灵活的传感器解决方案

NXP 为其 OM13078 传感器处理运动解决方案 (SPM-S) 采取了不同的方法。 SPM-S 以 NXP LPC54102 MCU 为基础,结合了 NXP 的 OM13077 LPCXpresso 板与通过 LPCXpresso 的扩展接口连接的传感器扩展板(图 5)。 如图所示,传感器扩展板包括一个用于无线通信的 BLE 模块 (AMS0002) 和多个用于温度、压力、环境光和距离的传感器,以及用于更复杂的运动检测应用的加速计、陀螺仪和磁力仪传感器。

图 5:NXP 提供了一种传感器解决方案。该方案结合了 LPC54102 LPCXpresso 板与装载多个传感器的扩展板,以及包括完整传感器软件库的全套开发环境。  (图片来源: NXP)

对于随附的运行时间软件环境,NXP 提供其 LPC 传感器框架,其中包括系统软件和传感器处理软件(图 6)。 正常操作期间,LPC54102 MCU 会对传感器进行采样,并使用 Bosch Sensortec BSX Lite 库处理传感器数据。 通过无线 BLE 通信或 LPCXpresso 板支持的多个主机接口中的任一接口,可将结果进一步发送至其他设备或主机处理器。

图 6:开发人员在 NXP 的 LPC 传感器框架上构建传感器应用,该框架提供全面的运行时间环境,包括系统服务和传感器信号处理,以及通过 Bosch Sensortec BSX Lite 库对传感器融合应用的内置支持功能。 (图片来源: NXP)

传感器融合架构

除了从多个传感器收集数据的基本功能外,SPM-S 解决方案还具有通过专为高级情境感知应用而设计的传感器融合算法合并多个传感器输出的能力,因此在众多解决方案中脱颖而出。 传感器融合功能结合了多个传感器的结果,可提供无法从任何单个传感器获得的信息。 例如,专门识别方向的应用需要加速计、磁力仪和陀螺仪传感器的组合结果。 NXP 专门设计了 SPM-S 系统,以使用系统中包括的传感器融合软件来汇总多个实体传感器的数据。

SPM-S 架构中深度嵌入了对传感器融合的支持功能。 正如典型的传感器系统那样,SPM-S 架构会将传感器设备识别为连接至 SPM-S 硬件的独特实体设备。 软件使用 sensors.h 传感器头文件中提供的唯一 ID 访问每个设备(图 7)。

图 7:每个实体传感器都可以通过传感器头文件 sensors.h 中的 PhysSensorId 计数器中定义的唯一传感器 ID 来识别。 (图片来源: NXP)

要在应用层级支持传感器融合,SPM-S 架构可利用其在底层软件层支持虚拟传感器来扩展此基本概念。 单个虚拟传感器包含多个物实体传感器,这些传感器的结果按照传感器融合算法合并后产生新信息。

例如,对计算方向信息所需的加速度计、磁力仪和陀螺仪传感器数据进行合并而产生的传感器融合结果,会由虚拟方向传感器传回。 在 SPM-S 开发环境中,开发人员可以指定系统的 SensorMap 阵列中的虚拟传感器(图 8)。 在此阵列中,会将每个虚拟传感器列为单个条目,并由该条目指定该虚拟传感器使用哪些实体传感器。

Android

图 8: SensorMap 阵列描述了向虚拟传感器提供数据的物理传感器。 例如,方向的虚拟传感器使用加速计、磁力仪和陀螺仪等实体传感器。 (图片来源: NXP)

SPM-S 架构中的另一个深度嵌入功能,可以在一个虚拟传感器中结合多个传感器的结果时帮助维持同步。

准确的传感器融合结果需要准确计时,以确保按传感器融合算法只合并相同“时间点”的样本。 在 SPM-S 中的中断驱动采样期间,传感器会按预先定义的速率自主采样并在结果就绪时产生中断。 每个中断驱动的传感器都有关联的中断处理程序,中断处理程序只是在发生中断时存储时间戳;实际的传感器结果读取在后续服务程序中执行。 此方法有助于维护所需的准确时序数据,以从多个单独物理传感器的数据生成准确的虚拟传感器结果。

结论

基本无线传感器系统的设计可能会形成影响项目时间表,以及不利于应用本身的重大挑战。 专业的单板计算机为传感器处理提供成熟可靠的软硬件基础,让各公司可以将资源更明确地集中于差异化的传感器应用。 通过使用 SBC 及其关联的开发环境,工程师可以快速开发传感器应用,甚至扩展基本的软硬件以打造满足更复杂要求的定制解决方案。 

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

全部0条评论

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

×
20
完善资料,
赚取积分