close
当前位置: 物联网在线 > 技术文库 >

基于ST MCU 多传感器物联网套件如何应对的挑战

IoT应用程序从传感器类型的增加阵列开发一个用于数据不断增长的胃口。在服务更多样化的传感器数据,物联网设备可以面对,在他们需要特定的无线通信技术显著变化的部署要求。

为了满足更广泛的传感器和连接选项这一需求,物联网设备设计人员需要能够应对多样,快速变化的需求灵活的开发系统。从物联网的开发套件意法半导体满足了这种需求在单一平台上,可以从物联网设备到云加速工作流程的发展。

本文将介绍一些在传感器设计和整合的最新进展,讨论了设计要求,以及意法半导体的多传感器物联网套件如何应对这些挑战。

传感器的进步简化设计和集成

物联网应用程序依赖于从传感器类型的生长列表获取准确的数据的流。集成的模拟信号链与感应传感器本身,先进的传感器已经基本上消除了需要工程师处理过去需要敏感的模拟接口。即便如此,开发商必须确保使用这些设备的设计符合与每个传感器相关专业要求的主机。

传感器要求

正如任何电子系统,精确的传感器操作依赖于能够满足特定性能需求的硬件和软件接口的精心设计。除了这些基本要求,然而,传感器可以呈现出独特的一套板级物理设计挑战。例如,意法半导体仔细地注意到了广泛的开发人员需要在放置其解决问题HTS221温度和湿度传感器在印刷电路板上。

为了优化传感器的准确性和可靠性,开发者需要仔细考虑电路板上的传感器的放置以及所述壳体的用于保护敏感的传感器,如从污染HTS221从环境或热从其它电子元件的性质(图1)。

物理设计方法的示意图建议由意法半导体

图1:为确保温度和湿度的精确测量,开发者需要使用由意法半导体建议以保护不受外部因素,包括灰尘和热源的传感器的物理设计方法。(图像源:意法半导体)

开发人员完成印刷电路板设计之后,意法半导体甚至建议使用的红外成像技术,以确认该设备尽可能远放置尽可能从其他发热设备(图2)。

意法半导体热想象方法图像

图2:意法半导体建议使用的热想象的方法,以确保温度传感器诸如HTS221(左下)从共享所述印刷电路板的热源置于远越好。(图像源:意法半导体)

软件开发者需要在控制的集成传感器,并从它获得数据同样谨慎。以管理其积分信号链中,HTS221提供设备标识,配置,控制,状态,校准,和数据输出寄存器。在一些情况下,该设备使用多个寄存器。

例如,该设备用于控制功能,如使其内部加热器,控制数据速率选择和管理它的输出信号三个独立的寄存器。与此同时,精确的数据采样需要比简单地访问数据输出寄存器更多。如下面所示,开发者需要调整使用维持在设备的集成闪存校准系数的原始数据。

实现可靠的温度和湿度的数据,需要在硬件和软件设计每个阶段小心注意。对于需要多个传感器的应用的IoT,开发者需要解决的每个单独的传感器这些问题,同时避免在最终的电路板设计的传感器之间的电或物理相互作用。意法半导体通过这个迷宫的设计挑战提供了一个快捷方式。

多传感器物联网套件

意法半导体的发现工具包的物联网提供了对物联网应用设计的无线传感器系统提供完整的开发平台。基于ARM ®皮质® -M4核心处理器,车载STM32L475VGT6低功率MCU集成闪存1M字节和SRAM的128K字节。它有一组广泛的集成模拟外设包括三高速,12位,模拟-数字转换器(ADC),两个数字-模拟转换器(DAC)通道,运算放大器,比较器,和一个基准电压。MCU还包含数字外围设备,包括一个实时时钟(RTC),脉冲宽度调制(PWM)的定时器,以及多个通用定时器的全长互补。随着几十个IO的,该设备提供了多种标准接口,包括USB,USART,SPI和CAN。

