Перейти к содержанию
    

ISA bus прерывания

Что-то непонятное творится с прерыванием на ISA шине: на одних компьютерах по фронту на других по срезу, длительность должна быть в определенных пределах?

Может кто подскажет что почитать потому что у "Блохина" ничего про это не написано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В спецификации на ISA. Ее под руками нет, но 2-ю редакцию на EISA см. в приложенном файле (2.6 МБ, естественно, на английском).

eisabook.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то непонятное творится с прерыванием на ISA шине:

 

Прерывания должны быть по нарастающему фронту.

Но если кто-либо перепрограммирует контроллер прерывания

то может получиться по уровню.

Линия прерывания должна быть через резистор на землю.

 

Иногда из-за экономии линий прерываний делают монтажное

или с 3-м состоянием. Это может не очень хорошо работать..

т.е.:

установить прерывание - активная 1

снять прерывания - 3-й стэйт.

Если уровень убывает медленно фигня может получиться.

 

После начала производства контроллеров (в том числе на основе x86)

и одноплатных компьютеров с ISA на их основе появилась

возможность программировать линии прерываний как угодно

индивидуально. Это от конкретных разработчиков и программистов

зависит.

:(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу поделиться своим экспериментом с прерываниями на шине ISA.

Согласно книге EISA System Architecture (глава 4) запрос на прерывание производится с линии имеющей Z-состояние без каких-либо подтягивающих резисторов. Запрос на прерывание - это переход от низкого в Z-состояние. Контроллер прерываний сам имеет подтягивающий резистор и когда устройство запрашивает прерывание, то переход от низкого в Z состояние фактически является переходом от низкого к высокому на входе контроллера. Сам факт перехода запоминается контроллером и когда процессор откликается на прерывание, происходит проверка текущего состояния линии вызвавшей прерывание, если на ней высокий уровень – все нормально это действительно запрос на прерывание, если низкий - это помеха или ошибка.

 

В своем проекте я формирую прерывание с помощью импульса (1мкс) -от Z к низкому и от низкого к Z. Удалось соединить несколько источников прерываний без конфликтов на одной линии IRQ. (Конфликты были программные и страшные – бесконечное множество пугающих окошек).

Кому интересны детали, привожу описание (графическую схему, текст в AHDL) части проекта касающейся прерываний.

Может я все таки, что-то делаю не так, но устройство реально работает.

INT_ISA.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...