智慧家庭操作系统关键技术研究

尹德帅 居文军 马成东 钱学文

摘 要:智慧家庭操作系统是智慧家庭的核心支撑。文中对物联网/智慧家庭操作系统的行业发展进行了总结,介绍了智慧家庭操作系统对于智慧家庭生态发展带来的价值。通过智慧家庭的业务架构,提出了智慧家庭操作系统应当能够针对不同智能设备支持统一的内核和功能的可裁剪性,并给出了智慧家庭操作系统的技术架构,对智慧家庭操作系统的内核、互联互通、场景管理、设备管理等关键技术进行了详细分析,以期为智慧家庭操作系统的设计与研发提供参考。

关键词:智慧家庭;物联网;操作系统;智能家电;设备管理;大数据

中图分类号:TP393文献标识码:A文章编号:2095-1302(2020)04-00-05

0 引 言

物联网是新一轮产业革命的重要方向和推动力量,是新一代信息网络技术的高度集成和综合运用。据Gartner预测,到2020年全球联网设备数量将达到250亿个,物联网市场规模达到1.9万亿美元[1]。作为物联网一个重要的垂直应用领域,智慧家庭以家庭为基础,融合物联网、云计算、大数据等新一代信息技术,为消费者提供健康、智能、舒适、安全和充满关爱的家庭生活方式。同时随着互联网业务在消费者市场的繁荣发展以及在整个社会消费升级的趋势下,智能化成为了家电行业互联网转型的重要目标。智能家电的迅速发展也极大地推动着智慧家庭产业的发展和升级。

智慧家庭中存在各种类型的智能设备,包括智能家电、家居设备、安全设备、智能硬件、传感器等,不同类型的智能设备具有不同的处理能力、通信方式和应用场景,这种多元化的软硬件组合使得智慧家庭的设计开发和管理变得非常复杂,“碎片化”已经严重影响了智慧家庭的市场化落地和生态体系建设。纵观PC和智能手机的发展,可以看出操作系统如Windows,Android,iOS等能够屏蔽底层的硬件差异,为上层应用提供统一的开发环境和用户交互体验,是互联网和移动互联网发展的核心驱动力。在智慧家庭中,操作系统能够解决智能设备“碎片化”问题,提供统一、标准化平台,形成互联互通、设备管理、信息安全、人机交互、用户体验、开发环境等集成融合的解决方案,从而满足智慧家庭面临的共性需求,有效促进智慧家庭生态系统的良性发展,推进智慧家庭的应用和普及。

本文针对物联网及智慧家庭操作系统发展的现状进行了调研和分析,总结出智慧家庭操作系统的关键技术,如内核技术、互联互通、設备管理、场景管理、信息安全等,并对这些关键技术进行了深入分析。

1 物联网/智慧家庭操作系统发展现状

物联网感知层的设备更小、功耗更低,需要安全可靠的组网能力;通信层需要支持各种通信协议和协议之间的转换;应用层需具备云计算能力。因此,物联网操作系统应当具有管理物的能力、可裁减和可扩展的架构、泛在互联能力、安全等技术特征[2]。物联网操作系统的发展呈现两种技术路径:

(1)由智能手机操作系统剪裁而来,具备较强的应用能力,同时获得智能手机生态的强大支持;

(2)针对嵌入式操作系统进行功能优化,针对底层硬件平台开发,拥有更高的可靠性和更强的性能表现[3]。

目前行业已经出现了多种为物联网定制的操作系统,如ARM的mbed、谷歌的Android Things、华为的Lite OS等。另外,还有专门为智慧家庭定制的操作系统,如海尔的UHomeOS等。

1.1 物联网操作系统

本文调研了三种主流的物联网操作系统,分别为ARM mbed OS,Android Things和华为Lite OS。

1.1.1 ARM mbed OS

