揭秘:物联网原理、实践与解决方案 (清华开发者书库)
上QQ阅读APP看书,第一时间看更新

三 设备的原理

企业级物联网设备(如基因测序器、机车或水冷却器)正在变得更加智能化和可连接化。本章介绍搭建企业级物联网设备的一些基本原理。传感器服从摩尔定律,其价格逐年显著下降,因此被更多地添加到低成本的计算机上。这些计算机包括简单的微控制器到具有完备功能的CPU,支持ARM或Intel的指令构架。具有增强性能的处理器可支持功能更为强大的软件,因此本章介绍一些基本的操作系统。最后,讨论一些搭建企业级物联网需要考虑的基本安全问题。

1.传感器

现有传感器有数百种之多,本节以手机为例介绍更详细的内容,如最常用的传感器之一——加速计。加速计用于测量手机相对于自由落体的加速率。相同的传感器可用于确定设备沿其三个轴的姿态。基于此数据,手机应用可推断手机表面是向上还是向下。另一种提供姿态信息的传感器是陀螺仪,其精度更高。这种特殊的传感器,可测出手机被旋转的方向和角度数值。

另一种常用的传感器是磁力计。磁力计测量的是磁场强度和方向,可应用于罗盘程序及金属探测。

接近度传感器的工作原理是——发射红外光束,经物体反射后由检测器接收测量。接近度传感器安装在手机的听筒附近,探测用户是否在通话,从而在通话时将手机屏幕关闭。

手机也安装有测量周围光强的光感器,可用此数据自动调整屏幕的亮度。

有些手机有内置的气压计,可测量大气压力。气压计可用于确定其海拔高度,从而改进GPS的精度。每部手机内都有一个或多个温度计。当手机某个部分过热时,系统会自行关闭,以防止损坏。三星手机Galaxy率先在手机内安装空气湿度传感器,应用此数据的程序可告知用户是否处于“舒适区”,即空气温度和湿度皆最佳的状态。

计步器是用来测量用户已走步数的传感器。有些手机只使用加速计的数据测量用户步数,但专用计步器更加精准、省电。包括谷歌Nexus 5在内的少量手机装有内置专用的计步器。如Galaxy X5等一些手机,有心脏速率监视器,通过检测手指内部血管每分钟的搏动来实现。此外,大多数苹果用户了解指纹传感器可替代锁屏密码。

最后,辐射传感器并不太为人所知。Sharp Pantone 5程序测量当前环境的辐射强度。加上麦克风和相机,手机共有至少14种不同的传感器。然而,如下文中将介绍的,这仅仅是可用传感器的一小部分。

2.计算机结构

所有的智能可连接设备都包括某种可运行软件的中央处理器(CPU)。由于设备本身可能受限于能耗、尺寸和成本,CPU基本架构设计需考虑一些折中关系。

在最基本的层面,多种微控制器都具有简单的指令集但存储空间有限,通常能耗较低。例如Arduino,采用由Amtel制造的8b的ATmega系列微处理器。尺寸更小、价格更低、而功能更简单的设备可采用微控制器。下一步研究趋势是,基于ARM或Intel完善物联网设备的特定指令集。

ARM是一种采用简化指令集的计算机(RISC),要求使用比个人电脑的典型Intel X86处理器少得多的晶体管来实现指令集。因此,此方法可降低成本、处理器温度和能耗。Raspberry Pi基于32位的ARM处理器而实现。目前手机和平板电脑中广泛使用的Apple A7则是由苹果公司设计的一种64位的ARM CPU处理器。

尽管ARM应用广泛,Intel x86结构仍然在服务器和笔记本电脑中占主导地位,从而有大量可用的相应软件和开发工具。Intel Atom则是Intel公司开发的超低功耗微处理器品牌。

3.软件

在一个特定设备上,软件可通过多种不同的操作系统或运行环境执行。需要基于软件的内存占用、开发环境和实时性等要求来决定使用哪种系统。