利用MCU的广泛支持外设,开发板包一套广泛的连接选项和传感器成90毫米×62毫米足迹(图3)。董事会的支持多种选择释放开发人员专注于物联网应用,而不是单独的传感器实现或无线技术支持的要求。该主板提供了无线选择,从近场到扩展范围无线连接。随着它的车载动态NFC,主板提供了使用蓝牙Wi-Fi连接SPBTLE射频模块和Inventek ISM43362-M3G-L44分别模块。对于低功率的sub-GHz设计,ST提供试剂盒的两个版本。B-L475E-IOT01A1使用SPSGRF-915来支持915MHz的通信,而在B-L475E-IOT01A2使用SPSGRF-868,以支持868间兆赫的通信。

意法半导体的IoT试剂盒的图像

图3:意法半导体公司的IoT试剂盒中带出STM32L475VGT6 MCU的广泛支持外设提供一套广泛的连接选项和多个传感器对环境和运动感测。(图像源:意法半导体)

除了它的多个无线选项,董事会的广泛的机载传感器的补充减少了开发人员需要开始他们的项目之前,要花费时间来构建传感器硬件接口和驱动程序的机会。沿着具有两个MP34DT01 MEMS麦克风,该板提供了环境和运动感测的多个传感器。对于环境感测,该板提供HTS221湿度和温度传感器与沿LPS22HB晴雨表。用于运动感测,该试剂盒包括LIS3MDL磁力计,LSM6DSL加速度计/陀螺仪VL53L0X时间飞行传感器。

整合细节

随着电路板上的传感器的硬件,该试剂盒包括综合文档,完整的电路图,以及广泛的软件包。其结果是,硬件开发商可以通过参考用于传感器的集成的详细设计,如HTS221(图4)加速的定制传感器的设计项目。

意法半导体的IoT试剂盒的图

图4:ST的IoT套件提供完整的参考设计包括详细的原理图,例如硬件接口用于HTS221湿度和温度传感器。(图像源:意法半导体)

类似地,软件开发者可以检查在包装理解临界方法,例如使用传感器的集成补偿系数表(列表1)获得的数据的校正提供的源代码。详细的文档,通过常见问题的解决,如对原始数据的补偿表直接支持值之间躺在补偿系数的插值散步开发商。

float HTS221_H_ReadHumidity(uint16_t DeviceAddr)

{

  int16_t H0_T0_out, H1_T0_out, H_T_out;

  int16_t H0_rh, H1_rh;

  uint8_t buffer[2];

  float tmp_f;

  SENSOR_IO_ReadMultiple(DeviceAddr, (HTS221_H0_RH_X2 | 0x80), buffer, 2);

  H0_rh = buffer[0] >> 1;

  H1_rh = buffer[1] >> 1;

  SENSOR_IO_ReadMultiple(DeviceAddr, (HTS221_H0_T0_OUT_L | 0x80), buffer, 2);

  H0_T0_out = (((uint16_t)buffer[1]) << 8) | (uint16_t)buffer[0];

  SENSOR_IO_ReadMultiple(DeviceAddr, (HTS221_H1_T0_OUT_L | 0x80), buffer, 2);

  H1_T0_out = (((uint16_t)buffer[1]) << 8) | (uint16_t)buffer[0];

  SENSOR_IO_ReadMultiple(DeviceAddr, (HTS221_HR_OUT_L_REG | 0x80), buffer, 2);

  H_T_out = (((uint16_t)buffer[1]) << 8) | (uint16_t)buffer[0];

  tmp_f = (float)(H_T_out - H0_T0_out) * (float)(H1_rh - H0_rh) / (float)(H1_T0_out - H0_T0_out)  +  H0_rh;

  tmp_f *= 10.0f;

  tmp_f = ( tmp_f > 1000.0f ) ? 1000.0f

        : ( tmp_f <    0.0f ) ?    0.0f

        : tmp_f;

  return (tmp_f / 10.0f);

}

清单1:通过检查所提供的源代码ST的IoT套件软件包,开发人员可以用获得传感器软件设计模式经历诸如设备级别的数据采集和数据补偿作为HTS221软件驱动程序模块中提供这个功能证实。(代码源:意法半导体)

该软件包提供了完整的应用软件样本,让开发人员快速开始与船上工作。ST预装在STM32L475VG MCU的闪存示范固件。因此,开发人员可以在板只需连接到自己的Windows或MacOS的计算机上的USB端口,并开始评估机载传感器。当他们准备把重点放在他们的应用需求,开发人员可以构建在现有软件环境,或采取其分层架构的优势,推出更多专门的硬件驱动程序或中间件(图5)。