mbed OS是ARM发布的物联网操作系统,是专为物联网中的“物体”设计的开源嵌入式操作系统[4]。mbed OS基于ARM Cortex-M微控制器,能够支持连接产品所必需的全部功能,可应用于智能城市、智能家庭和穿戴式设备等领域。mbed OS可以提供内核、安全保障、基于标准的通信功能以及针对传感器、I/O设备和连接性开发的驱动程序,能够加快部署产品周期。mbed OS具有模块化软件堆栈,有助于开发者对开发设备进行自定义,以及通过可配置的软件组件来降低设备对于内存的需求。mbed OS在微控制器上运行,是mbed IoT设备平台的客户端部分,与mbed设备连接器、mbed设备服务器和mbed客户端配合使用。mbed OS围绕物联网设备的安全性、连接性、可管理性、效率和生产率这五个核心原则进行设计,基于事件驱动的单线程架构,确保mbed OS可以应用到尺寸最小、成本最低且功耗最低的物联网设备中。

1.1.2 Android Things

Android Things是谷歌于2016年发布的面向智能设备的操作系统,其前身是2015年谷歌发布的物联网平台Brillo,在Brillo的基础上,Android Things加入了Android SDK,Android Studio,Google Play服务以及Google云平台等Android开发工具和服务。熟悉Android的开发者可以轻松进行Android Things应用的开发。Android Things支持谷歌的物联网通信协议Weave,可以让智能设备连接到云端,目前Nest,Hue,SmartThings,LiFX等已经宣布支持Weave,Android Things。Android Things对core Android Framework进行了扩展,通过Things Support Library提供附加的API,使得开发者可以集成各种智能硬件设备,包括不带屏幕的智能设备。Android Things提供了主流的I/O驱动外设接口,可与传感器和执行器通信交互,同时能够支持蓝牙、低功耗无线个域网(Low-Power Wireless Personal Area Networks,LoWPAN)等技术[5]。考虑到Android Things需要使用谷歌的云端服务,因此目前在国内无法顺利使用。

1.1.3 华为Lite OS

华为LiteOS是华为于2015年发布的面向IoT领域构建的轻量级物联网操作系统,遵循BSD-3开源许可协议,可广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域,大幅降低设备布置及维护成本,有效降低开发门槛、缩短开发周期[6]。LiteOS目前支持ARM Cortex-M0,Cortex-M3,Cortex-M4,Cortex-M7等芯片,同时华为联合业界主流MCU厂家,通过开发者活动,目前已经适配了数十套通用MCU开发套件,5套NB-IoT集成开发套件。LiteOS Kernel是华为Lite OS操作系统的基础内核,包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,可以单独运行,具有高实时性、高稳定性、超小内核、基础内核体积可以裁剪、低功耗、支持功能静态裁剪等特点。华为LiteOS是华为物联网解决方案的重要组成部分,是支持物联网终端产业快速发展、使能终端设备智能化的软件开发平台。

1.2 智慧家庭操作系统UHomeOS

UHomeOS是海尔U+专为智慧家庭定制的场景生态安全操作系统。该操作系统是基于硬件模块、融合互联互通、大数据、人工智能等技术成果,集结智能家居行业生态服务资源,提供跨场景、全兼容、多资源、高安全的基础操作环境,以家庭用户为中心,串联起人、家电、服务,赋能家电,让家电理解用户需求,主动为用户提供个性化生态场景服务,提升用户体验。针对智慧家庭中不同处理能力的智能设备,UHomeOS具有统一的内核,支持扩展与裁剪,分为Full/Compact/Lite三个版本;能够支持国际主流的互联互通协议,如OCF,MQTT等;同时也集成了语音识别、图像识别、自然语言处理等能力。UHomeOS为智慧家庭的设备提供了集成化的解决方案,涵盖终端用户、家电等,能够为行业用户提供完善的服务[7]。目前,UHomeOS已经在海尔的部分产品上实施,如冰箱、烤箱、洗衣机等。

2 智慧家庭操作系统架构及关键技术

2.1 智慧家庭操作系统技术架构

