- 课程目录
- 相关资源
- 课程笔记
大家好,我是 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秒
猜你喜欢
换一换
推荐帖子
- 蓝牙4.0协议栈按键流程分析笔记
- 之前在蓝牙技术群看到好多网友不知道按键流程到底是什么情况,平时也没时间,在群里也一两句说不明白,也就说了下可以去看下zigbee按键流程过程,其实都是相通的,现在特意发帖分享下,希望能起到一个抛砖引玉的作用。 在介绍蓝牙按键流程分析之前,我们需要了解一个概念,那就是就是OSAL。什么是OSAL呢? 可能大伙对于OS是比较了解的,学了计算机的搞过OS的也基本接触过,简单来说就是一个操作系统抽象层...
-
wateras1
无线连接
- 免费申请TI 样片, 新春好礼相赠!
- 活动时间:1月22日-2月28日 如何参与 1、免费样片申请:点击以下任意样片,成功申请2种以上芯片,即有机会获奖。(必须是通过点击以下链接进入参与申请) 用于低功耗可穿戴应用的符合 Qi (WPC) 标准的无线充电器(TIDA-00318) 用于系统唤醒和中断的基于电容的人体接近检测参考设计(TIDA-00220) &...
-
EEWORLD社区
TI技术论坛
- 请求大神,关于引脚P1.0,P1.1的问题
- 我现在做2*6的按键矩阵,是用P1.0,P.1作为按键输入端,但P1.0,P.1中任何一个作为有效输入时,为什么P1输入寄存器中的低2位都为1,其他结果都正常的,是不是P1.0,P1.1作为BSL下载输入输出的影响??跪求大神!!!!!!...
-
t_y_hml
微控制器 MCU
- 【晒样片】顺利申请Ti样片成功
- 前几期的活动申请Ti的样片时总会遇到些问题,申请过程很复杂。这次就比较顺利呢。 首先在活动页面确定需要申请的样片,我选择了其中的5种:ATL431、SN74AVC1T45、 MAX3232 、TPS62130和MSP430FR4133。 然后登陆TI商城的官网,添加选定的样片型号。添加过程中,偶尔会出现某些样片会提示购买,只需要换一种封装形式就可以了。 提交订单后,很快就收到了T...
-
rain_noise
TI技术论坛
推荐文章
- 生于毫末,成于万象——德州仪器推出全球超小尺寸MCU 2025年03月21日
- “TI的MSPM0系列MCU战略是推出经济实用性的系列产品,以满足多样化的市场需求,并持续优化价格、尺寸和易用性。”德州仪器 MSP 微控制器产品线经理Yiding Luo表示。 嵌入式一直是TI的重点发展领域之一,围绕模拟产品中的电源和信号链,TI有一套完整的解决方案,同样嵌入式领域也是如此。TI提供了MCU、MPU、DSP等不同的产品线组合,全面涵盖汽车、工业以及消费...
- 德州仪器推出全球超小型 MCU,助力微型应用创新 2025年03月18日
- 德州仪器 (TI) 宣布推出全球超小型微控制器 (MCU)。对于医疗可穿戴器件和个人电子产品等紧凑型应用而言,这一成果堪称尺寸与性能维度上的重大突破。 新款 MCU 的尺寸较当前业内同类产品减小了 38%,帮助设计人员在保障性能的情况下优化布板空间。 新款 MCU 进一步扩展了德州仪器的 MSPM0 MCU 产品组合,不仅可以增强嵌入式系统的传感和控制能力,同时还能减少...
- 告别车辆外部入侵焦虑,德州仪器雷达设计助您一臂之力 2025年03月11日
- 随着机动车辆盗窃案件持续增加(根据刑事司法委员会的数据,2022 年至 2023 年的增幅达 105%),许多消费者正在寻求新的设计方案以确保车辆安全。车辆集成的视频行车记录仪作为一项新功能,有助于满足这一需求。尽管行车记录仪历来被用于记录道路事故,但越来越多的售后市场和集成行车记录仪系统开始提供一种新的保护形式:外部入侵监控。 图 1:外部入侵监控系统示例...
- 使用德州仪器D类放大器优化汽车音响系统设计 2025年03月04日
- 先进的数字处理技术和模拟半导体正在帮助音频设计人员以创新的方式提供身临其境的音频体验,以满足消费者对增强的音频技术(用于便携式扬声器、笔记本电脑、条形音箱和汽车音响系统等)的需求。 当今的汽车音响系统比早期单扬声器汽车收音机中使用的真空管供电放大器要复杂得多。有些新型汽车在整辆车中有二十多个甚至更多的扬声器。从早期的系统发展到如今的沉浸式高品质音响系统,关键在于能否为车辆...