意法半导体的软件环境的图像

图5:为支持多个开发板包括ST的IoT试剂盒,所述ST软件环境使用分层架构以简化的安全的IoT应用程序的开发和定制。(图像源:意法半导体)

在软件体系结构的最低层,开发环境提供了所需的板支持包(BSP)和硬件抽象层(HAL)模块以从硬件依赖性隔离软件所需。其中中间件组件,ST提供mbedTLS,轻量级TCP / IP支持,LwIP的,和实时操作系统(RTOS)服务,FreeRTOS的传输层安全(TLS)的支持。对于物联网的开发,亚马逊网络服务(AWS)中间件组件提供到终端到终端的物联网应用的快速发展道路(图6)。

AWS模块的示意图设置有ST的IoT试剂盒软件包

图6:设置有ST的IoT试剂盒软件包的AWS模块支持快速实现建立在AWS服务,包括移动AWS用于连接的移动应用程序的端至端的IoT的应用程序。(图像源:意法半导体)

端至端的IoT应用

包括在自由膨胀到ST的STM32Cube开发环境,亚马逊Web服务的中间件组件提供了一系列旨在为ST物联网套件连接到AWS平台的物联网服务的。旨在为物联网应用提供一个共同的平台,AWS物联网服务使用MQTT(MQ遥测传输)的消息传递协议来连接物联网终端设备到后端AWS云服务。在AWS的IoT协议,传感器系统使用MQTT消息在一个简单的JSON格式来订阅和发布数据(列表2)。一旦数据到达云中,开发人员可以利用的AWS服务,包括AWS为移动应用开发的广度的优势。

 {

  "state": {

   "reported": {

    "temperature": 27.64,

    "humidity": 38.42,

    "pressure": 995.94,

    "proximity": 8191,

    "acc_x": -15, "acc_y": 2, "acc_z": 1020,

    "gyr_x": -980, "gyr_y": -4060, "gyr_z": 1750,

    "mag_x": -140, "mag_y": 90, "mag_z": 319

   }

  }

 }

清单2:ST的IoT试剂盒的软件包提供的AWS的IoT MQTT协议,该协议使用所证明在这个样品的传感器数据有效载荷的简单JSON格式发送传感器数据的一个实现。(图像源:意法半导体)

内ST物联网的发展环境,包括在软件包中的AWS模块提供了形成AWS物联网架构的一个组成部分的MQTT客户服务。在AWS模块本身建立通过了Wi-Fi库为ST物联网套件中提供mbedTLS和TCP / IP服务提供的TLS安全堆栈。(系统使用以太网连接模块的LwIP为TCP / IP服务上绘制。)

为了帮助开发人员通过一个完整的物联网工作流程的细节,ST的AWS包包含演示如何使用ST物联网套件将数据传输到AWS的云示例应用程序。在一个示例应用程序,该软件的传感器数据发送到AWS的IoT服务当显影剂推压所述ST的IoT套件电路板的按钮。提供的源代码允许开发者可以检查用于创建MQTT净荷underlies AWS的IoT交易(清单3),和当用户按压在板(清单4)的按钮来发布所述传感器数据有效载荷中的关键设计模式。

int PrepareMqttPayload(char * PayloadBuffer, int PayloadSize)

