讲座视频 - 实时系统 - 理论

+荐课 提问/讨论 评论 收藏
大家好,我是 Jon Valvano。 在本视频中,我们将了解实时系统。 我们将了解不同类型的任务, 以及如何评估某个系统是否 是实时系统,然后我们要 将实时系统划分为不同的类别。 该模块的重点在于, 确保您的机器人对重要和灾难性的事件 作出响应。 我们用于演示的特定事件是碰撞。 那么,当我们发生碰撞时,这些传感器之一将被触发, 我们的响应将是停止电机。 但是,在我们深入到具体细节之前, 让我们先来讨论一下实时系统的 一些共性。 “任务”是我们将必须执行的一个 软件事件。 我们可以把它们划分为若干个类别。 以同一 Δt 为周期 而发生的事件 -- 而发生的事件 -- 叫做一个周期性事件。 您的机器人中存在大量的此类事件。 在数据采集过程中对传感器进行采样 -- 这是一个周期性发生的实时事件。 运行您的数字控制器也是一个周期性事件。 还有我们将使用定时器 -- 不管是 systick 还是定时器 A --来让周期性事件发生。 此外,还存在其他类型的事件,它们是非周期性的, 例如输入、输出。 如果我们预期它会发生 -- 也就是说,如果预期事件如输入输出等 可以用中断进行处理,并且我们想要 管理它们 -- 比如当我们使用 WiFi和蓝牙进行串口收发, 管理它们 -- 比如当我们使用 WiFi和蓝牙进行串口收发, 那就是一个非周期性事件。 因此,我们预期有字符串会输入,但它是没有时间规律的, 这就是非周期性的含义。 我们将在本章中执行的事件是时有时无的, 它的发生是无法预料的。 如果我们有一个无法预料但很重要的事件, 我们需要处理它。 这是我们的碰撞事件,如果机器人撞到墙, 将发生该事件,并且会触发 传感器之一。 这些传感器中的一个会触发一个中断, 我们将通过停止电机来进行响应。 那么,为了评估实时特性, 我们需要几种性能测量指标。 第一种是延迟。 如果我们定义事件发生的时间 -- 该时间可能是对某个信号进行采样,或是有新输入, 或者有输出空闲,或者我们有一次碰撞 -- 这些是我们将处理的 触发事件。 那么,如果我们指定 t1 为触发事件所发生的时间, 我们可以把 t2 定义为该事件的识别时间。 那么它会触发一个中断, 中断将运行,我们开始注意到它。 那么,这是这个软件事件的开始。 这段时间 -- t2 减去 t1 -- 被定义为延迟。 这是识别事件已发生 所需的时间。 请注意,在某些应用中,这是很重要的参数。 但特定的测量,我们 -- 我们下面需要考虑的是 该事件所对应的服务。 那么,如果我们考虑该服务 -- 也就是对该事件的实际响应, 也就是对该事件的实际响应, 我们现在可以定义第三个时间点, 它是服务完成的时间。 我们可以定义响应时间 为创建该请求和 为该请求提供服务之间的时间 -- 响应时间。 好,我们让这一切实现的方法是 利用优先级。 在前面的模块中,我们已经讨论了优先级, 当我们利用分配优先级来实现 我们的实时系统时,它将变得非常重要。 好,那么让我们来定义实时系统。 我们将通过三种方式来定义它。 第一种是当大多数人在提到实时系统这个名字时 所认为的归类。 这种系统里,我们尝试解决的事件是如此重要 -- 生命攸关,人生大事 --以至于我们决不会错过它。 这是一种强实时系统。 如果您撞到墙,您最好停止电机,对吧? 它不是可选的。 您不能有时停止电机,而有时又不这么做。 如果您不停止电机,机器人将毁坏它自己, 我们将得到一堆损坏的部件。 因此,在关系到系统安全的情况下 -- 此时生命受到威胁,或机器受到威胁 -- 我们在分配任务时必须保证响应时间 或者延迟时间 小于某特定值。 这样延迟就始终小于 某个很小的范围。 不是有时候, 不是大多数时候, 而是始终如此。 这是强实时系统的特性。 您可以想一下如何来实现这个系统, 其方法是通过设置触发事件来触发中断。 其方法是通过设置触发事件来触发中断。 然后,我要将它标记为高优先级。 这就是我实现实时的方法。 我们将在下一个视频中看到, 如何使用机器人碰撞开关来实现上述功能。 除了上述系统外,还存在其他类型的实时系统 -- 它们不一定适用于机器人 -- 它们属于不同的类型。 例如,在音频流或视频流中, 我们可以定义一种严格实时系统, 以实现所需的效果,例如,如果我以流媒体方式传输音频或视频, 那么会有数据包流入或流出,对吧? 我们希望这些数据包始终存在。 我们希望一直拥有它们。 但是,有时某个数据包会丢失, 有时碰巧其中的一个数据包会丢失。 它错过了它的最后传输期限。 而当到了下一个数据包出现的时间时,它才出现。 那么,我们继续传输,但我们丢失了一个数据包。 这种情况不会威及生命,但错过了最后期限 -- 会导致质量损失。 它们表现为图像模糊,声音嘈杂, 视频跳帧…… 但丢失了一个数据包的数据流仍具有价值, 只是价值变小了。 这是一种严格实时系统。 对于互联网流媒体,我们会经常看到它。 对于机器人,我们不会经常看到它,但对于互联网 或视频/音频流,我们会经常看到它。 还是另一种某些人认为具有实时特性的系统, 它是一种弱实时系统。 这意味着,如果我有一个延迟 -- 比如说我有一个触发事件, 并且我有一个期望的响应时间, 也就是说我预期的延迟有一个期待值。 我希望该延迟较小。 这是触发事件,这是需求, 这是请求,这是期望。 这是请求,这是期望。 我们希望在这个时间点得到该数据, 或者完成软件响应。 但如果它发生延迟 -- 如果它发生延迟,所发生的是, 该响应的价值 -- 如果我们画出延迟 -- 如果我们画出延迟 -- 如果我们画出数据或系统的价值 -- 我们可以通过多种方式对价值进行定义。 我们可以在成本方面对它进行定义, 也可以在信噪比方面对价值进行定义。 假设我们具有某种方法来测量 该数据包的价值。 如果该数据包的延迟超过了期望值 -- 再说一次,这是时间, 这是用信噪比或价格衡量的 所降低的价值。 现在,可能存在一个点 -- 比如对于严格实时 -- 如果您该数据包延迟,那么它没有任何价值。 就像在早上送报纸, 比如说您在早上 7 点起床, 您在早上 9 点去上班, 您的报纸应该在早上 5:00 送达。 因此报童敲您的门 -- 嗯,不会敲您的门 -- 报童把您的报纸放在您的门口。 如果它在早上 5:00 和上午 11:00(口误,应为 7:00)之间出现, 那么它具有完整的价值。 但是,如果它在7:15 出现,您会有点抓狂, 但它仍有一些价值。 如果它在 8 点出现,还是有一些价值。 如果它直到 9 点才出现, 您会有点抓狂。 但是,如果它在 9:01 出现,而此时您已经去上班了, 那么它没有任何价值。 因此,某些数据的价值会随着延迟的增加而减小。 因此,某些数据的价值会随着延迟的增加而减小。 这就是弱实时系统。 计算机世界中存在大量的弱实时系统, 计算机世界中存在大量的弱实时系统,它们 一般和内存读取、磁盘 I/O 以及其他事情相关, 而该数据的价值 -- 该数据的延迟将导致价值降低。 然后,在某个点,它不再具有价值。 再说一次,在机器人世界, 我们所讨论的实时系统 指的是强实时系统。 说到机器人,也有一些机器人操作 完全不是实时的。 完全不是实时的。 下面是实时系统的特性。 如果您有 10 项任务,其中一些任务并不是很重要, 如果您有 10 项任务,其中一些任务并不是很重要, 例如,如果您考虑把液晶显示器 用于监控, 如果您延迟液晶显示器的输出, 机器人仍会以完全相同的功能进行赛跑。 还有您正在闪烁的 LED,我们用它进行调试, 如果 LED 不在正确的时间点闪烁, 不会发生真正的价值损失。 因此,我们可以查看系统的内部, 找到一些系统必须执行 但没有任何实际价值的操作。 我们要做的另一件事是 -- 有些任务没有任何价值 -- 如果丢失数据不会随时间流逝而造成损失, 我们将把它们放入主程序。 因此您将看到 -- 如果任务不重要, 我们可以把它放入主程序。 但对于确实重要的东西, 我们将其定义为高优先级。 我们这里说的是中断优先级,高优先级 比中等优先级更重要,而中优先级比 低优先级更重要。 因此,我们将使用中断优先级 对任务的相对重要性进行排序。 通过这种方法,对于高优先级事件, 我们将使其具有很低的延迟、 很短的响应时间。 对于低优先级事件,我们仍将具有可接受的响应时间, 对于低优先级事件,我们仍将具有可接受的响应时间, 但不一定这么高。 但不一定这么高。 因此,在我们进行性能测量时, 恰当地分配优先级对我们而言非常重要。 为了建立实时系统, 我们必须要做的第二件事是, 需要禁用中断的情况要非常非常小心。 需要禁用中断的情况要非常非常小心。 比如有一个 C 语言函数, 您可以调用它,它会将设置 I=1, 这将延迟您的所有中断。 我们在禁用中断时应非常谨慎, 因为从禁用中断到重新启用之间的时间 -- 因为从禁用中断到重新启用之间的时间 -- 这段时间 会直接导致中断延迟, 从而影响实时性。 那么,这就是我要做的第二件事。 我要做的第三件事 -- 尤其是,如果我有大量的中断 -- 那么,如果您考虑与这类似的 中断程序,现在我要说 这是高优先级, 这是中优先级, 这是低优先级。 重要的一点是, 高优先级和中优先级的中断服务函数要尽量短, 因为执行该高优先级服务函数所花费的时间实际上 会导致在中优先级事件上发生延迟。 类似地,执行高优先级所花费的时间和 执行中优先级所花费的时间将导致 在低优先级事件上发生延迟。 那么,我们将尝试最大程度地 减少中断服务例程内的执行时间, 从而减小其他中断的延迟。 因此,我们尝试一些方式 例如避免循环等。 如果您有 10 件事情要做, 与其在一个中断里执行全部 10 件事情 不如进行分解,创建 10 个中断, 这样可以使我们的中断服务程序尽可能短 -- 尤其是当存在循环而导致时间延迟时, 那会带来灾难性的后果, 我们不能让它发生。 中断服务函数中不能有长时间延迟。 中断服务函数中不能有长时间延迟。 因此我们看到,例如对于红外循线传感器, 在中断服务程序中的确有 10 微秒的延迟, 在中断服务程序中的确有 10 微秒的延迟, 我们的确有该延迟。 但我们没有在该传感器中 使用 1 毫秒延迟, 这是我们良好的程序设计习惯。 好,再说一次,将影响响应时间 以及延迟的因素是, 我们必须完成指令 -- 指令通常很短。 如果我们的系统在运行时有禁用中断的操作, 那么延迟可能很长, 因此这是我们需要注意的事情。 第三件事情是,如果程序中有低优先级或中优先级 的中断服务函数,那么运行高优先级中断所需的时间 可能会影响延迟。 很显然,延迟和响应时间之间的差异 实际上就是执行中断服务所需的时间, 所以这是一个关键。 总结一下,我们讨论了实时系统。 我们感兴趣的实时系统是 具有有限延迟的系统, 这是因为,我们将在下一个 视频中解决的特定问题是当有碰撞发生时, 线传感器会被触发, 然后需要停止电机作为响应。 这将是机器人的一项重要任务, 用于保护它自己。 好,希望您喜欢本次实验。 再说一次,在下一个视频中, 我将向您展示一些细节。
课程介绍 共计3课时,39分57秒

