Що означає спрацьовування краю та рівень спрацьовування рівня?


35

Я вивчаю мікропроцесорну архітектуру 8085, і край слова спрацьовує, і рівень спрацьовує, що нас дуже бентежить. Чи може хтось пояснити мені це слова мирянина?

Під час вивчення переривань 8085 під назвою RST 7.5, RST 6.5, RST 5.5 та TRAP я натрапив на ці слова, і вони мене збентежили. Тут я додав одне посилання на документ, з якого я читав, і я згадав свої діаграми плутанини.

у документі RST 7.5 -> Edge triged RST 5.5 -> Level triggered. TRAP -> Запущений край та запуск рівня. (чому? це має значення?).

посилання на документ


Це не pdf.
starblue

так, це посилання на документ pdf. я вніс правильні зміни.
trapaank

Відповіді:


34

Я насправді не читав вам документ, але можу зрозуміти, чому ви плутаєтесь. Але це дуже проста концепція насправді. Дозволь пояснити.

Запуск: Це означає активувати ланцюг. Активність схеми означає, що це дозволяє приймати вхід і давати вихід. Як, наприклад, припускається, що у нас є триггер. Якщо схема не спрацьовує, навіть якщо ви дасте деякі вхідні дані, вона не змінить даних, що зберігаються всередині триггера, і не змінить вихід Q або Q '. Зараз в основному є два типи спрацьовування. Спусковий сигнал подається у вигляді тактового імпульсу або сигналу решітки. Залежно від типу використовуваного механізму спуску, схема буде активізуватися в конкретних станах тактового імпульсу.

  1. Запуск рівня: при запуску рівня ланцюг активізується, коли імпульс решітки або тактовий годинник знаходиться на певному рівні. Цей рівень вирішує дизайнер. У нас може бути спрацьовування негативного рівня, при якому схема є активною, коли сигнал тактової частоти низький, або спрацьовування позитивного рівня, в якому схема активна, коли сигнал тактового сигналу високий.

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

Це загальний опис механізмів спрацьовування, які також стосуються перерв 8085.


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

Я розумію, що ви хотіли пояснити, але одне інше питання, про яке я згадував, - це в 8085 TRAP - це як ініційований край, і рівень спрацьовування (див. документ). Отже, яка функціональність у такому випадку, коли ланцюг є чутливим до рівня та краєм.
trapaank

У цьому випадку він хоче, щоб край також пройшов певний рівень. Тож нам потрібно щось на кшталт підвищення рівня та рівня> 3В
Стівен Голладе

7

У режимі 8085 TRAP - це не маскуючий перерив, який зазвичай використовується для обробки помилок, таких як відключення живлення.

Якби це було спрацьовано на рівні, його код ніколи не міг би виконати, оскільки це неможливе переривання. Обробник почне виконувати, коли він стане активним, але він все ще буде активним, тому обробник почне виконувати, але він все ще буде активним, так що обробник почне виконувати і т.д., і т.д. .

Однак спрацьовування ребер є проблемою, коли у лінії можуть бути збої. Глюки можуть призвести до того, що обробник буде викликатись декілька разів, коли лінія провалюється. Це дуже велика проблема з TRAP, оскільки він не маскується та призводить до RST.

Як компроміс, TRAP працює так, ніби він спрацьовує на рівні, за винятком того, що він розпізнається лише тоді, коли він був низьким з моменту останнього впізнавання. Це гарантує, що обробник TRAP буде викликаний лише один раз.

Це те, що вони мають на увазі під "запущеним краєм та рівнем".


2

* Запуск * означає активувати ланцюг. У рівні запускання ланцюга активізується, коли решітка або тактовий імпульс знаходяться на певному рівні. При крайовому спрацьовуванні ланцюг стає активним при негативному або позитивному краї тактового сигналу.


3
Це майже те, що було сказано вище.
Брайан Карлтон

-1

Голаж і Взз це добре заявляють:

Це точно те, що говориться.

Якщо встановлено крайове переривання, ISR отримуватиметься тільки при падаючому / піднімається краю імпульсу. Хоча якщо встановлено чутливий до рівня переривання (як ви говорите), ISR буде звільнятися щоразу, коли на відповідному штирі буде сигнал низького / високого рівня.

Коротше кажучи, крайове переривання спрацьовує лише на мінливих краях, тоді як переривання рівня запускаються до тих пір, поки пульс низький або високий.

Тож якщо у вас встановлено низький рівень переривання, MCU буде продовжувати виконувати ISR до тих пір, поки штифт низький.

Тобто він залишатиме і знову входитиме в ISR знову і знову, доки шпилька буде низькою.

Моє враження, що ніхто насправді не відповів, що означає спрацьовувати як на рівні, так і на краю. І я ні.

Відповідь Крюгера правильно пояснює, що означає бути ініційованим як на рівні, так і на краю. (Принаймні, його відповідь звучить мені правильно, хоча я не знайомий з 8085.) Відповідь Голаза і Вз передбачає, що переривання маскується. Я досі не впевнений, як "за винятком того, що він визнається лише тоді, коли він був низьким з моменту останнього впізнання". Однак вона відрізняється від того, що вона спрацьовує через край.


Дякую за вашу відповідь, але я думаю, що ОП перейшла до чогось іншого, і, мабуть, має дружину та дітей, оскільки це питання було задано і відповіли 5 років тому. Чому б не спробувати відповісти на нові запитання?
MaximGi

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

1
@ MisterMystère Я ніколи не говорив, що було щось не так у відповіді на старі питання. Але ця пізня відповідь не додає корисного контенту, на питання вже відповіли належним чином. Також останнє твердження є хибним і проти правил.
MaximGi

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