{

  char * Buff = PayloadBuffer;

  int BuffSize = PayloadSize;

  int snprintfreturn = 0;

 

  TEMPERATURE_Value = BSP_TSENSOR_ReadTemp();

  HUMIDITY_Value = BSP_HSENSOR_ReadHumidity();

  PRESSURE_Value = BSP_PSENSOR_ReadPressure();

  PROXIMITY_Value = VL53L0X_PROXIMITY_GetDistance();

  BSP_ACCELERO_AccGetXYZ(ACC_Value);

  BSP_GYRO_GetXYZ(GYR_Value);

  BSP_MAGNETO_GetXYZ(MAG_Value);

 

  snprintfreturn = snprintf( Buff, BuffSize, "{\n \"state\": {\n  \"reported\": {\n"

           "   \"temperature\": %.2f,\n   \"humidity\": %.2f,\n   \"pressure\": %.2f,\n   \"proximity\": %d,\n"

           "   \"acc_x\": %d, \"acc_y\": %d, \"acc_z\": %d,\n"

           "   \"gyr_x\": %.0f, \"gyr_y\": %.0f, \"gyr_z\": %.0f,\n"

           "   \"mag_x\": %d, \"mag_y\": %d, \"mag_z\": %d\n"

           "  }\n }\n}",

           TEMPERATURE_Value, HUMIDITY_Value, PRESSURE_Value, PROXIMITY_Value,

           ACC_Value[0], ACC_Value[1], ACC_Value[2],

           GYR_Value[0], GYR_Value[1], GYR_Value[2],

           MAG_Value[0], MAG_Value[1], MAG_Value[2] );

 

  /* Check total size to be less than buffer size

            * if the return is >=0 and <n, then

            * the entire string was successfully formatted; if the return is

            * >=n, the string was truncated (but there is still a null char

            * at the end of what was written); if the return is <0, there was

            * an error.

            */

  if (snprintfreturn >= 0 && snprintfreturn < PayloadSize)

  {

      return 0;

  }

  else if(snprintfreturn >= PayloadSize)

  {

      printf("Data Pack truncated\n");

      return 0;

  }

  else

  {

      printf("Data Pack Error\n");

      return -1;

  }

}

清单3:使用ST的IoT套件软件包,开发人员可以采取的低级别的功能,例如优点PrepareMqttPayload(),它收集从板的传感器的数据,并准备用于使用其他MQTT支持功能递送的JSON格式的有效载荷。(代码源:意法半导体)

    if (bp_pushed == BP_SINGLE_PUSH)

    {

      if(strstr(ledstate, "Off")!= NULL)

      {

        strcpy(ledstate, "On");

      }

      else

      {

        strcpy(ledstate, "Off");

      }

     

      msg_info("Sending desired LED state to AWS!\n");

      

      /* create desired message */

      memset(cPayload, 0, sizeof(cPayload));

      strcat(cPayload, aws_json_desired);

      strcat(cPayload, "{\"LED_value\":\"");

      strcat(cPayload, ledstate);

      strcat(cPayload, "\"}");

      strcat(cPayload, aws_json_post);

     

      paramsQOS1.payloadLen = strlen(cPayload) + 1;

 

      do

      {

        rc = aws_iot_mqtt_publish(&client, cPTopicName, strlen(cPTopicName), &paramsQOS1);

 

        if (rc == AWS_SUCCESS)

        {

          msg_info("\nPublished to topic %s:", cPTopicName);

          msg_info("%s\n", cPayload);

        }

 

        if (publishCount > 0)

        {

          publishCount--;

        }

      } while(MQTT_REQUEST_TIMEOUT_ERROR == rc && (publishCount > 0 || infinitePublishFlag));     

    }

列表4:在ST的IoT套件软件包提供的源代码演示了用于一个的IoT传感器的应用程序,当用户按下上的IoT套件电路板的按钮发送MQTT数据的有效载荷的基本主循环。(代码源:意法半导体)

随着这一基本物联网应用实例中,ST软件包让开发者发掘一批在任何实际的应用程序所需的附加功能。例如,另一示例应用程序补充较早的防火墙保护的IoT设备不受未授权的外部访问描述的基本工作流程。

虽然概念简单,这个防火墙应用程序演示了使用内置于STM32L475xx MCU本身的保护机制。虽然软件保护机制往往留下安全漏洞,该MCU内置的防火墙保护机制,强制控制访问SRAM或闪存的配置部分。授权代码只能通过单一入口点,这有助于消除安全漏洞访问这些受保护的节。防火墙应用程序使用此机制,以保护用于认证访问AWS的云AWS的私有密钥。

