Подключение I8259 к МП Z80.

Микропроцессоры и микроконтроллеры от фирмы Zilog, а также компьютеры на них построенные

Moderator: Shaos

Mario
Writer
Posts: 24
Joined: 27 Feb 2013 12:13
Location: 217.118.81.24

Подключение I8259 к МП Z80.

Post by Mario »

Добрый день. Помогите, плиз, разобраться с подключением контроллера прерываний к Z80.
Контроллер предполагается I8259, и суть вот в чем:
для того, что бы выдать процессору байт, содержащий часть адреса прерывающего устройства, контроллер должен получить от процессора ответ, в виде подтверждения прерывания. У интеловских 8080, 8086, етс, этот выход аппаратно присутствует. У Z80, при наличии самого режима прерываний, совместимого с интеловским, аппаратный выход подтверждения прерывания отсутствует. Ну и собственно, вопрос - как заставить контроллер выдать на шину адрес, в нужный момент, если он не в курсе, что процессор отреагировал на его запрос?
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

не взлетит.
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

А собрать вместе M1 и IORQ ?
Mario
Writer
Posts: 24
Joined: 27 Feb 2013 12:13
Location: 217.118.81.24

Post by Mario »

Нашел в мануале "...Если запрос (прерывания) воспринимается, то ЦП вырабатывает специальный цикл
M1, в котором активизируется сигнал /IORQ (вместо /MREQ). Низкий уровень сигнала /IORQ
указывает устройству, запросившему прерывание, что оно может подать на шину данных 8
разрядный вектор прерывания. В этот цикл автоматически включаются два такта ожидания Tw*
(это позволяет сравнительно легко реализовать схему приоритетных прерываний), которые дают
необходимое время для определения запросившего устройства и стабилизации вектора
прерывания на шине данных.... "
Как бы, вопрос с сигналом подтверждения прерывания решился. Лог. умножение сигналов М1 и IORQ дадут требуемый сигнал для контроллера.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

MC68k wrote:не взлетит.
Взлетит, если:
1. Восстановить сигнал INTA (как уже сказано, это M1 И IORQ)
2. Использовать только режим IM 0.
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

ВН59 выдаёт три байта команды CALL ADDR, по байту на каждый из трёх подряд сигналов процессора /INTA. А 8-разрядный вектор прерывания он не может... Или я что-то неправильно понимаю?
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Вообще то CALL 00000000 00nnn000 bin
получится похоже на RST 11nnn111 bin
Если я правильно понимаю, о чём Вы тут беседуете...
Mario
Writer
Posts: 24
Joined: 27 Feb 2013 12:13
Location: 217.118.81.24

Post by Mario »

На сколько я понял из описания системы прерываний, Z80, в режиме IM0, способен отличить RST от CALL. Это наводит на мысль о стопроцентной эмуляции ответа ВМ80.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

HardWareMan wrote:
MC68k wrote:не взлетит.
Взлетит, если:
1. Восстановить сигнал INTA (как уже сказано, это M1 И IORQ)
2. Использовать только режим IM 0.
это частный случай.

ТС, нужно именно ВН59 задействовать или сделать обработку прерываний, поступающих от разных источников?
Mario
Writer
Posts: 24
Joined: 27 Feb 2013 12:13
Location: 217.118.81.24

Post by Mario »

ТС, нужно именно ВН59 задействовать или сделать обработку прерываний, поступающих от разных источников?
Нужно через ВН59 сделать обработку прерываний от нескольких источников, с возможностью выставлять для них приоритеты программным способом (при инициализации ВН59 ).
Можно наверное было бы использовать режим IM2, но цель - реализация полноценной восьмибитной ISA шины, соответственно стандарту PC/XT.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

сколько тактов самый короткий сигнал прерывания?

а зачем Z80? сдается мне постановка задачи не совсем верная.
Mario
Writer
Posts: 24
Joined: 27 Feb 2013 12:13
Location: 217.118.81.24

Post by Mario »

MC68k wrote:сколько тактов самый короткий сигнал прерывания?

а зачем Z80? сдается мне постановка задачи не совсем верная.
Длительность самого короткого сигнала INT составляет 2 такта Z80.

Сам Z80 выбран как легко доставаемый и способный работать на частоте до20 мГц. (Z84C0020)

Смысл организации ISA совместимой шины - любое внешнее устройство системы (видеоконтроллер, rs-232, часы реального времени, клавиатура, etc... ) должно работать асинхронно процессору и общаться с ним через систему прерываний.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Mario wrote:
MC68k wrote:сколько тактов самый короткий сигнал прерывания?

а зачем Z80? сдается мне постановка задачи не совсем верная.
Длительность самого короткого сигнала INT составляет 2 такта Z80.
я имел ввиду от устройств.
Сам Z80 выбран как легко доставаемый и способный работать на частоте до20 мГц. (Z84C0020)
ok
Смысл организации ISA совместимой шины - любое внешнее устройство системы (видеоконтроллер, rs-232, часы реального времени, клавиатура, etc... ) должно работать асинхронно процессору и общаться с ним через систему прерываний.
очень сомнительный выигрыш от этой затеи с ВН59. а что это будет? подобие пека или очередной ультра спектрум? какая операционная система планируется?
Mario
Writer
Posts: 24
Joined: 27 Feb 2013 12:13
Location: 217.118.81.24

Post by Mario »

MC68k wrote: я имел ввиду от устройств.
Не меньше 100 наносекунд.
очень сомнительный выигрыш от этой затеи с ВН59. а что это будет? подобие пека или очередной ультра спектрум? какая операционная система планируется?
Думаю, это повысит производительность системы.
Система прерываний позволит устройствам самим "решать", когда процессору на них отвлекаться. Процессор, по моему мнению, не должен заниматься опросом внешних устройств или торчать в бесконечном цикле, ожидая "нажатия на клавишу".
Предполагаю использование операционной системы cp/m, ну и железо максимально заточить под ее нужды и возможности.
По скольку cp/m есть нормальная однозадачная RTOS, система аппаратных прерываний, вероятно, должна быть ей как родная.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

а я не говорил, что прерывания это плохо. я о том, что ВН59 и Z80 это несколько противоестественно и без костылей тут не обойдется.
cp/m
там экран текстовый 80*25, а я в эти игры не играю.