第3章 设备层原理 企业物联设备,无论是基因测序仪、机车还是水冷却器,正变得越来越智能,信息连接更广泛。本章介绍建造新一代企业物联设备的基本原理。现在,传感器性能也遵循摩尔定律,价格会逐年变得越来越便宜。人们会越来越多地把它们连接到计算机上,计算机选用可以从功能简单的微控制器到支持ARM或Intel指令集架构的高性能CPU。功能强大的软件系统需要性能卓越的处理器,因此,本章也将会介绍一些基本的操作系统。最后,本章将讨论与建造企业物联设备有关的安全基础。 3.1传感器 传感器有数百种之多,但本节仅介绍智能手机中用于获取特定信息的传感器。首先从一种最常用的传感器——加速度传感器入手。顾名思义,加速度传感器用于测量手机相对于自由下落的加速度,也用于确定一个设备沿其3个坐标轴的方向。应用程序(App)使用加速度传感器数据来判断手机是水平的还是垂直的,以及屏幕是朝上的还是朝下的。陀螺仪是另一种能提供方向信息的传感器,精度更高,可用于检测手机的旋转幅度及其方向。 磁力传感器测量磁场的强度和方向,手机中的指南针和金属检测应用程序使用这个传感器的数据来确定方向和探测金属。 智慧建造——物联网在建筑设计与管理中的实践 第3章设备层原理 0 0 接近传感器在工作时发射一束红外线,当检测到被测目标时,被测目标反射这束红外线,再被接近传感器接收。接近传感器安装于手机的耳机附近,当它检测到手机处于通话状态时,关闭手机屏幕。 手机还配有光传感器用来测量环境光的亮度,根据光传感器数据来自动调节屏幕显示亮度。 有些手机还配有内置测量大气压力的气压计,用它来确定海拔高度,以此来校正GPS的精度。此外,手机都装有温度传感器,有的手机还不止一个。如果检测到某个部件过热时,系统会自行关闭以防止损坏手机。 三星公司(Samsung)率先在Galaxy手机中使用了空气湿度传感器,应用程序使用空气湿度传感器数据来判断用户是否处于“舒适区”——最佳的空气温度和湿度区域。 计步器是一种用于计量用户行走步数的传感器。相当多的手机只使用加速度传感器数据来计算行走步数,但专用计步器更加准确和节能。谷歌Nexus是少数几款内置计步器的手机之一。有的手机还配有心率监测器,如Galaxy X5,通过检测手指血管微弱的脉动来监测心率。当然,大多数苹果手机和谷歌Pixel手机用户都知道指纹传感器能代替锁屏密码。 最后将要介绍的是,有的手机还配置了一个人们意想不到的传感器——辐射传感器。夏普Pantone 5手机配备了一个应用程序来测量用户所在区域的辐射水平。如果把话筒和摄像头也包括在内,一部手机至少有14种不同的传感器。这些我们后面还会讲到,然而它们只是所用传感器中的一小部分而已。 3.2计算机体系架构 所有网络连接的智能机器设备都包含某种能够运行软件的中央处理单元(CPU)。由于物联设备受功耗、外形尺寸及成本的限制,选用CPU基本架构时得做一些折中的考虑。 在物联网的最底层有多种类型的微控制器,它们具有简单功能的指令集,对存储器访问较少,功耗低。如Arduino,采用爱特美尔公司(Amtel)的8位ATmega系列微控制器。外形尺寸小、价格便宜和功能简单的物联设备可用微控制器,下面介绍的是使用全功能指令集的CPU。目前,这类CPU要么出自ARM公司,要么出自英特尔公司(Intel)。 ARM处理器是一种精简指令集计算机(RISC)处理器,与个人计算机中传统的Intel x86处理器相比,ARM处理器需要极少的硬件资源来执行指令集,降低了成本、发热量和功耗。例如,Raspberry Pi使用的是一款32位的ARM处理器; Apple A7是苹果公司设计的64位ARM处理器,用于驱动手机和平板电脑。 虽然ARM处理器被广泛使用,但Intel的x86架构仍然主宰着服务器和笔记本电脑市场,拥有丰富的软件开发工具。Intel Atom是英特尔公司超低功耗微系列处理器的典型代表。 3.3软件系统 有多种操作系统或运行环境用于物联网终端设备。本节着重讨论软件系统所需内存空间、软件开发环境和实时处理的要求。 3.3.1内存空间 在计算处理中,可执行程序占用内存空间的大小指明执行该程序的实时内存要求。大程序要占用的内存空间大。通常软件本身不会用到其占用内存空间的最大值。相反,运行环境引入的数据组织结构可增加占用内存的空间。比如在Java程序中,占用的内存空间主要是Java虚拟机(Java Virtual Machine,JVM)运行环境。 3.3.2软件开发环境 软件开发环境,有时称为集成开发环境(Integrated Development Environment,IDE),是一种为计算机程序员提供的程序开发综合平台的软件。软件开发环境通常由源代码编辑器、代码自动生成工具和调试器组成。Arduino平台提供用于微控制器编程的IDE,支持C、C++和Java等编程语言。企业物联设备的建造者应考虑需要为程序员提供什么样的IDE。 3.3.3操作系统 操作系统,或者运行环境,通常包含许多应用程序调用的软件。在IoP应用领域,有大家熟知的Linux和Microsoft Windows操作系统; 而在物联网IoT应用领域,需要另外一种叫作实时操作系统的操作系统。 实时操作系统(RealTime Operating System,RTOS)是一种针对时序要求严格的应用程序提供服务的操作系统。处理时间要求(包括任何操作系统延迟)在0.1s甚至更短的时间内。RTOS的一个关键特性是接收和完成一个应用程序的任务所花费时间的一致性程度。在RTOS中,重要的是最小的中断延迟和最小的线程切换延迟,而不是评价其在给定的时间段内执行的工作量,它们是评价操作系统响应的快速性和可预测性的指标,以风河系统公司(Wind River)为例,它的RTOS用于支持实时处理。当然,随着处理器的速度越来越快,智能设备的需求越来越广泛,在有些情况下不会采用传统的操作系统。 另外,Android、iOS和Windows等操作系统是为IoP开发的,在构建用户界面方面投入了相当大的精力。但是为什么用于压缩机、高空作业平台和风力发动机的操作系统也需要用户接口呢?有一些类似阿托姆顿公司的软件公司已着手开发一类物联网所需的软件,其目的是在物联网上便捷地进行传感器的增删、网络安全的管理及软件的升级。 3.4网络安全 物联网安全涉及很多方面。本节重点讨论软件的安全性和完整性。毕竟,不安全软件造成的安全漏洞比其他方面要多得多。 3.4.1安全启动 每当机器设备上电启动时,第一个运行的程序称为“引导程序”(the boot)。安全引导程序通过阻止加载没有合法数字签名的软件来保护整个引导过程的安全。当安全引导程序有效时,引导程序便把密钥写入所用的固件中。一旦写入密钥,安全引导程序只允许加载具有密钥的软件。 3.4.2杜绝不良软件 人们都熟悉笔记本电脑或个人计算机上的杀毒软件。杀毒软件是为检测可能危害计算机的不良软件而开发的。例如,著名的Stuxnet病毒,专门针对用于控制机器设备的可编程逻辑控制器(Programmable Logic Controller,PLC)。Stuxnet病毒控制了伊朗铀浓缩工厂的离心机,离心机是用来分离核材料的。Stuxnet病毒先把使用微软Windows操作系统和网络的计算机作为攻击目标,然后再寻找安装在计算机上的西门子(Siemens)Step7软件。据报道,Stuxnet病毒几乎毁掉了伊朗1/5的核离心机。 3.4.3使用完全优良的软件 补丁是一种用来更新计算机软件的程序。一些补丁程序用来改善软件的可用性或性能,还有一些补丁程序用于修复安全漏洞。补丁程序管理是制订修复对策、规划补丁程序的应用对象和修补时间的过程。在IoP应用程序中,像威睿(VMware)、甲骨文和微软等公司每年要发布数百个与安全有关的补丁。 3.5标准 实际上,人们可以把计算处理和网络连接添加到任意一台机器上,从而实现互联网上的信息传输。除此之外,还需要建立一致的、易于理解的协议标准用于电子数据交换。标准有助于推动制造商之间的兼容性和互操作性。标准还可以简化产品开发和缩短产品上市时间。本节将简要介绍用于机器设备与互联网通信的ISO 151432标准,以及用于车辆内部通信的SAE J1939标准。 3.5.1ISO 151432标准 在建筑行业,建筑施工现场的电子数据交换已是一项关键技术,它能通过物联网从人工处理方式向自动化数据采集和通信方式发展。 为此,美国设备制造商协会(the Association of Equipment Manufacturers,AEM)和设备管理专业人员协会(the Association of Equipment Management Professionals,AEMP)共同制定了ISO 151432标准,用于土方机械、移动机械和道路施工机械。未来设备制造商或者供应商直接以标准化格式提供数据给设备业主,同时,为了使拥有多种类型机械设备的业主使用便利,ISO 151432标准定义了一种数据格式。 另外,它还定义了一组网络服务,提供与车队及其相关的车载通信数据信息。一组机械设备群组信息通常可作为互联网上的一个资源,它具有一个已知的URL(Uniform Resource Location)。任意数量设备群组的车载通信数据信息都能通过特定的URL表示。客户端通过向给定的网址服务器发送HTTPS GET请求,就可以访问这些资源。服务器用一个设备信息文档响应请求,该文档的词汇表是用ISO 151432标准定义的。 3.5.2SAE J1939标准 美国汽车工程师协会(the Society of Automotive Engineers,SAE)制定了J1939标准,该标准定义了实现用于车辆零部件之间通信和诊断的推荐方法。该标准起源于美国的汽车和重型卡车行业,目前也在世界其他地区被广泛应用。 SAE J1939在7层OSI网络模型中定义了5层,包括控制器局域网(CAN)ISO 11898规范。在J1939/11和J1939/15标准下,数据通信速率规定为250kbit/s; 在J1939/14标准下,数据通信速率为500kbit/s。 在商用车辆领域,SAE J1939用于整个车辆的通信,其物理层以ISO 11898标准定义。牵引车和拖车之间的通信采用另一种物理层,采用ISO 11992标准定义。 当然,仅靠标准并不能带来技术革新。我们仍然需要为建造过程中使用的机器设备添加计算和连接,最终使制造商、业主和用户在施工现场的效能更高、安全性更好。 3.6封装 封装是电子工程领域的一门重要学科,它包括各种各样的技术。封装必须考虑防止机械损伤、散热、射频噪声发射和静电放电等问题。小批量制造的工业设备可使用标准化的、商用化的配件,如插件架、预制盒体等。大众消费设备可用专业化封装方法以增加对消费者的吸引力。 片上系统(System on a Chip,SoC)是一种高容量封装技术。SoC芯片把计算机和其他电子系统的所有元器件集成在单个半导体集成电路芯片上。它具有数字、模拟、混合信号及射频等功能。SoC和微处理器相比,功能上只有度的差异(没有质的差异)。微控制器通常只有不到100KB的存储器,与同一等级的微控制器相比,SoC可作为功能强大的处理器使用,能运行占用较大内存空间的软件(如Linux)。如果对于一个特定的应用,构造一个SoC芯片难以满足要求,另一种实现方法是系统封装(a System in Package,SiP),也就是把一组芯片组合在一个封装内。在大批量需求的情况下,SoC比SiP更划算,因为SoC能提高成品率,封装方法也比较简单。 下一章将介绍几个企业物联设备的案例。