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

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

3天内不再提示

你所不了解的实时系统 微控制器最好的伴侣

电子工程师 来源:fqj 2019-05-07 17:11 次阅读

实时嵌入式系统是什么?很多人都没有明确的答案,甚至可能目前获取到的都是一些似是而非的知识,简单来说,实时嵌入式系统包括分类,约束和设计模式。

嵌入式系统设计是电气和计算机工程领域中最Amazing但也是最具挑战性的领域之一。如果您不确定嵌入式系统设计是什么,请一定要看完本篇。嵌入式系统设计如此具有挑战性的很大原因在于嵌入式系统所需的众多设计约束,这些限制条件可能包括功耗,有限的内存,I/O可用性,温度,空间限制,当然还有总体成本。对于某些嵌入式系统,一个特别重要的约束是时间。

当系统必须在严格定义的时间内响应事件或请求时,我们将其称为实时系统。这个定义的时间称为截止日期。这些系统必须是可预测的,因此根据定义是确定性的。

如果嵌入了实时系统,我们称之为实时嵌入式系统,我们在本文中可互换地使用这两个术语。实时嵌入式系统很好的范例就是那些“关键任务”应用,例如飞机控制,防抱死制动系统,起搏器和可编程逻辑控制器等。

实时系统分类

可以针对错过其时序约束的可接受性这个特点来对实时系统进行分类。

如果错过时间限制是绝对不可接受的,例如,如果这可能导致人命,我们称之为硬实时系统,上面提到的起搏器就是这个类型。

如果错过或者缺少时序约束是可以接受的,那我们称之为软实时系统。像电子邮件系统,无线路由器和家里的一些有线电视盒也都具有设计要满足的实时约束,但是,即便如此,错过这些截止时间的后果往往很小或微不足道,例如,你可能会因为你最喜欢的电视节目需要缓冲一秒钟而烦恼。当软实时系统错过给定操作的最后期限时,操作不会立即失去其所有值。相反,随着时间的推移,该值会减小——即,随着时间的推移越过截止日期,它会逐渐减小到零(参见下图,左)。

许多系统存在于从硬到软的频谱上,其中错过最后期限并不是不可接受的,所以没必要去立即执行操作,一旦执行就失去了它的全部价值,位于此频谱范围内的系统通常称为固定实时系统(参见下图,中间)。

在一个硬实时系统中,错过的最后期限不仅会造成完全的价值损失,还会产生负值,即损害(见下图,右图)。

你所不了解的实时系统 微控制器最好的伴侣

时间限制

每个实时系统都有一组设计满足的时序约束,如果系统没有时序约束,则不是实时的。这些时序约束可以分为两类:事件响应和任务调度。

事件响应

事件是系统必须响应的刺激因素。这些可以在硬件和软件中启动,它们表明发生了某些事情并且必须处理。当事件以内部或外部中断的形式出现时,它可能看起来最熟悉。例如,当按下按钮时,系统可以感知到该按钮并执行必要的操作。系统检测到更改时,可以生成事件。系统检测到事件的时刻与响应该事件的时刻之间的时间称为延迟。延迟定义为响应时间减去检测时间。

任务调度

任务是一组需要由系统处理器运行的指令。一些实时系统设计人员更愿意安排任务,特别是如果这些任务会定期运行。许多嵌入式系统需要重复检测多个输入,然后根据这些新信息修改输出。这些类型的系统适合使用任务。通常使用称为调度程序的软件构造来调度和运行这些任务。计划任务运行与实际运行之间的时间称为抖动。抖动定义为实际时间减去所需时间。

无论实时系统是使用事件响应,任务调度还是两者,最终目标都是尽可能减少延迟和抖动,同时定义被认为可接受的最坏情况的上限。

设计方法

如何设计实时嵌入式系统?随着系统要求的增长和时序约束的加剧,在满足最后期限的同时管理嵌入式系统的所有需求变得越来越困难,以下是整个行业中使用的一些完善的原则。

轮询

轮询调度是用于管理实时系统约束的最熟知且广泛使用的调度算法之一。它的工作方式与其名称相同:它为每个系统组件提供了一个转向,以使用共享资源并完成所需的任务。下图显示了CPU在切换到下一个任务之前为每个任务提供500毫秒的处理时间,任务可能会或可能不会在500毫秒内完成,而接下去他们通常会在轮到他们的时候从他们离开的地方继续。

你所不了解的实时系统 微控制器最好的伴侣

队列

实时系统中另一个有用的构造是队列。队列可以被视为生产线,其中物品进入并等待处理。准备就绪后,系统将从队列中删除下一个项目并对其进行处理。通过这种方式,可以将需要执行的新任务放入队列中,并在系统处理之前执行的任何任务时等待。最终,即使更多任务进入后面,也会处理新任务。下图显示了先进先出(FIFO)队列,其中任务C位于队列中,直到任务A和任务B都已处理完毕。

你所不了解的实时系统 微控制器最好的伴侣

RTOS

当管理时序约束的开销非常大以至于使用任何单一设计方法或原理不再可行时,实时系统的设计和实现就出现了问题。正是在这一点上,实时操作系统成为最合适的解决方案。实时操作系统(RTOS)利用调度和排队的设计模式,但它增加了更多功能,包括任务优先级,中断处理,任务间通信,文件系统,多线程等,所有这些都是实现和超越时间约束目标的最有效方法。

流行的实时操作系统包括VxWorks,QNX,eCos,MbedOS和FreeRTOS

以上前两个是专有的,也就是收费的,但后面三个可以免费使用。MbedOS与Arm的Mbed平台配合使用,FreeRTOS已经移植到许多不同的微控制器上,在以后的文章中会介绍如何启动和运行其中一个。

结论

