ARM-IoT
http://tech.hqew.com/fangan_723798
物联网就是一个物品互联网,这里的物品(物)内部有电子系统,具有感知和上报功能,支持远程控制,有时还能做出简单的决策。与物联网相关的其它常用术语包括M2M(机器间通信)和IoE(万物互联)。将内部有电子系统的物品连接到网络的概念由来已久。大致浏览一下相关资料后发现,物联网似乎不是什么新概念。不过,物联网和传统的机器间通信还是略有不同的。物联网的目标是将所有能够与用户互动的设备(物)都连接在一起,包括通常不联网的设备,实现万物互联。第二个不同之处是,物联网打算沿用现有的基于IP的网络,建立一个全球规模的物联网,而这一代机器间通信技术则是建立专用通信网络基础设施。物联网接入互联网的概念可提高物联网延伸距离,同时也使物联网技术面临一些独特的挑战。其中一个挑战是,受限于系统内存、数据存储容量和计算能力,很多物联网节点无法直接连接基于IP的网络。IoT网关可以填补这块空白,在基于IP的公共网络与本地物联网之间架起一座网络桥梁,同时还能提供数据安全、存储和处理服务,尽可能地提高物联网节点终端设备的成本效益和能效。此外,网关还能让网内设备使用不同的通信技术相互对话。不幸地是,影响设计的不确定因素太多,设计一个面向未来的IoT网关是一项十分艰巨的任务。物联网市场碎片化严重,厂商数以万计,缺少统一的标准。目前有关物联网的技术规范过多,每家科技企业都各自为阵,只推广自有技术。本文旨在于概述目前市场所有的可用技术,不深入介绍厂商的具体通信协议。
IoT网关的设计挑战
节点连接: 将网关连接到物联网节点,需要选用一种近距离射频(RF)通信技术。选择射频技术时需要比较各种参数,例如频带、调制方法、信道数量、数据速率、延迟、稳健性等。此外,还要考虑本地行业法规的相关规定。如果是节点类型相同的同构网络,射频技术选择就比较容易。相反,如果网内有多种不同的节点,有不同的需求,射频选择就会复杂很多。
后台连接: IoT网关与节点的连接可以使用近距离射频技术,而网关与互联网的连接则需要远距离通信技术。选择这项技术时需要考虑带宽需求和本地现有可用的连接技术,还要考虑是否是关键应用。因为每个地区的网络连接技术都不尽相同,所以准备多个后台连接方法是一个不错的主意。
管理服务器: 物联网节点作为独立的实体,通常不接受网络设备(通过网关)的访问请求。较为普遍做法是通过中央服务器管理网络节点,同时IoT网关为服务器提供通信支持,因此,我们需要选择网关与管理服务器之间的通信协议。
本地智能: 在真云架构中,节点将全部数据发送到云端进行处理和控制。不过,这种设定并不是很理想,因为毫无价值的数据也会发到云服务器,导致带宽浪费、服务器负荷增加,甚至连接断开时还会丢失数据。边缘计算概念解决了这个问题。如果IoT网关在本地承担大部分决策工作,只向云端发送过虑后的有价值的数据,系统运行将会变得更加高效。出于灵活性考虑,网关决策逻辑可以由服务器设定。本地智能程度和类型取决于实际应用,如果会影响网关设计决策,应给予深度考虑。
需要考虑的功率因素: 网关电源也会影响我们的设计定案。因为广泛用于物联网设备,所以传感器网络应尽可能从环境中汲取能量。
数据安全: 这是决定大规模物联网能成败的关键要素。随着网络成更多应用(某些应用实际上是关键应用)的重要组成部分,数据安全变得更加重要。安全问题应落实到每一个设计阶段,而在设计任务全部完成后再增加安全功能的做法是错误的。
可维护: 这是一个经常被忽视的需求。历史经验告诉我们,没有系统是完美无缺的。不管部署前做过多少测试,部署后还会发现安全缺陷、隐患和漏洞。IoT网关和节点必须支持现场维护和更新功能。设备维护不应只依赖远程维护,还应有更多的联网方法可选。
下面我们详细讨论现有联网技术,以及每种连接技术可用于哪些场景。
节点连接技术
目前,蓝牙、Wi-Fi、NFC、ZigBee是大家非常熟悉的无线通信技术。此外,新兴联网技术,例如Sub GHz、Thread、ANT、Z-Wave,可直接用于智能家居、智慧城市、智能照明和智能表计。
根据实际应用情况,功耗、数据速率、工作频率、电池续航能力是决定选择哪一种或一些联网技术的主要因素。本文后面的表1比较了当今主要无线通信技术的特性。
后台连接
网关与管理服务器(后台)的连接需要选择回程连接技术以及通信协议。回程连接是IoT网关到ISP互联网服务提供商端点之间的远距离连接。2G/3G/LTE等移动通信技术是当前最热的回程链路技术。此外,智能路灯等应用还可以使用电力线通信(PLC)技术。高带宽应用可以选用光纤通信技术。没有被移动网络覆盖的边远地区,可以选用卫星通信或微波点对点连接技术。
通信协议
有很多通信协议可用于IoT网关与云服务器之间的通信。这里我们讨论一些比较热门的技术及其优缺点。
Plain HTTP: 这是目前普及度最高的网络协议,被服务器厂商广泛接受,得到互联网标准的支持,兼容性问题最少,无缝支持RESTful API。不过,这项技术的缺点是开销太大,体现在HTTP报头和基于文本的格式方面。Plain HTTP虽然运行在TCP之上,但还是一种无状态协议,不适合即时通信应用。客户端必须发送一个请求信号,才能收到服务器的应答(命令)。为收到服务器的更新信息,客户端必须不断地轮询服务器。
CoAP: 资源受限型应用协议,可以认为是二进制版的HTTP,对HTTP协议的一些局限性做了改进,拥有非常准确的报头,支持二进制数据格式,因此降低了开销;可运行在TCP或其它传输层甚至SMS之上。CoAP数据包很容易转换成HTTP包。不过,因为缺乏对互联网基础设施的支持,此技术不能很好地兼容防火墙、代理服务器和路由器。因此,这项协议通常只适用于传感器网络内的私有网络。
Web sockets: 这是一个互联网标准支持的新的网络协议,采用与HTTP相同的寻址和握手方法,兼容现有网络基础设施。在完成握手对话后,立即转换成TCP之上的双工通信,适合即时双向通信,特别适合主机共享的虚拟主机环境和代理服务器后面的网关。
MQTT: 也是一个深受市场欢迎的运行在TCP层之上(可选)的网络协议,有一个主题订阅模式,更适合向相关网关广播信息,同时还适用于网关与服务器通信,具有一些适合物联网应用的功能,例如,最后一条消息永久存在和遗嘱消息。
AMQP: 这或许是最适合网关与服务器通信的网络协议。该协议的作用相当于一个存储队列,即便临时断网,也确保数据包不会丢失。
XMPP: 可扩展消息处理与现场协议,是聊天客户端广泛使用的即时通信协议,对很多功能进行了标准化,例如,用户验证和消息ID。不过,因为技术规范十分复杂,数据交换采用冗长的XML格式,所以不适合物联网应用。
图1: 意法半导体的无线网桥解决方案
IoT网关平台架构
这里介绍一个我们自主开发的灵活可变的传感器数据监控设计方案。传感器数据监控是一种普通应用,对安全或可靠性没有特殊的要求。
无线网桥IoT网关: 无线网桥是基于STM32的IoT网关平台方案,提供多种不同的通信连接技术,如图1所示。通信系统由蓝牙、Wi-Fi、Sub-GHz和NFC近距离通信组成。每种通信技术都有自身的优势。Wi-Fi用于在网关平台与云端平台之间传输物或节点数据,蓝牙用于网关平台与安卓应用程序之间交换物或节点数据,而Sub-GHz技术用于在网关平台与物或节点之间传送数据。在无线网桥平台上,蓝牙、Wi-Fi和Sub-GHz模块通过UART线与STM32通信,而NFC收发器通过SPI线与STM32通信,如何确保STM32微控制器与不同的通信设备配合而不会延迟,高效处理所有请求,是这个平台设计的一大挑战。这个网关平台架构可以帮助我们利用不同的通信技术满足不同的用例需求。我们在这个网关方案上增加一个应用层,充当云应用与物之间的网络桥梁。这个6LoWPAN网络的操作系统是Contiki OS。手机应用软件通过蓝牙接口与网关通信。
主要通信元件
Sub-GHz模块: 网关通过SPIRIT1 Sub-GHz模块与6LoWPAN网络中的“物”通信。SPIRIT1模块是超低功耗的高集成度射频模块,支持868 MHz / 915 Mhz ISM双频工作。该模块基于SPIRIT1 RF sub-GHz收发器(内置SMPS电源)、STM32L1微控制器、内部滤波器/平衡不平衡转换器芯片天线。UART主机接口可通过一个标准固件库直接连接外部微控制器,利用点对点通信和AT命令简化射频配置、数据传输接收。
Wi-Fi模块: Wi-Fi模块将无线网桥网关连接到云端应用。SPWF01Sx智能Wi-Fi模块是一款独立的即插即用的802.11 b/g/n解决方案,内置功率放大器和32位STM32微控制器。模块还集成时钟芯片和稳压器。
近距离通信: 该网关平台将CR95HF收发器用作NFC读写设备,与“物”上的NFC无源标签通信,配置设备。CR95HF是13.56-MHz多协议非接触式收发器。
蓝牙模块: SPBT2632Cxx蓝牙模块是一个小尺寸的功能完成的射频平台,适用于家庭自动化设备与蓝牙设备和手机之间的数据传输。
物架构
在本解决方案中,物基于多传感器-RF平台,共有两个组件(STEVAL-IDI002V2和STEVAL-IDI003V2)。STEVAL-IDI002V2是主板,集成了STM32L1 Cotex-M3微控制器、双接口EEPROM和Sub Ghz通信接口。STM32L1运行基于Contiki3x的6LoWPAN协议栈。选择这款微控制器是考虑到超低功耗的要求。双接口EEPROM使多传感器射频平台能够存储传感器送来的数据,让用户可以选择在NFC手机上查看数据。
STEVAL-IDI003V2电路板集成多个传感器,例如MEMS加速度传感器、MEMS压力传感器、MEMS湿度传感器、MEMS麦克风和光传感器。给整个系统供电的是一枚锂电池。
图2: 射频传感器节点(物)
在6LoWPAN网络内,多传感器射频平台是‘物’,无线网桥(网关)上的Sub-GHz射频模块是根节点。传感器节点读取传感器数据,并通过6LoWPAN网络将其发送到根节点。传感器节点还有GPIO端口,用于控制致动器。
IoT网关提供本地和远程连接选项,以访问传感器数据和节点上的致动器(图4)
Web访问: 远程用户可以使用管理服务器提供的Web界面查看传感器数据,向致动器发送命令。
安卓应用软件: 本地用户可以用蓝牙手机访问节点。在完成手机与无线网桥平台配对后,手机应用软件可以使用节点的功能。
NFC支持: 无线网桥支持NFC读写功能。这个通信功能可用于配置节点(射频信道等)和网关(Wi-Fi和蓝牙设置等)。
管理服务器应用设计
我们还设计了一个叫做ST Cloud Bridge的云端应用,在内置传感器/致动器的“物”或节点与终端用户之间搭起一座互动桥梁。图3是该云端应用的框图。物或节点将数据上传到ST Cloud Bridge云应用,然后获取命令和配置信息。终端用户可以监视传感器数据流,针对各种情况设置提醒通知。该平台还能开通、控制和配置节点。Cloud Bridge云应用主要由两个部件组成:设备模块和web模块。设备模块与传感器/致动器节点互动,而web模块处理用户所用的web客户端和移动客户端。这两个模块通过共享物体或云端服务总线交互操作,该解决方案运行在Azure网站平台上,提供数据安全功能,只与注册过的节点交互,所以数据完整性不会受到影响。该云应用准许“物”通过网关使用基于REST的标准API。
对于物联网管理应用来说,支持多个协议十分重要。我们必须有设备管理模块、监视模块、上报模块和开通模块。
考虑到物联网应用固有的负载易变性,IaaS是企业托管云应用的首选方式。现在很多云服务提供商开始提供物联网专用服务,使物联网应用的开发维护变得更加方便快捷。
图3: 节点管理云应用
物联网应用
智能家居:这些应用让用户能够远程监控安防设备和家电,还可以提高能源使用效率,例如,当用户外出时,自动关闭家电电源。
智慧城市
智能路灯: 通过监视环境光和交通流量等参数,市政管理者可以控制路灯亮度和开关灯时间,节省大量电能。如果路灯出现故障,系统会立即报修,降低意外事故风险或犯罪率。
智能表计: 无线连接的表计可实现远程抄表和一些应用,例如,阶梯式电价和双向计量电能表。智能电表还能侦测并上报盗电、电路漏电等事件。
智能停车场: 基于接近检测传感器的智能停车场是另一种物联网应用,能够为驾驶员提前发送空车位信息,避免交通拥堵问题,使按停车时间收费的计价也更加准确。
智慧农业:通过对湿度和营养进行精确监视,系统可提示浇灌和施肥时间,从而节省水和化肥成本,同时大幅提高产量。实践证明,当与天气预报配合使用时,该系统可让农民切实受益。
健康
这是即将到来的物联网应用,将会给终端用户的健康护理带来革命性变化。各种穿戴传感器收集病患的体温、血压等重要生理参数,然后通过IoT网关发送到病患线上健康档案,为用户建立一个准确的生理参数档案。对于医护专业人士来说,与病患病健康史相关的数据是一个有效的诊断工具,可以实时分析这些数据,在紧急情况下,可以快速行动,立即抢救病患。
工业
在监视和优化工业生产过程方面,物联网同样可以发挥重要作用。低功耗传感器节点的问世在工业自动化领域开辟一条新的途径。低功耗传感器节点在以前还是一个不小的挑战,除用于工业自动化应用领域外,还能进入对人类有害或不能进入的危险环境替代人类工作。
结论
我们提出了一个能够连接6LoWPAN网络中的“物”且支持手机和云应用的通用IoT网关平台方案。“物”所连接的网关是IPv6网络中的IoT无线网关。该系统解决方案可以定制,以适用于不同的用例。高品质开源网格网络协议的出现,例如,Contiki,有助于物联网加快进入消费领域。对于所有的物联网应用,安全性依然是一个充满挑战的问题,这无需言明。虽然现有安全技术还能撑住,但是,随着物联网不断普及,我们将会发现更多安全挑战。业界依然在努力寻找更好的低成本/低功耗的解决方案,建立一个安全的物联网。半导体制程进步、成本降低、更好的电源管理技术以及能源回收技术将会为物联网世界打开另一扇大门。
图4: IoT网关接口
ARM-IoT的更多相关文章
- 如何在 arm 官网上找到合适的手册
http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...
- 树莓派2 安装 win10Iot 和 Ubuntu mate
注册博客账号已经2年多了.一直没写博文现在抽空写写. 写这篇博文是因为我之前在网上找了蛮多有关教程写的都不是很清晰.安装没成功.所以我写一下我根据网上找到的整理一下分享出来. 非专业只是业余玩玩.好了 ...
- mbed OS - ARM关于物联网(IoT)的战略布局
关于IoT 在刚刚过去的ARMTECHCON2014(Santa Clara Convention Center)第1天会议,首要的keynote就是ARM针对建立物联网(InternetOf Thi ...
- Windows 10 IoT Serials 3 - Windows 10 IoT Core Ardunio Wiring Mode
Maker社区和智能硬件的朋友一定知道Arduino,很多3D打印机都是用它做的.为了迎合这一大块市场,微软在基于Intel Galileo的Windows 8.1 IoT中就是使用这种基于Ardui ...
- Win10 IoT C#开发 6 - 4x4矩阵键盘扫描
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...
- Win10 IoT C#开发 5 - 操作 IoT 设备内嵌 SQLite 数据库 CURD
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 前几章我 ...
- Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...
- Win10 IoT C#开发 3 - GPIO Pin 控制发光二极管
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一篇文 ...
- Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. The ...
- windows10 IOT +Azure会议概要总结
windows10 IOT +Azure会议概要总结 会议资料将放到https://channel9.msdn.com/Blogs/WinHEC FAQ:msftsziot@microsoft.com ...
随机推荐
- 微信小程序之页面之间传递值
页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A ...
- svn 命令
svn基本的操作流程就是: 你刚刚进入一个新的公司,让你接手一个正在进行的项目,你打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一 ...
- HDU_2102 A计划 【BFS】
一.题目 HDU2102 二.题意分析 该题其实就是三位空间内的BFS,但比较简单的是,它设置了传送门,可以直接传送上去,需要注意的是 1.到了传送门的时候要重新考虑传送的点的三种情况. (1)若又是 ...
- 建立链表的虚拟头结点 203 Remove Linked List Element,82,147,148,237
该逻辑对于删除第一个元素不适用. 这样的代码不优美 /** * Definition for singly-linked list. * struct ListNode { * int val; * ...
- 获取url路径的正则
package unit; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Util { // ...
- hash & heap - 20181023 - 20181026
129. Rehashing /** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * ...
- JavaScript学习笔记2_面向对象
1.对象的定义 ECMAScript中,对象是一个无序属性集,这里的“属性”可以是基本值.对象或者函数 2.数据属性与访问器属性 数据属性即有值的属性,可以设置属性只读.不可删除.不可枚举等等 访问器 ...
- 利用Flume将本地文件数据中收集到HDFS
1. 创建文件 放入一个txt文件 然后查看hdfs上的文件夹 不知道为什么并没有出现本地的文件 也不报错 后来发现,没有在logs文件夹下面,在newlogs文件夹下面
- HUID 5558 Alice's Classified Message 后缀数组+单调栈+二分
http://acm.hdu.edu.cn/showproblem.php?pid=5558 对于每个后缀suffix(i),想要在前面i - 1个suffix中找到一个pos,使得LCP最大.这样做 ...
- 配intelliJ IDEA 过程
1.安装svn 选项全选择,命令行执行要选择上2.安装java jdk 配jdk环境变量3.安装intelliJ IDEA 地址:http://idea.imsxm.com4.注册intelliJ I ...