智慧家庭是物联网的垂直应用领域,其技术架构与物联网的架构体系基本一致,但在终端设备侧,即感知层相比物联网所定义的感知层范围更加广泛。物联网最初的定义是通过RFID技术来感知数据并将设备与互联网连接。感知数据的主要设备是各种传感器,比如环境感知类传感器,包括温湿度、气压、空气质量传感器等;情景感知类传感器包括压力、距离等传感器;意境感知类传感器包括速度传感器等。这些传感器被大量应用在工业、农业、交通、医疗等领域,可以说传感器是人们感知物理世界的一种方式。在智慧家庭中,扩大了物联网感知层的范围,加入了图像感知、语音感知、文字感知等。自2014年后,智能硬件、智能家电相继爆发,这些智能设备能够向云平台上报数据并接受控制,所以从广义的角度看,家庭中所有能够收集数据并上报数据的智能设备都属于感知层范畴,这些数据包括物理世界的传感器数据、设备本身的数据、用户产生的数据、互联网数据等。

同时,家庭中各种智能设备的处理能力、应用场景也各不相同,如传感器设备、家居类设备、家用电器等,因此对于运行在智能设备上的操作系统与传统的物联网设备也有一定差别,需要统一的操作系统平台,并根据设备的能力和应用场景的不同,支持功能的可定制和可剪裁性。

此外,智慧家庭要为消费者提供丰富的场景体验,比如智慧空气的场景体验,一旦感知到室外的空气情况后,家庭中的空气类设备如空调、净化器、加湿器就能够联动,为消费者提供健康舒适的智慧体验。因此,在智能设备上运行的操作系统要具有智慧家庭场景管理能力。

对于智慧家庭操作系统来说,在继承物联网操作系统所需的实时性、可靠性、安全性、低功耗等功能特点外,还要结合智慧家庭的设备特点和应用场景,具有系统的可剪裁可定制、场景管理、互联互通、端到端信息安全、设备控制及管理等功能。

智慧家庭操作系统针对不同智能设备的能力分为全生态版、紧凑版和轻量版,可应用到不同的智能设备中。比如具有屏幕的智能冰箱上可以运行全生态版系统,支持智能冰箱和用户进行高频交互;在智能烤箱上,可以运行紧凑版智慧家庭操作系统,能够支持设备的管理控制以及相应的场景联动等功能;能力受限的智能设备,如照明设备,可以应用轻量版智慧家庭操作系统,实现基本控制、数据采集以及场景联动等功能。

智慧家庭操作系统分为硬件层、内核层和应用层。在全生态版本中还增加了Java生态层,用于支持开发者基于智慧家庭操作系统开发各类智慧应用,包括用户图形交互框架、智能語音的自然语言处理框架、体感交互框架等,也包括智慧家庭场景的管理引擎、家庭模型、场景安全等功能。智慧家庭操作系统基于微内核技术,包含线程管理、地址空间管理、线程间通信、中断处理等基本功能的精简微内核。在微内核之上,构建了智慧家庭应用场景的操作系统内核,其中包括智慧家庭所需的互联互通协议栈,用于智能设备的在线升级(Over the Air,OTA)功能等。

本文针对智慧家庭操作系统的内核、互联互通、设备控制及管理等关键技术进行深入的分析。

2.2 智慧家庭操作系统内核技术

微内核操作系统[8-9]作为近年操作系统内核技术的热点话题,其可靠性、可扩展性、实时性和安全性为解决目前物联网操作系统的碎片化问题提供了较好的思路,物联网/智慧家庭操作系统有实时性和非实时性要求,也有需要图形界面与无需图形界面的系统,同时还面临着多硬件架构问题,而微内核可以很好地解决这些技术难题。

微内核是一种最小化的操作系统内核,其设计思想是内核本身不提供操作系统的相关服务,而是提供实现这些服务的机制,诸如底层的地址空间管理,线程调度以及进程间通信,即只提供了很小一部分的硬件抽象,大部分功能由一种特殊的用户态程序—服务来完成。这些系统服务主要包括设备驱动、文件系统和用户界面等。微内核的设计思路符合嵌入式平台对操作系统的需求,并且非常适用于构建虚拟机运行环境。微内核具有高可靠性和实时性特性。