我们对实时嵌入式系统进行了高级解析,重点介绍了如何对这些类型的系统进行分类和定义,我们根据系统错过截止日期的可接受程度以及错过截止日期的后果来对实时系统进行分类并且还讨论了时序约束以及组织和实现实时系统的三种常用方法。本文虽然更多地关注概念性理解而不是实践知识,但即便如此,通过了解这些概念,微控制器和RTOS,你也可以大致分析出目前手上的项目是否需要用到RTOS,是否可以通过RTOS来解决以前无法实现的问题。

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

    关注

    48

    文章

    6806

    浏览量

    147601
  • 实时嵌入
    +关注

    关注

    0

    文章

    2

    浏览量

    5452

原文标题:你所不了解的实时系统,微控制器最好的伴侣

文章出处:【微信号:cirmall,微信公众号:电路设计技能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    实时微控制器TMS320F2803x数据表

    电子发烧友网站提供《实时微控制器TMS320F2803x数据表.pdf》资料免费下载
    发表于 03-21 09:09 0次下载
    <b class='flag-5'>实时</b><b class='flag-5'>微控制器</b>TMS320F2803x数据表

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)
    的头像 发表于 12-07 10:55 197次阅读
    【<b class='flag-5'>微控制器</b>基础】——从历史切入,<b class='flag-5'>了解</b><b class='flag-5'>微控制器</b>的五个要素(上)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)
    的头像 发表于 12-06 17:23 270次阅读
    【<b class='flag-5'>微控制器</b>基础】—— 从历史切入,<b class='flag-5'>了解</b><b class='flag-5'>微控制器</b>的五个要素(下)

    基于NXP微控制器i.MX RT1170的多人体实时检测算法和系统

    基于NXP微控制器i.MX RT1170的多人体实时检测算法和系统
    的头像 发表于 10-26 16:27 695次阅读
    基于NXP<b class='flag-5'>微控制器</b>i.MX RT1170的多人体<b class='flag-5'>实时</b>检测算法和<b class='flag-5'>系统</b>

    如何降低微控制器系统中的噪声影响(2)

    如何降低微控制器系统中的噪声影响(2)
    的头像 发表于 10-25 17:41 278次阅读
    如何降低<b class='flag-5'>微控制器</b><b class='flag-5'>系统</b>中的噪声影响(2)

    AT32微控制器硬件设计指南及抗EMC设计要点

    本应用笔记为使用AT32系列微控制器芯片的硬件设计人员提供参考设计,包括供电电源要求、时钟管理、复位管理、调试接口的管理。它说明了使用AT32系列微控制器芯片所需的最低硬件资源。文中介绍了有关硬件
    发表于 10-25 07:54

    从历史切入,了解微控制器的五个要素

    从历史切入,了解微控制器的五个要素
    的头像 发表于 10-17 15:29 167次阅读
    从历史切入,<b class='flag-5'>了解</b><b class='flag-5'>微控制器</b>的五个要素

    STM32微控制器的技术特点和性能指标

      STM32微控制器是ST公司推出的一款基于ARM Cortex-M内核的32位微控制器,具有高性能、低功耗、高集成度等特点,广泛应用于各种嵌入式系统。本文将对STM32微控制器的技
    发表于 09-25 17:16 1622次阅读

    嵌入式编程和微控制器应用

    欢迎进入嵌入式编程和微控制器应用的世界!使用日益流行且价格适宜的AtmelAVR嵌入式控制器作为学习平台。本书是目前可以获得的最佳书籍之一。对于初学者,本书将会是极好的选择。随着
    发表于 09-20 07:52

    如何降低微控制器系统中的噪声影响(3)

    前篇回顾 如何降低微控制器系统中的噪声影响(1) 如何降低微控制器系统中的噪声影响(2) 在本系列文章中,我们研究了噪声以及它如何干扰基于微控制器
    的头像 发表于 08-09 12:05 478次阅读
    如何降低<b class='flag-5'>微控制器</b><b class='flag-5'>系统</b>中的噪声影响(3)

    微控制器实时操作系统实践—实时系统介绍

    实时系统有各种各样的实现方式和使用情况。本书的重点是如何使用实时操作系统(RTOS)在微控制器单元(MCU)上创建
    发表于 06-15 17:21 896次阅读
    <b class='flag-5'>微控制器</b><b class='flag-5'>实时</b>操作<b class='flag-5'>系统</b>实践—<b class='flag-5'>实时</b><b class='flag-5'>系统</b>介绍

    S32K344EHT1MMMST微控制器,它是符合ASIL-D设备标准且符合ASIL-D系统标准的微控制器吗?

    吗? 微控制器是否兼容ASIL-D 如果兼容ASIL-D,是否可以通过微控制器本身的软件来实现? 它是 符合 ASIL-D 设备标准且符合 ASIL-D 系统标准的微控制器吗?
    发表于 06-12 07:17

    MPC5642A微控制器是否支持CANOpen?

    MPC5642A 微控制器是否支持 CANOpen? 我正在使用 MPC5642A 微控制器,这个微控制器有 CANbus 接口。我想用这个微控制器与一个带有 CANopen 接口的传
    发表于 06-09 06:29

    如何将带有CANopen接口的传感与MPC5644A微控制器通信?

    我正在使用 MPC5644A 微控制器,这个微控制器有 CAN 总线接口。我想将带有 CANopen 接口的传感与这个微控制器通信,我该怎么做,
    发表于 06-02 08:21

    如何在esp8266和avr微控制器之间进行串行通信?

    我是使用 nodemcu 和 lua 脚本进行 uart 编程的新手。我正在尝试在 esp8266 和 avr 微控制器之间进行串行通信。为此,我在 nodemcu 中使用 UART 函数。我使用了
    发表于 04-27 07:54