当前位置:首页 > 芯闻号 > 动态速递
[导读]HarmonyOS NEXT提出了硬件资源池的理念,把各个设备的硬件外设抽象为外设信息单元,外设信息在各个可信设备之间自动同步,打破各个设备硬件的孤立状态,让设备间硬件外设全局共享。

随着智能设备的发展和普及,越来越多的智能设备已经深入人们的生活,比如手机、PC、平板、各类穿戴设备等。目前单个设备的外设资源已经非常丰富,硬件能力也很强大。但像是手机、PC、平板等设备都有的相机、音频、屏幕、键盘鼠标等外设资源均属于各个设备自身,如果涉及跨设备协同操作就会比较繁琐。

比如,当我们日常在PC端进行文档编辑时,若需要从平板复制一段文字,或者使用手机拍摄照片然后分别将素材插入文档时,就需要我们分别在不同的设备上操作,然后将物料再行汇总发送至PC端口进行编辑,过程十分麻烦。如果应用开发者从应用层面实现设备间硬件能力共享,不但开发者工作量和难度非常大,各个应用之间也需要重复开发,能力难以复用和继承。

为此,HarmonyOS NEXT提出了硬件资源池的理念,把各个设备的硬件外设抽象为外设信息单元,外设信息在各个可信设备之间自动同步,打破各个设备硬件的孤立状态,让设备间硬件外设全局共享。这样就实现了外设信息的全局可见,再结合分布式硬件虚拟化技术,实现任意设备之间的硬件外设能力跨设备调用。

分布式硬件资源池作为系统能力下沉系统底层,北向开发者并不会感知资源池的存在;跨设备硬件和本地硬件使用同一套API,开发者调用跨设备硬件体验和本地硬件一致,如此更加开发者调用跨设备硬件,开发者也无需再关注硬件底层细节,可将更多时间专注于业务创新。

HarmonyOS NEXT采用硬件资源池的理念,结合多个设备优势硬件为用户提供更优体验的同时,还能支持消费者和开发者多种创新体验。

NO.1 消费者场景

从消费者层面来看,华为分布式硬件可支持智慧办公、智慧出行等多种创新场景。

例如在智慧办公场景中,使用一套PC键盘鼠标即可和周边平板等设备跨设备操作;在多屏协同时,手机屏幕可直接显示到平板,手机视频通话也可以使用平板的麦克风和摄像头,用户在平板上即可同时操作手机平板两台设备,无需在设备间来回切换。

在智慧出行场景中,当用户进入座舱,手机上的音乐和通话就可自动接续到车机,使用车机的音频外设播音和拾音功能,以及使用车机的摄像头进行视频通话;当手机导航接续到车机后,车机的GPS信号也可以共享给手机,结合手机GPS信号提供更高精度的定位数据。

结合以上两种场景可知,在智慧办公和智慧出行场景中,用户都可以通过分布式硬件资源池,为用户提供更好的服务体验。

NO.2 开发者场景

对于开发者来说,因为分布式硬件资源池将跨设备硬件调用的复杂度都封装在了系统底层,跨设备硬件可复用本地硬件的API,因此开发者学习和适配难度可以做到最低。

以分布式相机为例,相机接口可以同时查询到本地相机和跨设备相机外设,接着本地相机和跨设备相机就可通过ConnectionType.CAMERA_CONNECTION_REMOTE属性相互区分,开发者通过该属性过滤出分布式相机后,其他操作和本地相机完全一致,开发者无需为使用跨设备硬件学习一套独立的API,有效简化开发者开发难度。

很多开发者可能会问,硬件资源池是怎样的开发原理,我们可用相机和音频为例进行讲解。

假设设备A和设备B都有各自的相机和音频外设,驱动层有对应的本地相机和本地音频驱动。

分布式硬件从各自设备本地采集相机和音频驱动信息,存入分布式数据库。如果AB两个设备建立了可信关系并且通过软总线组网上线成功,分布式数据库会在AB两个设备之间自动同步各自的本地外设数据信息,这样设备A分布式硬件可以拿到设备B的相机和音频外设规格数据,同样设备B也可以拿到设备A的相机和音频外设规格数据。