1)内存占用

计算中,可执行程序的内存占用指的是程序运行所要求的时间及内存。大型程序要求更大的内存占用。软件程序本身并不是内存占用的唯一原因,而运行环境的指令可能增加内存占用。例如,在一个Java程序中,内存占用主要是由于Java虚拟机运行环境所引起的。

2)软件开发环境

软件开发环境又被称作集成开发环境,是为计算机编程人员开发软件提供综合性平台的软件。软件开发环境通常包括源代码编辑器、自动化编译工具和调试器。Arduino平台提供了一个开发微控制器集成开发环境,可支持C、C++和Java编程语言。当构建企业级物联网时,需要为编程人员选择合适的集成开发环境。

3)操作系统

操作系统也称为运行环境,包括一组被许多应用程序所共用的软件。传统互联网中,为用户所熟悉的操作系统包括Linux、微软的Windows等。在物联网应用中,可能会需要实时操作系统。

实时操作系统(RTOS)可服务对延时要求严格的应用程序。处理延时的要求(包括操作系统延时)通常为十分之一秒甚至更短。实时操作系统的一个典型指标是它接收任务和处理应用任务的时间一致性的程度。实时操作系统的关键参数是最小中断延时和最小线程切换延时。衡量的标准是反应的敏捷性和准确性,而不是能够在给定时间内完成多少任务量。Wind River是一家主要为实时处理提供实时操作系统支持的公司。当然随着处理器处理速度的提升和智能化应用的推广,传统系统可能会被应用于很多场合。

4.安全

关于物联网讨论中有大量安全方面的问题,本章重点关注软件的安全性和完整性问题。通常,很多其他的安全问题也是由于软件方面的问题所导致的。

1)安全启动

当机器通电时,首先运行的软件是“启动”。安全启动阻止非法电子签名的程序加载,以保证整个启动进程的安全性。安全启动的原理是将一个秘钥写入固件,而秘钥写入固件后,安全启动则只允许具有秘钥的软件运行。

2)无恶意软件

广为人知的是个人笔记本或计算机的防毒软件。防毒软件用来检测可能危害电脑的恶意软件。经典的例子是震网(Stuxnet)病毒,最终控制了伊朗铀浓缩工厂的离心机。Stuxnet针对的目标是广泛应用于控制机的可编程逻辑控制器(PLC),而离心机则是用来分离核材料的控制机。Stuxnet通过微软的Windows操作系统和网络,进而侵入了西门子Step 7软件。据报道,Stuxnet毁坏了伊朗接近五分之一的核离心机。

3)所有安全软件

补丁是为了更新电脑软件的软件,有些补丁是为了提高软件可用性或性能,而有些则是为了修复软件的安全漏洞。补丁管理程序决定哪些补丁应该在何时用于哪些操作系统。在物联网应用中,如VMware、甲骨文和微软等公司每年发布上百项相关的安全补丁。

5.封装

这是电子工程领域的基本原理,包含了广泛的技术。封装必须考虑机器损耗、制冷、无线电频率噪声、和静电放电等问题。少量工业设备可能使用可用的标准化商业外包,如插件箱、预制框等。大众消费市场可采用高度专业化的封装来吸引用户。

片上系统(SoC)是一种常用的封装技术,可将电脑或其他电子系统所有部件都融合到单片半导体芯片的集成电路上。片上系统可能包括数字、模拟、混合信号和常用的射频功能。片上系统与微处理器的区别在于,微处理器的内存通常低于100KB,而片上系统内存通常大得多,需要支撑功能强大的操作系统(如Linux)。当无法专门为某个应用构建片上系统时,可使用包含了多个芯片的系统级封装(SiP)作为替代方案。通常而言,相比于系统级封装,片上系统有更高的成本效益,因为片上系统提高了制作的产率且其封装更为简单。

下一章将给出几个当前企业级物联网的例子。