开发人员需要满足各个市场对支持蓝牙的便携式多传感器设计的快速增长需求;但寻找有效解决方案一直是个挑战。为了把握稍纵即逝的机会,除了满足对超低功耗性能的基本要求之外,他们还必须能够在设备到云端的物联网 (IoT) 应用中快速开发原型、评估和定制这类设计,这一点至关重要。
本文将介绍来自 ON Semiconductor 的超低功耗蓝牙处理器片上系统 (SoC),并展示该 SoC 或相关的系统级封装 (SiP) 版本如何满足对电池供电型设计的基本要求。相关的评估板和物联网开发环境可进一步大幅简化开发多传感器设备到云端应用的过程。
低功耗蓝牙应用
在可穿戴健身设备、医疗监测设备、照明、锁具、电器、汽车等诸多智能产品应用中,支持蓝牙的电池供电型设备可提供连接和处理功能。用户期望和竞争压力不断驱动市场对更全面应用的需求,而这些应用需要由更多数量传感器提供的更精确数据来推动。在工业应用等一些领域,多传感器功能对于检测运动、振动、冲击、温度及湿度水平或其他数据是必不可少的,而这些数据是确保员工安全、设备状态或基本资产管理所必需的。
在用户的日常活动中,这些设备不仅必须从多个传感器可靠地传输数据,还必须减少频繁更换电池或为电池充电的需求。这一点对于实现满意的用户体验至关重要。同时,底层解决方案必须有助于降低电池供电型蓝牙产品设计通常会带来的相关成本和复杂性。
来自 ON Semiconductor 的 NCH-RSL10-101WC51-ABG RSL10 SoC 正是这样一种解决方案,它能满足超低功耗工作的要求,同时还为 SiP 和评估板提供了硬件基础,帮助加快最终产品的开发。基于 RSL10 的集成解决方案可与 ON Semiconductor 软件配合使用进行定制开发,或者与 Digi-Key 的 DK IoT Studio 配合使用实现快速开发,让开发人员能够快速部署和评估超低功耗多传感器应用。
深入探讨 RSL10 蓝牙无线 SoC
RSL10 是一款蓝牙 5 认证无线 SoC,专为满足可穿戴设备、移动产品和其他互联产品对超低功耗设计日益增长的需求而设计。RSL10 具有一组全面的集成子系统和功能模块,可提供单芯片解决方案,能够满足支持蓝牙的典型物联网设备和可穿戴设备的要求(图 1)。
![pYYBAGLndSiAbMcNAAFTeMRrBLE203.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndSiAbMcNAAFTeMRrBLE203.png)
图 1:ON Semiconductor 的 RSL10 SoC 集成了处理器和无线电子系统,为蓝牙 5 认证设备提供了完整的超低功耗解决方案。(图片来源:ON Semiconductor)
该器件的主要处理模块包括 Arm® Cortex®-M3 核心、专有 LPDSP32 32 位双哈佛架构数字信号处理 (DSP) 核心、完整的蓝牙 5 认证无线电子系统 — 所有这些都由专用的共享存储器区域提供支持。为了保护代码和数据,有一个 IP 模块提供了相关机制,禁止从外部访问器件的片上闪存、随机存取存储器 (RAM) 或核心。除了全套标准串行外设之外,该器件还提供了四通道模数转换器 (ADC)、通用 IO (GPIO) 和音频接口。通过使用一系列稳压器单独为内部功率域供电,该器件能以单一电压源输出 1.1 伏特到 3.3 伏特范围的电压。
虽然 RSL10 能够支持各种 802.15.4 低数据速率无线个人局域网 (WPAN) 协议,但仍可通过内置硬件和软件的组合,提供全面的蓝牙支持。硬件支持基于实现蓝牙物理层 (PHY) 的集成射频 (RF) 前端搭建。基带控制器与射频前端配合使用,为蓝牙协议堆栈的数据包和帧处理层提供硬件支持。在这里,由一个很小的内置软件内核提供事件和信息处理服务,用于射频流量管理、信息交换和定时器功能。最后,蓝牙库和相关的配置文件库在 Arm Cortex-M3 处理器上运行,构成了完整的应用软件蓝牙堆栈(图 2)。
![poYBAGLndTOAJuiUAAEoXg0BW4U153.png](https://file.elecfans.com/web2/M00/58/EA/poYBAGLndTOAJuiUAAEoXg0BW4U153.png)
图 2:ON Semiconductor 的 RSL10 SoC 通过将在 Arm Cortex-M3 核心中运行的软件与专用硬件(包括基带处理器和底层射频前端)组合在一起,提供了完整的蓝牙堆栈。(图片来源:ON Semiconductor)
软件堆栈基于射频前端和基带处理器中的硬件支持构建,将较低级别的低功耗蓝牙 (BLE) 协议服务层组合在一起,包括逻辑链路控制和适配协议 (L2CAP)、属性协议 (ATT)、安全管理器协议 (SMP)、用于定义连接的通用访问配置文件 (GAP)、用于基于服务和特性定义数据交换的通用属性配置文件 (GATT)。
除了此蓝牙协议堆栈之外,RSL10 配置文件库还支持在可穿戴设备应用中经常使用的几种标准蓝牙配置文件(包括心率、葡萄糖监测、血压),并支持 Rezence 无线充电配置文件和人机界面设备 (HID),以及用于定位、跑步、骑车等应用的配置文件。
高能效
对于设计人员而言,最重要的优势也许是 RSL10 消耗的电流相对较小,同时还以 62.5 至 2000 kbps 的数据速率提供蓝牙连接。使用 1.25 伏特电源 (VBAT) 时,峰值接收 (Rx) 电流为 5.6 毫安 (mA),使用 3 伏特 VBAT 时,该电流仅为 3.0 毫安。在发射功率为 0 dBm(分贝数基准为一毫瓦)的情况下,使用 1.25 伏特 VBAT 时的峰值发射 (Tx) 电流为 8.9 毫安,使用 3 伏特 VBAT 时的峰值发射电流仅为 4.6 毫安。
RSL10 通过其架构实现了高能效,在 EEMBC 的 ULPMark 认证测试中,其 Core Profile 分数达到了 1090 分(使用 3 伏特电源时)和 1260 分(使用 2.1 伏特电源时),在行业中处于领先水平。
开发人员可通过在 RSL10 处于全速运行模式时有选择地禁用硬件模块,或在空闲期间将器件置于低功耗待机或深度休眠模式,进一步提升效率。值得注意的是,RSL10 自动采用这些功率模式机制,在收发器事件之间保持 BLE 连接。因此,该器件能够在所有三个蓝牙广告通道上执行蓝牙广告操作,间隔为 5 秒,消耗的电流仅为 1.1 mA。
待机模式为开发人员提供了一种选择,在器件持续保持低活动量达几百毫秒 (ms) 至仅几毫秒的时间后进入该模式,以节省电能。
在待机模式期间,RSL10 对逻辑和存储器使用时钟选通,并降低供电电压,从而减少漏电电流,实现仅 30 mA 的典型功耗。由于片上电源电路保持活动状态,器件可以相对快速地恢复到工作状态。
深度休眠模式提供了多个选项,在显著降低功耗水平的同时,保持了响应外部事件的能力。在此模式下工作时,该器件提供 8 KB 的 RAM 保持,并在使用 1.25 伏特 VBAT 的情况下仅消耗 300 毫微安 (nA) 电流,在使用 3 伏特 VBAT 的情况下仅消耗 100 nA 电流。当处于最深度的休眠模式时,该器件在 1.25 伏特电压下仅消耗 50 nA 电流(在使用 3 伏特 VBAT 时消耗 25 nA 电流),同时能够唤醒,以响应在专用 WAKEUP 引脚上接收的信号。
一体化设计
RSL10 的丰富功能有助于开发人员打造功率优化的设计,同时不影响性能或蓝牙连接。它的高集成度有助于简化硬件设计。集成电容器等特性消除了传统的外部电容器要求,即将 32 kHz 晶体用于实时时钟 (RTC),或将 48 MHz 晶体振荡器用于射频前端和主系统时钟。因此,RSL10 只需少量外部元器件便可完成设计(图 3)。
![pYYBAGLndT6AfE2rAACjF7-NHGQ518.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndT6AfE2rAACjF7-NHGQ518.png)
图 3:如以上降压模式工作配置所示,凭借高集成度,ON Semiconductor 的 RSL10 SoC 可以使用相对较少的元器件来提供完整的设计。(图片来源:ON Semiconductor)
该器件集成了多个可编程稳压器,用于为数字、存储器和射频前端模块供电。充电泵提供了模拟模块和闪存所需的更高电压电平。借助这些集成的电源系统,该器件能以单一电源输出 1.1 伏特至 3.3 伏特范围的电压。
当电压电平低于 1.4 伏特时,设计人员可使用内部的低压差 (LDO) 稳压器为器件供电。当高于此电压电平时,该器件的集成降压转换器可借助一个额外的电感器,帮助提升效率。这两种电源配置的电路设计唯一区别是,在 LDO 模式下工作时,无需在 VCC 和 VDC 引脚之间使用额外电感器,如图 3 所示。ON Semiconductor 会提供有关 RSL10 的印刷电路板元器件贴装和物理设计指导原则。
使用 RSL10 的系统设计
对于没有时间或资源来构建这些硬件接口的开发人员,ON Semiconductor 的 NCH-RSL10-101S51-ACG RSL10 SiP 提供了有效的替代方案,用于系统设计的定制硬件实现。RSL10 SiP 的外形尺寸为 6 mm x 8 mm x 1.5 mm,将 RSL10 SoC、无线电天线、全套必需元器件集成在单个封装中。使用 RSL10 SiP,设计人员能够将完整的超低功耗蓝牙认证硬件解决方案置入自己的设计中,并专注于满足定制硬件要求。
同样,ON Semiconductor 的 RSL10 软件包也能帮助他们将软件开发工作的重点放在定制要求上。ON Semiconductor 的 RSL10 软件开发套件 (SDK) 基于 Arm Cortex 微控制器软件接口标准 (CMSIS) 硬件抽象层 (HAL) 构建,可提供在 RSL10 CMSIS-Pack 中分发的驱动程序、实用工具和样例代码(图 4)。
![pYYBAGLndUqAMEPQAAIB4p7aZWs245.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndUqAMEPQAAIB4p7aZWs245.png)
图 4:ON Semiconductor 的 RSL10 软件环境在基准软件包中提供一系列的服务和实用工具,另外还提供其他软件包,以支持蓝牙网状网络和蓝牙物联网开发。(图片来源:ON Semiconductor)
该软件包提供了更专业的服务,包括蓝牙支持、FreeRTOS 实时操作系统 (RTOS) 和无线固件更新 (FOTA) 实用工具。此外,ON Semiconductor 还通过单独的蓝牙网状网络软件包和蓝牙物联网开发 (B-IDK) 软件包,为更专业的功能提供支持。例如,B-IDK CMSIS-Pack 提供与物联网相关的服务,包括传感器驱动程序、云连接支持以及相关的应用级软件样例。
要进行定制开发,软件工程师只需将基准软件包和可选软件包载入集成开发环境 (IDE) 中便可。RSL10 软件分发支持 ON Semiconductor 自有的 IDE,还支持 Arm Keil µVision 和 IAR Embedded Workbench 环境。加载软件包之后,开发人员可以研究样例应用程序,学习关键特性的实现。
可随时部署的 BLE 多传感器板
通过将 RSL10 SiP 和 RSL10 SDK 配合使用,可以快速开始开发支持蓝牙功能并可满足严格的超低功耗工作要求的定制设备。但对于某些应用,我们可能没有,甚至不必要投入构建定制解决方案所需的时间和资源。
例如,工业多传感器监控器或智能锁和电灯开关可能需要一个支持蓝牙的小型器件,该器件还要能够延长电池寿命,同时提供来自多种传感器的数据。对于这些应用,ON Semiconductor 的 RSL10-SENSE-GEVK 多传感器评估套件能够提供即时硬件解决方案。该评估套件的板件经过国际认证,能够随时在超低功耗应用中部署。
RSL10-SENSE-GEVK 板包括 RSL10 SiP、多个传感器、ON Semiconductor 的 N24RF64DWPT3G 64 KB 近场通信 (NFC) EEPROM、RGB LED、可编程按钮。该板占用直径不足 30 毫米的圆形基底面。这个基底面只比套件中包括的 CR2032 钮扣电池和柔性 NFC 天线稍大一点(图 5)。
![pYYBAGLndVaAcyoEAAG6PS0eSgk533.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndVaAcyoEAAG6PS0eSgk533.png)
图 5:ON Semiconductor 的 RSL10-SENSE-GEVK 评估板将 RSL10 SiP 与可穿戴设备和物联网设备中通常需要的一系列传感器组合在一起。(图片来源:ON Semiconductor)
该评估板已预装固件,适用于演示板上多个传感器的工作情况,包括:
环境光传感器 (ON Semiconductor NOA1305)
惯性测量装置 (Bosch Sensortec BHI160),带有三轴加速计和三轴陀螺仪
三轴数字地磁传感器 (Bosch Sensortec BMM150)
环境传感器 (Bosch Sensortec BME680),包括气体、压力、湿度和温度传感器
数字麦克风
为了帮助开发人员使用 RSL10-SENSE-GEVK 评估板来快速评估传感器集合和 RSL10 性能,ON Semiconductor 提供了 RSL10 Sense and Control 移动应用,可通过 Android 和 iOS 应用商店获取该应用。
这款应用在支持蓝牙功能的移动设备上运行,让开发人员能够以不同的传感器、采样间隔和周期配置来监控功耗,并监控 RSL10 功率模式以及其他参数。在该应用中设置所需的传感器配置之后,该应用将在一系列窗格中显示结果(图 6)。
![pYYBAGLndWGACvyRAAIzNiGlLEM385.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndWGACvyRAAIzNiGlLEM385.png)
图 6:ON Semiconductor 的 RSL10 Sense and Control 移动应用提供了一种即用型解决方案,用于评估 RSL10-SENSE-GEVK 评估板的多传感器性能。(图片来源:ON Semiconductor)
开发人员可使用上文提及的 CMSIS-Pack 分发和 IDE 选项,查看和修改演示代码。生成新固件之后,开发人员需要使用 10 引脚排针和适配器(例如 Tag-Connect 的 TC2050-IDC-NL)来加载映像。虽然该适配器未包括在 RSL10-SENSE-GEVK 多传感器评估套件中,但套件的调试版本 RSL10-SENSE-DB-GEVK 提供了焊接的 10 引脚调试插头以及 Segger Microcontroller Systems 用于连接此插头的 J-Link LITE Cortex 调试器。
使用 DK IoT Studio 进行快速开发
使用 RSL10-SENSE-GEVK 多传感器评估板,我们无需为要求延迟电池寿命的各种多传感器应用进行硬件开发。对于其中很多应用,Digi-Key 提供了单独的在线开发工具,因此无需进行软件编码,便能快速开发原型甚至生产系统。DK IoT Studio 与 RSL10-SENSE-GEVK 评估板配合使用,可提供无代码的开发方法,让开发人员能够快速部署完整的传感器到云端应用。
使用 DK IoT Studio 的图形界面,开发人员能够对元素进行拖放式操作,这些元素代表了在物联网应用中使用的众多硬件和软件项目。硬件元素涵盖了单独的 GPIO 引脚到完整的传感器器件,包括 RSL10-SENSE-GEVK 评估板中包含的那些器件。软件元素涵盖了典型的低级功能(例如在任何程序中使用的循环和条件语句),一直到云服务接口。
使用这些元素的组合,开发人员能够在 DK IoT Studio 图形界面的单独选项卡中,定义在 RSL10、辅助 DK IoT Studio 应用中及在云端运行的各种操作,而无需编写任何软件代码。
这种方法的基础是与任意元素关联的一系列“能力”和“事件”。例如,BME680 集成环境传感器具有一系列温度、压力和湿度读取能力。其他功能元素(例如间隔元素)具有定期触发事件的能力,这些事件则会导致执行元素能力。此外还有其他一些元素,代表了与支持蓝牙功能的移动设备(例如智能手机)的蓝牙通信。
使用这种方法构建应用非常简单,Digi-Key 提供了 RSL10-SENSE-GEVK 评估板的多个演示项目。例如,在 BME680 演示项目中,一个间隔元素触发了 BME680 传感器每 1000 毫秒读取一次温度、压力和湿度的能力。接下来,每个传感器输出所关联的蓝牙元素导致这些传感器读数传输到蓝牙设备(图 7)。
![poYBAGLndW-AZ4qEAAF6hGDoRT0605.png](https://file.elecfans.com/web2/M00/58/EA/poYBAGLndW-AZ4qEAAF6hGDoRT0605.png)
图 7:在 Digi-Key 的 DK IoT Studio 器件选项卡中,开发人员将元素组合在一起,定期从 RSL10-SENSE-GEVK 评估板上的环境传感器读取数据,并通过蓝牙连接将传感器数据传输到辅助移动应用。(图片来源:Digi-Key Electronics)
在应用选项卡中,开发人员可以在 Digi-Key 移动应用内构建用户界面,用于显示通过蓝牙接收的数据。在 BME680 项目演示中,该应用不仅显示温度、压力和湿度,还将所有传感器读数发送至云元素(图 8)。
![pYYBAGLndXiAUCmxAAEUVK0eJUQ596.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndXiAUCmxAAEUVK0eJUQ596.png)
图 8:Digi-Key 的 DK IoT Studio 应用选项卡提供了一个画布,用于在相关移动应用中显示传感器数据,另外还提供了一个窗格,用于生成显示的数据和在移动应用中执行其他操作,例如将数据发送至云端。(图片来源:Digi-Key Electronics)
这种使用中间应用以中继方式将传感器数据传输至云应用,通常是为了避免需要从物联网设备直接连接到云端。对于需要内置 Wi-Fi 通信功能的设备,当然可以将传感器数据直接发送至云端,DK IoT Studio 提供了 Wi-Fi 元素,以及其他支持这种方法的元素。无论哪一种情况,云操作都在云选项卡中指定。在本例中,温度、压力和湿度结果均存储在 DK IoT Studio 附带提供的云数据存储服务中(图 9)。
![poYBAGLndYWAK7iUAADpFWIdN7A698.png](https://file.elecfans.com/web2/M00/58/EA/poYBAGLndYWAK7iUAADpFWIdN7A698.png)
图 9:在 DK IoT Studio 的云选项卡中,开发人员定义基于云的操作,例如将传感器数据存储在云存储中。(图片来源:Digi-Key Electronics)
完成设备、应用和云角色的定义之后,用户可通过点击编译图标,在 DK IoT Studio 中编译项目。代码生成之后,用户可将生成的固件载入到 RSL10-SENSE-GEVK。这时,一个在用户系统上运行的小型实用工具可以完成从 DK IoT Studio 到连接至该系统的评估板的传输。应用和云代码集自动保存在 DK IoT Studio 云环境中。
虽然这种方法无需开发应用代码,但要在一系列软件例程中定义与每个元素相关联的事件和能力,这些例程称为嵌入式元件库 (EEL),并在 DK IoT Studio 开发环境中运行。
例如,BME680 的“读取温度”能力会调用在 BME680 C 语言模块中定义的抽象 bme680_get_sensor_()(清单 1)。
BME680_Status_t BME680_GetTempData( float *tempC )
{ _BME680_StartMeasurement(); struct bme680_field_data data; int8_t retval = bme680_get_sensor_data( &data, &_BME680_DriverConfig ); if ( retval != 0 ) {
ATMO_PLATFORM_DebugPrint(
“Error getting sensor data!%d\r\n”, retval ); *tempC = 0; } else { *tempC = data.temperature / 100.0; } _BME680_Sleep(); return BME680_Status_Success; }
清单 1:在 DK IoT Studio 图形界面底层,与每个元素关联的代码可实现特定的功能,例如在每次触发“读取温度”能力时都会调用的以上函数。(代码来源:Digi-Key Electronics)
同一模块中的低级例程实现了位处理操作,这些操作需要用于从更低级例程 bme680_get_regs() 所读取的传感器寄存器中提取所需的数据(清单 2)。
static int8_t read_field_data( struct bme680_field_data *data, struct bme680_dev *dev ) {
int8_t rslt;
uint8_t buff[BME680_FIELD_LENGTH] = { 0 };
uint8_t gas_range;
uint32_t adc_temp;
uint32_t adc_pres;
uint16_t adc_hum;
uint16_t adc_gas_res;
uint8_t tries = 10;
rslt = null_ptr_check( dev );
do
{
if ( rslt == BME680_OK )
{
rslt = bme680_get_regs( ( ( uint8_t ) ( BME680_FIELD0_ADDR ) ), buff, ( uint16_t ) BME680_FIELD_LENGTH,
dev );
data-》status = buff[0] & BME680_NEW_DATA_MSK;
data-》gas_index = buff[0] & BME680_GAS_INDEX_MSK;
data-》meas_index = buff[1];
adc_pres = ( uint32_t ) ( ( ( uint32_t ) buff[2] * 4096 ) | ( ( uint32_t ) buff[3] * 16 )
| ( ( uint32_t ) buff[4] / 16 ) );
adc_temp = ( uint32_t ) ( ( ( uint32_t ) buff[5] * 4096 ) | ( ( uint32_t ) buff[6] * 16 )
| ( ( uint32_t ) buff[7] / 16 ) );
adc_hum = ( uint16_t ) ( ( ( uint32_t ) buff[8] * 256 ) | ( uint32_t ) buff[9] );
adc_gas_res = ( uint16_t ) ( ( uint32_t ) buff[13] * 4 | ( ( ( uint32_t ) buff[14] ) / 64 ) );
gas_range = buff[14] & BME680_GAS_RANGE_MSK;
data-》status |= buff[14] & BME680_GASM_VALID_MSK;
data-》status |= buff[14] & BME680_HEAT_STAB_MSK;
if ( data-》status & BME680_NEW_DATA_MSK )
{ data-》temperature = calc_temperature( adc_temp, dev );
data-》pressure = calc_pressure( adc_pres, dev );
data-》humidity = calc_humidity( adc_hum, dev );
data-》gas_resistance = calc_gas_resistance( adc_gas_res, gas_range, dev );
break;
}
dev-》delay_ms( BME680_POLL_PERIOD_MS );
} tries--;
} while ( tries );
if ( !tries ) {
rslt = BME680_W_NO_NEW_DATA;
} return rslt; }
清单 2:与 DK IoT Studio 中的每个元素关联的代码将来自更高级服务的更抽象函数调用转换为具体操作,例如从环境传感器寄存器提取数据。(代码来源:Digi-Key Electronics)
正如上文所述,元素提供了各种方法,例如通常由软件开发人员使用的条件语句,以及通常由硬件开发人员使用的 GPIO 控制。在 DK IoT Studio 环境中,相应的元素提供了简单的拖放式方法,用于测试条件和执行相应的操作。例如,另一个演示项目展示了当 RSL10-SENSE-GEVK 板的环境光传感器输出超过某个指定值时,如何开启板上的 LED(图 10)。
![pYYBAGLndZSAbnrhAAEVyFysprE510.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndZSAbnrhAAEVyFysprE510.png)
图 10:DK IoT Studio 提供了必要的元素来执行更抽象的逻辑,例如值检验以及各种低级操作,包括设置与 ON Semiconductor 的 RSL10-SENSE-GEVK 评估板上的 LED 相关联的 GPIO。(图片来源:Digi-Key Electronics)
在云端,可以使用类似的测试为移动应用生成元数据。这种情况下,可在应用中使用元数据来设置警报图标,指示传感器检测到的问题(图 11)。
![pYYBAGLndaCAQ8v1AADsnQTGp-k691.png](https://file.elecfans.com/web2/M00/59/88/pYYBAGLndaCAQ8v1AADsnQTGp-k691.png)
图 11:DK IoT Studio 支持在云端和移动应用中执行更复杂的操作,例如这种为应用设置状态元数据并将数据保留到云存储的条件检查。(图片来源:Digi-Key Electronics)
在执行负责开关 LED 的底层代码之后,需要进行一系列的调用,从调用与底层环境中的该事件相关的更高级别函数开始。该函数 SetPinState 是在初始化过程中设置的一个函数指针,其指向实现所需功能的更低级别函数 ATMO_ONSEMI_GPIO_SetPinState(),最终调用 ON Semiconductor 的 RSL10 SDK 库函数 Sys_DIO_Config() 设置指定的引脚(清单 3)。
ATMO_GPIO_Status_t ATMO_GPIO_SetPinState( ATMO_DriverInstanceHandle_t instance, ATMO_GPIO_Device_Pin_t pin, ATMO_GPIO_PinState_t state ) { if ( !( instance 《 numberOfGPIODriverInstance ) ) { return ATMO_GPIO_Status_Invalid; } return gpioInstances[instance]-》SetPinState( gpioInstancesData[instance], pin, state ); }
清单 3:DK IoT Studio 提供了一组在更低级别服务层实现的常见抽象,以实现硬件特定的操作,例如设置 GPIO 位。(代码来源:Digi-Key Electronics)
为了充分体现简易性,DK IoT Studio 提供了高度灵活的开发环境。开发人员可依赖元素的 EEL 代码,这些代码既可按原样使用,也可根据应用需求进行修改。在开发过程中,DK IoT Studio 的器件选项卡提供了一个面板,包含与放置在选项卡画布上的元素相关联的底层高级别代码(如图 7 所示)。对于需要一些特殊处理的应用,开发人员可以在该面板中即时修改代码。其他功能,例如“函数”元素,可在代码中添加空函数定义,以便开发人员利用环境中的可用功能和函数来补充执行。
实际上,DK IoT Studio 的方法将无代码拖放式开发的简易性与灵活性和性能结合在一起,唯一的限制是底层硬件设备的内存大小和处理器能力。这种方法用于 RSL10-SENSE-GEVK 板,让开发人员能够快速部署功能全面且具有设备到云端连接和移动应用支持的原型。
总结
多传感器设备的新型应用在各个市场上层出不穷,包括在消费、汽车和工业领域。对于其中很多应用,蓝牙连接和更长的电池寿命至关重要,同时,设计人员还需要支持性生态系统能够提供灵活的设计方法,以应对长期存在的上市时间压力。为了应对这些挑战,ON Semiconductor 推出了 RSL10 SoC、RSL10 SiP 和 RSL10-SENSE-GEVK 评估板,它们提供了一系列解决方案,分别符合定制设计、集成模块和完整的多传感器解决方案的需求。借助这些硬件平台,开发人员可以利用 RSL10 软件开发套件和相关的软件分发包来实现定制应用。
为了帮助快速开发设备到云端多传感器应用,可结合使用 ON Semiconductor 的 RSL10-SENSE-GEVK 评估板和 DK IoT Studio IDE,提供功能强大的快速开发平台,在完整的设备到云端应用中实现超低功耗的多传感器解决方案。综合运用 RSL10 硬件和可用的软件选项,获取高度灵活的平台,用于开发和部署能够满足更长电池寿命要求的蓝牙认证设备。
评论