开发人员可以很容易地通过简单地与在软件包中提供的应用程序的图像闪烁基板与通过UART控制台应用程序交互探索不同的样品AWS应用程序。根据需要,开发人员可以很容易地扩展ST物联网套件,以满足他们独特的物联网应用需求。如果应用程序需要额外的专用硬件,开发人员可以使用主板的Arduino的乌诺V3和PMOD连接器将其与附加板卡扩展。为了满足更多的软件需求,开发人员可以在熟悉的集成开发环境(IDE)合作,以修改或扩展所提供的源代码。该软件包中有多个软件开发环境包括Keil的MDK,IAR Systems的Embedded Workbench的支持,ARM mbed启用,并启用任何GCC IDE包括基于Eclipse的免费SW4STM32系统工作台的STM32微控制器。

结论

的IoT应用通常依赖于无线连接将来自多个传感器的数据的模式相结合以呈现环境,设备,或个人的更广阔的视野。对于物联网的开发,设计合适的多传感器无线系统的任务可以呈现典型的缓慢发展的多重挑战。

支持多种传感器和连接选项,意法半导体物联网开发套件提供了复杂的物联网设计的预建的解决方案。使用该套件的硬件和软件,开发人员可以迅速实现复杂的物联网设计和它们建立在AWS云终端到终端的物联网应用程序集成。


(责任编辑:ioter)

用户喜欢...

嵌入式开发32位MCU加速取代8位MCU应用

目前在嵌入式MCU开发领域,8位MCU仍占据1/3以上份额,在工业控制、安防、物联网、消费类电子等诸多领域,8位MCU的身影依然处处可见,根据IHS的预测,2018年8位MCU的市场规模将增长到78亿美元...


[原创] Renesas RX24U 32位MCU马达控制方案

Renesas公司的RX24U是功能强大的内置了差分放大器和安全系统的32位马达控制MCU,工作频率80MHz,集成了浮点单元(FPU),153....


采用 STM32 MCU 的 SSTSPIN32F0 高级 BLDC 控制器

产品亮点 STSPIN32F0 电机控制系统 STSPIN32F0 电机控制系统 STMicroelectronics 推出其采用 STM32 MCU 的 SSTSPIN32F0 高级 BLDC 控制器 STMicroelectronics的 STSPIN32F0 是一种电机控制系统级封装器件,既有基于控制...


具有 Microchip ATtiny817 MCU 和 QTouch® 控制器的扩展板

MikroElektronika 推出具有 Microchip ATtiny817 MCU 和 QTouch 控制器的扩展板 MikroElektronikaMIKROE-2474 TouchKey 2 Click 具有四个由MicrochipATtiny817 微控制器驱动的电容触摸板。该板还具有集成式 Microchip QTouch 控制...


恩智浦推出面向通用市场的最小8位S08微控制器

恩智浦半导体宣布推出其最小的8位S08微控制器(MCU) - MC9S08PA4AVDC微控制器。这款产品采用全新封装,尺寸仅为3 × 3×...


LED调光引擎:开关式LED调光驱动器的8位MCU解决方案

开关式可调光LED驱动器具有显著的性能并可以精准控制LED电流,也具有调光功能,这使终端用户在降低功耗的同时制作很好的灯光效果。 8位微控制器可以提供必要的构件用来通信、定制和智...


用MCU打造智能恒温器,功耗/通讯/人机介面逐个击破

在物联网风潮的驱动下,恒温器已朝向联网与智慧化发展。微控制器(MCU)开发商遂推出低功耗,且具备段式LCD显示控制与Wi-Fi/蓝牙/ZigBee无线连结支援能力,以及256位元AES先进加密功能的新方案...


大道至简——Cypress PSoC 4000S CapSense原型开发套件评测

今天介绍2017贸泽电子智造创新大赛第二弹,板子:Cypress PSoC 4000S CapSense原型开发套件。 众所周知,赛普拉斯是全球电...


[原创] Maxim MAX32625超低功耗高性能可穿戴开发平台

Maxim公司的MAX32625是具有FPU的超低功耗高性能ARM Cortex-M4 MCU,内部振荡器频率高达96MHz,集成了512KB闪存,160JB SRAM,8KB指令缓...


如何使创新的MCU实现高效节能电机控制?

电机对能耗的贡献率在美国接近50%,因此降低电机能耗能有效地提高能源利用率,而采用先进的微控制器(MCU)技术来实现电机控制是一种有效的方法。本文介绍了最新的电机控制MCU技术发展...