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

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

3天内不再提示

如何优化基于MCU的RTOS的设计和开发

电子设计 来源:网络整理 作者:佚名 2020-05-27 08:02 次阅读

要求MCU控制嵌入式系统中越来越多的功能。这些功能通常是实时的,需要定期维护,以满足系统对响应性,性能或可靠性的要求。通常,实时操作系统(RTOS)用于管理多个实时事件,以确保响应能力足以满足系统要求。然而,并非所有MCU都适合托管RTOS,因此,对允许或便于在特定MCU上托管RTOS的一些关键功能的审查对实时嵌入式系统的设计人员非常有用。

本文将快速回顾现代MCU上可用的一些关键功能,这些功能有助于运行需要RTOS的嵌入式系统。这将有助于设计人员更有效地选择MCU作为RTOS主机,并使用该MCU设计嵌入式系统。

管理实时响应

随着控制系统变得越来越复杂,使用简单的控制程序管理各种MCU功能变得越来越困难。对于具有不同优先级的多个事件,持续检查以查看哪些事件需要服务的单个控制循环变得难以处理。控制回路无法足够快地到达每个功能。所需要的是一种实时控制方法,其中所有事件都可以在其所需的响应时间内得到服务。

通常,MCU可以通过使用中断响应事件(由定时器触发的内部MCU请求或由I/O信号触发的外部事件)来实现对复杂系统的更好控制。中断可以优先处理,以便首先处理最重要的请求,并且使用现代MCU中断系统,响应时间可以非常快。不幸的是,证明所有事件都将以所需的周期性处理可能很困难。例如,如果我们需要进行一系列模数转换,同时通过USB端口接收数据并在采集的模拟数据上计算低通滤波器,那么计算转换的最大采样率可能非常

改善实时响应的另一个选择是使用实时操作系统或RTOS。在该方法中,可以为控制系统中的每个任务分配MCU处理周期的时间片或部分。如果该功能不需要当前分配的时间,它可以将时间“翻转”到另一个功能,这样就不会丢失宝贵的处理周期。如果没有功能需要维修空闲过程(通常在低功率模式下),则可以启动以节省电力。可以调整分配的时间片以确保可用的最小时间量满足所需的响应时间。通过正确分配模数转换器,USB端口和滤波器处理功能,系统将以可预测和有效的方式运行。

现代MCU已经过优化,可以轻松实现RTOS实施。也许最明显的是包含专用定时器,通常是与确定处理分配相关联的“定时器滴答”,这使得向时间片分配时间变得容易。可以与其他MCU活动并行执行任务的智能外围设备也很有用,因为相关的过程只需要“触发”事件,然后可以将控制权返回给另一个过程。例如,可以通过简单地编程DMA控制器以将SRAM数据移动到USB端口来启动USB传输。在清空缓冲区或发生错误之前,任务不需要执行任何其他活动。

让我们仔细看看一些最重要的支持RTOS的硬件元素,以便更好地理解我们如何优化基于MCU的RTOS实现。

使用高级中断控制器

由于基于RTOS的系统需要快速有效地响应实时事件,因此高级中断系统可能是基于MCU的设计中最重要的硬件元素。例如,如果中断需要太多周期来响应,可能是因为在调用中断例程之前需要保存几个CPU寄存器,实时响应可能会受到影响。此外,如果中断控制器只有少量可能的向量位置,软件可能需要几个周期才能找出中断源。例如,中断信号传输完成应该很容易与传输错误区分开来。

Microchip PIC24F MCU具有一个高级中断控制器,具有实现基于MCU的RTOS所需的一些功能。 PIC24F和dsPIC MCU系列的框图如图1所示。中断控制器在图中间以灰色显示,连接所有外设,定时器和多个输入信号,以提供全面的中断支持。多达118种不同的中断源,最多5种来自外部源。对于五个周期的固定中断延迟,中断响应时间对于任何应用都足够快。

如何优化基于MCU的RTOS的设计和开发

图1:Microchip PIC24和dsPIC DSC系列模块图。

PIC24和dsPIC DSC MCU中断控制器还支持七个优先级,可以轻松区分最重要的事件和最不重要的事件。当对某些事件立即响应以及某些事件可以等待服务至关重要时,这尤其有用。例如,采集数据通常比处理数据更重要,因此采集事件的优先级通常高于处理事件。

内存占用和低功耗

