关注分享主机优惠活动
国内外VPS云服务器

如何将我的 RTOS 系统的启动时间提高到“毫秒级”?

总结:自2008年以来,在智能家居市场的推动下,智能猫眼市场以惊人的速度扩张。 运动检测意味着当有人经过您的门前时,您的身体会感知到并自动激活照片或视频功能来记录访客。 实时操作系统的内核很小,可以立即响应任何中断指令,系统启动时间只有几秒钟。

一、背景

人工智能的快速发展,迎来了智能家居时代。 除了智能防盗门、智能门锁、智能音箱等,除了市场快速增长之外,智能猫眼行业异军突起,成为智能家居领域的重要品类。 门作为每个家庭的入口,其智能化提升空间远远超出了门锁。 智能家居入口安全是一套解决方案。 不仅门锁需要智能化,需要猫眼也与家居入口的安全密切相关。 它可能是您的智能家居最重要的入口点之一。

发布的《2019-中国智能猫眼行业市场详细评估及2025年市场展望》新思维产业研究中心预测报告[1],2017年全球智能家居设备市场销量为6.63亿台。 到2023年,智能家居设备销量预计将达到19.4亿台,超过智能手机销量。 2014年以来,在智能家居市场的带动下,智能猫眼市场以惊人的速度扩张。 数据显示,2016年中国智能猫眼出货量突破60万台,同比增速超过40%。 截至2017年,智能猫眼出货量超过110万台。

单看这个数据没必要大惊小怪,但如果从不同的角度和时间轴来分析,2015年网上销售数量从20万台变成了2台。从2017年的110万台开始,整体销量数据在短短两年内增长了五倍多。 目前国内具备规模研发和生产能力的电子猫眼厂家仅有少数,整个市场供不应求。 可见,电子猫眼行业目前正处于红利爆发期。

如今的智能猫眼通常包括红外夜视、运动检测、Wi-Fi 控制等等。 特点是手机内置红外夜视灯,即使在夜间也能清楚地看到访客。 运动检测或 PIR 人体检测,当有人经过门前时,自动启动照片或视频功能来记录访客。 Wi-Fi功能可以实现手机与猫眼的远程连接。 当有人在门外移动时,运动检测会自动将信息推送到主人的手机上。 但目前搭载Wi-Fi功能的电子猫眼设备整体功耗较高,待机时间较短。 电池可能需要每月更换一次。

智能猫眼的待机功耗主要由红外摄像头及其相应电路和人体检测功能消耗。 穿过门。 猫眼的摄像头会自动启动,为参观者拍照并录制视频,这些信息也会显示在屏幕上。 因此,启动速度是影响功耗的重要因素。 此外,为了达到防盗和安全的目的,必须在人体经过时立即拍摄并激活图像。 人体通过摄像头的时间通常小于2秒,这对启动速度提出了更高的要求。 尽管传统的Linux操作系统在全世界范围内使用,但它也有其自身难以弥补的缺点。 Linux 操作系统具有庞大的内核,需要复杂的进程来响应中断命令。 当需要快速响应时,这有些不足,系统重启需要几十秒的时间。 RTOS实时操作系统具有很小的内核,可以立即响应任何中断指令,系统启动时间只有几秒钟。 因此,RTOS实时操作系统广泛应用于智能猫眼等IPC(IP摄像机)领域,以保证系统的快速响应和高可靠性。

使用RTOS实时操作系统的IPC设备可以在不需要工作时进入深度睡眠。 当需要快速启动时,这种真正的待机功能可显着降低功耗并提高 IPC 设备的效率。 IPC设备的待机时间。

2.竞品分析

本系统的优点是比较速度快启动,启动时间小于1秒。 例如,RTT智能启动时间可以是500毫秒[2]。 然而,大多数电池供电的IPC设备的启动时间仍然太长。 由于IPC设备启动过程中的电流可达数百毫安,因此启动时间的长短对IPC设备更换电池或充电的频率仍然有很大的影响。 严重影响。

图2-1 Linux

