嵌入式软件开发工具简化基于STM8的智能装置开发

news2024/11/16 7:30:26

嵌入式软件开发工具简化基于STM8的智慧装置开发

降低功耗一直是微控器(MCU)市场的主要关注焦点。超低功耗MCU现在可大幅降低主动和深度睡眠的功耗。此种变化的效果是显而易见的,因为它大幅提高了日常嵌入式应用的电池寿命,以及在未来使用能量采集的可能性。然而,为了适当地利用现有MCU的电流消耗规格,嵌入式开发工程师必须考虑许多因素。嵌入式开发工程师可利用现代MCU中周边装置的自主操作,透过更接近于'0'MIPS的操作,实现规格表中所要求的低功耗。

对于在功耗敏感的物联网(IoT)应用中所使用的现代MCU和无线MCU(WMCU),执行程式码时的功耗已经明显下降了,甚至达到40μA/MHz以下。藉由这些低功耗规格,您可能会想知道为什么需要睡眠模式。为什么不直接以500kHz运作时脉,以实现20μA的电流消耗,并且让您的应用以电池运行长达10年?这可不是那么简单的。

过去几年来,睡眠状态下的功耗已经显著地改善了。我们现在可以看到在深度睡眠模式时的功耗低于2μA,以及在某些睡眠模式时的功耗甚至低于50nA。您可能认为这些模式的可用性自动地使系统功耗降低,但情况并非如此。相反地  ,应用使用睡眠模式的能力才是关键。

为什么主动模式有好…也有坏?

使用MCU或WMCU最直接方法,是让CPU管理一切。例如,您可以启动类比数位转换(ADC),将一些资料放入通讯介面(如USART传输)中以读取ADC资料,并对资料做出决策,其中的一切都由CPU直接控制。直接的CPU控制简化了开发,但其代价是:每当必须关注周边装置或外部事件时,MCU将会发现自己处于主动模式,从而使功耗大增。

近来,一些规格表将指定40μA/MHz及以下功耗作为主动模式,尤其是在较高频率下。因为较低频率的μA/MHz数值较高,导致绝对功耗更高。这是因为在主动模式下的电流不会随着频率线性调整。其组成部份有二,其中的第二部份在较高的操作频率下具有较小的影响:

处理程式本身随时脉频率而变化

用于基础设施元件,如稳压器、欠压检测器(BOD)等的基准电流

尽可能地将其卸载到MCU中的其他周边装置,并尽可能使CPU处于休眠状态,以避免从主动模式带来的高功耗,是相当有助益的。

功耗预算

对于具有有限电能的电池供电应用,重要的是要知道能量在哪里被使用,以便能开始为其实现最佳化。表1显示未经有效最佳化的(感测器监测)无线应用之功耗预算。

藉由平均每个元件的电流消耗来测量或估计功耗。如果CPU的工作周期为2%,并以60μA/MHz操作于20MHz的频率,则CPU的贡献为24μA。

请注意,表1所示的功耗预算是根据功能划分。例如,基准睡眠电流包括一个低频振荡器和一个即时时脉(RTC),为系统事件进行定时并允许深度睡眠。感测器测量的贡献来自于采用中断以及中断之间的深度睡眠,以0.5kHz采样感测器。这种以蓝牙低功耗实现的装置每秒均传输广播数据封包,这对于低功耗蓝牙装置来说是非常普遍的。

最后,还有非MCU元件的贡献。MCU可能无法直接控制这些元件中的一部份,包括电源管理周边装置,但由ADC采样的感测器在这种情况下可由MCU直接进行工作周期。若非如此,感测器电流将完全进行控制。对于这个例子,连续的感测器电流约为390μA,但是在适当的工作周期下,每个ADC采样只能使用10μs,从而大幅降低了电流。

表1:目标应用的功耗预算

如果该无线应用由具有225mAh容量的CR2032电池供电,则在61.5μA功耗作业时的寿命约为0.4年。但我们其实可以做得更好。

改善现状

