Pppdddff
Скачать 1.31 Mb.
|
Операция IFF1 IFF2 Примечание Сброс ЦП сигналом /RESET 0 0 Запрещение INT при пуске системы Команда EI 1 1 Разрешение INT (задерживается на одну команду) Команда DI 0 0 Запрещение INT Прием INT 0 0 Прием INT и обработка прерывания Команда RETI ■ ■ Выход из ISR Прием NMI 0 ■ Прием NMI и обработка прерывания Команда RETN IFF1←IFF2 ■ Выход из NMI-SR Команда LD A,I ■ ■ P/V ← IFF2 Команда LD A,R ■ ■ P/V ← IFF2 ■ состояние триггера не изменяется 6.2. Приём запросов в ЦП Реакция микропроцессора на поступивший запрос прерывания зависит от точного времени поступления этого запроса, а также запросов с более высокими приоритетами. Кроме двух входов прерывания у микропроцессора Z80 есть ещё вход запроса шины для ПДП (/BUSRQ), который имеет более высокий приоритет и, следовательно, тоже влияет на разрешение/запрещение прерывания. На рис.6.1 в упрощенном виде показаны основные аппаратные средства микропроцессора, предназначенные для приёма запросов /BUSRQ, /NMI, /INT. Каждая линия запроса снабжена соответствующим триггером приёма (Рlip-Flop): BUSRQ-FF, NMI-FF, INT-FF, в которые по нарастающему фронту последнего такта (TL) машинного цикла вводится информация о запросах. Установка какого-либо из этих триггеров означает приём соответствующего запроса в ЦП. Далее принятые запросы обрабатываются устройством управления, где в соответствии с указанными приоритетами подтверждается в первую очередь тот или иной запрос, и вырабатываются соответствующие внутренние и внешние сигналы управления. Рис. 6.1. Прием запросов /BUSRQ, /NMI, /INT Линии приема запросов имеют существенные различия. Триггером BUSRQ-FF анализируется уровень сигнала /BUSRQ по нарастающему фронту последнего такта (TL) каждого машинного цикла 3 Активный уровень сигнала /NMI сразу фиксируется входным триггером независимо от времени его поступления. Его Состояние (а не уровень /NMI) анализируется триггером NMI-FF по нарастающему фронту TL последнего цикла команды. Уровень сигнала /INT до приёма в INT-FF анализируется схемой логики маскирования, где он может быть блокирован поступающими сюда же сигналами: ü от триггера разрешения/запрещения IFF1, ü от входного триггера NMI, ü от устройства управления, который сигнализирует об обработке запросов с высшими 3 Временные диаграммы процессов при запросе шины изображены на рисунке 4.8. Описание режима ПДП для полной конфигурации системы содержится в книге 6 "Контроллер ПДП Z80DMA" и книге 7 "Z80/Построение систем. Программирование. Отладка". приоритетами. Уровень результирующего сигнала анализируется триггером INT-FF по нарастающему фронту TL последнего цикла команды. Приоритет /BUSRQ по отношению к /NMI и /INT состоит в следующем. При одновременном поступлении запроса шины и одного из запросов прерывания подтверждается запрос /BUSRQ, и шина предоставляется для ПДП. Запрос шины может прервать обработку NMI- SR или ISR на любой цикле. Во время ПДП прерывания от входов /NMI и /INT не обслуживаются. Приоритет /NMI по отношению к /INT состоит в том, что если оба запроса поступили до нараставшего фронта такта TL последнего цикла команды, то /INT не воспринимается внутренним триггером INT-F/F и, следовательно, игнорируется до конца NMI-SR. Если же в течение одной команды запрос INT поступил до нарастающего фронта TL, а NMI - после, то выполняется первая команда программы обработки INT, и только потом - переход к программе обработки NMI. При подтверждении одного из запросов прерывания (NMI либо INT) процессор вырабатывает соответствующий цикл подтверждения (см. в конце таблице 5.3). Все реакция ЦП на сигналы управления /BUSRQ, /NMI и /INT с учётом граничных условий представлены в таблице 6.2, а также в виде алгоритма на рисунке 6.2. Таблица 6.2. Реакция ЦП на запросы /BUSRQ, /NMI, /INT Сигнал Поступление сигнала Приём сигнала Действие Примечание /BUSRQ До нарастающего фронта такта TL При нарастающем фронте такта TL любого машинного цикла Подтверждение (/BUSAK) в следующем машинном цикле /BUSRQ имеет более высокий приоритет, чем /NMI и /INT /NMI Внутри цикла до нарастающего фронта такта TL Сразу фиксируется во входном триггере NMI (мин. ширина импульса 80 мс) Непосредственно после обработки этой команды – переход к программе обработки NMI (так же непосредственно после EI) Для повторного выполнения программы обработки NMI сигнала /NMI должен быть выключен на короткое время -/- Внутри цикла после нарастающего фронта TL --//-- После обработки этой команды выполняется следующая, потом переход к программе обработки NMI --//-- /INT До нарастающего фронта такта TL Только при нарастающем фронте последнего такта команды (TL) После обработки команды, если прерывания были разрешены, переход к ISR. Если прерывания запрещены - /INT игнорируется При выполнении команды EI /INT не прерывается, независимо от состояния IFF1 и IFF2. Он может быть принят при выполнении следующей за EI команды (если будет активен до нарастающего фронта TL этой команды) -/- После нарастающего фронта такта TL --//-- Блокируется независимо от состояния IFF1 и IFF2 Может быть принят при выполнении следующей команды, если будет активен до нарастающего фронта её последнего такта TL Рис. 6.2. Алгоритм обработки запросов /BUSRQ, /NMI, /INT 6.3. Обработка прерываний 6.3.1. Обработка немаскируемого прерывания Если принят запрос NMI, то по завершении текущей команды состояние счётчика команд PC автоматически сохраняется в стеке, и в PC заносится адрес 0066H. Т.о. происходит перезапуск процессора с адреса 66H. С этого места в памяти должна начинаться подпрограмма обработки NMI; завершаться она должна командой возврата RETN. Алгоритм обработки NMI изображен на рисунке 6.3, временные диаграммы вызова подпрограммы и возврата из неё - на рисунке 6.4 и рисунке 6.5 соответственно. Рис. 6.3. Алгоритм обработки немаскируемого прерывания Рис. 6.4. Вызов программы обработки немаскируемого прерывания Рис. 6.5. Возврат из подпрограммы обработки немаскируемого прерывания 6.3.2. Маскируемое прерывание. Режим 0 Этот режим аналогичен реализованному в МП Intel 8080. Для него необходима внешняя вспомогательная логика, которая в случае прерывания подает команду на шину данных ЦП. Передача этой команды происходит в цикле подтверждения INTA, когда одновременно активизируются сигналы /M1 и /IORQ (см. рисунки 4.9 и 6.6). Рис. 6.6. Подача запроса на прерывание и формирование сигнала подтверждения прерывания Т.о. происходит чтение кода операции, но не из памяти, а из прерывающего устройства. Это может быть любая команду, однако, наиболее эффективно в этом случае использование одной из восьми команд повторного запуска RST p, где p - адрес рестарта. Для использования этих команд на ШД должны быть поданы следующие комбинации битов: Команда D7 D0 RST 00H 11 000 111 RST 08H 11 001 111 RST 10H 11 010 111 RST 18H 11 011 111 RST 20H 11 100 111 RST 28H 11 101 111 RST 30H 11 110 111 RST 38H 11 111 111 Алгоритм обработки изображен на рис.6.7. Если в подпрограмме присутствует команда EI, то после выполнения следующей за ней команды происходит установка IFF1, IFF2. Эти блоки отмечены пунктиром. Как и для МП I8080, в этом режиме возможно использование контроллера прерываний 8259 (580ВН59). Этот вариант подробно рассмотрен в книге 7. Режим 0 автоматически устанавливается при выполнении общего сброса, а также соответствующей командой IM0 (Interrupt Mode 0). Рис. 6.7. Алгоритм обработки маскируемого прерывания. Режим 0. Рис. 6.6. Вызов программы обработки маскируемого прерывания ISR в режиме 0 (IM 0) 6.3.3. Маскируемое прерывание. Режим 1 Режим прерываний 1 устанавливается командой IM 1. Он применяется в системах с минимальной конфигурацией, где нежелательно наращивание аппаратной части введением вспомогательной логики. Обработка сходка с NMI, за исключением того, что вместо адреса 0066H происходит рестарт к адресу 0038H и цикл подтверждения продлевается на два такта ожидания. Возврат - по команде RET. Рис. 6.9. Алгоритм обработки маскируемого прерывания. Режим 1 Рис. 6.10. Вызов программы обработки маскируемого прерывания ISR в режиме 1 (IM 1) 6.3.4. Маскируемое прерывание. Режим 2 Режим прерываний 2 устанавливается командой IM 2. Это самый производительный режим прерываний микропроцессора Z80. Он применяется в сложных системах с развитой сетью периферийных элементов. При этом в памяти программируется таблица стартовых адресов каждой ISR (см. рис. 6.11). Таблица может быть размещена в любой области памяти с соблюдением лишь правила записи стартовых адресов: младший байт заносится в ячейку с чётным адресом (A0=0),старший байт в следующую (по возрастанию) ячейку. В случае приёма прерывания ЦП формирует 16-разрядный указатель IP (Interrupt Pointer) для выборки стартового адреса нужной программы ISR из таблицы. Для этого прерывавшим устройством в виде 8 разрядного вектора поставляется младший байт, а старики извлекается из регистра I микропроцессора. Сформированный таким образом IP указывает на ячейку памяти (в таблице), где хранится стартовый адрес ISR. Считав этот адрес из двух смежных ячеек, процессор переходит к обработке программы ISR. Возврат из неё должен происходить по команде RETI. В целом алгоритм обработки изображен на рис 6.12. В микропроцессорном комплекте Z80 предусмотрено, что периферийные БИС могут выдавать в качестве вектора прерывания только чётные байты (D0=0) - для однозначности адресации ячеек таблицы. Значит, даже при неизменном состоянии регистра I центрального процессора возможно обслуживание 128-ми устройств в режиме прерываний 2, что во многом превышает потребности микропроцессорной системы среднего класса. Для перехода к ISR в режиме 2 требуется 19 тактовых периодов (см. временные диаграммы на рис. 6.13): 7 периодов для ввода 8 разрядного вектора от прерывающего устройства, следующие 6 - для сохранения в стеке текучего состояния PC (адреса возврата), и ещё 6 - для считывания стартового адреса ISR. Подробное описание прерываний в системе с полной конфигурацией, особенно, в отношении периферийных элементов комплекта Z80, а также организации приоритетного обслуживания см. в книге 7 "Z80/Построение систем. Программирование. Отладка". Рис. 6.11. Переход к ISR в режиме прерывания 2: 1а - приём вектора прерывания устройства в ЦП, 1б - адрес возврата сохраняется в стеке, 2 - сформированный 16-разрядный IP указывает на начальный адрес ISR, 3 - начальный адрес ISR загружается в PC, 4 - считывается 1-я команда программы ISR. Рис. 6.12. Алгоритм обработки маскируемого прерывания. Режим 2. Рис. 6.13. Вызов программы обработки маскируемого прерывания ISR в режиме 2 (IM 2) 7. Технические характеристики 7.1. Схемы входных и выходных каскадов На приведенных ниже схемах приняты следующие обозначения: I (INPUT) - внешний вход; O (OUTPUT) - внешний выход; i (input) - внутренний вход; o (output) - внутренний выход; I/О (INPUT/OUTPUT) - внешний вход/выход; HOLD - внутренний сигнал перевода в третье состояние Рис. 7.1. Схема входов /WAIT, /INT, /NMI, /RESET, /BUSRQ и C. Рис. 7.2. Схема выходов /M1, /RFSH, /HALT и /BUSAK. Рис. 7.3. Схема тристабильных выходов A0-A15, /MREQ, /IORQ, /RD и /WR. Рис. 7.4. Схема тристабильных входов/выходов D0-D7 7.2. Электрические и временные параметры. 7.2.1. Статические характеристики. Все напряжения даны относительно U SS =0 В. Параметр Обозначение Единица измерения Минимальное значение Максимальное значение Пояснения Рабочее напряжение U CC В 4,75 5,25 при V m =0÷70ºC Входное напряжение U IL U IH В В -0,3 2 0,6 U CC при V m =0÷70ºC Входное напряжение тактового сигнала U ILC U IHC В В -0,3 U CC -0,6 0,45 U CC +0,3 при V m =0÷70ºC Выходное напряжение U OL U OH В В - 2,4 0,4 - при I OL =1,8мA V m =0÷70ºC при I OH =-0,25мA V m =0÷70ºC Потребление тока I CC мА - 150/200* при U CC =5B±5% и V m =0÷70ºC Входной ток утечки I LI мкА - 10 при U I =0+U CC Ток утечки трёхстабильного выхода в высокоомном состоянии I LO мкА - 10 при U O =0+U CC Ток утечки шины данных при вводе I LD мкА - 10 U I =0+U CC Входная ёмкость тактовой линии C C пФ - 35 при V m =25ºC Входная ёмкость C I пФ - 5 и f=1МГц Параметр Обозначение Единица измерения Минимальное значение Максимальное значение Пояснения Выходная ёмкость C O пФ - 10 * в числителе - для Z80, в знаменателе - для Z80A. 7.2.2. Динамические характеристики Z80 При U CC =5B±5%, C L =50 пФ и V m =0÷70ºC. Параметр Обозначение Минимальное значение нс Максимально е значение нс Период тактовых импульсов t C 400 *) Длительность низкого уровня тактового сигнала t W(CL) 180 2000 Длительность высокого уровня тактового сигнала t W(CH) 180 **) Длительность переднего/заднего фронта тактового сигнала t r , t f - 30 Установка сигнала /WAIT до H-L перехода такта t а(WT) 70 - Установка сигнала /RESET до L-H перехода такта t а(RS) 90 - Установка сигнала /INT до L-H перехода такта t а(IT) 60 - Установка сигнала /BUSRQ до L-H перехода такта t а(BQ) 80 - Установка данных до L-H перехода такта в цикле M1 t а(D) 50 - Установка данных до H-L перехода такта в циклах M2-M5 t ac(D) 60 - Задержка сигналов на шинах t H 0 - Ширина импульса низкого уровня сигнала /NMI t W(NMI) 80 - *) t C =t W(CL) +t W(CH) +t r +t f **) Не имеет фиксированного значения, т.е. при высоком уровне тактового сигнала МП Z80 может находиться в устойчивом состоянии сколь угодно долго. Времена задержек При U CC =5B±5%, C L =50 пФ и V m =0÷70ºC. Задержка Обозначение Максимальное значение, нс от H-L перехода такта до /M1=L t DL(M1) 130 от H-L перехода такта до /M1=H t DH(M1) 130 от H-L перехода такта до /MREQ=H t DHC(MR) 100 от L-H перехода такта до /MREQ=H t DHC(MR) 100 от H-L перехода такта до /MREQ=L t DHC(MR) 100 от L-H перехода такта до /IORQ=L t DLC(IR) 90 от H-L перехода такта до /IORQ=L t DLC(IR) 110 от L-Н перехода такта до /IORQ=H t DHC(IR) 100 от H-L перехода такта до /IORQ=H t DHC(IR) 110 от L-H перехода такта до /RD=L t DLC(RD) 100 от H-L перехода такта до /RD=L t DLC(RD) 130 от L-H перехода такта до /RD=H t DHC(RD) 100 от H-L перехода такта до /RD=H t DHC(RD) 110 от L-H перехода такта до /WR=L t DLC(WR) 80 от H-L перехода такта до /WR=L t DLC(WR) 90 от L-H перехода такта до /WR=H t DHC(WR) 100 Задержка Обозначение Максимальное значение, нс от L-H перехода такта до /RFSH=H t DH(RF) 150 от L-H перехода такта до /RFSH=L t DL(RF) 180 от H-L перехода такта до /HALT=L t D(HT) 300 от L-H перехода тахта до /BUSAK=L t DL(BA) 120 от H-L перехода такта до /BUSAK=H t DH(BA) 110 вывода адреса t D(AD) 145 адреса до перехода к третьему состоянию t F(AD) 110 вывода данных t D(D) 230 данных до перехода к третьему состоянию в цикле записи t F(D) 90 сигналов /MREQ, /IORQ, /RD, /WR до перехода к третьему состоянию t F(C) 100 Время задержки увеличивается на 10 нс при возрастании ёмкости нагрузки на каждые 50 пФ до максимально 200 пФ для шины данных и 100 пФ для шин адреса и управления. Дополнительные данные о времени. Вывод адреса до активизации /MREQ в циклах обращения к памяти: t acm = t w(CH) + t F – 75 нс Вывод адреса до активизации /IORQ, /RD или /WR в циклах ввода/вывода: t ac1 = t C – 80 нс Задержка адреса после снятия /RD или WR: t ca = t w(CL) + t r – 40 нс Задержка адреса после снятия /RD или /WR при переходе в третье состояние: t caf = t w(CL) + t r – 60 нс Вывод данных до активизации /WR в циклах обращения к памяти: t dcm = t C – 210нС Вывод данных до активизации /WR в циклах ввода-вывода: t ac1 = t w(CL) + t r – 210 нс Задержка данных после снятия /WR: t cdf = t w(CL) + t r – 60 нс Ширина импульса низкого уровня /MREQ: t w(MRL) = t C – 40 нс Ширина импульса высокого уровня /MREQ: t w(MRH) = t w(CH) + t F – 30 нс Ширина импульса низкого уровня /WR: t w(WRL) = t C – 40 нс Вывод /M1 до активизации /IORQ в цикле подтверждения прерывания: t M1 = 2t C + t w(CH) +t F – 80 нс 7.2.3. Динамические характеристики Z80A При U CC =5B±5%, C L =50пФ и V m =0÷70ºC. Параметр Обозначение Минимальное значение нс Максимальное значение нс Период тактовых импульсов t C 250 *) Длительность низкого уровня тактового сигнала t W(CL) 110 2000 Длительность высокого уровня тактового сигнала t W(CH) 110 **) Длительность переднего/заднего фронта тактового сигнала t r , t f - 30 Параметр Обозначение Минимальное значение нс Максимальное значение нс Установка сигнала /WAIT до H-L перехода такта t а(WT) 70 - Установка сигнала /RESET до L-H перехода такта t а(RS) 60 - Установка сигнала /INT до L-H перехода такта t а(IT) 80 - Установка сигнала /BUSRQ до L-H перехода такта t а(BQ) 50 - Установка данных до L-H перехода такта в цикле M1 t аc(D) 35 - Установка данных до H-L перехода такта в циклах M2-M5 t ac(D) 50 - Задержка сигналов на шинах t H 0 - Ширина импульса низкого уровня сигнала /NMI t W(NMI) 80 - *) t C =t W(CL) +t W(CH) +t r +t f **) Не имеет фиксированного значения, т.е. при высоком уровне тактового сигнала МП Z80A может находиться в устойчивом состоянии сколь угодно долго. |