以设备A的流程为例,分布式硬件收到对端设备B的硬件规格数据后,在驱动层注册对应的虚拟相机和虚拟音频驱动,虚拟驱动相当于对端设备物理硬件在本地的代理;虚拟驱动实现和本地硬件驱动相同的HDI接口。他们的区别在于,本地硬件驱动操作本地物理硬件,虚拟硬件驱动控制和数据传输通过软总线作用于对端分布式硬件。由于和本地硬件实现同样的HDI接口,设备B相机和音频对应的虚拟硬件可以被相机服务和音频服务发现并管理,包括外设的查询,相机的预览拍照录像,音频的播放,声音的录制等功能。

对称的,在设备B上会执行同样的过程,为设备A相机和音频外设注册对应虚拟驱动,从而实现设备B上对设备A硬件外设的查询和使用。

如此就实现了外设信息在设备间互通共享,信息感知自动注册虚拟硬件,注册后即可用,成为一个无中心对称的分布式硬件外设管理系统。同时,分布式硬件框架定义了外设热插拔,虚拟硬件保活等机制,保证业务可靠性。在运行时,各个硬件外设的业务运行于独立进程中,在进程层面保证不同硬件的虚拟化业务互相隔离,提高了业务可靠性。

基于上述分析,开发者可以看到分布式硬件与南向硬件的交互涉及“硬件信息采集”和“驱动注册”两类业务,与此对应,分布式硬件针对南向硬件接入定义了两类接口:一类是硬件规格采集接口,一类是驱动注册与准备接口。

在硬件规格采集接口中,直接定义了规格信息的采集以及外设热插拔事件监听等功能;由于我们是跨设备硬件调用,涉及双端设备的硬件,因此我们定义使用周边其他设备硬件外设的一端为Source端,共享本地硬件给其他设备调用的一端为Sink端,驱动注册与准备接口包括Source和Sink两端。

Source端包括初始化,释放以及虚拟驱动注册/去注册等功能;Sink端主要是初始化和释放接口,用于响应Source端的控制指令,比如播放声音或者采集视频画面。在设备组网上线后,分布式硬件框架调用各个硬件类型的南向接口实现,分别初始化各类硬件的Source和Sink端业务进程,为后续的硬件跨设备调用做好准备。

由于分布式硬件良好的南向接入解耦设计,如果有新硬件外设接入,只需要如下三步即可,以分布式相机配置为例,开发者可以基于下方实例进行参考:

Step 1定义硬件外设类型枚举值CAMERA

Step 2实现分布式硬件框架定义的南向接入接口,分别实现为三个so

实现分布式硬件框架定义的硬件规格采集接口IHardwareHandler,并编译获得接口实现libdistributed_camera_handler.z.so

实现Source侧接入接口IDistributedHardwareSource,并编译获得接口实现libdistributed_camera_source_sdk.z.so

实现Sink侧接入接口IDistributedHardwareSink,并编译获得接口实现libdistributed_camera_sink_sdk.z.so

Step 3在分布式硬件子部件配置文件中,添加新硬件外设相关配置,包括外设类型,南向接口实现的so名称,版本号,以及Source和Sink端服务分配的服务Id

注意:该配置由产品定义确定,不同的产品可能使用不同的分布式能力。以RK3568开发板为例,配置如下:

三个接口的so实现后,开发者可将编译打包到系统库路径下,同时配置到分布式硬件部件配置文件中,设备组网上线后,就能看到分布式相机的dcamera进程已经成功启动,表明相机外设已经纳入资源池管理,成为分布式相机。

从下述截图也可以看到分布式硬件其他相关进程,dhardware就是分布式硬件资源池管理框架进程,顾名思义,dcamera是分布式相机进程,dinput是分布式键鼠输入进程,dscreen是分布式屏幕进程。

当前在OpenHarmony开源社区,已经开源了硬件资源池管理框架,分布式相机,分布式音频,分布式屏幕,分布式输入的代码仓,开放了相机,音频,屏幕和键鼠输入外设的跨设备控制源码,关于硬件资源池的详细实现,可以参考我们的开源代码仓,更多参考代码,可关注HarmonyOS开发者官方微信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