现在看看降低MCU感测器测量电流的方法。虽然此示例涉及ADC测量外部感测器,但相关示例可能集中在一系列不同类型的测量以及与外部环境的互动。在这两种情况下,在MCU和外部环境之间都会发生频繁的互动。

图1:采用中断进行ADC采样,随着每秒相互作用的次数增加,功耗随之增加

实现低功耗感测的最简单方法是尽可能地让CPU睡眠,仅在采样时唤醒,同时尽快地重新回到睡眠状态。针对非常低的采样速率,这会是个好方法,但从图1可以看出,当采样速率或每秒相互作用次数增加时,系统的电流消耗也会明显增加。

许多类型的应用程式必须具有高度的活动状态,同时仍保持电池寿命。超过1KHz的活动速率并非前所未闻,而且需要采取措施,才能使这些应用处于低功耗设置。

图2显示两种其他的感测器管理途径。周边反射系统/直接记忆体存取(PRS/DMA)途径完全无需使用CPU,并让ADC采样可完全在深度睡眠模式下进行。因此,RTC透过事件系统(如Silicon Labs的PRS)将事件直接发送到ADC,而不是由RTC唤醒CPU来启动ADC转换。ADC在接收到此事件时自动启动ADC转换;待完成转换后,DMA在这种情况下也能够从深度睡眠模式下启动操作,以及从ADC撷取资料并将其储存在RAM中。PRS/DMA途径的好处是显著降低了电流消耗。在1kHz时,系统电流从58μA降至25μA。

图2:ADC采样图显示最小化电流消耗的各种方法

更有效驱动ADC的方法是以PRS/比较器(CMP)驱动的途径,其中RTC仍然透过PRS系统触发转换,但在这种情况下,ADC使用比较器函数立即对样本进行评估,除非发现特别的事项,否则不启用DMA或CPU。这种途径能以1kHz的采样速率和3.5μA的系统电流进行最终的节能。

动态ADC比较器

使用PRS/CMP途径,CPU将只在必要时花时间查看样本,而使许多样本被弃置。当监视缓慢改变讯号或是寻找讯号中的特定事件时,这种途径多半都极其有利。

当使用比较器监测讯号时,一种方法是测量讯号值,并在讯号中最后一个已知值的任一侧设置比较器。只要讯号保持在比较器阈值范围内,系统将维持深度睡眠,而ADC同时监测讯号, CPU则将保持睡眠状态。

图3:当讯号超过阈值时,动态ADC比较器的值可透过CPU中断进行更改

然而,如果讯号发生变化且超过阈值,系统将会察觉并采取适当的措施。在回到睡眠状态之前,ADC阈值应该重新配置,以适应新的讯号值,并使系统再度进入休眠状态,直到下一次讯号发生变化。图3显示此种技术的一个例子。圆点表示ADC样本,箭头表示当CPU唤醒时,将会记录变化并重新配置阈值。

透过这种方法,系统将会失去一些讯号的准确性,因为讯号可以在触发器之间的阈值间移动。然而,其优点是功耗显著降低。

如果系统的目标是测量讯号的动态值,那么以PRS/DMA驱动方法十分理想,因为它让所有的资料可用,同时仍然提供非常有效的节能。

自主子系统

ADC示例只是睡眠模式可利用以显著降低应用功耗的许多方式之一。专注于低功耗应用的现代MCU(如Silicon Labs的EFM32 Gecko MCU)拥有大量功能,可在深度睡眠模式下运作,从而实现高度的自主行为。

例如,Gecko MCU的LESENSE(低功耗感测)周边能完全自主地对多达16个感测器进行自动化的采样和评估,完全不需要CPU的干预,并与感测器进行高频互动,同时让电池充电一次即可运作10年。

图4:自主ADC系统包括自动感测器工作周期和看门狗监测器

在许多情况下,单个周边装置就能自主地履行其职责,但也有许多需要互动的情况。在这种情况下,我们可以利用一些像现代MCU中的PRS系统等周边互连。这些互连可让多个周边装置互连,以便自主执行更复杂的任务。

图4显示此自主系统的示例,使用事件链来执行其功能:

RTC周期性地向ADC发送PRS讯号,以特定时间偏置开始转换

RTC讯号也开始外部感测器的激励,且将在采样时间之前准备就绪;

ADC采样并提醒DMA,该DMA撷取采样并将其传输到RAM

来自ADC的完成PRS讯号,确保外部感测器断电;

当缓冲器已满时,CPU只会产生中断,或者在超过ADC阈值时才会中断;

PRS看门狗监测事件回圈功能确保持续运行,但这项功能是可选的。

请注意,在此不必再使用DMA,而且该设定可以与动态比较器设定一起使用,以实现最低的功耗。

这些自主子系统具有以下几个主要优点:

显著地节能;

确定性的感测器操作,即使是在具有大量CPU负载期间。

其缺点在于并非所有的MCU都支援这种类型的操作,而且在设定互动时,您可能会希望硬体设计者一样地思考。对于许多电池供电的应用,其优点明显多于缺点。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!(点击找小助理领取)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/922106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

恒运资本股市资讯:IPO、再融资节奏生变

A股近期呈现震荡,商场对IPO、再融资节奏的重视度进步,一些投行人士已经感触到了股权融资商场正在发生改变。某券商投行人士表明,在当时二级商场震荡加大的背景下,IPO和再融资的审阅有放缓趋势,尤其是部分职业的审阅速度…

sap 获取不同币种间汇率 rfc BAPI_EXCHANGERATE_GETDETAIL

不同 sap 日期格式略有不同,可以在 sm37 中查看 参考 https://www.sapcenter.cn/archive/post/428730824257605.html

Compressor For Mac强大视频编辑工具 v4.6.5中文版

Compressor for Mac是苹果公司推出的一款视频压缩工具,可以将高清视频、4K视频、甚至是8K视频压缩成适合网络传输或存储的小文件。Compressor支持多种视频格式,包括H.264、HEVC、ProRes和AVC-Intra等,用户可以根据需要选择不同的压缩格式。 …

Hugo发布网站

你应该先阅读Windows上安装Hugo的环境。 我们使用PowerShell运行下面的Hugo命令。 1 创建网站 我们在文档下面创建一个名为MyHugoSite的目录结构: cd Documents hugo new site MyHugoSite cd MyHugoSite提示告诉我们有关主题的获取方式、文件的添加和站点的构建。…

恒运资本股票分析:跌停!1600亿“中字头”突发

周四上午,三大指数震动上行,到午间收盘,上证指数涨0.47%,深证成指涨1.14%,创业板指涨1.31%。北向资金半日净买入29.12亿元。此前,北向资金现已连续13个交易日减仓。8月以来,北向资金已累计净卖出…

【Leetcode】118.杨辉三角

一、题目 1、题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例2: 输入: numRows = 1 输出: [[1]]提示: …

AD(第一部分---绘制元件库)

5.元件库介绍及电阻容模型的创建 注:元件库创建是在,以.SchLib结尾的 注:右下角的Panels消失/出现 点击左上角 "视图""状态栏" (快捷键:VS) 此处的SCH Library就是元件库列表 RES____电阻 CAP____电容&am…

transforms——PILImage->tensor

数据加载 数据加载:将RGB的图像数据变成可以计算的tensor。需要的步骤有: 定义一个图片转tensor的转换器(transform)定义一个继承自Dataset的myDataSet类,在此类的__getitem__(self, index)中完成一张图片变成一个ten…

使用CRM系统如何提高客户成交率?

企业衡量销售业绩的一个重要指标就是客户成交率,它反映了潜在客户到实际客户的转化效率。提高客户成交率,可以帮助企业降本增效,提高收益。那么,如何提高客户成交率呢?下面说说CRM系统提高成交率的方法。 精准定位目标…

Flutter Cannot run with sound null safety, because the following dependencies

