• [活动公告] 【有奖互动】小熊派云上奇遇记,参与IoT/嵌入式开发话题互动,赢小熊派星闪开发板!
    一块掌心大小的开发板可以做什么?给物联网开发爱好者,他们能将普通门锁改造成为智能指纹门锁,让家里的花花草草自动浇水给专业工程师,他们能开发出脑卒中患者步态评估等辅助医疗诊断设备,让问诊更加严谨高效若是给资深极客发明家,他们能爆改出威力无穷的机械臂,变身为野生钢铁侠体验云和物联网交融的奇妙开发之旅,你曾有过哪些嵌入式开发经历?在本帖分享可赢取小熊派最新产品——星闪开发板,快来讲讲吧!【互动方式】即日起——4月28日23:59,在本帖分享300字以上自己的嵌入式开发故事(如果附上相关视频、文章,中奖概率翻倍哦!),评选2名优质内容创作者,送小熊派星闪开发板一个~嵌入式开发故事主题满足下方任一内容即可:使用华为云产品进行物联网开发参加华为云赛事活动进行物联网开发通过小熊派开发板做过的有趣的项目开发<<更多精彩>>参与华为云开发者联盟账号今日头条、微博转发小熊派云上奇遇记内容,还有机会获得华为云云宝盲盒哦!想了解更多华为云IoT物联网开发者故事,请查看《小熊派的云上奇遇记》​【互动礼品】小熊派星闪开发板小熊派星闪(NearLink)开发板,使用了中国原生的新一代无线短距通信技术。与传统短距传输技术方案相比,星闪在功耗、速度、覆盖范围和连接性能全面领先,可以在智能终端、智能家居、智能汽车、智能制造等各类细分场景下实现更极致的用户体验。【注意事项】1、所有参与活动的内容,如发现为抄袭内容或水文,则取消获奖资格。2、为保证您顺利领取活动奖品,请您在活动公示奖项后2个工作日内私信提前填写奖品收货信息,如您没有填写,视为自动放弃奖励。3、活动奖项公示时间截止2024年5月10日,如未反馈邮寄信息视为弃奖。本次活动奖品将于奖项公示后30个工作日内统一发出,请您耐心等待。4、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。5、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。6、如您在体验中发现任何体验不友好、产品Bug、文档页面错漏等情况,欢迎通过云声平台反馈给我们,还有机会领取云声专属礼品!7、其他事宜请参考【华为云社区常规活动规则】。
  • [问题求助] iot studio软件按照步骤安装,编译显示Arm-none-eabi-gcc:致命错误:没有输入文件编译终止。
    iot studio软件按照步骤安装,编译显示Arm-none-eabi-gcc:致命错误:没有输入文件编译终止。
  • [公告] 【获奖公示】3.27号直播 / DTSE Tech Talk丨NO.54:揭秘高可靠高性能的亿级物联网平台发展历程
    中奖结果公示感谢各位小伙伴参与本次活动,本次活动获奖名单如下所示。再次感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~账号名奖项名称 奖品名称hw081993541优质提问华为云定制双肩包qingqingjiayuan6官网抽奖华为云定制T恤/官网抽奖华为云定制T恤/视频号抽奖华为云定制雨伞/视频号抽奖华为云定制POLO衫/视频号抽奖华为云定制雨伞
  • [热门活动] 2024 年全国大学生物联网设计竞赛(华为杯)命题华为赛道数通赛题--交流贴
    【赛题任务】边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台,就近提供边缘智能服务,满足行业数字化在敏捷联接、实时业务、数据优化、应用智能、安全与隐私保护等方面的关键需求。它可以作为连接物理和数字世界的桥梁,使能智能资产、智能网关、智能系统和智能服务。华为AR502H系列边缘计算网关具备强大的边缘计算能力,提供丰富的物联网接口,可扩展IP化PLC通信,积木式按需组合,广泛应用于各种物联网场景,比如智慧用能,智慧路灯,智能配电房等领域。请各个参赛团队基于华为边缘计算网关(AR502H)自行设计开发一款物联网行业应用。完成高性能,高可靠性,安全的系统实现。【案例参考】现有的体征监测仪器大多是接触式的。它们需要附着在患者身上才能进行测量和监测。 这对于需要长时间连续监测的患者来说不是很方便。非接触式生命体征监测设备会变得更加重要,因为它将有助于最大程度地减少通过接触点和接触者造成的病毒传播,更好地确保医疗保健人员的安全。随着雷达技术的发展,已能实现无接触式的人体行为、姿态、体征的感知。基于毫米波雷达的生命体征监测系统,无需佩戴任何设备,无隐私侵犯,实现无感远程监护、实时告警、连续监测等能力。【参赛支持】边缘计算网关二次开发指南(AR502H系列)即EC-IoT开发者云社区:cid:link_0技术人员在线支持     参赛并选择华为数通的参赛队伍请加入华为数通的线上答疑QQ群,边缘计算网关的专家将在QQ群及时做技术解答,并不定期进行线上培训。群号:794109174(3)硬件支持:参赛团队可与工作人员联系购买(有优惠)。序号型号厂家1毫米波雷达浙江智尔2边缘计算网关(AR502H)华为(4)工作人员:马老师 18600655781、常老师 13126863800
  • [专题汇总] IOT三月份问题总结
    【1】数据中心基础设备能与IoT平台对接吗?cid:link_6【2】OceanConnetcid:link_7【3】关于LiteOS和小熊派的烧录问题cid:link_8【4】小熊派支持标准库开发吗cid:link_9【5】在MQTT协议设备OTA升级实践中设备侧如何通过Https请求下载升级包,我用PC MQTTfx可以下载,但是用MCU一直不行cid:link_0【6】关于LiteOS的工程移植到Keil的问题cid:link_10【7】关于mqtt协议传输数据的问题cid:link_11【8】纯小白,我在华为IOT平台进行了硬件设备上传到云平台,用arkts设计一个app获取云平台的数据和控制,请问有示例案例demo吗cid:link_1【9】ubuntu 22 pptp server 无法连接cid:link_2【10】传感器走modbus的可以接入吗cid:link_12【11】在大会中听说到ACIOT物联网平台想试用一下但找不到地址和文档能否提供一下?cid:link_13【12】各位大佬, 求bearpi-hm_nano开发板和E53扩展版的各个元器件的硬件资料cid:link_3【13】新手,学习Iot物联网,需要会开发,需要买小熊派开发套件吗?cid:link_4【14】计算机网络的都有哪些性能指标,在日常开发中都起到什么作用?cid:link_14【15】POSTMAN无法获得设备影子数据cid:link_15【16】如何解决物联网中的通信安全和隐私问题?cid:link_16【17】如何实现华为云IOT平台数据的高效存储和管理?cid:link_17【18】如何实现传感器的低功耗设计?cid:link_18【19】mqtt协议对比其他物联网协议的优点cid:link_19【20】IOT设备在进行边缘计算时,有什么比较好的最佳实践cid:link_5【21】IOT中如何确保设备及时上下线cid:link_20
  • [问题求助] 如何实现传感器的低功耗设计?
    如何实现传感器的低功耗设计?
  • [问题求助] 如何实现华为云IOT平台数据的高效存储和管理?
    如何实现华为云IOT平台数据的高效存储和管理?
  • [问题求助] 如何解决物联网中的通信安全和隐私问题?
    如何解决物联网中的通信安全和隐私问题?
  • [demo资源] 三月IOT问题总结合集
    三月问题总结如下:【1】 POSTMAN无法获得设备影子数据https://bbs.huaweicloud.com/forum/thread-0294146978233739011-1-1.html【2】计算机网络的都有哪些性能指标,在日常开发中都起到什么作用?https://bbs.huaweicloud.com/forum/thread-0276146885883056004-1-1.html【3】新手,学习Iot物联网,需要会开发,需要买小熊派开发套件吗?https://bbs.huaweicloud.com/forum/thread-02127146280494884019-1-1.html【4】在大会中听说到ACIOT物联网平台想试用一下但找不到地址和文档能否提供一下?https://bbs.huaweicloud.com/forum/thread-0282146195687048008-1-1.html【5】 ubuntu 22 pptp server 无法连接https://bbs.huaweicloud.com/forum/thread-02109145927759458004-1-1.html【6】 纯小白,我在华为IOT平台进行了硬件设备上传到云平台,用arkts设计一个app获取云平台的数据和控制,请问有示例案例demo吗https://bbs.huaweicloud.com/forum/thread-02127145804288188003-1-1.html【7】 关于mqtt协议传输数据的问题https://bbs.huaweicloud.com/forum/thread-0259145771651556015-1-1.html【8】  OceanConnethttps://bbs.huaweicloud.com/forum/thread-0270145369714726006-1-1.html
  • [技术干货] 还不知道鸿蒙OS底层实现?老司机带你走进微内核【转】
    众所周知,HarmonyOS具备分布式软总线、分布式数据管理和分布式安全三大核心能力。多种设备之间能够实现硬件互助、资源共享,依赖的关键技术。同时还实现了包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等功能。在被这些眼花缭乱的功能的环绕之下,我们往往忽视了鸿蒙的内核技术,HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。由于HarmonyOS需要对不同的硬件资源进行适配,因此需要内核具备灵活性、可扩展性,可靠性和可移植性,同时还需要对分布式系统的支持,因此微内核的应用就成了HarmonyOS的首选。今天就带大家了解微内核,以及它在HarmonyOS中的应用。1.鸿蒙OS技术架构 和其他操作系统类似,鸿蒙OS整体遵从分层设计,如图1所示,从下往上依次为内核层、系统服务层、框架层和应用层。系统功能按照“系统>子系统>功能/模块”逐级展开。在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。图1 鸿蒙OS技术架构如图1所示,我们可以看到鸿蒙OS的整体架构,而本文我们需要聚焦内核层的架构体系。内核层由内核子系统和驱动子系统组成。内核子系统:鸿蒙OS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(Kernel AbstractLayer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。驱动子系统:硬件驱动框架(HDF)是鸿蒙OS硬件生态开放的基础,提供统一的外设访问能力、驱动开发及管理框架。而在内核子系统中包含了LiteOS的内核就是今天的主角,也就是我们要提到的微内核,为什么鸿蒙OS在具备Linux Kernel的情况下还要引入LiteOS的微内核技术作为补充呢?接下来就让我们一起走进微内核的世界。2.宏内核与微内核 在描述微内核之前,要了解什么是内核。大家都知道计算机是由诸多硬件组成的,包括:CPU、内存、磁盘、网卡、显示器、键盘、鼠标等等。为了能够管理和组织这些硬件资源,我们创造操作系统,而内核就是操作系统中的核心部分。就好像我们常用的Windows操作系统,Unix以及Linux操作系统,它们都存在内核。而目前市面上、绝大多数操作系统都是宏内核,其典型代表就是Linux。宏内核中的“宏”字表现为,将内核服务作为整体,所有服务都“伸手即得”。也就是将控制计算机的各个模块,都聚合在内核中方便管理。如下图2所示,CPU调度、文件系统、内存管理、应用管理调度、中断处理、设备驱动都放在内核中。如果应用程序需要申请内存,内核直接使用“内存管理”给应用分配内存,使用“应用管理进程调度”给应用分配进程,没有额外的消耗。图2 宏内核宏内核的这种处事方式就好像一个公司将所有的职能部门都拉到一个办公室办公,这个办公室有好多张桌子每个桌子上面都有各个职能部门的办事员,操作系统要处理什么事情都通过宏内核这个大办公室来解决,因此解决问题是很高效的。但是问题也很明显,随着系统的不断发展,内核中会加入各种不同的模块,就好像大办公室需要更多的桌子,从而坐下更多的人。内核中模块不断增大,就需要更高的硬件资源来支持,同时模块的增多也带来了系统复杂性的增加,提高了系统崩溃的风险,例如内核中有一个模块挂了会导致整个内核的崩溃。为了解决宏内核所面临的问题,就推出了微内核的概念, 微内核是内核的一种精简形式。它将与宏内核集成在一起的系统服务分离出去,让这些服务模块变成按需加载,也就是把这些服务变成可选项而非必选项,如果需要这些服务就作为内核的一种扩展。如果需要对系统内核进行升级,只要用新模块替换旧模块,或者在原有服务的基础扩展新的服务。这样就不需要改变整个操作系统的内核。图3 宏内核与微内核的比较如图3所示,微内核与宏内核的区别在蓝色的部分,微内核将宏内核蓝色部分的系统服务进行拆解,将一些重要的服务依旧留在内核中,例如:进程间通信、虚拟内存、进程调度等。而将其他服务放到了内核之外,这些服务直接在用户态运行,内核态的一些核心服务会和这些被剥离的服务进行交互,保证进程间的通信。同时,这些用户态的服务会直接服务于应用程序。如果将图3进行化简就得到了图4, 如图4所示,在宏内核的时代所有的服务都在内核中,内核中的服务为应用提供服务,而到了微内核时代,将一些服务从内核移到了外边,这些被移出去的服务依旧与内核中的核心服务保持联系,同时为应用服务。微内核结构使用一个水平分层代替传统的纵向分层,所有微内核之外的操作系统构件都被当作服务进程来实现,它们可以通过微内核传递消息来实现相互之间的交互。因此,微内核还可以验证消息并授权访问硬件,而且微内核还执行保护功能,阻止非法的信息等。例如,应用程序如果要打开一个文件,则它发送消息给文件系统服务,如果他想创建一个进程或线程,则它发送消息给进程服务进程。每个服务进程之间可以相互通信,并可以调用微内核中的功能。图4 宏内核与微内核简图按照图4的操作,微内核包含的服务数会减少,实现服务的代码量也会有明显的下降。微内核尽可能简化内核,将更多的用户服务程序放置在内核之外完成。内核仅仅放置最核心以及经常性需要使用到的程序代码。如果还是用办公室来打比方,微内核将大办公室缩小了,将其中一些办公桌移到了办公室外边,在大办公室之外设置了多个小办公室安置这些办公桌。在大办公室内只安放重要的核心的服务,用来管理和协调小办公室的工作。鸿蒙OS在发布会上强调了多个特性用来强调鸿蒙OS作为一个操作系统而言本身的突破和优势在哪里,实际上在使用微内核以后鸿蒙OS具备下面四点能力的提升:采用分布式架构,可以实现跨终端的能力互助共享。低时延和高性能IPC带来高流畅的使用体验。基于微内核技术的可信执行环境,通过形式化方法提升了内核安全,全面提升全场景终端设备的安全能力。鸿蒙OS可支撑开发者实现一次开发、多端部署,最终实现跨终端生态共享。3.微内核的优点 上面我们介绍了什么是微内核,以及宏内核与微内核的区别,下面来看看微内核具备哪些优点。提供一致的接口:进程不用区分内核服务还是用户服务,并且都是通过消息传递;可扩展性:当需要增加新的服务时,只需要增加新的服务进程,而不需要修改内核;灵活性:可以定制服务进程,例如分布式系统需要增加安全性相关的服务进程;可移植性:大部分处理器专用代码在微内核中,如果需要移植到另一个处理器上时,只需要修改少量的代码;可靠性:足够小的微内核能够进行充分的测试,从而提供更稳定的代码。只提供少量的API和交互方式,减少组件之间的相互影响;分布式系统的支持:如果一个客户往一个服务进程发送消息时,该消息包含请求服务的标识符。在分布式系统被配置为所有进程和服务都具有唯一的标识符,微内核会为这类标识符提供单独的系统映像,让进程消息发送透明化;适用于面向对象设计:微内核设计和操作系统模块化的开发都可以借助面向对象的原理。例如,一种方式是构造组件,组件间通过组建接口交互,它们可以通过搭积木的方式构件软件。4.LiteOS 的内核模块 前面提到了鸿蒙OS使用了微内核提升操作系统的灵活性、可扩展性,可靠性和可移植性,为分布式系统的设计提供支撑。接下来就来看看LiteOS 的内核是如何实现微内核的。在文章的第一个部分就提到了在鸿蒙OS的内核子系统中就实现了LiteOS,LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。它支持任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,更好地支持低功耗场景,支持tickless机制,支持定时器对齐。这里就展开说一下LiteOS四大核心模块。任务管理任务是竞争系统资源的最小运行单元。LiteOS支持多任务运行,一个任务就表示一个线程,任务之间可以进行切换和通信。LiteOS的任务管理模块提供任务创建、删除、延时、挂起和恢复、更改任务优先级、锁定任务调度和解锁任务调度、根据任务控制块查询任务ID、根据ID查询任务控制块信息等功能。LiteOS使用抢占式调度内核,高优先级的任务可以打断低优先级任务,同优先级任务会进行时间片轮转调度。同时,每一个任务都含有一个任务控制块(TCB),它包含了任务的所有状态和运行信息。T具体包括:上下文栈指针(stack pointer)、任务状态(包括就绪、运行、阻塞、退出4种状态)、任务栈大小(任务栈里保存着局部变量、寄存器、函数参数、函数返回地址等)、任务优先级、任务ID、任务名等信息。在任务服务初始化时,会先申请TCB需要的内存空间。任务初始化完成,则系统对TCB内容进行初始化。用户创建任务时,系统会将任务栈进行初始化,预置上下文。此外,系统还会将“任务入口函数”地址放在相应位置。内存管理LiteOS的内存管理模块管理系统的内存资源,主要包括内存的初始化、分配及释放。其目的是管理用户和OS对内存的使用,使内存的利用率和使用效率达到最优,同时最大限度地解决系统的内存碎片问题。LiteOS的内存管理分为动态内存管理和静态内存管理。动态内存管理在动态内存池中分配用户指定大小的内存块。优点:按需分配。缺点:可能出现碎片。静态内存管理在静态内存池中分配用户固定(预设配置)大小的内存块。优点:分配和释放效率高,无碎片。缺点:不能按需申请。中断管理在LiteOS中,用户可以通过中断申请,注册中断处理程序,并且指定CPU响应中断请求时所执行的具体操作。避免CPU把大量时间耗费在等待、查询外设状态的操作上,因此将大大提高系统实时性以及执行效率。按照硬件可以对中断划分为三类:设备、中断控制器、CPU本身。设备:发起中断的源,当设备需要请求CPU时,产生一个中断信号,该信号连接至中断控制器。中断控制器:中断控制器是CPU众多外设中的一个,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU。可以通过对中断控制器编程实现对中断源的优先级、触发方式、打开和关闭源等设置操作。CPU:CPU会响应中断源的请求,中断当前正在执行的任务,转而执行中断处理程序。信号量管理信号量(Semaphore)是一种实现任务间通信的机制,可以用于任务之间同步或临界资源的互斥访问。如图5所示,信号量可以被任务线程获取,不同的信号量通过信号量索引号来唯一确定,每个信号量都有一个计数值和任务队列。通常信号量的计数值表示有效的资源数,即剩下的可被占用的互斥资源数。当任务申请(Pend)信号量时,如果申请成功,则信号量的计数值递减,如申请失败,则挂起在该信号量的等待任务队列上,一旦有任务释放该信号量,则等待任务队列中的任务被唤醒开始执行。图 5 信号量运作示意图上面提到了信号量的使用方式,由于它是对资源使用量的计数器,因此以下两个场景经常会出现信号量的身影。任务互斥:当多个任务同时对一个临界资源进行访问时,会对这个资源维护一个信号量,初始值为1,当有任务线程访问时就将这个值减1,此时如果其他任务线程也访问该资源会先检查信号量,如果小于等于0就等待。当之前的任务线程访问完毕,释放资源时会将信号量加1,此时其他任务线程就可以访问该资源了。资源计数:用于生产者与消费者的场景可以通过信号量的递增或者递减来表示资源的状态。5.总结 本文从鸿蒙OS的架构特性入手,发现在内核子系统中使用了LiteOS的微内核架构,从而引出了微内核在鸿蒙架构中扮演的特殊角色。为了解释什么是微内核,先从操作系统内核说起,接着介绍了常见的宏内核将所有服务都集于一身,微内核为了提升灵活性、可扩展性,可靠性和可移植性,将一些非核心的服务从内核中剥离,只留一些核心服务在内核中减少了内核的容量,降低了出错的风险。最后,又回到开始时介绍的LiteOS ,并介绍了它的四大核心模块,包括:任务管理、内存管理、中断管理以及信号管理。作者介绍崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。曾任惠普技术专家。乐于分享,撰写了很多热门技术文章,阅读量超过60万。《分布式架构原理与实践》作者。转自 https://www.52hwl.com/106058.html
  • [技术干货] 鸿蒙的微内核到底是什么【转】
    我们常说,看一个系统是不是自研,就看它的内核,常见的内核分为:宏内核和微内核,当然还有两者结合体,他们到底有什么区别?1.白话宏内核和微内核有一天,你结婚了,你和你的爱人住一套房子,你的父母和你爱人的父母,希望和你们住一起,能够照应的到,那么就出现一个问题,你们是买三套房子住,还是买一间大房子?买一间房子的好处是,大家能够互相照应的很及时,一旦有人不舒服或着需要帮助,另外的人能够非常方便地在20s内到达,只要打开自己的房门,进入对方的房间就可以,一家人其乐融融。但是也会带来坏处,比如有时候会一起抢占资源(卫生间,电视机),也没什么太多的隐私空间。而且如果你家夏天如果停电了,那门整个家庭都得热死。买三间房子呢?好处是,大家不会再抢占资源,你和你的爱人可以独享卫生间,有很好的隐私空间,如果不想做饭了,就可以去父母或着爱人的父母家蹭饭,换换不同的口味,此外如果夏天你家停电或着电器坏了,可以暂时去其他家继续生活;当然这样也会带来坏处,那就是如果有人需要帮助,你得先出房门,再出家门,然后等电梯,进入他家门(假设你有钥匙),然后进入房门,才能达到,这个过程时间不可控,可能电梯要等很久。宏内核和微内核的形象化简单比喻翻译成内核的模样就是这样:宏内核和微内核的简单比较当然,操作系统内核比笔者图示的复杂很多很多,这里只是简单示意一下,优点和缺点会更加直观,混合内核就是两者混合在一起,在一些频繁交互的接口直接放入到内核中,以达到快速通讯的目的。2.鸿蒙设备分级鸿蒙设备分级1、Linux 面向手机 (L5级别设备)2、LiteOS-a 面向有MMU的设备 (>=L1级别且<L5)3、LiteOS-m 面向无MMU的嵌入式设备 (L0级别)可以看到,目前并非所有的鸿蒙版本都是使用的微内核,对于L5以下的设备,由于设备功能比较单一, 不需要那么多功能,所以资源的分配和争夺并不激烈,是可以通过微内核达到自由裁剪的目的,一次开发多段部署。3.举个冰箱的例子我们经常用的冰箱,如果是普通冰箱,大概具备下图左边的功能,如果它运行了鸿蒙系统(比如海尔就有鸿蒙版本的冰箱),其实它可以把文件管理,网络功能,多媒体功能全部裁剪掉,成为L0级别的设备,各个模块之间,通过微内核通讯,就非常简单,发送简单的指令就行,也不用那么高的实时性;而右图的智能冰箱,就需要跟服务器通讯,上传冰箱信息,也可以通过蓝牙直接连上手机,更高端点的,可能还有摄像头,监控实物的新鲜程度然后再门外的屏幕上显示,此时智能冰箱,就需要更高的处理器能力,并且加载功能的功能,成为L3-L4级别的设备,但是比起手机的功能还是要简单很多,当成为L3-L4级别的设备后,就需要加载网络,蓝牙,多媒体等功能,此时资源的调度就会复杂一些。普通冰箱和智能冰箱PS:这里补充一个知识点,Linux内核也是可以裁剪的,只是它的裁剪成本很高,你需要重新配置内核选项,然后去除不要的模块,然后重新编译成镜像,替换,再开机,可能出现开机不了的情况,然后得继续排查,而微内核的情况下,只要不加载该模块就行了,就像乐高积木上,把一些不要的形状拔下来,需要的时候再插上去一样,简单高效率。总结:微内核和宏内核各有各的好处,而现在鸿蒙系统,除了L5级别,由于设备的高要求,无法达到所需的高实时性,还用着Linux的内核,其他设备已经全部使用鸿蒙内核(LiteOS-m和LiteOS-A,根据设备的等级,选择不同的内核),希望在华为的努力下,L5也可以接入微内核,让我们一起期待!作者:水绕云端链接:https://www.jianshu.com/p/864924879d49来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • [技术干货] 鸿蒙开发用什么语言【转】
    1.两种开发方向我们常说鸿蒙开发,但是其实鸿蒙开发分为两个方向:一个是系统级别的开发,比如驱动,内核和框架层的开发,这种开发以C/C++为主还有一个是应用级别的开发,在API7以及以下,还是支持Java的,从API8开始,只能用Arkts,js或着C++开发了,我们这篇文章重点讲下应用级别的开发。2.鸿蒙应用开发和安卓应用和IOS应用开发一样,鸿蒙系统也需要运行对应的生态应用,才能蓬勃发展,通过官方的DevEco的SDK Manager可以看到从API8开始,Java语言已经从鸿蒙开发剔除了,而官方推荐的是ArkTs,那门ArkTs到底什么,它和js和ts有什么关系呢?简单来说,是个arkTs 是TS的超集,TS是JS的超集,每个都基于前者,并且在这个基础上做了一些自己的拓展。PS:多说一句,ArkTs原来叫ETS,所以两者是一个东西,可以看到鸿蒙的工程文件,都是以ts和ets结尾的,而在开源鸿蒙代码里面,还是有很多js_xxx.cpp文件,所以最后还是通过编译器编译成js,通过类似于jni(他们叫napi)的东西,调用到C++层面。3.为什么舍弃Java其实这个问题,我也思考了很久,但是官方没有一个说法,大胆猜测下有两个原因:1)就像Android抛弃Java一样,怕倒时候被人告,陷入官司风波中(感兴趣的朋友可以搜索,甲骨文诉讼谷歌Java侵权之案,这里不赘述)2)Java是一门解释性语言,必须跑JVM,就像负重跑一样,必然降低系统的流畅性,这也是Android卡的原因之一,系统完全抛弃JVM,从结构上就天然流畅多了当然可能还有一种可能,告诉大家我都不支持Java开发了,你们不能再说我安卓套壳了吧!4.为什么选择etsarkUI用的是声明式的写法(现在不管是Android新出的compose还是Flutter都是这种写法),目前的js和ts不支持,还是只能用以前那种过程式的写法,至于C++纯写,C++是一门门槛比较高的语言,不适合一般开发者。arkTS是基于TS的,TS是微软一门完全开源的语言,没有版权问题,也有一定的前端开发者。基于上述两个原因,官方推荐用arkTS比较合适。总结:鸿蒙经过几年的迭代,抛弃了Java,基于TS出了一个官方推荐的ArkTS语言,甩开了JVM,提升效率,同时支持自己研发的一些现代化特性,没有版权的问题,现在唯一的问题就是各大公司愿不愿意为它去适配生态了,还好的是,目前各大互联网公司已经开始适配了。作者:水绕云端链接:https://www.jianshu.com/p/30fb9f7d8183来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • [技术干货] 不再兼容,鸿蒙5.0要彻底脱离安卓,背后深层原因【转】
    2月底在华为Pocket发布会上,余承东透露:华为鸿蒙5.0(鸿蒙NXET)将于今年秋天正式到来。目前有博主曝光Mate60已经更新了鸿蒙NXET开发预览版,表示鸿蒙NXET将贯穿鸿蒙全场景底层优化,系统更流畅,是一款更安全,更智能化的操作系统,这意味着纯血鸿蒙或即将更快到来。结合目前华为增长的华为新机的发布节点,鸿蒙5.0有可能在华为mate70首发。鸿蒙5.0正式宣告与安卓划清界限,而在PC领域,也毫不留情,将不再与Windows兼容。问题来了,兼容安卓有很多好处,为什么鸿蒙一定要要脱离安卓呢?兼容安卓,符合短期利益,不符合长期战略,微信支持是关键一环鸿蒙5.0与此前版本的关键变化或在于内核变了。在过去,鸿蒙的内核一直是基于linux,过去在初期为了推广才兼容安卓的app,而鸿蒙5.0或将脱离linux,使用自研的底层源代码,这意味着不再提供安卓 APP接口,以后安卓系统下的所有APP,就要重新开发适用于鸿蒙操作系统的APP。事实上,兼容安卓的好处很多,至少在华为手机上,用户可以下载任何安卓有的APP,不存在生态切换的难题,对卖手机是有帮助的。此外,安卓的存量应用阵营和开发者生态已经非常完善了。对于应用开发者,特别是大厂应用开发者来说,APP庞大的历史包袱和代码要移植,纯鸿蒙的开发特性要适配,还要与原厂做足够多的沟通,这样的工作量其实并不小,很多中小开发者是否愿意开发鸿蒙也是个疑问。但之所以不再兼容安卓,一个重要原因在于,兼容安卓,虽然很多APP可以顺滑在鸿蒙系统上实现更新,但这两个系统完全不可同日而语,如果一直兼容,意味着鸿蒙系统的一些功能,也是基于Android来实现,比如AR功能,也是依赖安卓系统更新。只要兼容安卓,其实本质还是安卓,因为兼容安卓本身就是用了安卓的技术,所有努力与上千亿的营销投入其实都是为安卓生态添砖加瓦。更关键的是,长此以往当断不断,也无法很好的发挥鸿蒙系统本身的特性与优势,鸿蒙也无法走向真正的独立自主。因此,鸿蒙5.0与过去的鸿蒙彻底告别,不再兼容安卓,原因是兼容安卓符合短期利益,不符合长期战略。鸿蒙目前是高度寄托于开发者做强软件生态,生态成则鸿蒙成。鸿蒙5.0的成功与否,其实最关键的一环,就是微信的支持。在如今的移动互联网环境下,微信是国民社交第一刚需,微信支持了,才能带动更多的APP支持,鸿蒙的生态成熟也就指日可待的。大家买华为的手机,很大程度是基于对国产操作系统与芯片的支持,其他的非刚需的部分APP缺失或许还能接受,但是没有微信,对于用户来说,第一刚需APP被切断,买了只能用作备用机,这种用户刚需上的缺失,是很难接受的。而微信作为移动APP领域的带头大哥,如果带头大哥不在鸿蒙,其他移动APP开发者的积极性就会受挫,华为也很难带动鸿蒙生态的壮大。因此,鸿蒙5.0必然需要微信的适配支持,微信何时适配成功了,鸿蒙5.0可能就离正式发布不远了。相对Windows Phone,鸿蒙生态成功的概率变大了那么另一个问题来了,鸿蒙现在做生态的难度到底是比过去容易了还是更难了。很多人第一直觉是更难了,因为在iOS与Android崛起的时候,Windows Phone就失败了。Windows Phone为何失败?原因在于,iOS与Android已经形成规模效应,由于性价比不高,相比于开发iOS与安卓,开发者不愿意为Windows Phone开发原生应用。彼时开发者考虑生态与用户规模效应,消费者下载的APP五花八门,很多APP还在增长,头部格局没有形成,开发者认为,只有在iOS与安卓这种最主流的生态系统中,才能获得增长红利。但现在,头部APP的格局大致都已经定下来了,大家手机里常用的APP大同小异。每天常用的主流APP就那么几款,不超过30款。鸿蒙有400余家合作伙伴来启动鸿蒙原生应用,从数量上其实已经够了,搞定关键的数十家互联网大厂,基本上就能完成主流生态的搭建。可以说,鸿蒙是站在安卓与iOS的肩膀上,做生态其实要更容易了。尤其是背靠华为的影响力与手机、平板、PC、汽车等产品销量增长势头。鸿蒙生态设备数量已经达到8亿,开发者220万已经投入到生态开发中,软硬件产品已经超过350款。从数量规模来看,其实已经够了。现在消费者下载的常用APP已经趋于稳定,只要搞定头部大厂与中部大厂,有200款主流APP已经能满足90%的用户需求了。现在目前的关键玩家就在于微信了。只要微信适配成功,鸿蒙就成功了一半。因此,在这方面,希望华为与微信都能各自放下利益上的成见与强势的态度,互退一步,鸿蒙当前非常需要微信的支持。一旦头部生态成了,这就给鸿蒙合作软件厂商,带来很大市场需求,同时鸿蒙 PC端也在积极布局开发,这个缺口补上,Harmony OS 将实现万物互联的初步目标。鸿蒙5.0为何要脱离安卓?在万物互联时代,安卓过时了当然,提到万物互联,这背后或许关键原因——安卓和iOS系统除了手机本身,对其他硬件设备的认证、连接、传输都有壁垒,但下一代操作系统应该让硬件自身去完成相互认证、主被动传输和接收大通量数据,而不是手机是手机、音响是音响、车机是车机。在安卓与iOS上,即使它们是同一个账户体系,但还是要重复一遍繁琐的流程,但万物互联是在安全前提下的易操作的无感互联,而不是充满着硬件壁垒。为什么会这样?关键是内核变了。安卓是宏内核,而鸿蒙是微内核。微内核本质上是用一个操作系统把所有设备串在一起,一个设备可以操作多个终端应用,假如你身上有A设备,B设备,C设备,D设备。只要他们用的是鸿蒙系统,你可以用B设备操控ACD,也可以C设备操控ABD。这对应了下一代万物互联操作系统的特性——即让硬件自身去完成相互认证、主被动传输和接收数据,但是安卓和iOS做不到,除了手机本身,对其他硬件设备的认证、连接、传输都有壁垒。因此,鸿蒙一定要与安卓划清界限了,安卓在未来很可能过时了。尤其是智能车业务已经上升为华为的核心业务之一了,从问界的销量来看,华为在新势力车企中,头部的位置基本已预定,华为未来大概率是与比亚迪、特斯拉争雄的角色。这意味着鸿蒙要进一步向着万物互联的生态方向走的更深,更好的适配人车家生态。而因为历史原因,iOS与Android系统天生是为手机适配的,天然承载不了万物互联的生态,在纯血鸿蒙上开发原生APP,能更好的适配人车家生态。加上如前所述,鸿蒙的流量与华为麒麟突围与重生的故事,以及目前移动APP头部格局已经形成,搞定数十个中头部互联网大厂,基本上就已经完成了主流移动生态的搭建,在移动APP格局已定的时代比格局未定的时代,鸿蒙做生态要更容易。因此,从这个角度来看,鸿蒙要做大手机生态与汽车生态的融合度,让两者互相转化,脱离安卓,才能更好的摆脱包袱,这或许就是鸿蒙5.0为何一定要脱离安卓的重要原因。转自 https://baijiahao.baidu.com/s?id=1793380557476194985&wfr=spider&for=pc
  • [技术干货] 星闪无线短距离通信技术【转】
    星闪_NearLink偶然间看到HUAWEI即将发布的MatePad 平板海报,其中一个“NearLink技术”吸引力我的注意。做过半年的蓝牙开发,对无线技术有一点浅显的理解。很感兴趣,进行一个研的调。什么是星闪通信技术?故事,要从这里讲起首先搜索NearLink,可以找到很多媒体讲的故事:2019 年,华为因美国制裁被迫退出蓝牙技术联盟。荣耀20推出一个“超级蓝牙技术”,称之为“绿牙”。2020年9月,由华为牵头组织、会员超过320家企业的星闪联盟SparkLink正式成立,另起炉灶开始了星闪技术的研究和标准制定。2023年8月4日华为正式发布星闪Nearink。在sparklink官网的测试认证界面,可以找到即将发布的平板:什么爽文模板!三年之期已到的既视感Wi-Fi和蓝牙几乎是近场无线通信方案的标准答案,高速率高稳定用WiFi,低功耗用蓝牙,而其他诸如zigbee几乎只用于低带宽物联网设备,2.4G用于键鼠办公设备,NFC只适用与一些无源场景。那推出星闪主要目的是什么呢?自主可控,以及“技术更先进、标准更领先”。【星闪资讯】从人机交互到全屋智能,星闪正掀起一场智能设备互联体验革新潮 - 星闪联盟 (sparklink.org.cn)“连接”这件事如果做不好,体验上要出大问题。家中的智能音箱被手机、平板、电视各类设备共用,频繁的连接和断开操作令人苦恼;当我们准备与朋友一同享受游戏电竞的乐趣时,无线键鼠、耳机等外设的高延迟让我们不得不在稳定和轻便之间做二选一;在全屋智能的打造过程中,上百个设备难以同时接入、精准控制,成为我们尝鲜智能家居生活的突出阻碍。造成这些体验不佳现象的底层原因之一,就是以WiFi、蓝牙为代表的传统短距无线通信技术的发展正遇到瓶颈,传统技术的迭代难以从根本上解决用户痛点。星闪在短距无线通信领域与蓝牙、WiFi形成“三足鼎立”之势,让国内市场的玩家有了更先进、更安全的技术选择,这对于国内科技产业各领域的发展都有关键作用。星闪具有成为中国产业链、供应链的重要基石的潜力。中国通信产业首次将三十多年来从跟随到领跑全球所积累的经验和技术,创新地应用在近距离无线连接领域,星闪是中国科技自立自强的又一重要里程碑。技术概述作为信息传播的最后一环,无线短距通信技术在社会生活的方方面面发挥着巨大的作用。蓝牙和Wi-Fi是目前近场无线通信的主要解决方案,但蓝牙和 Wi-Fi 之间的标准是割裂的,蓝牙主打低功耗,Wi-Fi 追求高速率,各有长处却不能兼容。而“星闪”从架构设计上做成了一个标准多个模式[1]。在2023年华为HDC发布会上,有这样一个动图:蓝牙和Wi-Fi两个图标变化后融合成了星闪的图标。星闪接入层为星闪上层提供SLB和SLE两种通信接口。其中,SLB采用超短帧、多点同步、双向认证、快速干扰协调、双向认证加密、跨层调度优化等多项技术,用于支持具有低时延(20us)、高可靠、精同步、高并发和高安全等传输需求的业务场景。SLE采用Polar信道编码提升传输可靠性,减少重传节省功耗,同时支持最大4MHz传输带宽、最大8PSK调制,支持1对多可靠组播,支持4KHz短时延互,安全配对,隐私保护等特性,在尽可能保证传输效率的同时,充分考虑了节能因素,用于承载具有低功耗诉求的业务场景。SLB和SLE面向不同业务诉求,提供不同的传输服务,两者相互补充并且根据业务需求进行持续平滑演进[4]。基础服务层由一系列基础功能单元构成,星闪无线通信系统通过调用不同功能单元实现对于上层 应用功能以及系统管理维护的支持。基础应用层用于实现各类应用功能,服务于包括智能网联汽车领域在内等不同场景[4]。星闪接入层根据实现功能的不同分为管理节点(G节点)和终端节点(T节点),其中G节点为其 覆盖下的T节点提供连接管理、资源分配、信息安全等接入层服务。单个G节点以及与其连接的T节点共同组成一个通信域。以智能汽车场景为例(如下图所示),座舱域控制器CDC可以作为G节点,各类车载设备(例如麦克风、扬声器等)作为T节点,共同完成座舱娱乐功能。此时,CDC与车载设备组成了一个通信域[1]。星闪的具体性能指标是怎么样的?在很多报道中,可以看到下面的介绍:相比“传统无线连接”蓝牙技术,星闪技术功耗降低60%、传输速率提升6倍,具备更低时延、更稳定连接、更强抗干扰能力的特点,覆盖距离提升2倍,连接数提升10倍。听上去是完全碾压,但这个性能指标得量化一下,毕竟蓝牙都5.2了,不同工况下功耗、速度、延时都不一样。指标量化在最新的白皮书,2022年8月的[2] 星闪无线短距通信技术(SparkLink1.0)产业化推进白皮书,可以找到:于此同时,再来看看“被遥遥领先”的蓝牙是什么样的指标呢?在蓝牙5.2中,蓝牙最大的通信速度可以达到2Mbps[5],但是这需要使用支持2Mbps速率的物理层变体(PHY),如LE 2M PHY。以及保证设备之间良好的通信质量。目前能支持2Mbps速率的蓝牙硬件较少。一篇关于蓝牙5音频协议性能的报道[7]中,给出了关于蓝牙音频比较可信的指标:Bluetooth 5.0 and Others: Demystifying aptX HD, Low Latency Standards and MIDI Technology - SoundsightR (soundsightheadphones.com)蓝牙音频协议A2DP是蓝牙实现音频服务的基础协议,而不同的编解码协议是A2DP其中的一环。详情见[9] 【调研学习】蓝牙-音频-协议栈 - CHER-YOUNG BLOG (yiyangc18.github.io) 。各个耳机产商会根据自己的需求对A2DP进行魔改,主要的一个环节就是更改编解码协议。例如索尼的LDAC,传输带宽接近A2DP的物理极限,可以播放压缩前24bit/96kHz的Hi Res音频,达到了星闪无压缩的带宽。在时延方面,好一些的蓝牙耳机时延都可以做到50ms,毕竟延时大了是很影响使用体验的。LC3协议是蓝牙5.2最新推出的协议,现在适配的耳机还很少,主要用于语音通话方面。而蓝牙单词回报时长大概10ms,星闪SLE大概是205us,为什么单次数据时延比耳机时延小很多?可以见我之前的文章[8] 【IOT开发】音频传输中的时序与同步问题 - CHER-YOUNG BLOG (yiyangc18.github.io)。就是说,蓝牙音频工程师为了在A2DP那有限的带宽和有限的抗干扰能力下,优化传输音频的码率、时延不知道掉了多少头发,而现在星闪带着更低的延时、更大的带宽、更低的功耗来了。蓝牙音频工程师从某种程度上来失业风险直线增加sigh。蓝牙功耗方面,以苹果的airpods pro2为例,电池容量43mAh,歌曲编码为 256-Kbps AAC。音量设置为 50%,并启用了主动降噪功能。在启用空间音频和头部跟踪功能的情况下,聆听时间最长可达 5.5 小时。见:为 AirPods 充电并了解电池续航能力 - 官方 Apple 支持 (中国)可以计算出功耗为:功耗 = 电量 / 时间 = 容量 × 电压 / 时间 ~= 29mWh/h我们日常使用耳机更看重的是续航时间,而不是每bit传输能耗。而且传输量增加,功耗也不会线性增加。不过还是需要指出,airpods目前的300Kbps AAC编解码协议在功耗方面本就该低一些。所以星闪音频12Mbps吞吐率下的10mW功耗,是产品airpods pro2 功耗的1/3。至于每bit能耗,1:120 没什么可比性。而在抗干扰能力方面,最小SINR(信号与干扰加噪声比)为 -3dB。而关于蓝牙的信号最小信噪比,在搜索引擎、《Bluetooth® Core Specification Version 5.0 nFeature Enhancements》和[5]Bluetooth Core Specification Version 5.2 Feature Overview中并没有给出具体指标。询问GPT:A typical SINR threshold for reliable BLE communication might be around 10-15 dB or even lower, depending on factors like the modulation scheme, coding scheme, and other protocol parameters.按照星闪发布会的说法,-3dB+7dB=4dB,星闪的抗干扰能力还是很值得期待的。在目前的办公室场景,蓝牙设备非常多,所以蓝牙鼠标、键盘的延时都会变高,所以目前高端一些的键鼠都会支持2.4G连接;期待星闪在办公室场景的测试与应用。通信距离指标的意义有限,毕竟大多数使用场景都是很近的,更加关注的是穿墙后还能否稳定链接;而测试都是在开阔低带,最远距离只有一定的参考意义。蓝牙5.0给出的参考覆盖距离是100m,和星闪SLE类似。组网数量方面,蓝牙一般是一个主设备八个从设备(不过实际上连蓝牙键鼠耳机之后体验就会明显下降),而星闪SLE可以支持一个G设备256个T设备,10X没什么毛病,不过多设备组网性能还得看后续实测表现。综上所述,可以给出在“蓝牙耳机”场景下量化的性能指标对比指标功耗速度时延抗干扰蓝牙 BLE30mW1Mbps50ms10dB SINR星闪 SLE10mW12Mbps10ms-3dB SINR实现低功耗、大带宽、快回报、链接稳、多接入的关键是什么?单从指标上来看,星闪可谓是全方面暴打了蓝牙,这听上去就像是“大人,时代变了”。那么它为什么能做到全方位“遥遥领先”呢?在一些概述中,对于技术优势的总结:星闪在空口技术上采用了很多类似 5G 的技术,而在技术细节上比蓝牙和 Wi-Fi 更先进。比如星闪在 OFDM 和 CP 设计、时域和频域调度颗粒方面就和 5G 很类似,甚至用上了 5G 的 Polar 编码技术,带来了传输带宽以及抗干扰能力的提升。星闪系统协议栈分为应用层(OSI 5~7层)、网络与传输层(OSI 3~4层)和接入层(OSI 1~2层)[1].数据链路层保障数据的可靠传输,数据链路层包含链路控制层和媒体接入层,这和蓝牙的链路控制层非常相似。而物理层实现比特流传输功能,星闪技术要点应该集中在物理层的提升。所以,接下来,从物理层的频段与传输波形、帧结构、多域协同、低功耗设计、混合自动重传机制、信道编码与调制几个方面讲解其对性能的提升。频段与传输波形[1]空口性能白皮书在物理层特性的开头写道:系统采用CP-OFDM波形传输,物理层时间度量为基本时间单位Ts的倍数。Ts定义为Ts=1/fs, fs=30.72MHz,子载波间隔Δf=480kHz。CP-OFDM波形传输,循环前缀-正交频分复用,真是让人一脸懵逼呢。推荐两个讲的比较好的文章:无线通信基础2:深入理解OFDM(含Matlab代码) - hal3515的文章 - 知乎给“小白”图示讲解OFDM的原理CP-OFDM(Cyclic Prefix Orthogonal Frequency Division Multiplexing)是一种非常常见的无线通信技术,常用于短距离无线通信,例如WiFi和4G/5G移动通信。OFDM(正交频分复用)是一种多载波调制技术,它将高速数据流分割为多个较低速的子数据流,然后在多个正交子载波上并行传输。在CP-OFDM系统中,每个OFDM符号都会添加一个循环前缀,这个循环前缀是该符号的一部分,以便在接收端进行解码时可以将其视为一个连续的信号。循环前缀的引入可以消除多径干扰的影响,并且可以使得OFDM符号的末尾与下一个OFDM符号的开始之间有一个平滑的过渡,从而避免了符号间干扰。简而言之,OFDM是一种在多个正交子载波上并行传输,提高传输速度的技术,而循环前缀是为了提高传输的正确率。至于“物理层时间度量为基本时间单位Ts的倍数”,可以这么理解:基带上一个OFDM symbol的发送时间正好发送一个一次谐波的完整波形。那么OFDM的优势是什么呢?频谱效率高:OFDM系统将信号分割为多个子载波进行传输,可以有效地提高频谱效率。适用于高速数据传输:由于OFDM系统可以将数据分割为多个子载波进行传输,因此可以实现高速数据传输。OFDM的子载波间隔最低能达到奈奎斯特带宽,也就是说(在不考虑最旁边的两个子载波情况下),OFDM达到了理想信道的频带利用率。所以白皮书之后关于频段宽度的指标也可以解释了:星闪系统载波带宽最小为20MHz,向上支持40/60/80/100/160/320MHz规格的载波带宽,分别由连续多个20MHz的载波聚合方式组成。20MHz载波由连续39个子载波组成,子载波间隔480KHz。2023.10.13更正:因此正交频分复用相当于提高频带的利用率,更准确来说它可以使频带的利用率达到理论上的最大值。SLB使用CP-OFDM波形传输,OFDM会使用全频带的载波进行传输,一定程度上传输速率与频带宽度成正比。SLE使用单载波传输,带宽支持1MHz、 2MHz和4MHz,调制方式支持GFSK、BPSK、QPSK和8PSK。通过采用Polar信道编码提升传输可靠性,减少重传节省功耗,精简广播信道功能和业务以减少拥塞可能。那么“传统”的蓝牙物理层频段与波形是怎么样的呢?蓝牙的调制方式: GFSK,高斯频移键控,以及跳频技术FHSS。蓝牙工作在2.4G的ISM频段,具体为2400-2483.5MHz,信道带宽1MHz,有79个信道。第一个信道从2.402开始,信道频率为2402+K,K取0-78,共79个信道。在频段前面和后面均有一段的保护带宽,分别为2.4~2.4019G和2.481~2.4835M。蓝牙技术运用了跳频技术,主设备按照特定的伪随机码以每秒1600次的频率不断地从一个信道跳到另一个信道,这样可以有效避免信号干扰。可以看到,蓝牙通过在快速切换频率来实现数据传输的稳定和安全,而正交频分复直接把各个载波频段都用了起来,传输速率更快理所当然。帧结构这一部分首先需要理解一下星闪的帧结构。就数据构成而言,它和蓝牙的数据帧构成很相似,分为:地址、链路层包头、数据。不同的点在于,蓝牙的包头会更冗杂,它包括前导码、MAC地址、PDU、循环冗余校验等。另外,对于递延时高并发场景,星闪支持初步验证后直接透传,就是说不传包头啥的直接传数据。星闪系统采用TDD(Time-Division Duplex)方式,超帧格式如下图所示,每超帧包含48个无线帧,每超帧持续时间为1ms,每个无线帧的持续时间为20.833µs。就是说传输的每个短帧包都是双工的,并且G和T的配比是可以调节的,中间有符号位和GAP位。每个帧更“轻量化”,打包拆包时间更短,帧间隔更短,延时也就更低。另一方面,在空口技术测评中由这么一段话:星闪系统开销信号(如同步信号,广播信息,控制信息,接入信息,物理层ACK反馈信息等)的资源分散到多个无线帧中传输,从而确保了每个无线帧都有资源传输G链路数据包和T链路数据包。也就是说,类似于蓝牙每个帧头内的PDU数据,会被分散到各个无线帧中,从而减小帧结构。那么,为什么蓝牙不采用更低的帧间隔呢?在之前实践中[10]可以看到,更低的传输间隔是提高传输的速度的关键,但间隔短了容易出现帧堵塞情况,即使你在程序中没1ms调用一次蓝牙发送,但实际也只能per10ms发送一次,发送程序要么堵塞等待,要么缓存区溢出。蓝牙协议底层限制了传输间隔,可能出出于低功耗和设备的复杂性考虑。同步与多域协同星闪使用短帧结构,各设备之间可以快速实现同步。另一方面,星闪系统通过多G节点间时间/频率同步降低多域间的干扰。同步的过程会采用一个包含同步信号的帧,而各设备间建立同步能有效减少干扰。星闪系统采用OFDM波形,存在多个通信域的场景下,即使不同的通信域使用不同的频点,如果频率差不是子载波间隔SCS=480KHz的整数倍或者定时差异超过CP,则会造成子载波间的干扰,特别的,在干扰来自多个通信域的情况。这是因为OFDM波形,子载波之间是正交的。如果不同通信域的频率差异不是子载波间隔的整数倍,就会导致子载波之间的正交性受到破坏,从而引入干扰。 即使在干扰源比信号源距离接收设备近得多的情况,G节点之间的时频不对齐引入的干扰会显著降低 接收信干噪比。多G节点间时/频同步可以显著降低多域间的干扰,提升多域共存时的频谱效率。所以在多个域连接时,会进行时间同步,下图是一个同步过程示意图,当两个域连接后,他们就会逐渐同步。这个同步抗干扰在多设备情况下很有用,比FHSS在多设备场景下的抗干扰能力更强。但可以预见的是,这在只有星闪的2.4GHz环境下会比较有用,因为它无法消除2.4GWIFI蓝牙的干扰。低功耗设计蓝牙4.0一个重要的升级就是支持了BLE,低功耗蓝牙,甚至4.0之后的蓝牙协议都称为BLE而不是BT。那么BLE是怎么做到低功耗的?传统蓝牙使用16~32个频段进行广播,而BLE仅使用3个广播频段;每次广播时的射频开启时间由传统蓝牙的22ms减少为0.6~1.2msBLE设计了深度睡眠状态(Duty-Cycle)来替代传统蓝牙的空闲时间缩短连接过程;为每个设备发放唯一的MAC地址,优化连接拓扑在星闪中是如何设计低功耗模式的呢?星闪系统中,G节点可以根据数据的传输特性,通过配置非连续传输(DRX)节省T节点的功耗。T节点工作在DRX状态时,可以根据G节点的配置的接收周期以及每个周期内的持续接收时间,有选择性的在被配置的无线帧/超帧上接听数据,节省T节点功耗。 G节点在通过高层信令配置T节点非连续传输(DRX)的基础上,还可以通过G链路控制信息动态指示T节点跳过当前的非连续传输周期,进一步节省T节点功耗。就是说可以通过降低接受和发送频率来降低功耗。而在连接、广播方面,建立连接的速度比较快,而且也没有看到广播模式。大量用户稳定连接: 星闪系统中,用于标识T节点的物理层标识(ID)长度为12比特,理论上单 个G节点可最多支持2^12=4096个T节点。 接入控制方式:星闪系统采用集中式调度,避免了大量节点分布式资源抢占带来的链路冲突, 提高了系统吞吐量。星闪系统也支持非竞争接入方式,即可支持大量T节点在相互正交的资 源上同时发起群接入,可实现毫秒量级接入,可满足“上电即工作”的场景下的服务需求。此外,上面是技术文档中关于接入的描述,那么如果把“T节点ID长度为24比特”,是否就可以说理论上支持接入2^24个设备了呢?(蓝牙MAC地址24bit)重传机制星闪支持混合自动重传请求(HARQ,Hybrid ARQ),是一种FEC和ARQ相结合的技术,目的是增加链路的传输可靠性。传统ARQ,当接收端检测到接收的信息中有错误时,接收的错误包信息直接丢弃,并请求发送端重传相应的数据包。与ARQ相比,HARQ对ARQ进行了相应的增强,即接收的错误包信 息并不丢弃,而是与重传包信息进行合并,提高接收可靠性。星闪系统采用基于Polar码的异步HARQ技术,支持最大4个HARQ进程,支持CC-HARQ方案和 IR-HARQ方案。CC-HARQ方案的收益来源于接收端多次软信息合并,提升接收端信息的等效SNR, 降低错误概率。IR-HARQ方案,根据Polar码的特点,重传时扩展母码长度或者发送第一次传输时没 有发送的编码比特,在获取能量增益的基础上进一步获取编码增益。该方案先进的地方在于,通过编码方式可以知道那一部分的数据是错误的,然后定向重传,而不像蓝牙CRC校验对不上就直接舍弃。信道编码和调制Polar码是基于信道极化理论构造的一种信道编码,是经过理论分析论证可以达到香农极限的信道编码,可以较好的对抗随机错误。RS码是一种线性分组码,是基于伽罗华域构建的多进制信道编码,每个符号可包含多个比特,抗突发干扰性能好,可以较好的对抗连续错误。星闪系统使用Polar码或RS码传输超低时延的小包业务(如车载主动降噪),确保系统可以在不同应用场景下实现高可靠传输。关于Polar码的功能推荐看这个视频:【老奇】5G,华为,土耳其——我花了两个月,搞懂了5G背后的秘密】简而言之,极化码是一种为了让信息从A-B传递无误差的编码方式,能收到就能知道对错,而不用像蓝牙一样加一大堆校验。综上所述,星闪实现快响应是依赖于物理层的时域和频域调度颗粒,以及混合自动重传机制,这些技术减少了传输延迟和提高了数据的可靠性;快传输、大带宽是依赖于物理层的波形采用CP-OFDM波形传输,充分利用多个频段;抗干扰是依赖于物理层的信道编码和调制技术,以及采用了5G的Polar编码技术,以及同步协同机制;低功耗主要是依赖于G端对T端低功耗模式调度和传输高数据可靠性;而多设备连接主要是因为其抗干扰能力和稳定性。对开发者支持在[2]中有提到,2022第四季度实现搭载星闪的芯片量产,2023-2024推动产业化落地。中科晶上表 示 2022 年将发布基于 DX502c DSP 平台的星闪芯片。极芯通讯技术有限公司也将于同年发布南迦巴瓦(UC6010)星闪 SoC 芯片。但是搜索搜到的都是新闻稿,这几家公司的官网也没有相关的产品。在一些2023HDC的视频能卡电脑,有相关芯片和模组了,但是淘宝、华秋、嘉立创等个人开发者买硬件的地方差不到相关芯片。在harmony Developer的API参考中,也只找到了蓝牙相关的api,没有Nearlink或者SparkLink相关的API。看来离DIY一个星闪耳机玩玩还有一定的距离。畅想在[1]星闪无线短距通信技术(SparkLink1.0)产业化推进白皮书中,详细描述了主推的四个产业:智能汽车、智能制造、智能家居、智能终端。目前还在demo阶段:2022年11月4日,星闪联盟产业峰会在深圳顺利召开,联盟多家创新领先成员单位展示了基于星闪技术的最新原型系统,包括星闪快速无间断抗扰(FISA)技术、星闪商用车360度全景环视系统、星闪电机无线同步控制系统、星闪无线主动降噪系统、星闪沉浸式氛围灯系统、星闪7.1声道环绕声场系统和星闪4K高清无线投屏系统。让我比较感兴趣的是一个无线控制电机同步的技术:以伺服电机控制齿轮同步运动为呈现,展示了通过星闪技术实现多个步进式电机的超高精度同步控制。齿轮的运转指令通过星闪技术在电机两端交互协商,双端以小于1微秒的超高精度协同。星闪通过Polar编码和冗余传输等机制,实时快速匹配信道环境,确保工控数据的稳定传输。经实际测量,端到端时延低至100微秒,同步精度100纳秒,可靠性大于6个9。星闪技术可以有效降低智能制造工厂通信系统的复杂度,节省大量线缆及人工操作成本,降低风险并实现灵活部署。文献[2]星闪技术在智能网联汽车领域应用白皮书中提到,随着智能驾驶崛起,汽车控制器数量增加,不仅会导致线束用量和成本上升,传统线束还存在难以满足灵活部署零部件的要求,装配难度加大等缺陷,且由于电磁兼容等问题,可能存在线束接插件失效等风险。如果都采用有线连接,一辆车的线材总长度就可以2000 米以上!目前蓝牙显然无法支撑数量如此庞大的传感器。而目前星闪正在使用无线的方式代替其中一部分传感器,例如车内无线主动降噪-涉及到多个麦克风到座椅旁的反噪声构造扬声器;无线电池管理-200 节以上电池单体的快速接入工作和多维传感器信息采集上报。星闪技术目前落地的产品还比较少,或许未来其能够凭借优势打入蓝牙/wifi构筑的生态墙,提供更好的无线解决方案。我本科时毕业设计就是设计一个无源无线的传感器,那是我首次接触无线技术,并且相信无线通信是一项改变世界的技术。无线技术将我们与信息世界连接在一起,这些年来逐渐习惯无线耳机、无线键鼠、无线充电、NFC也取代了各种钥匙,再让我使用有线的这些设备总会感觉由奢入俭难。万物互联,你不觉得这很酷吗?作为一名工科生我觉得这太酷了,大带宽、快响应、低功耗、多设备的美妙结合!这符合我对未来近场无线通信的一切幻想。参考文献白皮书:[1] 星闪1.0空口技术性能评估报告[2] 星闪无线短距通信技术(SparkLink1.0)产业化推进白皮书[3] 星闪技术在智能网联汽车领域应用白皮书[4] 星闪无线短距通信技术 (SparkLink 1.0)安全白皮书 一 网络安全蓝牙相关[5]Bluetooth Core Specification Version 5.2 Feature Overview, Martin Woolley, 9 December 2020较好的新闻稿[6] 华为这次一笔带过的“星闪”,大有来头-36氪 (36kr.com)[7] Bluetooth 5.0 and Others: Demystifying aptX HD, Low Latency Standards and MIDI Technology - SoundsightR (soundsightheadphones.com)自引[8] 【IOT开发】音频传输中的时序与同步问题 - CHER-YOUNG BLOG (yiyangc18.github.io)[9] 【调研学习】蓝牙-音频-协议栈 - CHER-YOUNG BLOG (yiyangc18.github.io)[10] 【IOT开发】蓝牙SPP协议的使用 - CHER-YOUNG BLOG (yiyangc18.github.io)转自 https://zhuanlan.zhihu.com/p/658323453
  • [技术干货] 室外定位|GPS模块选型,GPS模块应用【转】
    定位技术作为物联网的一项重要感知技术,借助其获取物体的即时位置信息,可以衍生一系列基于位置信息的物联网应用。 随着智慧城市与新基建的发展,对精准的定位技术需求更加迫切。物体的位置实时变化,采集的其他信息通常必须与位置信息关联才有价值。本篇SKYLAB君将从 GPS模块选型及GPS模块功能性应用的角度来重点介绍GPS模块。SKYLAB的GPS模块 根据实际应用的不同分为四大类, 单GPS模块是指不带天线的GPS模块; GPS授时模块是指不带天线支持授时功能的GPS授时模块, 天线一体化GPS模块是指加入了陶瓷天线,基于单GPS模块研发的天线一体化产品,用户无需另外配置天线; G-mouse是指在GPS天线一体化基础上加入外壳和长天线的成品类GPS模块。GPS模块和天线一体化GPS模块需要嵌入到定位产品的PCB板上,而G-mouse则一般是放置在车内或车外定位环境比较好的地方; 天线一体化GPS模块和G-mouse不需要太复杂的电路设计,只要接入“TX,RX,VCC,GND”这四条线,通过NMEA-0183协议,就可以接收定位数据。01、单GPS定位模块SKYLAB单GPS模块共有两个系列,分别是SKG09A和SKG12A为代表的 A系列单GPS模块和SKG09BL和SKG12BL为代表的 BL系列单GPS模块。两个系列单GPS模块最大的区别就是GPS芯片不一样,GPS芯片是GPS模块中的重要组成部分,芯片方案的不同也就让部分参数也有所不同。A系列单GPS模块采用专用的高性能架构,内置高精度TCXO和低噪声放大器,具有超高灵敏度和极短的捕获定位时间,内置可编程芯片,可针对车辆监控、车辆导航、行车记录仪、穿戴设备等不同应用匹配专业的软件,满足不同应用领域的需求。A系列GPS模块 SKG09A,SKG12A是 基于MT3339芯片方案研发的,具有低功耗,集成度高,可编程,支持天线检测,时间脉冲,AGPS,EASY,和数据记录功能。BL系列是SKYLAB特别针对高性能,低成本设计。先进的RF架构和干扰抑制确保在GPS信号不利的环境下也能实现最佳性能,对尺寸及成本有严格要求的大众市场终端产品实属最优选择。BL系列GPS模块 SKG09BL,SKG12BL是 基于MT3337芯片方案研发的,具有集成度高,支持配置引脚、时间脉冲,AGPS,EASY功能,不支持编程,天线检测及数据记录。02、天线一体化GPS模块SKYLAB天线一体化GPS模块是 基于单GPS模块的基础上加入了陶瓷天线,该系列模块主要是为客户提供完整的、高性能的定位解决方案。代表型号有 SKM61,SKM81B,SKM82,SKM86等,简便的设计和高度集成的天线一体化GPS模块能够更快的完成样品测试, 多规格封装尺寸,满足了不同应用的升级替换。集成的高品质低噪声放大器和声表滤波器能让模块在GPS信号不利的情况下,依然拥有不俗的定位表现。03、GPS G-mouse模块SKYLAB GPS G-mouse是 基于天线一体化GPS模块基础上加入外壳和长天线的成品类GPS模块。代表型号是 SKM51,SKM55,该系列模块内置LNA和SAW滤波器,有很好的RF性能,将GPS模块和GPA天线的性能完美结合,最大化的发挥GPS模块性能,简单的多接口设计,用户 可根据实际需求选择Micro-Fit 3.0、USB、DB9、Audio音频、JST接口,使用极为便捷 。 天线的长度也可以根据应用场景进行线长定制,很大程度上 便利了公交车、网约车等一些后装市场的车载定位应用。04、GPS授时模块SKYLAB GPS授时模块主要是 AT系列GPS授时模块SKG12AT,采用专用的高性能架构,内置高精度TCXO和低噪声放大器,具有超高灵敏度和极短的捕获定位时间,内置可编程芯片。 SKG12AT是 基于MT3339芯片方案研发的,具有低功耗,集成度高,可编程,支持天线检测,时间脉冲,AGPS,EASY,和数据记录功能。 可满足不同基站,电力,通讯,金融及交通授时等应用领域的需求。SKYLAB的GPS模块能够实现 定位、 导航、 授时等功能。举个很简单的例子,当你手握内部加载的GPS模块的手持机时,这个坐标会随时跟着终端的位置移动而变化,并且会产生相应的GPS模块位置;当你在以所在位置为起点,并设置一个终点位置时,手持机内部地图即可根据现有地理位置为您规划导航路线;同步UTC时间即可获取GPS卫星授时,满足时间同步需求。根据GPS模块主要功能,GPS模块的应用分为三大类,分别是定位型,导航型及授时型。01、定位型1、低功耗GPS模块可应用于智能可穿戴设备领域,比如户外手表,儿童手表,老人手表及宠物定位器等;2、应用在使用GPS服务的智能手机、平板电脑、PND、DVR等;3、GPS模块应用在工业PDA、手持机,执法仪等各种便携设备领域;4、GPS模块应用于网络摄像头,路灯等安防领域;5、应用在车载定位终端等设备领域,提供实时位置信息;6、GPS模块应用在面积测量和距离测量等测绘设备中,多见于农业、地质领域;7、GPS模块应用在无人机领域,用于无人机的精准定位;02、导航型1、车载导航,比如校车、公交车、物流车、出租车跟踪定位等应用,以公交车应用为例,基于GPS模块的智能公交系统可实现定时自动报站、实时轨迹查询、报警功能、历史轨迹上传及轨迹回放、根据定位信息实现越界/超速报警、指定行驶路线和行驶时间;2、户外手持机导航,比如电网、基站、地质勘测、驴友等户外工作者,需要导航服务,内置GPS模块和GPS地图的户外手持机就可以为其提供精准度的定位及导航信息。03、授时型1、卫星同步授时,多用于电力,金融,通信,基站同步授时;2、交通授时,多用于高速公路诱导灯及交通信号灯的精准授时。转自 https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_10008513597932457665%22%7D&n_type=1&p_from=3