微内核操作系统的可靠性来源于其秉持的最小权限准则。对于单内核操作系统而言,内核实现了所有操作系统服务,其中包括大量第三方开发的驱动程序模块。若任意一个系统服务存在漏洞,在执行过程中发生错误,将导致整个系统崩溃。反观微内核操作系统,其设计的初衷就是尽可能地压缩内核职能,只保留实现操作系统的基本功能,把包括驱动程序在内的大多数服务在用户态中实现,以此降低内核崩溃的几率。

实时性主要是指操作系统在操作硬件设备和执行程序过程中对时间的严格控制,要求在规定时间内完成所有操作。微内核作为系统内核意味着其本身的运行很容易做到实时化。而且大多数微内核操作系统都实现了实时调度机制以确保服务程序的响应速度。

因此,微内核的这些特性非常适合物联网/智慧家庭的应用场景。物联网/智慧家庭设备对操作系统既有实时性要求也有非实时性要求,更有实时程序与非实时应用程序并行运行的要求。实时组件可以是磁盘驱动服务或网络服务[10],其他组件构建在这些服务之上,例如文件系统或视频播放器。基于微内核,为了满足智慧家庭场景实时性的需求,需要在微内核上构建智慧家庭操作系统内核,如图1所示。

智慧家庭操作系统内核在微内核上运行,主要包括任务、线程、进程间通信以及内存管理等。所有服务(包括设备驱动)在用户模式下运行,处理这些服务同处理其他任务的程序一样。因为每个服务只是在自己的地址空间运行,所以这些服务之间彼此都受到保护[11]。智慧家庭操作系统内核与其他应用程序均使用底层系统服务。此外,智慧家庭操作系统内核可以使用更高层的系统服务,例如网络服务器驱动系统的网卡等。具有实时能力的微内核服务通常还可以向非实时应用提供服务,并根据可用资源来调度其客户。智慧家庭操作系统内核API设计遵循最小化原则,可为用户应用程序提供简单的功能。使用底层微内核API来处理大的应用程序较为繁琐,为提高应用程序开发效率,需要支持库、系统服务和工具。工具集包括C库、内存管理、线程管理、程序加载、事件处理、接口定义语言以及封装接口等。

2.3 智慧家庭操作系统互联互通协议栈

物联网/智慧家庭中,需要所有的智能设备实现互联互通。智能设备之间的互联协同是物联网和智慧家庭场景功能实现的基础。智慧家庭目前面临的最严峻的挑战是缺乏统一的互联互通协议,无法实现跨品牌的智能家电互联互通,这个痛点伴随着智慧家庭的整个发展过程,如何实现跨品牌的智能家电互联互通是智能家电能否被消费者接受并买单的重要因素。因此,需要在智慧家庭操作系统设计中加入互联互通协议栈,以实现智慧家庭中智能设备间、智能设备与APP、智能设备和云平台间的互联互通。智慧家庭互联互通协议栈如图2所示。

协议适配层用来适配目前主流的通信协议,以保证运行不同协议的智慧家庭设备能够互相联通。协议适配层为上层提供了统一的交流语言,能够使运行不同协议的设备间相互发现。协议适配层还允许将运行智慧家庭操作系统的设备当作小型网关使用,进而为设备间的信息分享和分布计算及联合决策提供支撑。同时协议适配层也可用来进行上层协议的转换和转发。

设备相互发现的用处在于发现网内设备,该层一直处于监听状态,时刻监听来自协议适配层的信息。为达到设备相互发现的目的,设备标识也是关键,因此该物联网操作系统对设备进行了抽象化处理,使得种类繁多、功能差异较大的设备有了统一标识。

设备间相互发现后,需要相互分享各设备的能力及目前的状态,还包括周围设备的变动信息。

分布计算和联合决策是在设备间信息分享后,各设备根据自身状态及周围设备的状态变动信息进行分布式计算和联合决策。在信息传递机制上,該模块主动为上层传递信息。

2.4 智慧家庭操作系统家庭场景管理模型

