网站建设简介怎么样,网站建设自学,入门级网页设计培训学员,大连网站建设网站建设低功耗模式简介
FreeRTOS 的 Tickless 模式是一种特殊的运行模式#xff0c;用于最小化系统的时钟中断频率#xff0c;以降低功耗。在 Tickless 模式下#xff0c;系统只在有需要时才会启动时钟中断#xff0c;而在无任务要运行时则完全进入休眠状态#xff0c;从而降低功…低功耗模式简介
FreeRTOS 的 Tickless 模式是一种特殊的运行模式用于最小化系统的时钟中断频率以降低功耗。在 Tickless 模式下系统只在有需要时才会启动时钟中断而在无任务要运行时则完全进入休眠状态从而降低功耗。在滴答中断重启时会对 RTOS 滴答计数值进行校正调整。
Tickless模式的实现方式通常依赖于微控制器的硬件特性尤其是低功耗定时器或实时时钟单元。以下是 Tickless 模式的一般工作原理 1、空闲任务检测FreeRTOS 会通过空闲任务Idle Task来检测系统是否有任务需要执行。如果没有任务需要执行系统可以进入休眠状态。 2、时钟中断当有任务需要执行时系统会启动时钟中断唤醒处理器。 3、时钟中断处理在时钟中断处理函数中FreeRTOS 将检查任务的状态并决定是否继续执行。 4、休眠状态如果没有任务需要执行系统可以进入休眠状态关闭时钟中断。在休眠状态下处理器可以进入更低功耗的模式。 5、任务唤醒当有任务需要执行时系统会再次启动时钟中断唤醒处理器然后执行相应的任务。 在 Tickless 模式下系统的时钟中断频率明显降低从而降低了系统的平均功耗。Tickless 模式适用于那些对功耗要求较高、需要长时间运行在低功耗状态的嵌入式系统。比如电池驱动设备、物联网IoT设备、低功耗传感器节点、无线通信模块等。
Tickless模式详解
STM32F103xC、STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。
1、睡眠模式Sleep Mode
只有CPU停止所有外设处于工作状态并可在发生中断/事件时唤醒CPU。
2、停机模式Stop Mode
在保持SRAM和寄存器内容不丢失的情况下停机模式可以达到最低的电能消耗。在停机模式下停止所有内部1.8V部分的供电PLL、HSI的RC振荡器和HSE晶体振荡器被关闭调压器可以被置于普通模式或低功耗模式。可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒EXTI信号可以是16个外部I/O 口之一、PVD的输出、RTC闹钟或USB的唤醒信号。
3、待机模式Standby Mode
在待机模式下可以达到最低的电能消耗。内部的电压调压器被关闭因此所有内部1.8V部分的供电被切断PLL、HSI的RC振荡器和HSE晶体振荡器也被关闭进入待机模式后SRAM和寄存器的内容将消失但后备寄存器的内容仍然保留待机电路仍工作。从待机模式退出的条件是NRST上的外部复位信号、IWDG复位、WKUP引脚上的一个上升边 沿或RTC的闹钟到时。
注意在进入停机或待机模式时RTC、IWDG和对应的时钟不会被停止。 主要使用睡眠模式任何中断或事件都可以唤醒睡眠模式。Tickless低功耗模式通过调用指令 __WFI 实现睡眠模式
FreeRTOS系统中的所有其它任务都不在运行时处于阻塞或挂起会运行空闲任务。所以想不影响系统运行又降低功耗可以在空闲任务执行的期间让MCU 进入相应的低功耗模式。
由于滴答定时器频繁中断则会影响低功耗所以FreeRTOS的Tickless低功耗模式会自动把滴答定时器的中断周期修改为低功耗运行时间退出低功耗后再补上系统时钟节拍数。
Tickless模式相关配置项 配置项 说明 configUSE_TICKLESS_IDLE 使能低功耗 Tickless 模式默认0 configEXPECTED_IDLE_TIME_BEFORE_SLEEP 系统进入相应低功耗模式的最短时长默认2 configPRE_SLEEP_PROCESSING(x) 在系统进入低功耗模式前执行的事务比如关闭外设时钟 configPOST_SLEEP_PROCESSING(x) 系统退出低功耗模式后执行的事务比如开启之前关闭的外设时钟