传统RTOS启动流程如图2-2所示。 启动过程分为几个阶段,每个阶段完成不同的任务。 初始化操作。 当设备上电、重启或唤醒时,设备首先进入RESET入口函数,完成必要的CPU工作模式和系统堆栈初始化操作。 然后进入RTOS内核入口,完成一系列硬件初始化操作。 所有这些操作都是串行执行的,如图 2 [k4 ]2 所示。 pre_hw_1_init初始化操作完成后,执行pre_hw_2_init初始化操作。 此外,大多数硬件初始化操作需要等待一定量的时间才能完成硬件电路的实际初始化。 例如,在pre_hw_1_init完成其对应的硬件寄存器写操作后,即使执行了pre_hw_1_i,也必须等到对应的硬件完成初始化后,才能执行后续的硬件pre_hw_2_init初始化操作。nit 和 pre_hw_2_init 之间没有依赖关系。 传统的RTOS启动模型使得进一步优化启动时间变得非常困难。 这是因为硬件在执行相关操作之前必须确保初始化确实完成,否则会出现不确定的错误。

图2-2 RTOS

如果您需要进一步降低RTOS启动速度,减少IPC设备的待机时间,提高用户体验,就让我来吧。 对于 IPC 设备,传统 RTOS 初始化模型很困难。 微内核 AliOS Things 引入了新的系统启动模型,与传统 RTOS 启动时间相比,该模型将启动时间缩短了一个数量级。

3. AliOS Things启动加速引擎

传统RTOS模型串行启动,如结果,不同的初始化进程只能依次初始化。 系统总启动时间等于所有操作和硬件完成相关配置的等待时间,并且大部分时间都是等待时间,如图2-2所示。 硬件完成相关配置所需的时间。 阶段内的大部分初始化操作都是互不相关的,可以并行完成。 也就是说,pre_hw_1_init完成对相应寄存器的读写操作后,会等待与pre_hw_1_init相关的某些硬件配置完成,然后再执行pre_hw_2_init的初始化操作。 这样,与 pre_hw_1_init 和 pre_hw_2_init 相关的某些硬件设置的延迟可以重叠,从而将总阶段时间从 0 减少到 1。 该模型如图 3-1 所示。

图 3-1 AliOS Things Bengine 模型图

Bengine改进了系统初始化注册接口,按照不同优先级注册初始化函数,按照具体的执行时间进行分组,不同组初始化函数的总时间是均匀分布的,都是优先级较高的初始化函数。在较低优先级初始化例程之前运行。 >

图3-2 AliOS Things Bengine架构图

init mgmt:提供注册初始化例程的能力,注册时可以选择指定初始化例程的优先级:根据其执行时间分组。相同优先级或阶段的初始化例程,以便组中每个初始化例程的总时间基本相同。 grp 调度程序:所有在处理子优先级初始化阶段之前 grp 调度程序:不同的组调度运行不同的任务,同时确保不同组的任务在一个组内执行,执行后,与调度程序的同步完成,调度程序准备好处理子优先级初始化例程。 IPC通信机制,保证初始化任务之间的快速并行而不干扰。初始化例程执行时间统计。

与传统RTOS启动流程相比,Bengine的启动模型需要对相关驱动程序进行简单的更改,但需要特定的算法或驱动框架。 仅当驱动程序需要等待硬件完成相关配置(图3-3中红色标记的sleep或sw_wait_for_sem操作)时,才主动让出CPU的执行权限。 被执行的机会。 具体的转换示例如图3-3所示。

图 3-3 Bengine 代码示例

4. 测试数据

图4-1为与某厂商合作使用Bengine加速引擎的微内核AliOS Things的IPC设备系统启动时间。 整个内核和驱动程序的总启动时间为 57ms。 与传统 RTOS 相比,大约 500 毫秒的启动时间本质上减少了一个数量级。

图4-1 AliOS ThingsBengine

开发者支持

如需更多技术支持,请加入钉钉开发者群或关注我们的微信公众号。

有关我们的技术和解决方案的更多信息,请访问:请联系HaaS官网https://haas.iot.aliyun.com

未经允许不得转载:主机频道 » 如何将我的 RTOS 系统的启动时间提高到“毫秒级”?

评论 抢沙发

评论前必须登录!