当从纯粹的中断或控制环路设计切换到基于RTOS的实现时,工程师最常遇到的两个问题是内存占用和低功耗。由于每个RTOS过程都需要SRAM中的特殊控制块来存储过程中的各种声明信息,因此工程师经常担心它们将耗尽SRAM并因其应用而“缺乏”内存。幸运的是,随着上下文切换时间和控制块大小的优化,RTOS内存占用量不断提高。此外,MCU在设备上包含越来越多的SRAM,因为这种资源变得越来越便宜,同时变得越来越有价值。

例如,Atmel SAM4L MCU在两个块中提供32 KB或64 KB的SRAM-HRAMC0和HRAMC1-如图2中的系统内存分配图所示。这些SRAM块是在单个周期中访问,这是一个确定性过程,可简化基于RTOS的系统中的关键延迟和性能计算。将SRAM组织为两个独立的存储区也可以提高基于DMA的功能的性能,因为可以将存储器块分配给每个存储区以优化整体访问带宽。

图2:Atmel SAM4L MCU全局内存分配。

每个RTOS进程只需要几百个字节,即使是复杂的RTOS,完整的上下文也只需占MCU的几个百分点。一些设计人员经常忽略的一点是,通过RTOS通信,缓冲区通常可以大大减少,因为响应时间更短,更可预测。对于某些功能,SRAM节省的成本将超过上下文切换存储要求的大小。

大多数RTOS实现也完全支持低功耗模式。这意味着可以使用降低内部调节电压,降低时钟速度或禁用特定外设时钟的模式。 Atmel SAM4L MCU具有一些专用控制器,可根据需要轻松调整电压电平和时钟速度,以满足每个处理线程的要求。多个“空闲模式”也可用于在多个线程共享的几个标准低功耗设置之间进行选择。

简化以太网连接

在具有高电平的实时系统中速度连接要求,例如以太网,以太网很重要的硬件,但不应忽视使其易于实施的支持“挂钩”。例如,瑞萨RX63N具有先进的以太网控制器和专用的以太网DMA控制器,可直接管理控制以太网传输的描述符。这大大简化了以太网流量的控制,因为可以在以太网子系统中控制许多低级细节。此外,通过使用连接开发套件可以简化RTOS环境中以太网连接的实现,如图3所示,该套件可与Micrium RTOS捆绑在一起。 MCU,开发板和Micrium uC/OS-II或uC/OS-II RTOS的这种组合提供了一个经过验证的平台,现有的示例代码可用作实现定制设计的第一步。

图3:具有Micrium RTOS支持的Renesas RX63N以太网套件。

Micrium RTOS还提供各种中间件模块,进一步简化了连接应用。例如,IPv6支持使得即使是最复杂的以太网子系统也能轻松实现。示例设计的可用性意味着可以在创纪录的时间内完成演示系统的工作。

DSP应用的高效处理

在某些应用中,可以使用RTOS确保尽可能高效地完成处理。例如,DSP应用程序可以处理饥饿,如果多个通信通道竞争CPU周期,则效率会受到显着影响。例如,德州仪器TI)TMS320C66xx DSP具有显着的处理能力。图4中所示的处理核心中只有一个具有八个可以并行工作的独立处理器(L/S/M/D 1和2)。使用RTOS(如TI-RTOS)时,可以更轻松地管理通信功能,以限制所需的CPU周期数。这样可以节省处理时间,因为DSP可以解决大多数以DSP为中心的设计所需的大量数据。

图4:德州仪器(TI)TMS320C66xx DSP提供显着的处理性能。

结论

