Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ISA bus прерывания
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
Alhen
Что-то непонятное творится с прерыванием на ISA шине: на одних компьютерах по фронту на других по срезу, длительность должна быть в определенных пределах?
Может кто подскажет что почитать потому что у "Блохина" ничего про это не написано?
SergM
В спецификации на ISA. Ее под руками нет, но 2-ю редакцию на EISA см. в приложенном файле (2.6 МБ, естественно, на английском).
-Tумблер-
Цитата(Alhen @ Sep 21 2004, 08:44 PM)
Что-то непонятное творится с прерыванием на ISA шине:


Прерывания должны быть по нарастающему фронту.
Но если кто-либо перепрограммирует контроллер прерывания
то может получиться по уровню.
Линия прерывания должна быть через резистор на землю.

Иногда из-за экономии линий прерываний делают монтажное
или с 3-м состоянием. Это может не очень хорошо работать..
т.е.:
установить прерывание - активная 1
снять прерывания - 3-й стэйт.
Если уровень убывает медленно фигня может получиться.

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

В своем проекте я формирую прерывание с помощью импульса (1мкс) -от Z к низкому и от низкого к Z. Удалось соединить несколько источников прерываний без конфликтов на одной линии IRQ. (Конфликты были программные и страшные – бесконечное множество пугающих окошек).
Кому интересны детали, привожу описание (графическую схему, текст в AHDL) части проекта касающейся прерываний.
Может я все таки, что-то делаю не так, но устройство реально работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.