Что означает смещение по краю и по уровню?


35

Я изучаю микропроцессорную архитектуру 8085, и слово «триггеры» и «триггеры уровня» меня очень сильно смущают. Может кто-нибудь объяснить мне это в словах непрофессионала?

Изучая прерывания 8085 с именами RST 7.5, RST 6.5, RST 5.5 и TRAP, я столкнулся с этими словами, и они меня смутили. Здесь я приложил одну ссылку на документ, из которой я читал, и я упомянул мои диаграммы путаницы.

в документе RST 7.5 -> Edge triggered RST 5.5 -> Level triggered. TRAP -> Edge срабатывает и Level срабатывает. (почему? это имеет какое-то значение?).

ссылка на документ


Это не PDF.
звездный синий

да, это ссылка на документ PDF. Я сделал правильные изменения.
трапаанк

Ответы:


34

Я действительно не читал ваш документ, но я понимаю, почему вы смущены. Но это действительно очень простая концепция. Позволь мне объяснить.

Запуск: это означает, что цепь активна. Активизация схемы означает, что она может принимать входной сигнал и выдавать выходной сигнал. Как, например, предполагается, что у нас есть триггер. Когда схема не сработает, даже если вы дадите некоторые входные данные, она не изменит данные, хранящиеся в триггере, и не изменит выход Q или Q '. Сейчас есть в основном два типа запуска. Запуск дается в виде тактового импульса или стробирующего сигнала. В зависимости от типа используемого механизма запуска цепь станет активной в определенных состояниях тактового импульса.

  1. Запуск по уровню: при запуске по уровню цепь станет активной, когда стробирующий или тактовый импульс находится на определенном уровне. Этот уровень определяется дизайнером. У нас может быть срабатывание отрицательного уровня, при котором схема активна, когда тактовый сигнал низкий, или срабатывание положительного уровня, при котором цепь активна, когда синхросигнал высокий.

  2. Запуск по фронту : При запуске по фронту цепь становится активной на отрицательном или положительном фронте тактового сигнала. Например, если цепь запускается по положительному фронту, она будет принимать входные данные именно в то время, когда тактовый сигнал переходит от низкого уровня к высокому. Точно так же вход берется точно в то время, когда тактовый сигнал переходит от высокого к низкому при срабатывании отрицательного фронта. Но имейте в виду, что после ввода он может быть обработан все время до следующего ввода.

Это общее описание запускающих механизмов, которые также применяются к прерываниям 8085.


хорошо .. что касается запуска фронта, обычно вы должны иметь стабильные данные в течение короткого промежутка времени в течение, по крайней мере, определенного периода времени до фронта (см. таблицы данных) и сохранять его стабильным в течение определенного периода времени (см. таблицы данных). но эти времена обычно довольно короткие.
JustJeff

Я понимаю, что вы хотели объяснить, но еще один вопрос, который я упомянул в 8085, TRAP - и триггерный, и триггерный (см. документ). Итак, какова функциональность в таком случае, когда цепь чувствительна к уровню и сработала по фронту.
трапаанк

В этом случае он хочет, чтобы край также прошел определенный уровень. Итак, нам нужно что-то вроде нарастающего фронта и уровня> 3 В
Стивен Голдэйд

7

На 8085 TRAP - это немаскируемое прерывание, обычно используемое для обработки ошибок, таких как сбой питания.

Если бы это было вызвано уровнем, его код никогда не мог бы выполняться, потому что это немаскируемое прерывание. Обработчик начнет исполняться, когда он станет активным, но он все равно будет активным, поэтому обработчик начнет исполняться, но он все еще будет активным, поэтому обработчик начнет исполняться и т. Д. И т. Д. И т. Д. Поэтому он должен запускаться по фронту ,

Тем не менее, запуск по краю является проблемой, когда линия может иметь глюки. Глюки могут вызывать многократный вызов обработчика по мере глючения строки. Это очень большая проблема с TRAP, так как он не маскируется и приводит к RST.

В качестве компромисса TRAP работает, как если бы он срабатывал на уровне, за исключением того, что он распознается только тогда, когда он был низким с момента последнего распознавания. Это гарантирует, что обработчик TRAP вызывается только один раз.

Это то, что они подразумевают под «сработавшим фронтом и сработавшим уровнем».


2

* Запуск * означает активацию цепи. При срабатывании уровня цепь станет активной, когда стробирующий или тактовый импульс находится на определенном уровне. При запуске по фронту цепь становится активной на отрицательном или положительном фронте тактового сигнала.


3
Это в значительной степени то, что было сказано выше.
Брайан Карлтон

-1

Голож и всз утверждают это:

Это точно, что говорит.

Если установлено прерывание по фронту, ISR будет срабатывать только при падении / нарастании фронта импульса. Хотя, если установлено прерывание, чувствительное к уровню (как вы говорите), ISR будет срабатывать каждый раз, когда на соответствующий вывод подается сигнал низкого уровня / высокого уровня.

Короче говоря, прерывание по фронту срабатывает только при смене ребер, в то время как прерывание по уровню срабатывает, пока пульс низкий или высокий.

Таким образом, если вы установили прерывание низкого уровня, MCU будет продолжать выполнять ISR, пока на выводе низкий уровень.

Таким образом, он будет выходить и снова входить в ISR снова и снова, пока штырь низкий.

У меня сложилось впечатление, что на самом деле никто не ответил, что значит быть запущенным как на уровне, так и на уровне. И я не имею, либо.

Ответ Д. Крюгера правильно объясняет, что значит быть как на уровне, так и на границе. (По крайней мере, его ответ звучит правильно для меня, хотя я не знаком с 8085-м.) Ответ Голаза и VSZ предполагает, что прерывание маскируется. Я до сих пор не уверен, как «за исключением того, что он распознается только тогда, когда он был низким с момента последнего распознавания». отличается от того, чтобы быть вызванным краем, как бы то ни было.


Спасибо за ваш ответ, но я думаю, что OP перешел к чему-то другому и, вероятно, имеет жену и детей, так как вопрос был задан и ответил 5 лет назад. Почему бы вам не попробовать ответить на новые вопросы?
MaximGi

3
@MaximGi: я не согласен. Нет ничего плохого в том, чтобы отвечать на старые вопросы, форумы предназначены не только для постеров, но и для других, которые попадают сюда, когда ищут ответы на один и тот же вопрос самостоятельно. Новые ответы просто необходимо добавить больше информации к тем, которые уже существуют.
Мистер Мистер

1
@ MisterMystère Я никогда не говорил, что что-то не так, отвечая на старые вопросы. Но этот поздний ответ не добавляет никакого полезного контента, на вопрос уже дан правильный ответ. Также последнее утверждение неверно и противоречит правилам.
MaximGi

@MaximGi При ближайшем рассмотрении я вижу, что вы правы: мое последнее утверждение было неверным. Я исправил это. Моя цитата из Golaz и vsz может быть полезна для новых пользователей, которые не знают, что значит для себя уровень или уровень чувствительности.
Иосия Йодер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.