APP下载

物联网操作系统浅析

2015-07-03中国嵌入式系统产业联盟北京麦克泰软件技术公司何小庆

单片机与嵌入式系统应用 2015年1期
关键词:嵌入式联网设备

中国嵌入式系统产业联盟/北京麦克泰软件技术公司 何小庆



物联网操作系统浅析

中国嵌入式系统产业联盟/北京麦克泰软件技术公司 何小庆

引 言

过去十年我国嵌入式系统产业发展迅速,嵌入式应用逐渐告别单片机时代,迈入集成电路、计算机、通信、电子技术等多学科交叉融合的嵌入式系统时代。如今嵌入式系统又将迎来物联网应用的高潮。

物联网系统中有大量的嵌入式设备,与传统的嵌入式设备相比,物联网感知层的设备更小、功耗更低,而且需要安全可靠和具备组网能力,物联网通信层需要支持各种通信协议和协议之间的转换,应用层则需要具备云计算能力。在软件方面,支撑物联网设备的软件比传统的嵌入式设备软件更加复杂,这也对嵌入式操作系统提出了更高的要求。为了应对这种要求,一种面向物联网设备和应用的软件系统——物联网操作系统(国外称为面向IoT的OS)应运而生,以下简称为物联网OS。

1 物联网OS产生背景

互联网为物联网系统搭建了无处不在的互联通道,云计算和大数据的兴起为物联网数据处理和分析提供了技术支撑。在嵌入式设备端,32位MCU技术已经成熟,价格与8/16位MCU接近,不仅在网关设备上使用,也在传感和执行单元上普遍使用。物联网典型架构如图1所示。在MCU市场,ARM Cortex-M系列(M0/M3/M4)的MCU占有最大的份额。在过去10年中,ARM已经建立了完善的生态环境,这大大帮助了包括物联网OS在内的嵌入式软件的发展。

图1 典型的物联网系统

特别值得关注的是网络安全,无论是IT、工业控制、还是消费领域,信息安全的重要性得到了政府和企业的广泛认知。物联网是一种广义的信息系统,因此物联网安全也属于信息安全的一个子集。从物联网系统的角度来看,要保护系统中的信息不会被窃取、篡改、伪造,需要综合运用信息安全的各种技术,而这些安全技术均运行在物联网OS上,因此,物联网OS的安全是物联网系统安全的基础。

2 物联网OS现状

最早具备物联网OS特征的是无线传感网(WSN)的OS,例如加州大学伯克利分校(UC Berkeley)的TinyOS和瑞士计算科学学院(Swedish Institute of Computer Science)网络系统小组Adam Dunkels开发的Contiki,它们是无线传感网OS的典型代表。2010年之后欧洲有了RIOT,相比前面两个OS,RIOT更加接近一个完整的RTOS(实时多任务操作系统),具备实时性和模块化结构,支持标准的C和C++编程接口。RIOT不仅可以运行在小型MCU上,还可以支持MPU。在资源允许的条件下,可以运行最新的互联网和物联网协议栈,并完成协议转换工作[1]。

2014年1月,微软嵌入式事业部总监Bob Breynaert透露,微软计划推出物联网版本的Windows Embedded。2014年8月,微软开始向所有Windows物联网开发者配套英特尔Galileo主板的Windows物联网OS预览版。与Arduino兼容的Galileo主板采用了英特尔Quark系统芯片,具有单核400 MHz 32位CPU,尺寸比一张信用卡大不了多少,提供10/100M以太网卡、PCI Express、JTAG和USB端口,以及一个SD插槽和RS-232串行端口,英特尔将其定位在物联网和可穿戴设备平台。Windows物联网OS是一个Windows8.1的非商业版本。显然预览版的推出是微软进军物联网计划中的一个步骤,让制造商和开发人员产生新的想法,并提供反馈,以帮助微软继续发展Windows物联网OS。

2014年2月在德国纽伦堡的嵌入式世界大会上,风河发布了其基于VxWorks 7的物联网OS。最近风河在其官方网站上给出了这个产品的介绍和白皮书[2]。微软和风河这两家操作系统大公司的加入,使得物联网OS已经呼之欲出。与此同时,传统的RTOS的公司也纷纷有所动作,比如因开发了μC/OS-II和μC/OS-III而闻名的Micrium公司2014年9月推出了Micrium Spectrum,这是一个针对物联网设备,集成了嵌入式软件、协议栈和云服务的端到端的解决方案[3],如图2所示。除此之外,Express Logic公司推出基于ARM物联网设备的X-Wave平台,该公司的RTOS内核是ThreadX。

图2 Micrium Spectrum 物联网软件平台

国内关于物联网OS的研究和开发才刚刚开始,多数还停留在学习、移植和应用阶段,自主研发的物联网OS很少,高校物联网专业教学上有的使用开源的TinyOS。中国科学院软件研究所与无锡中科物联网基础软件研发中心发布过一套物联网软件平台。北京凯思昊鹏的SEN-Hopen OS,可以运行于无线传感网微节点之上,是国内比较早的商用物联网(无线传感网)OS。中兴公司自主研发的嵌入式操作系统在物联网设备上也有应用。2014年7月,上海庆科联合阿里智能云发布了物联网OS——MICO,MICO目前是基于庆科自己的WiFi模块,未来庆科希望开发与硬件无关的物联网OS。

3 技术特征和实现方法

物联网OS还处在研发阶段,部分已有产品或者开源项目都还只是雏形。至今仍然没有看到关于物联网OS的明确定义,但从已有产品和宣传信息来看,其基本的技术特征已初显端倪。概括来讲,物联网OS应具有以下技术特征[4-5]。

3.1 管理物的能力

物联网中“物(things)”的定义内容较为广泛。从嵌入式系统视角看,“物”是网络上发送和接收信息的一个个嵌入式计算小设备(或称为“深嵌入式系统”),比如家庭或者工业现场的智能传感器、佩戴在身上或者植入身体的可穿戴设备、医疗健康装置、视频监控装置和各种便携终端。目前,嵌入式系统设计的一个共识就是降低功耗,常见的方法是系统尽可能快地完成工作,然后立即进入睡眠模式。现在的处理器核心架构,在低功耗状态下可以做到基本上不消耗任何电力,针对物联网边缘节点的设计很有吸引力。ARM的 Cortex-M0/M3/M4架构可以体现这种低功耗设计的优势并保证软件的兼容和较高的性能,这正是它能够成为物联网设备主流嵌入式处理器的重要因素,而运行于Cortex-M架构上的物联网OS必须具备低功耗管理能力。

3.2 可裁减和可扩展的架构

32位MCU价格不断下降,由于Linux无法支持没有MMU的MCU,而基于RTOS的设计允许更灵活的和可扩展的软件运行在这些系统中,RTOS理所应当地成为运行在MCU上的物联网OS的首选,一个完整的RTOS系统应该具有内核、GUI、文件系统、USB协议栈、网络,以及更多其他功能,能够适合小于1 MB的内存空间。RTOS的使用,使得嵌入式系统的软件体系结构更加灵活,故障排除和添加新功能的能力也大大增强。物联网OS应具备很好架构和可裁减性,以适应不同配置的硬件平台。比如风河公司的VxWorks 7的微内核配置是一种内存仅为20 KB的小型RTOS,扩充了VxWorks 7标准内核,为各类设备提供了独特的可扩展性和一致性的RTOS选择。物联网OS还可以简化实现固件升级的方法,比如动态加载设备驱动程序或其他核心模块。内核和应用程序应该具备外部二进制模块动态加载功能,这些应用程序存储在外部介质或者网络上,无需修改内核,只需要开发新的应用程序,就可满足行业应用改变的需求。

3.3 泛在互联功能

物联网OS应支持物联网常用的无线和有线通信功能。比如支持GPRS/3G/HSPA/4G等公共网络的无线通信功能和ZigBee/NFC/RFID/WiFi/Bluetooth等近场通信功能,还要支持Ethernet/CAN/USB有线网络功能。在这些不同的物理和链路层接口之上的协议之间要能够相互转换,即把从一种协议获取到的数据报文转换成为另外一种协议的报文发送出去,最后还要能够迁移到互联网协议中。此外应该注意,互联网应用的协议栈很容易生成几百到几千字节的数据开销,而物联网协议针对受限制的设备和网络进行了优化,仅有几十字节的数据开销。图3是互联网和物联网协议的比较,采用低带宽消耗的物联网协议是发展趋势。

