Подключение I8259 к МП Z80.
Moderator: Shaos
-
- Writer
- Posts: 24
- Joined: 27 Feb 2013 12:13
- Location: 217.118.81.24
Подключение I8259 к МП Z80.
Добрый день. Помогите, плиз, разобраться с подключением контроллера прерываний к Z80.
Контроллер предполагается I8259, и суть вот в чем:
для того, что бы выдать процессору байт, содержащий часть адреса прерывающего устройства, контроллер должен получить от процессора ответ, в виде подтверждения прерывания. У интеловских 8080, 8086, етс, этот выход аппаратно присутствует. У Z80, при наличии самого режима прерываний, совместимого с интеловским, аппаратный выход подтверждения прерывания отсутствует. Ну и собственно, вопрос - как заставить контроллер выдать на шину адрес, в нужный момент, если он не в курсе, что процессор отреагировал на его запрос?
Контроллер предполагается I8259, и суть вот в чем:
для того, что бы выдать процессору байт, содержащий часть адреса прерывающего устройства, контроллер должен получить от процессора ответ, в виде подтверждения прерывания. У интеловских 8080, 8086, етс, этот выход аппаратно присутствует. У Z80, при наличии самого режима прерываний, совместимого с интеловским, аппаратный выход подтверждения прерывания отсутствует. Ну и собственно, вопрос - как заставить контроллер выдать на шину адрес, в нужный момент, если он не в курсе, что процессор отреагировал на его запрос?
-
- Maniac
- Posts: 287
- Joined: 05 Nov 2008 19:47
- Location: 81.28.208.238
-
- Writer
- Posts: 24
- Joined: 27 Feb 2013 12:13
- Location: 217.118.81.24
Нашел в мануале "...Если запрос (прерывания) воспринимается, то ЦП вырабатывает специальный цикл
M1, в котором активизируется сигнал /IORQ (вместо /MREQ). Низкий уровень сигнала /IORQ
указывает устройству, запросившему прерывание, что оно может подать на шину данных 8
разрядный вектор прерывания. В этот цикл автоматически включаются два такта ожидания Tw*
(это позволяет сравнительно легко реализовать схему приоритетных прерываний), которые дают
необходимое время для определения запросившего устройства и стабилизации вектора
прерывания на шине данных.... "
Как бы, вопрос с сигналом подтверждения прерывания решился. Лог. умножение сигналов М1 и IORQ дадут требуемый сигнал для контроллера.
M1, в котором активизируется сигнал /IORQ (вместо /MREQ). Низкий уровень сигнала /IORQ
указывает устройству, запросившему прерывание, что оно может подать на шину данных 8
разрядный вектор прерывания. В этот цикл автоматически включаются два такта ожидания Tw*
(это позволяет сравнительно легко реализовать схему приоритетных прерываний), которые дают
необходимое время для определения запросившего устройства и стабилизации вектора
прерывания на шине данных.... "
Как бы, вопрос с сигналом подтверждения прерывания решился. Лог. умножение сигналов М1 и IORQ дадут требуемый сигнал для контроллера.
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
-
- Doomed
- Posts: 598
- Joined: 10 Mar 2012 16:21
- Location: РФ
-
- Writer
- Posts: 24
- Joined: 27 Feb 2013 12:13
- Location: 217.118.81.24
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
-
- Writer
- Posts: 24
- Joined: 27 Feb 2013 12:13
- Location: 217.118.81.24
Нужно через ВН59 сделать обработку прерываний от нескольких источников, с возможностью выставлять для них приоритеты программным способом (при инициализации ВН59 ).ТС, нужно именно ВН59 задействовать или сделать обработку прерываний, поступающих от разных источников?
Можно наверное было бы использовать режим IM2, но цель - реализация полноценной восьмибитной ISA шины, соответственно стандарту PC/XT.
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
-
- Writer
- Posts: 24
- Joined: 27 Feb 2013 12:13
- Location: 217.118.81.24
Длительность самого короткого сигнала INT составляет 2 такта Z80.MC68k wrote:сколько тактов самый короткий сигнал прерывания?
а зачем Z80? сдается мне постановка задачи не совсем верная.
Сам Z80 выбран как легко доставаемый и способный работать на частоте до20 мГц. (Z84C0020)
Смысл организации ISA совместимой шины - любое внешнее устройство системы (видеоконтроллер, rs-232, часы реального времени, клавиатура, etc... ) должно работать асинхронно процессору и общаться с ним через систему прерываний.
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
я имел ввиду от устройств.Mario wrote:Длительность самого короткого сигнала INT составляет 2 такта Z80.MC68k wrote:сколько тактов самый короткий сигнал прерывания?
а зачем Z80? сдается мне постановка задачи не совсем верная.
okСам Z80 выбран как легко доставаемый и способный работать на частоте до20 мГц. (Z84C0020)
очень сомнительный выигрыш от этой затеи с ВН59. а что это будет? подобие пека или очередной ультра спектрум? какая операционная система планируется?Смысл организации ISA совместимой шины - любое внешнее устройство системы (видеоконтроллер, rs-232, часы реального времени, клавиатура, etc... ) должно работать асинхронно процессору и общаться с ним через систему прерываний.
-
- Writer
- Posts: 24
- Joined: 27 Feb 2013 12:13
- Location: 217.118.81.24
Не меньше 100 наносекунд.MC68k wrote: я имел ввиду от устройств.
Думаю, это повысит производительность системы.очень сомнительный выигрыш от этой затеи с ВН59. а что это будет? подобие пека или очередной ультра спектрум? какая операционная система планируется?
Система прерываний позволит устройствам самим "решать", когда процессору на них отвлекаться. Процессор, по моему мнению, не должен заниматься опросом внешних устройств или торчать в бесконечном цикле, ожидая "нажатия на клавишу".
Предполагаю использование операционной системы cp/m, ну и железо максимально заточить под ее нужды и возможности.
По скольку cp/m есть нормальная однозадачная RTOS, система аппаратных прерываний, вероятно, должна быть ей как родная.
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW