我正在研究8085微处理器体系结构,“边缘触发”和“电平触发”一词确实使我非常困惑。有人能用外行人的话解释我吗?
在研究名为RST 7.5,RST 6.5,RST 5.5和TRAP的8085的中断时,我遇到了这些词,它们使我感到困惑。在这里,我附上了我正在阅读的文档链接,并提到了我的混淆图。
在文档RST 7.5-> Edge触发RST 5.5-> Level触发中。TRAP->边沿触发和水平触发。(为什么?这有什么区别吗?)。
我正在研究8085微处理器体系结构,“边缘触发”和“电平触发”一词确实使我非常困惑。有人能用外行人的话解释我吗?
在研究名为RST 7.5,RST 6.5,RST 5.5和TRAP的8085的中断时,我遇到了这些词,它们使我感到困惑。在这里,我附上了我正在阅读的文档链接,并提到了我的混淆图。
在文档RST 7.5-> Edge触发RST 5.5-> Level触发中。TRAP->边沿触发和水平触发。(为什么?这有什么区别吗?)。
Answers:
我没有真正阅读过您的文档,但我可以理解您为什么感到困惑。但这确实是一个非常简单的概念。让我解释。
触发:这意味着激活电路。使电路处于活动状态意味着允许电路获取输入并提供输出。例如,假设我们有一个触发器。当电路未触发时,即使您提供一些输入数据,它也不会更改触发器内部存储的数据,也不会更改输出Q或Q'。现在基本上有两种类型的触发。触发以时钟脉冲或门控信号的形式给出。根据所用触发机制的类型,电路将在时钟脉冲的特定状态下变为活动状态。
电平触发:在电平触发中,当门控或时钟脉冲处于特定电平时,电路将变为活动状态。此级别由设计师决定。我们可以有一个负电平触发,当时钟信号为低电平时电路处于活动状态;或者有一个正电平触发,其中在时钟信号为高电平时,电路处于活动状态。
边沿触发:在边沿触发中,电路在时钟信号的负或正沿处变为活动状态。例如,如果电路是上升沿触发的,它将在时钟信号从低电平变为高电平的确切时间接受输入。类似地,输入恰好在负边沿触发中时钟信号从高电平变为低电平的时间获取。但是请记住在输入之后,可以一直处理直到下一次输入为止。
那就是对触发机制的一般描述,它们也适用于8085中断。
在8085上,TRAP是不可屏蔽的中断,通常用于处理诸如电源故障之类的错误。
如果它是级别触发的,则它的代码将永远无法执行,因为这是不可屏蔽的中断。处理程序将在变为活动状态时开始执行,但仍将处于活动状态,因此该处理程序将开始执行,但仍将处于活动状态,因此该处理程序将开始执行,依此类推,等等。因此,必须进行边沿触发。
但是,当线路可能有毛刺时,边缘触发是一个问题。毛刺可能导致处理程序在发生行毛刺时被多次调用。对于TRAP来说,这是一个非常大的问题,因为它不可屏蔽并且会导致RST。
作为一种折衷,TRAP的工作方式就像是电平触发一样,只是它仅在自上次被识别以来一直处于低电平时才被识别。这样可以确保TRAP处理程序仅被调用一次。
这就是所谓的“边缘触发和水平触发”。
* 触发 *表示使电路处于活动状态。在电平触发中,当门控或时钟脉冲处于特定电平时,电路将变为活动状态。在边沿触发中,电路在时钟信号的负或正沿处变为活动状态。
Golaž和vsz说得很好:
确切地说是什么。
如果设置了边沿中断,则ISR仅在脉冲的下降沿或上升沿触发。如果设置了电平敏感中断(如您所说),则每当相应引脚上有低电平/高电平信号时,ISR就会触发。
简而言之,边沿中断仅在变化的边沿上触发,而电平中断只要脉冲为低电平或高电平就被触发。
因此,如果您设置了低电平中断,只要引脚为低电平,MCU就会继续执行ISR。
也就是说,只要引脚为低电平,它将一次又一次离开并重新进入ISR。
我的印象是,没有人真正回答过水平触发和边缘触发的含义。而且我也没有。
D Krueger的回答正确地解释了水平触发和边沿触发的含义。(即使我对8085不熟悉,至少他的回答对我来说是正确的。)Golaz和vsz的回答假定中断被屏蔽。我仍然不确定“除了自从上次被识别以来它就一直处于低位时才被识别”。但是,它不同于边沿触发。