图3 互联网和物联网协议比较

3.4 系统安全性

随着越来越多的设备连接到物联网中,对互联网的依赖性将不断增大。如果设备不安全,这种依赖将导致互联网存在重大的安全隐患,使设备很容易遭到攻击和破坏。物联网设备中很大一部分是使用MCU和资源有限的微处理器,与大型设备相比,这些小型设备更容易保护,不易受同类型威胁的攻击,因此更安全。物联网设备的安全分为两个层面[6]:

(1) 通信的安全

安全协议确保设备间的通信安全,它有一个可以依赖的信任等级,可以建立安全通信路径和通道。比如TLS(前身是SSL)是为基于TCP的流连接提供通信安全的最常用的方式。DTLS是一个新的协议,提供可靠的UDP传输和基于TLS的数据包传输。

(2) 设备的安全

文件传输、数据存储和系统更新方式都必须是安全的,比如防范入侵者通过电子邮件、FTP或其他方式将病毒文件移入设备。

这些安全技术均运行在物联网OS上,因此物联网OS的安全是系统安全的基础。

风河公司制订了一个物联网OS安全规范,该规范是一个专门针对Wind River Linux的高附加值软件规范。其主要特点包括对Linux内核的安全增强、安全启动、保护用户安全空间。ARM mbed OS有一个称为 CryptoBox 的安全子系统,支持各种安全服务,详细内容见第4节。

3.5 云计算后台

物联网设备区别于传统设备的标志是这些设备将产生海量数据,如何管理和处理这些数据是摆在物联网企业面前的一个难题,而云计算无疑是解决这个难题最有效的技术手段。云计算后台是物联网OS一个不可缺少的组成部分,选择支持物联网系统的云计算平台需要考虑以下技术因素(信息安全因素不在此范围讨论):

① 支持云计算和物联网协议(Websocket、RESTful、MQTT和CoAP等);

② 灵活和标准的设备管理方式;

③ 支持安全的远程固件升级;

④ Web/移动应用开发的能力;

⑤ 高效和可靠数据存储能力。

比如Micrium Spectrum使用的是2Lemetry的物联网平台和heroku 云计算技术[7],产品架构如图4所示。ARM mbed OS则是自己提供的mbed Device Server的云计算服务[8]。

图4 Micrium Spectrum 云平台

3.6 先进的编程语言

用于传统嵌入式系统的编程语言多数是C和C++。以后互联网编程技术将进入物联网设备,优化后的互联网编程语言可在低功耗MCU上运行,比如Java、JavaScript和Python。需要注意的是,Java总是运行在操作系统之上,所以不是C/C++或Java两者选择其一,而是C/C++和Java都会使用。对于物联网设备,Java是极有吸引力的,因为全球有大量的Java开发者,占领移动终端市场80%以上的Android就是使用Java作为应用开发语言,这给行业带来了巨大的增长潜力。Oracle和ARM估计,全球大约有45万的嵌入式软件工程师,而IT业约有900万的Java开发人员。

Java引擎的资源占用是必须要考虑的因素,Oracle针对基于ARM架构的SoC系统小型设备推出的嵌入式Java ME产品,至少要占用130 KB RAM/350 KB ROM资源,而且还要考虑商业知识产权问题(Google与Oracle在Java虚拟机知识产权上一直有纠纷)。

更加开放的JavaScript和Python或许是另外一种途径,开源硬件已经开始在这方面积极尝试,比如树莓派可以支持 Python的编程[8],而Spark Core和Espreuino内置了JavaScript解释器,可以运行JavaScript应用程序。Spark Core和Espreuino都是基于ARM Cortex-M3/M4的SoC,十分适合物联网设备。不久的将来,不必掌握C/C++语言,就能对物联网设备编程或许不再是梦想。

4 ARM物联网平台mbed OS

