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

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

3天内不再提示

利用 RTOS的MCU设计嵌入式系统案例

454398 来源:德州仪器 作者:德州仪器 2020-11-21 10:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

管理实时响应

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

改善实时响应的另一个选择是使用实时操作系统或 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 种来自外部源。对于五个周期的固定中断延迟,中断响应时间对于任何应用都足够快。

图 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 的这种组合提供了一个经过验证的平台,现有的示例代码可用作实现定制设计的第一步。

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 的设计的开发。
编辑:hfy

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

    关注

    559

    文章

    8220

    浏览量

    364241
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18646

    浏览量

    388331
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解
    发表于 12-09 10:33

    嵌入式应掌握的几种能力

    基本掌握嵌入式处理器的基础知识。嵌入式处理器种类很多:MCU(微控制器)、MPU(微处理器)、DSP(数字信号处理器)等。MCU,也就是我们常说的单片机。 初学期,重点放在单片机的
    发表于 12-08 06:05

    ARM嵌入式这样学

    的内核就是ARM内核,它的主频高很多,普通的都有几百M。CPU缓存大,分有很多级的流水处理线,这样大大提高了CPU利用率。这种IC的资源足以让一个嵌入式操作系统正常跑起来,WINCE, LINUX
    发表于 12-04 07:48

    学习RTOS的意义?

    对于嵌入式软件工程师,学习RTOS非常有必要。 1. 项目需要 随着产品要实现的功能越来越多,单纯的裸机系统已经不能完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,就必须引入
    发表于 11-27 08:16

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM中。这些系统在许多日
    发表于 11-17 06:49

    嵌入式实时操作系统的特点

    任务的系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们在资源利用、可靠性、可预测性、任务调度和中断
    发表于 11-13 06:30

    嵌入式rtos中哪一个更加值得去学习?

    嵌入式圈里聊 RTOS,总有人揪着任务调度的那点差异争得面红耳赤,可实际上这东西做透了大家都大差不差 —— 优先级调度、时间片轮转,核心逻辑翻来覆去就那些,真到项目里谁也没比谁快出多少,哪怕是所谓
    的头像 发表于 11-05 10:48 568次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>rtos</b>中哪一个更加值得去学习?

    如何采用SAFERTOS和ESM保护嵌入式系统安全

    信任根的重要组成部分是实时操作系统RTOS),它为应用程序的运行提供了一个安全的平台。嵌入式系统的具体安全要求取决于其架构以及所面临的威胁。在本博客中,我们将探讨
    的头像 发表于 10-24 15:51 1207次阅读

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通过学习嵌入式技术提升就业竞争力,需重点掌握C语言、嵌入式硬件架构、RTOS/Linux开发、通信协议四大核心技能,并结合行业需求积累项目经验。
    发表于 10-21 16:25

    入行嵌入式应该怎么准备?

    知识: 一、C/C++编程C/C++是嵌入式系统开发中最常用的编程语言。熟练掌握C/C++语言将使你能够理解和编写底层驱动程序、操作系统以及与硬件交互的代码。对于嵌入式
    发表于 08-06 10:34

    芯科科技MCU助力低功耗高效嵌入式系统设计

    当考虑提升嵌入式系统速度或能效时,脑海中浮现的可能是更快的CPU或更智能的睡眠模式。但如果我告诉您,Silicon Labs(芯科科技)微控制器(MCU)内部藏着一位无名英雄,能在完全不唤醒CPU的情况下大幅提升设计智能度呢?这
    的头像 发表于 07-29 16:26 1388次阅读

    Linux嵌入式和单片机嵌入式的区别?

    ,开发工具包括GCC、Makefile等。 3.操作系统 : 单片机嵌入式 :一般不使用完整的操作系统,或者使用简单的实时操作系统RTOS
    发表于 06-20 09:46

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Linux嵌入式
    发表于 05-15 09:29

    【入门必看】从菜鸟到大牛,嵌入式系统完整学习路线!看这篇就够了!

    嵌入式系统是许多现代电子设备和智能系统的核心,掌握嵌入式系统,意味着能够设计和开发更加智能化的产品。本文为所有想进入
    的头像 发表于 02-20 10:53 3241次阅读
    【入门必看】从菜鸟到大牛,<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>完整学习路线!看这篇就够了!

    ARM嵌入式实时操作系统比较

    嵌入式系统领域,实时操作系统RTOS)是确保任务按时完成的关键技术。ARM架构因其低功耗、高性能的特点,在嵌入式
    的头像 发表于 12-28 09:15 2482次阅读