作者:Jacob Harel
安全性被认为是大规模采用物联网的主要障碍之一,Target 和 Home Depot 安全漏洞等案例助长了争论。
另一方面,大数据被认为是物联网生态系统货币化的关键。物联网解决方案的强大之处在于它可以提供给物联网服务提供商的有关客户端/用户的数据。物联网开发人员正在花费大部分资源寻找收集和分析数据的方法,而且他们收集的越多,效果就越好。扭曲和陷阱在于,通过系统移动的数据量可能会淹没系统的服务器和集线器,并使数据库不堪重负。
这不仅是一个规模问题,而且是数据的质量和相关性问题。当今有大量新的和复杂的传感器可以轻松连接到控制器并通过网络进行通信,热心的工程师和产品经理乐于接受这项技术并采用他们可以获得的所有传感器。数据也是如此——越大越好。
这种任何数据都是好数据,我们将在服务器端进行管理的方法,可能是产品经理需要控制的最大问题之一。新的传感器技术使新系统能够以低成本监控大量参数,并通过宽带通信将所有数据发送到大型分布式硬盘驱动器组。这对每个工程和产品经理来说听起来都很棒,但这也可能是一个陷阱。
在过去的几个月里,我与很多物联网供应商合作过,在我看来,他们都过于痴迷于收集数据。在一个案例中,它是对汽车轮胎气压的连续监测——每分钟监测几次。该数据与 GPS 位置一起发送到服务器。这是一个改装系统,并未集成到车内的其他监控系统中。
我们真的需要通过这个决议了解这些信息吗?仅发送更改或当压力低于或高于临界水平然后发送 GPS 位置不是更有效吗?另一家公司正在以 10 赫兹的速率和 10 位分辨率监测多个位置的体温。我们的体温变化那么快吗?我们真的需要 10 位分辨率来进行这种测量吗?
这个问题的含义不仅仅是数据。在这两种情况下,电池功耗都是一个关键的设计方面。降低功耗实际上是采用这些产品的关键。降低采样率可以让系统在睡眠模式下花费更多时间,从而减少功耗。减少通过无线接口发送的数据大小(大多数物联网系统中的主要耗电量)也可以显着降低功耗。
减小数据大小的另一个选择是从 10 位 A/D 部分转移到 8 位部分。这样可以减少50%的功耗。
这种更多数据方法背后的一个概念是处理服务器中所有数据的能力。这种“让我们获取所有数据并在以后弄清楚需要什么”的方法在某些情况下可能很有用,但找到在物联网边缘设备上进行更多处理的方法可以减少发送的数据量。这可以使系统能够使用更小带宽、更低功率的通信和整体更低的功耗。实现这种方法的一个限制是在设备端增加了复杂性,并且需要在将数据发送到服务器之前运行一些后台处理以在本地分析数据。
1.通用嵌入式控制系统的时序。
图 1 展示了一个典型的嵌入式控制系统,它可以是 IoT、M2M 或工业控制系统的一部分。系统以定时器输入定义的定时周期连续运行(在无限循环中运行)。这个例子展示了一个从两个传感器读取数据的系统;一个是通过系统寄存器访问的 ADC,另一个通过 I2C 串行总线连接。该信息和其他一些数字输入数据在每个周期都发送到主处理器。示例系统还显示了一个通用系统中断服务程序(ISR) 和一些外部执行器的激活。在这个示例系统中,每个周期都会收集数据并发送到主机;您可以看到大量时间用于空闲和等待外部响应。
此示例中的 CPU 利用率约为 60%,这意味着在 40% 的时间里,CPS 正在运行并消耗电力而没有任何有意义的好处。在这种情况下提高系统性能的一种方法是使用硬件睡眠模式。将 CPU 和相关设备置于睡眠模式将显着降低空闲时间的功耗,在许多情况下可降低 90% 以上。开发人员面临的问题是管理系统及时进入和退出睡眠模式。
2.并行数据处理的时序。
在图 1 所示的系统中,空闲模式所花费的时间约为总处理时间的 40%。图 2 显示了相同的系统,但具有并行处理架构。该系统使用空闲模式所花费的时间在本地处理收集的数据。该系统还可以收集数据进行统计,并将其整合到一个传输周期中。这可以减少发送到主机的数据量,或者使系统能够在某种程度上独立于主机工作。
为了实现这种方法,许多开发人员正在使用 RTOS 来管理系统的不同进程。这些开发人员面临的问题是运行 RTOS 所需的额外资源,包括更强大的处理器。这不是一种有效的方法,甚至在涉及具有较小控制器的旧设备时也可能无法实现。这就是 SynthOS(一种特定于应用程序的操作系统生成工具)可以介入的地方,因为它将需要在控制器上运行的不同任务的源代码作为输入,并构建一个完整的系统来管理这些任务的执行在一个简单的配置文件上。
使用 SynthOS,用户可以定义负责从系统传感器收集数据的主要任务。它还可以生成其他任务来监控这些传感器或使用基于中断的监控。用户可以定义任务以在将数据发送到服务器之前对其进行处理。这些任务可以定义为在后台以较低的优先级运行。用户可以在后台运行过滤、平均或最小/最大检测并最小化发送的数据。SynthOS 还可以管理睡眠模式操作——它将系统置于可以在中断时唤醒的睡眠模式。由于需要传输到服务器、保存在服务器上和由服务器处理的数据更少,这种方法还可以降低设备端的功耗。