2014年10月,ARM公布了专门为物联网设计的软件及系统平台,以加速物联网设备的开发及应用。该软件专门为基于ARM Cortex-M架构的MCU而设计,包括了设备端的嵌入式mbed OS操作系统、软件工具包mbed和云端的mbed Device Server三大部分,如图5所示。ARM公司称“能够以安全的方式为连接和管理设备提供所需的服务器端技术”,ARM在借mbed基础软件为物联网设备构建“砖石”,希望物联网设备商能够专注于为其产品增加更多新功能,使产品尽快上市并具有竞争力。

图5 ARM 物联网平台mbed OS框图

mbed OS的设计理念有别于传统的RTOS和Linux,它不追求最大的灵活性,而强调物联网应用专业性——低功耗和高效率。在mbed OS的设备端,连接和安全是两大亮点。mbed OS支持多种互联标准,包括3G/4G/LTE、Bluetooth Smart(蓝牙4.0)、WiFi以及6LoWPAN(基于IEEE 802.15.4实现IPv6通信协议)。在安全方面,mbed OS提供了通信和设备安全两种机制(在一个称为CryptoBox的子系统里),提供安全的API,支持安全标示、固件升级、认证和安全存储等功能,这个功能大大简化了产品的安全设计。mbed OS强调代码的可重用性,面向对象和模块化,开发者可用C++语言编写自己的应用。

mbed Device Server是mbed OS软件平台的另一大亮点,这是由ARM自己开发的云端软件,支持IPSO Web目标管理和OMA设备管理标准,支持CoAP、6LoWPAN和HTTP协议,提供设备开发者可以免费使用的SDK开发包。在应用上,mbed OS目前侧重在智能家居、智慧城市(智能照明)和可穿戴设备3个方向[10]。

据ARM介绍,mbed OS将对开发者和设备制造商免费提供,该操作系统源码一部分基于ARM收购的Sensinode公司的技术构建,另一部分由内部开发。mbed OS基于Apache 2.0许可证,操作系统大部分为开源,但部分组件只对ARM合作商开放。ARM在2014年向合作商提供alpha版本的mbed OS,预计2015年10月发布第一个正式的版本。目前业界对mbed OS持观望态度,毕竟一个操作系统需要一段很长的时间才能让用户和市场认可,ARM虽不能说是从零开始,但在这个领域还是一个新兵。因为ARM在嵌入式系统技术和产业链方面有20多年的成功经验,所以我们有理由期待mbed OS的成功,另外开源技术也是ARM切入物联网市场的一大利器。

结 语

[1] Emmanuel Baccelli.RIOT OS: Towards an OS for the Internet of Things[C]//International Conference on Computer Communications,Turin,2013.

[2] Wind River Company.The Internet of Things Defines the Future RTOS[EB/OL].[2014-12]. http://eecatalog.com/intel/2014/01/14/the-internet-of-things-defines-the-future-of-the-rtos/.

[3] Micrium Company.Micrium Launches First End-to-End Solution for Internet of Things Device Design[EB/OL].[2014-12].http://www.businesswire.com/news/home/20140924005087/en.

[4] 江文瑞.嵌入式计算设备[J].单片机与嵌入式系统应用,2014,14(9).

[5] 江文瑞.物联网与实时操作系统[J].单片机与嵌入式系统应用,2014,14(12).

[6] 张爱华.基于嵌入式操作系统的物联网安全[J].单片机与嵌入式系统应用,2015,15(1).

[7] 2lemetry.IoT Platform[EB/OL].[2014-12].http://2lemetry.com/iot-platform/.

[8] 何小庆.云计算在物联网中的应用[J].单片机与嵌入式系统应用,2014,14(11).

[9] Simon Monk.Raspberry Pi Python编程入门[M].北京:科学出版社,2013.

[10] Pratul Sharma.Next Steps in mbedTM IoT device Platform: mbed OS,2014.

士然

2014-12-02)

猜你喜欢

嵌入式联网设备
谐响应分析在设备减振中的应用
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
TS系列红外传感器在嵌入式控制系统中的应用
抢占物联网
基于MPU6050简单控制设备
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
500kV输变电设备运行维护探讨