通常,嵌入式系统需要在指定时间内响应事件,在这些系统中,托管在MCU上的RTOS是可能的解。确保您了解在MCU上托管RTOS的要求,以便您可以选择最佳的MCU,并简化基于RTOS的设计的开发。

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

    关注

    146

    文章

    16024

    浏览量

    343741
  • 嵌入式
    +关注

    关注

    4984

    文章

    18300

    浏览量

    288744
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112103
收藏 人收藏

    评论

    相关推荐

    麻雀虽小 五脏俱全:MCU专用RTOS简述

    微控制器(MCU)广泛应用在各行各业,如各式家电、工业自动化,实时控制、资料采集等领域,为因应工控所需的实时(Realtime)控制、快速回应等需求,因此MCU大多搭载RTOS(实时操作系统)运行。随著物联网的兴起,软件业也为
    发表于 05-07 11:01 4989次阅读
    麻雀虽小 五脏俱全:<b class='flag-5'>MCU</b>专用<b class='flag-5'>RTOS</b>简述

    意法半导体STM32全系产品部署Microsoft® Azure RTOS开发

    微控制器 (MCU)。   用户可以利用Azure RTOS的特质、STM32Cube的便利性,以及STM32系列优化微控制器特性的灵活性,在拥有700余款微控制器的STM32 Arm® Cortex
    的头像 发表于 06-08 18:49 2750次阅读
    意法半导体STM32全系产品部署Microsoft® Azure <b class='flag-5'>RTOS</b><b class='flag-5'>开发</b>包

    微控制器MCU常用RTOS盘点

    是不可能塞入MCU去执行的,且MCU大多被应用在实时控制的环境,因此许多容量小的RTOS(Real-Time Operating System;实时操作系统),便成为开发
    发表于 10-27 14:22

    架构到RTOS 详解DSP和MCU的区别和联系

    独立存在的时候,需要两套开发工具。  已经出现第四种方案它是将MCU的功能合并到一个DSP中。这类方案的一个例子是美国模拟器件公司(Anolog Device Inc.,简称ADI)的Blackfin
    发表于 02-20 17:12

    MSP432 MCU发挥RTOS所具有的优势

    TI开发和维护,MSP432 MCU提供超过50个示例来实现对TI-RTOS的完全支持!下面是TI-RTOS的主要结构:对于增加的节电功能,使用Power Manager(电源管理器)
    发表于 09-10 11:47

    MCU的Flash比较紧张时怎么优化

    对于 MCU 的 Flash 比较紧张时,我们需要考虑代码体积的优化,使其尽量精简,这样的代码在之后的迭代开发中才可以实现小而美的目标。  下面是几个可以去考虑的优化的方向:  裁剪 
    发表于 03-30 07:53

    介绍MCU串口发送数据的优化

    实时性在嵌入式开发中的非常重要,优化MCU串口传输处理方式可以提高嵌入式系统的实时性。在互联网上学习并亲自实验(基于STM32单片机)后,我将分两次介绍优化
    发表于 02-11 06:18

    采用MQX RTOS实现Kinetis® MCU的低功耗管理的教程

    采用MQX RTOS实现Kinetis® MCU的低功耗管理
    发表于 12-08 06:19

    Express Logic的ThreadX RTOS协助开发

    Express Logic的ThreadX RTOS协助开发飞行系统 实时操作系统(RTOS)供货商Express Logic宣布,Avidyne公司已采用其ThreadX RTOS
    发表于 11-30 08:50 968次阅读

    技术干货:MCU专用RTOS种类盘点

    微控制器(MCU)广泛应用在各行各业,如各式家电、工业自动化,即时控制、资料采集等领域,为因应工控所需的即时(Realtime)控制、快速回应等需求,因此MCU大多搭载RTOS(即时作业系统)运作。##
    发表于 05-08 10:16 9567次阅读

    优化基于MCURTOS的设计和开发的方法

    本文将快速回顾现代MCU上可用的一些关键功能,这些功能有助于运行需要 RTOS 的嵌入式系统。这将有助于设计人员更有效地选择 MCU 作为 RTOS 主机,并使用该
    的头像 发表于 10-02 17:18 2005次阅读

    瑞萨电子主流32位MCU扩展Microsoft Azure RTOS嵌入式开发套件

    System(RTOS)嵌入式开发套件,包括其强大的Azure IoT中间件。最近发布的用于瑞萨电子RA MCU的灵活软件包(FSP)3.0版和用于Synergy MCU的Syner
    的头像 发表于 06-18 14:46 1941次阅读

    RTOS是什么,裸机开发的详细介绍

    本课是在听了韦东山老师的裸机和RTOS开发模式课程后,才简单了解裸机开发RTOS开发的区别。更多的是对现在自己编程方式有一个认知,希望在这
    发表于 03-07 14:16 6678次阅读
    <b class='flag-5'>RTOS</b>是什么,裸机<b class='flag-5'>开发</b>的详细介绍

    RTOS开发中的Mutex互斥锁

    在基于RTOS开发项目时,通常都会遇到互斥的情况,比如:几个任务都要使用一个UART串口进行发送数据。
    的头像 发表于 04-07 10:32 2116次阅读

    STM32嵌入式开发中的RTOS,你用过哪些?

    STM32嵌入式开发中的RTOS,你用过哪些?
    的头像 发表于 09-18 16:21 826次阅读
    STM32嵌入式<b class='flag-5'>开发</b>中的<b class='flag-5'>RTOS</b>,你用过哪些?