TI-RSLK 模块 14 - 实时系统

TI 中断 机器人 RSLK 实时系统

此模块演示如何使用优先级中断来创建实时系统。随着机器人系统变得越来越复杂,周期性中断是将多个线程合并到单个微控制器的一种方式。

推荐帖子

有人做过F28027dspCAN的通信?
本帖最后由 minjiang 于 2014-9-25 22:37 编辑 有人做过28027dsp的CAN通信吗?介绍一下经验...
minjiang 微控制器 MCU
C2000 + CCS的一个奇怪现象。
       最近没事,就玩F28027,在编程调试时发现了个问题,很奇怪,现在还没有找到答案。 硬件连接是,GPIO的5、6、7的端口分别接个上拉电阻及按键开关,用于外部输入。调试时,端口5、7可以正常响应按键动作。而端口6却不正常, 经查,外部的电路连接没有错,也没有虚焊、元件损坏等问题。 随后在调试时,点运行,后,按下GPIO6脚的按键,观察GP...
dontium 微控制器 MCU
2016 TI 电机驱动研讨会资料大放送,不容错过!(已颁奖)
颁奖链接:>>颁奖:2016 TI 电机驱动研讨会资料大放送! 活动详情>>2016 TI 电机驱动研讨会资料大放送,不容错过! 登陆或注册 myTI ,进入TI官网。 下载《2016 TI 电机驱动研讨会》任意讲义。 我们将随机抽取 50 名幸运网友赠送精美礼品。 ...
EEWORLD社区 微控制器 MCU
StarterWare在AM335X上的烧录运行
步骤: 1、下载安装StarterWare,我们团购的SK需要02.00.00.07版本。最近外网访问慢,我上传到论坛。 2、找一张miniSD卡,不需要很大,系统只有几个M而已。 3、如果你按默认路径安装,那请去C:\ti\AM335X_StarterWare_02_00_00_07\tools\sd_format下面执行TI_SDCard_boot_utility_v1_0.exe 4...
shower.xu DSP 与 ARM 处理器