智慧家庭场景是以家庭为中心的应用场景,消费者需要便捷地控制家庭中的各种智能设备,使家庭中的智能设备能够无缝连接、共享信息,主动为用户完成特定的任务,如智能灯光、智能温度控制、智能能源管理、智能环境监测、智能清扫、智能娱乐等。家庭设备与外界交互、反馈,即通过家电设备自动发出购物、安全管理、健康娱乐需求等指令,与智能社区交互,从而极大得提升家庭生活的舒适性、便利性和安全性[12]。

模型是对现实的抽象,由于现实中智慧生活的复杂性,因此对智慧家庭的场景建模有助于更好地理解系统的复杂性,为智慧家庭操作系统的设计提供指导。在消费者家庭中主要涉及家庭成员和智能设备,在对家庭的场景模型抽象化过程中,智慧家庭操作系统主要提供家庭及设备的管理服务。家庭模型是对社会中家庭及各种关系的抽象,包括家庭成员、成员角色、智能设备、家庭成员权限等对象和关系,建立虚拟的数据和服务模型;通过对设备和家庭成员以及各种权限关系的抽象,构建智慧家庭的三维立体模型[13]。家庭模型是场景引擎服务的基础,通过建立智慧家庭的三维立体模型,结合智能设备的运行状态和家庭成员的实时信息,场景引擎学习用户的行为,感知用户的意图,帮助用户决策。

建立如图3所示的两层抽象模型,包括家庭模型和上层家庭模型服务,为上层业务逻辑应用和场景引擎提供家庭模型服务。

家庭模型层、设备模型是对家电设备的虚拟抽象,包括设备的功能属性和设备的扩展属性(空间、权限)等,为业务逻辑提供数据管理服务。人员模型是对家庭成员的抽象,除了人员本身的属性外,还需要定义个人与设备的从属关系。空间信息是对智能设备物理位置的抽象和人员活动场所信息的抽象。角色和权限模型为家庭场景提供安全保障,为个人隐私提供保护。

在智慧家庭模型服务层,基于建立的虚拟家庭模型提供设备管理服务和家庭管理服务。通过家庭模型为用户提供的功能包括家庭管理员机制、家庭成员管理、家庭成员关系维护等。家庭管理员可以创建家庭、修改家庭名称、查询家庭信息、创建家庭信息列表、删除家庭、修改家庭成员名称等。家庭成员可以加入家庭、查询家庭信息、修改名称、主动退出家庭等。设备管理服务为家庭成员提供家电设备的管理功能,包括设备绑定、设备解绑、获取设备别名、获取设备位置信息、获取设备详细信息、更新位置信息、更新设备别名、获取设备列表、查询设备是否在线等。

2.5 智慧家庭操作系统设备管理

设备管理服务是智慧家庭操作系统的核心组件,其主要功能是管理局域网内发现的智能设备,并根据智能设备的状态做出响应。设备管理服务需要对接入网络的设备自发现、自组网、自学习网络状态[14]。设备管理服务与家庭模型相结合为智慧家庭操作系统的场景引擎提供输入信息,从而为用户提供场景服务,如图4所示。

设备档案管理:设备档案管理是存储设备自身信息和网络内其他设备信息的小型数据库,其内容信息会随着设备自身状态的变化以及网络内其他设备状态的变化而更改。

设备加载:在启动时加载设备的初始信息,同时用户对设备的配置、功能信息进行更改后,对这些信息进行存储以便设备在下次启动或者设备断电重启后能应用用户新配置的数据。

绑定与解绑:设备自身有两种状态,绑定状态与非绑定状态。绑定状态是指设备已经同用户的账号相联系,只有与用户绑定的设备才能被用户控制,同时只有同用户绑定的设备才能参与场景规则的调度,同其他绑定的设备一起提供场景服务。非绑定状态是指该设备是孤立的,同任何用户账号都无关联关系。设备的绑定状态和非绑定状态不影响该设备的基本功能,例如冰箱不会因为处于非绑定状态而影响制冷。

