0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS分布式软总线能带来哪些不一样的体验

电子发烧友开源社区 来源:HarmonyOS开发者 作者:HarmonyOS开发者 2021-11-10 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

分布式软总线是HarmonyOS的关键根技术之一,也是众多开发者们非常关注的一项技术。通过分布式软总线,可以将多个不同类型的设备按场景连接在一起,形成超级终端,为消费者带来全场景新体验。本期,我们就来聊一聊分布式软总线,以及其关键技术——分布式软时钟

一、分布式软总线带来不一样体验

我们先来看看,分布式软总线能为用户使用超级终端带来哪些不一样的体验呢?

1. 无感发现与连接,让多个设备自动组成超级终端

通过分布式软总线,可以将同账号下的多个设备即时连接到一起。如上面的视频所示,同一个账号下的多个设备在超级终端的控制中心时刻都是实时在线的。这样,让用户使用由多个设备组成的超级终端,就像操作单个设备一样简单。

首次发现时,两个陌生设备发现与连接的时间降至0.5秒,极大改善了用户体验。首次连接成功后,下次两个设备就能无感发现和连接了。

为达成“无感的发现与连接”体验,我们采取了以下关键措施:

占空比调整:占空比动态调速,加速发现。

优先级控制:基于场景的优先级控制VO、VI、BE、BK。

异构混合组网:蓝牙和WiFi混合组网,可信设备自组网。

设备信息交换:组网后设备间信息交换,及时感知上下线及信息管理。

策略控制:基于场景感知的发现策略,包括亮灭屏、前后台、夜间、运动等多种场景。

2. 逼近空口速率的传输速度,让GB级文件秒传完成

通过华为分享一个5GB的文件,基本在20秒完成传送,传输速率逼近空口速率。

为达成“极致数据传输”体验,我们采取了以下关键措施:

快速唤醒与启动芯片,进入高性能模式。

精准流控算法,调整传输速率。

极简协议支持,传输功耗降低10%。

多径双路并发,提升文件传输的吞吐能力。

多级动态缓冲池技术,合理调度提升端到端运力。

二、分布式系统的新挑战

分布式软总线已经在发现与连接、传输方面做了很多,有了很大提升。但是随着分布式系统发展,接入的设备越来越多,分布式软总线面临以下两大新挑战:

1. 分布式系统里的设备越多,通信能力要求越高

五大智慧场景的多种设备接入分布式软总线,设备越多,对分布式软总线的通信能力要求越高。

分布式软总线分为任务总线和数据总线。短数据(比如控制类指令、短的消息包)通过任务总线传输,文件、媒体流等通过数据总线传输。对于媒体流,发送和接收的两个设备在处理每一帧数据的时候,要严格按照帧率的倒数做资源供给。

比如,帧率为90,则必须在每1/90(大约11.1)毫秒时,两端设备中的每个子系统都能恰好处理完,才能使得媒体不出现卡顿和花屏,同时又能保证两个设备的功耗是最低的,在用户体验与功耗之间取得最佳且最合理的平衡。

然而每个设备的硬件能力可能不同,比如一台高端手机和一台低端手机同时向一台大屏投屏,如何使得各设备都能恰好按序完成业务,其中就需要多设备间一致的时钟。

而每个设备有自己的时钟,其精度由其本机所带晶振决定,就会非常容易出现因时钟精度不一样而导致时钟不同步。时钟不一致就可能导致两端收发节奏不一致,容易产生丢包。这时,在多设备之间构建一套分布式软时钟就非常重要了,它能让由超级终端里的多个设备保持节奏一致。

2. 空口资源如何合理、且最大程度的使用

空口资源在使用中摆脱不了多介质频段冲突、随机接入竞争、同频竞争和邻频干扰等。除此之外,随着手机上安装的App和原子化服务越来越多,跨端协同也越来越多,两个设备之间有多对应用交互。同时,跨端协同的设备数量越来越多。这种情况下,空口资源如何被进一步复用?只靠频分,无法满足业务需求,还需引入时分复用来实现空口资源的最大程度使用。提到时分复用,那就不得不提分布式软时钟了。

三、什么是分布式软时钟?

从上面分布式系统的两个新挑战可知,多设备间的时钟同步,以及空口资源的时分复用都离不开分布式软时钟,它是解决问题的关键钥匙之一。那么,什么是分布式软时钟呢?

分布式软时钟:以异构网络拓扑与结构为基础,以时间同步方式为超级终端分布式系统构建一个统一的时钟源,协调各设备业务时钟,并保持高精度时钟进行分布式业务。