推荐文章

MCU今年的重点:NPU和64位 2024年11月13日
今年非常流行一句话,叫做“无AI,不终端”。在MCU领域,也正在进行着边缘AI和TinyML的革命。 对于MCU来说,跑AI也是非常重点的应用之一。前两天,就连实时控制派系的MCU TI C2000都开始搭载NPU和64位化。可见,MCU正在加速向AI进化。 带NPU的C2000:能干什么 TI在最近推出的两款MCU,第一款是业界首款具有集成神经处理单元(NPU)...
实时控制技术如何实现可靠且可扩展的高压设计 2024年11月04日
随着功率水平需求的提升和现代电源系统的日趋复杂,对高压系统的需求也发生了重大变化。为了有效满足这些需求,有必要采用实时 MCU 或数字电源控制器来控制先进的电源拓扑,通过这些出色的拓扑来同时满足精细的规格和各种电源要求。本文将讨论数字电源控制在高压应用中的一些优势,并演示其如何助力先进电源系统的安全高效运行。 提高系统可靠性并保护电力电子设备 可靠性对于确保高压系...
PLD入门其实不难!TI带你解锁无代码逻辑设计新体验 2024年10月29日
随着电子产品小型化和功能集成度的不断提升,传统分立逻辑器件的局限性日益显现。德州仪器(TI)于近日发布了全新的可编程逻辑器件(TPLD)系列产品,旨在通过创新的低门槛、高集成度方案,为设计工程师提供更加高效、灵活、简单的逻辑器件和设计工具。 为什么TI选择进入PLD市场? 当我们片面的认为PLD市场是由Intel(Altera),AMD(Xilinx),Lattic...
德州仪器扩大氮化镓(GaN)半导体自有制造规模, 产能提升至原来的四倍 2024年10月28日
德州仪器采用当前先进的 GaN 制造技术,现启用两家工厂生产 GaN 功率半导体全系列产品 德州仪器增加了 GaN 制造投入,将两个工厂的 GaN 半导体自有制造产能提升至原来的四倍。 德州仪器基于 GaN 的半导体现已投产上市。 凭借德州仪器品类齐全的 GaN 集成功率半导体,能打造出高能效、高功率密度且可靠的终端产品。 德州仪器已成功开展在 12 英寸晶圆上...

shakencity

学习学习TI-RSLK 模块 14 - 实时系统

2019年11月28日 11:29:40

hawkier

学习了

2019年07月31日 12:06:58

大明58

学习了,不错的视频!

2019年06月27日 15:27:02

hellokt43

看看视频,学习学习一下

2019年05月16日 08:57:06

zwei9

周日继续学习下

2019年05月12日 11:32:00

dingxilindy

看看视频,学习一下。

2019年02月11日 09:56:40

led2015

学习了,不错的视频!

2019年02月10日 20:58:50

wudianjun2001

学习

2019年01月23日 10:54:46

wudianjun2001

学习了,不错的视频!

2019年01月09日 15:48:25

htwdb

学习了,不错的视频!

2018年12月27日 22:19:05

分享到X
微博
QQ
QQ空间
微信

EEWorld订阅号

EEWorld服务号

汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved