Author |
Message |
Mario
Writer
Joined: 27 Feb 2013 12:13 Posts: 24 Location: 217.118.81.24
|
Добрый день. Помогите, плиз, разобраться с подключением контроллера прерываний к Z80.
Контроллер предполагается I8259, и суть вот в чем:
для того, что бы выдать процессору байт, содержащий часть адреса прерывающего устройства, контроллер должен получить от процессора ответ, в виде подтверждения прерывания. У интеловских 8080, 8086, етс, этот выход аппаратно присутствует. У Z80, при наличии самого режима прерываний, совместимого с интеловским, аппаратный выход подтверждения прерывания отсутствует. Ну и собственно, вопрос - как заставить контроллер выдать на шину адрес, в нужный момент, если он не в курсе, что процессор отреагировал на его запрос?
|
27 Feb 2013 12:30 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
не взлетит.
|
27 Feb 2013 16:44 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
А собрать вместе M1 и IORQ ?
|
27 Feb 2013 18:20 |
|
|
Mario
Writer
Joined: 27 Feb 2013 12:13 Posts: 24 Location: 217.118.81.24
|
Нашел в мануале "...Если запрос (прерывания) воспринимается, то ЦП вырабатывает специальный цикл
M1, в котором активизируется сигнал /IORQ (вместо /MREQ). Низкий уровень сигнала /IORQ
указывает устройству, запросившему прерывание, что оно может подать на шину данных 8
разрядный вектор прерывания. В этот цикл автоматически включаются два такта ожидания Tw*
(это позволяет сравнительно легко реализовать схему приоритетных прерываний), которые дают
необходимое время для определения запросившего устройства и стабилизации вектора
прерывания на шине данных.... "
Как бы, вопрос с сигналом подтверждения прерывания решился. Лог. умножение сигналов М1 и IORQ дадут требуемый сигнал для контроллера.
|
28 Feb 2013 00:03 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Взлетит, если:
1. Восстановить сигнал INTA (как уже сказано, это M1 И IORQ)
2. Использовать только режим IM 0.
|
28 Feb 2013 00:51 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
ВН59 выдаёт три байта команды CALL ADDR, по байту на каждый из трёх подряд сигналов процессора /INTA. А 8-разрядный вектор прерывания он не может... Или я что-то неправильно понимаю?
|
28 Feb 2013 09:48 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Вообще то CALL 00000000 00nnn000 bin
получится похоже на RST 11nnn111 bin
Если я правильно понимаю, о чём Вы тут беседуете...
|
28 Feb 2013 13:38 |
|
|
Mario
Writer
Joined: 27 Feb 2013 12:13 Posts: 24 Location: 217.118.81.24
|
На сколько я понял из описания системы прерываний, Z80, в режиме IM0, способен отличить RST от CALL. Это наводит на мысль о стопроцентной эмуляции ответа ВМ80.
|
28 Feb 2013 13:44 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
это частный случай.
ТС, нужно именно ВН59 задействовать или сделать обработку прерываний, поступающих от разных источников?
|
28 Feb 2013 19:41 |
|
|
Mario
Writer
Joined: 27 Feb 2013 12:13 Posts: 24 Location: 217.118.81.24
|
Нужно через ВН59 сделать обработку прерываний от нескольких источников, с возможностью выставлять для них приоритеты программным способом (при инициализации ВН59 ).
Можно наверное было бы использовать режим IM2, но цель - реализация полноценной восьмибитной ISA шины, соответственно стандарту PC/XT.
|
01 Mar 2013 00:51 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
сколько тактов самый короткий сигнал прерывания?
а зачем Z80? сдается мне постановка задачи не совсем верная.
|
01 Mar 2013 01:11 |
|
|
Mario
Writer
Joined: 27 Feb 2013 12:13 Posts: 24 Location: 217.118.81.24
|
Длительность самого короткого сигнала INT составляет 2 такта Z80.
Сам Z80 выбран как легко доставаемый и способный работать на частоте до20 мГц. (Z84C0020)
Смысл организации ISA совместимой шины - любое внешнее устройство системы (видеоконтроллер, rs-232, часы реального времени, клавиатура, etc... ) должно работать асинхронно процессору и общаться с ним через систему прерываний.
|
01 Mar 2013 04:05 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
я имел ввиду от устройств. ok очень сомнительный выигрыш от этой затеи с ВН59. а что это будет? подобие пека или очередной ультра спектрум? какая операционная система планируется?
|
01 Mar 2013 04:27 |
|
|
Mario
Writer
Joined: 27 Feb 2013 12:13 Posts: 24 Location: 217.118.81.24
|
Не меньше 100 наносекунд.
Думаю, это повысит производительность системы.
Система прерываний позволит устройствам самим "решать", когда процессору на них отвлекаться. Процессор, по моему мнению, не должен заниматься опросом внешних устройств или торчать в бесконечном цикле, ожидая "нажатия на клавишу".
Предполагаю использование операционной системы cp/m, ну и железо максимально заточить под ее нужды и возможности.
По скольку cp/m есть нормальная однозадачная RTOS, система аппаратных прерываний, вероятно, должна быть ей как родная.
|
01 Mar 2013 04:57 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
а я не говорил, что прерывания это плохо. я о том, что ВН59 и Z80 это несколько противоестественно и без костылей тут не обойдется.
там экран текстовый 80*25, а я в эти игры не играю.
|
01 Mar 2013 06:04 |
|
|