时钟同步时,分布式软时钟需要解决以下问题:

每个设备都有自己的独立时钟源,晶振质量决定时钟偏移不同。

瞬时单次测量要求双端在线,否则无法进行交换与对比。

持续同步将带来功耗与通信消耗,如何在精度与成本间平衡。

对于上述问题,分布式软时钟通过软件算法来解决。分布式软时钟的同步算法如下图所示:

f199bbbe-417f-11ec-b939-dac502259ad0.png

图3 分布式软时钟的同步算法

图3中,以P节点作为基准的时钟源,其他节点(比如A节点和B节点)与P节点之间,除了本地时间差异外,还存在时间漂移和时钟频率差异等。把这些因素考虑在内,就能得出各节点上数据包接收时间的公式,以及节点之间的数据包接收时间差值。这样,通过调整时间差,就能实现多节点之间的时钟同步。

四、分布式软时钟的用途

下面我们来看看分布式软时钟的用途:1. 使更多的设备可以自动组网,并进行动态拓朴管理。引入时钟后,时分复用让极少的频谱资源支持更多设备的连接成为可能。根据每个设备的特征、账号、承载的业务等信息,就可以自动组装成一个超级终端。比如,音箱与PAD、PC、手机等自动组成树形的拓扑结构,这些设备都可以连接音箱来发声。同时,可以将现有BLE的三个广播信道基于分布式软时钟的不同时间戳来连接不同设备,使未来一个家庭多达几百台智能家居设备连接在一起成为可能。

2. 在无线干扰环境中发挥抗干扰作用。

以WiFi 2.4G为例:凡是落在实线拱门内的虚线信道就会有无线干扰存在,只有跨拱门的信道之间才没有干扰,但这样就使得无干扰的信道数是3个,大大降低了同时进行业务的设备数量。

多设备自动组网后,分布式软总线可以从全视角看到哪些设备能够发生业务、业务特征、需要的带宽、时延、功耗等,也能从单设备看到设备与全局的关系。这样,当超级终端中的多对设备发生业务时,就可以通过全视角、单设备视角为其选择合适的频点、频宽的信道为其工作,再加上分层控制及QoS管理,就使干扰降到最低成为可能。

3. 多设备业务协同的功耗控制。

如果没有时钟,接入设备越多,设备之间需要来回协商资源,也就是所谓的退让机制,造成资源浪费,同时降低了用户体验。引入时钟之后,通过时分与频分复用,设备之间无序的通信变得更加有序。

图5 时分与频分复

除了以上给出的分布式软时钟常用的场景,随着业务复杂性越来越多,分布式软时钟还可以在更多场景中发挥更多的作用。比如多设备所带传感器信号的采集,分布式软时钟就可以使得不同传感器上时钟保持一致,以便于更好理解用户意图,为用户提供更加智能与贴心的服务,让用户的生活与工作更加便利与简单。

五、结束语

图6为分布式软时钟的演进路径。基于窗口协同,分布式软时钟精度可以达到1ms;基于分布式软时钟算法与传输层协同,分布式软时钟精度可以达到500us;基于分布式软时钟算法与传输层及物理层协同,分布式软时钟精度小于300us。同时,随着不同设备属性不同,所承载业务的网络拓扑不同,其所需要的时钟不同,将引入复杂网络时钟,为业务提供更加精准的时钟。

我们不断在算法和干扰抑制方面进行探索,逐步提升分布式软时钟的精度,让分布式体验越来越好!

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    218

    文章

    35800

    浏览量

    260728
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    69345
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35580

原文标题:HDC2021技术分论坛:分布式软时钟有多重要?

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    不一样的展会,不一样的精彩 2025湾芯展圆满收官

    10月17日,2025湾区半导体产业生态博览会(2025湾芯展)在深圳会展中心(福田)圆满收官。全球600多家展商、超30场论坛,在6万平方米的展区内,打造场“不一样的展会”,呈现出“不一样的精彩
    的头像 发表于 10-29 16:56 1036次阅读
    <b class='flag-5'>不一样</b>的展会,<b class='flag-5'>不一样</b>的精彩 2025湾芯展圆满收官

    不一样的展会,不一样的精彩:2025湾芯展顺利收官

    内,打造场"不一样的展会",呈现出"不一样的精彩"。本届展会人气火爆,展期三天累计接待总量达到11.23万人次。参展企业集中发布年度新品数约2500件,新品发布与商业合作收获颇丰。   不一
    的头像 发表于 10-19 20:27 379次阅读
    <b class='flag-5'>不一样</b>的展会,<b class='flag-5'>不一样</b>的精彩:2025湾芯展顺利收官

    请问cyw920719b2q40evb如何设置每个蓝牙芯片的mac地址不一样

    请问下 cyw920719b2q40evb 如何设置每个蓝牙芯片的mac地址不一样呢? 谢谢
    发表于 07-07 06:34

    cyusb3014 slave fifo模式In和Out缓存大小不一样时,显示错误怎么解决?

    cyusb3014 slave fifo 模式 In 和 Out 缓存大小设置不一样时(比如:U2P DMA缓存16K,P2U DMA缓存1K),可以测出来实际就是设置值,但在USB Control Center 显示的USB信息都显示 16K, 这个 需要怎么修改才能让USB信息是正确的呢?
    发表于 05-13 06:55

    抗干扰CAN总线通信技术在分布式电力系统中的应用

    摘要 :随着分布式电力系统的广泛应用,其通信系统的可靠性与稳定性受到了前所未有的挑战。CAN总线通信技术以其卓越的抗干扰性能和可靠性,在众多通信技术中脱颖而出,成为解决分布式电力系统通信问题的关键
    的头像 发表于 04-14 18:24 707次阅读

    ADS1100每次复位ADS采集到数据都不一样,是时序问题吗?

    为什么我每次复位ADS采集到数据都不一样啊 是时序问题吗?
    发表于 02-12 07:06

    用单片机的SPI控制ADS1191,发送命令写寄存器后读取相应寄存器的值就不一样,而且每次读出来的都不一样,为什么?

    现用单片机的SPI控制ADS1191,使用内置晶振时钟,发送命令写寄存器后,再读取相应寄存器的值就不一样,而且每次读出来的都不一样,设置让CLK脚在起振后输出时钟信号,示波器也测不到相应的时钟信号,请给予提示,已经停在这2天了。。。。。。
    发表于 01-23 08:38

    ldc1000的spi通信,为什么在这种情况下都写不进数据,读数据也每次不一样

    ldc上电后,即数字和模拟端都供电后,只连接spi的四根线到mcu,而其他脚都悬空,这种情况下能否读写ldc1000的寄存器。 为什么我在这种情况下都写不进数据,读数据也每次不一样,哪怕是读只读的寄存器(device id寄存器)每次读出的数据都不一样
    发表于 01-13 08:21

    对ADS1258进行配置,对某个寄存器写指令,为什么写进去的和读回来的不一样

    现在对ADS1258进行配置,对某个寄存器写指令,然后再次读回来这个寄存器的值,为什么写进去的和读回来的不一样
    发表于 01-13 06:13

    多路采集的空测试值,为什么不装传感器的时候每个原点值不一样

    个8路采集项目,压力采集都没有问题,现在问题是不装传感器的时候每个原点值不一样,比如说有4路是10000,有4路是80000,这个是什么原因造成的,有什么方法可以改善成一样的吗?
    发表于 12-27 10:45

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据文件资产迁移

    Error: \', JSON.stringify(err) ?? \'\'); }); } } 在对端UIAbility的onCreate()/onNewWant()中,通过加入与源端致的分布式
    发表于 12-24 10:11

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据

    ) ?? \'\'); }); } } 在对端UIAbility的onCreate()/onNewWant()中,通过加入与源端致的分布式数据对象组网进行数据恢复。 创建空的分布式数据对象,用于接收
    发表于 12-24 09:40

    ADS1247模拟SPI读取寄存器数据,读取的数据每次都不一样,为什么?

    ADS1247模拟SPI 读取寄存器数据,读取的数据每次都不一样。比对过时序,程序没有问题。示波器抓取的波形显示命令已经发出,试了好几块板子都是这样。 PS:START 引脚已经拉高
    发表于 12-13 08:44

    DAC5682Z输出不同频率幅度不一样,这是正常的吗?

    现遇到DAC5682Z输出不同频率幅度不一样问题,不知道是否正常。 下面是提供的4MHz和250MHz的图: 麻烦帮忙确认下输出幅度和频率之间的关系,谢谢
    发表于 12-10 06:52

    在ADS114s08中,写入寄存器的值与读出来的值不一样是怎么回事?

    在ADS114s08中,写入寄存器的值与读出来的值不一样,怎么回事?
    发表于 12-09 07:45