访问控制:用以控制对该设备的访问,防范非法访问和越权访问。同时处于对设备的安全使用考虑,访问控制还可以保证设备在某些极端条件下屏蔽设备的某些功能甚至禁止设备启动,例如在发现用户试图启动微波炉但发现其内部没有食物时,微波炉会禁止启动并且发出警告信号。

变更管理:对设备自身状态变化和网络内其他设备的状态变化进行管理,更新设备档案管理数据库。

状态查询:提供设备状态信息给上层软件组件,例如场景引擎等。

统计查询:对设备使用情况进行统计。统计的信息包括设备自身状态变化的频率、变化的内容等。统计信息还包括用户如何使用该设备、用户的使用习惯、用户对该设备的使用偏好等。同时统计查询功能可以提供针对不同用户的统计查询支持。

组网管理:组网管理是设备管理模块的核心组件。该组件接收互联互通模块的上报信息,根据上报信息进行组网管理。

3 结 语

智慧家庭行业正处于飞速发展时期,各种智能化技术如物联网、大数据、人工智能等在智慧家庭中的应用,不仅推动着传统制造业的智能化转型升级,也为消费者带来了更加智慧和美好的生活场景。而智慧家庭操作系统将这些智能化技术进行集中整合后,可以形成一个完整的智能化解决方案,不仅能够为用户提供一致的智能化体验,也大大降低了智慧家庭研发企业的研发成本,同时还能够为第三方服务提供商和开发者提供统一的开发环境,从而支撑智慧家庭的生态构建。智慧家庭操作系统的研究开发还处于初始阶段,各企业和研究院所都在不断探索和实践。本文根据智慧家庭应用的特点,提出了智慧家庭操作系统的技术架构,并针对智慧家庭内核、互联互通、场景管理、设备管理等关键技术进行了详细分析,为智慧家庭操作系统的设计与研发提供参考。

参考文献

[1] PETER M. Gartner:Forecast Analysis Internet of Things—Endpoints,Worldwide. 2017 [EB/OL]. https://www.gartner.com/en/documents/3841268.

[2]虞保忠,郝继锋.物联网操作系统技术研究[J].航空计算技术,2017(3):102-104.

[3]中国信息通信研究院.物联网白皮书[EB/OL]. 2016. http://www.caict.ac.cn/kxyj/qwfb/bps/201804/t20180426_158398.htm.

[4] ARM mbed 操作系统开发者网站[EB/OL]. https://www.mbed.com/zh-cn/development/mbed-os/.

[5]谷歌Android Thing开发者网站[EB/OL]. https://developer.android.google.cn/things.

[6]华为LiteOS开发者网站[EB/OL].https://www.huawei.com/minisite/liteos/cn/.

[7]海尔优家开发者网站[EB/OL]. http://haieruplus.com/uhomeos.htm.

[8]邓昀,程小辉,王新政.微内核结构嵌入式实时操作系统的研究与设计[J].微电子学与计算机,2012,29(10):133-139.

[9] LIEDTKE J. Towards,real microkernels [J]. Communications of the ACM,1996,39(9):70-77.

[10]王红玲,吕强,褚亚铭.一个微内核操作系统的设计与实现[J].微电子学与计算机,2008,25(4):9-12.

[11]古辉,邱霆.基于微内核的地址空间研究[J].浙江工业大学学

报,2009,37(4):426-428.

[12]肖丁,王乾宇,蔡铭,等.智能家居场景联动中基于知识图谱的隐式冲突检测方法研究[J].计算机学报,2019,42(6):1190-1204.

[13]毛博,徐恪,金跃辉,等.DeepHome:一种基于深度学习的智能家居管控模型[J].计算机学报,2018,41(12):2689-2701.

[14]秦利红,秦会斌,诸坚彬,等.基于Android平台智能家居客户端的设计与实现[J].计算机应用与软件,2016,33(9):88-91.

作者简介:尹德帅,高级工程师,主要研究方向為软件系统架构与大数据

居文军,高级工程师,主要研究方向为计算机软件、物联网智能家居。

马成东,高级工程师,主要研究方向为物联网。

钱学文,硕士,主要研究方向为操作系统、物联网。