flutter sdk 版本升级到2.0或者更高的版本后,运行之前的代码会报错 Error: Cannot run with sound null safety, because the following dependencies dont support null safety:- package:flutter_swiper- package:flutter_page_indicator- package:transformer_p…

聊聊智能物流技术

目录 1.什么是智能物流 2.智能物流的方向 3.智能物流的发展过程 4.智能物流带给人们的福利 1.什么是智能物流 智能物流是指利用物联网、人工智能、大数据等技术手段,对物流过程中的信息、资源和流程进行智能化管理和优化,以提升物流效率、降低成本、增…

Oracle给表空间添加容量

假如给SYSTEM表空间添加 查看文件位置和容量:Select * FROM DBA_DATA_FILES; FILE_NAME就是要修改的文件 查看每一个表空间的容量,单位MB: SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces…

openCV实战-系列教程6:图像金字塔(图像金字塔/高斯金字塔/拉普拉斯金字塔/图像上采样/图像下采样/轮廓检测/轮廓特征与近似/模版匹配)、原理解析、源码解读

1、图像金字塔定义 图像金字塔就是将图像组合成像金字塔一样的形状,比如原来的图像是1600*900,现在将它变换为1200*750的图像,在金字塔越上面就会越小。那么一张图像就会有多种形式,在以后如果做特征提取,可能不知有一…

数据库表结构导出为word、html、markdown【转载,已解决,已验证,开源】

注&#xff1a;本文为gitcode代码验证&#xff0c;转载gitcode gitcode&#xff1a;https://gitcode.net/mirrors/pingfangushi/screw?utm_sourcecsdn_github_accelerator 整理数据库文档&#xff1a;https://mp.weixin.qq.com/s/Bo_U5_cl82hfQ6GmRs2vtA <!--数据库文档核…

[Linux]进程状态

[Linux]进程状态 文章目录 [Linux]进程状态进程状态的概念阻塞状态挂起状态Linux下的进程状态孤儿进程 进程状态的概念 了解进程状态前&#xff0c;首先要知道一个正在运行的进程不是无时无刻都在CPU上进行运算的&#xff0c;而是在操作系统的管理下&#xff0c;和其他正在运行…

Jenkins的流水线详解

来源&#xff1a;u.kubeinfo.cn/ozoxBB 什么是流水线 声明式流水线 Jenkinsfile 的使用 什么是流水线 jenkins 有 2 种流水线分为声明式流水线与脚本化流水线&#xff0c;脚本化流水线是 jenkins 旧版本使用的流水线脚本&#xff0c;新版本 Jenkins 推荐使用声明式流水线。…

职场汇报必备-超级有用12张思维导图

你有没有想过&#xff1f; 为什么你和同事工作的表现同样出色&#xff0c;但是上司最亲睐的人却不是你&#xff1f; 为什么你勤勤恳恳地努力工作&#xff0c;承担了组织内部的许多责任&#xff0c;但却享受不到组织分配的利益&#xff1f; 为什么你的上司对你的态度总是不瘟不火…

2023最新出炉的整理软件测试常见面试题附答案

包含的模块&#xff1a; 本文分为十九个模块&#xff0c;分别是&#xff1a;软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源&#xff01;&#xff0…

工程项目实施时,如何制定项目进度计划?

在实施工程项目之前&#xff0c;必须制定项目进度计划&#xff0c;并按照进度计划进行控制。 项目进度计划是指&#xff0c;在规定的时间内&#xff0c;制定合理且经济的进度计划&#xff08;包括多级管理的子计划&#xff09;。在执行该计划的过程中&#xff0c;需要经常检查实…

全流程R语言Meta分析核心技术高阶应用

查看原文>>>全流程R语言Meta分析核心技术高阶应用 目录 专题一、Meta分析的选题与检索 专题二、Meta分析与R语言数据清洗及统计方法 专题三、R语言Meta分析与作图 专题四、R语言Meta回归分析 专题五、R语言Meta诊断分析 专题六、R语言Meta分析的不确定性 专题…