Описание магистрали ISA.

Порядок обмена по системной магистрали ISA

Структура персонального компьютера типа IBM PC с точки зрения разработчика устройств сопряжения (УС), ориентированных на ISA, может быть условно представлена в виде рис.1.1 Рис.1.1 Структура персонального компьютера Помимо центрального процессора, системной памяти (оперативной и постоянной), стандартных средств ввода/вывода, входящих в любую микропроцессорную систему, здесь следует отдельно выделить встроенные контроллеры прерываний и прямого доступа к памяти (ПДП), перестановщик байтов данных, программируемый таймер и контроллер регенерации памяти. Все эти устройства, расположенные на материнской (системной) плате (motherboard) компьютера или вставленные в слоты ISA (устройства ввода/вывода), участвуют в обмене по магистрали и могут быть использованы разрабатываемыми УС.

Задатчиками (хозяевами) шины могут выступать центральный процессор (самая обычная ситуация), контроллер ПДП, контроллер регенерации и некоторые внешние платы. В каждом цикле обмена задатчиком всегда является только одно устройство. Контроллер ПДП захватывает магистраль (запрещает работу центрального процессора) на время прямой передачи информации между устройством ввода/вывода и памятью (по запросу устройства ввода/вывода). Контроллер регенерации периодически становится задатчиком магистрали для проведения циклов регенерации системной динамической памяти через заданные интервалы времени. Для 32-разрядных компьютеров (386DX, 486, Pentium и т.д.) обмен процессора с памятью (а иногда и с другими устройствами) осуществляется через быстродействующую локальную шину VLB или через PCI.

Особенности магистрали ISA

Магистраль ISA была разработана специально для персональных компьютеров типа IBM PC AT (начиная с процессора i80286) и является фактическим стандартом для всех изготовителей этих компьютеров. В то же время отсутствие официального международного статуса магистрали ISA (она не утверждена в качестве стандарта ни одним международным комитетом по стандартизации) приводит к тому, что многие производители допускают некоторые, порой существенные отклонения от фирменного стандарта.

ISA явилась расширением магистрали компьютеров IBM PC и IBM PC XT. В ней было увеличено количество разрядов адреса и данных, увеличено число линий аппаратных прерываний и каналов ПДП, а также повышена тактовая частота. К 62-контактному разъему прежней магистрали был добавлен 36-контактный новый разъем. Тем не менее, совместимость была сохранена, и платы, предназначенные для IBM PC XT, годятся и для IBM PC AT. Характерное отличие ISA состоит в том, что ее тактовый сигнал не совпадает с тактовым сигналом процессора, как это было в XT, поэтому скорость обмена по ней не пропорциональна тактовой частоте процессора.

Магистраль ISA относится к демультиплексированным (то есть имеющим раздельные шины адреса и данных) 16-разрядным системным магистралям среднего быстродействия. Обмен осуществляется 8- или 16-разрядными данными. На магистрали реализован раздельный доступ к памяти компьютера и к устройствам ввода/вывода (для этого имеются специальные сигналы). Максимальный объем адресуемой памяти составляет 16 Мбайт (24 адресные линии). Максимальное адресное пространство для устройств ввода/вывода - 64 Кбайта (16 адресных линий), хотя практически все выпускаемые платы расширения используют только 10 адресных линий (1 Кбайт). Магистраль поддерживает регенерацию динамической памяти, радиальные прерывания и прямой доступ к памяти. Допускается также захват магистрали.

Наиболее распространенное конструктивное исполнение магистрали - разъемы (слоты), установленные на материнской плате компьютера, все одноименные контакты которых соединены между собой, то есть все разъемы абсолютно равноправны. Особенностью конструктивного решения магистрали является то, что платы расширения (дочерние платы), подключаемые к ее разъемам, могут иметь самые различные размеры (длина платы ограничена снизу размером разъема, а сверху - длиной корпуса компьютера). Платы расширения имеют интерфейсные разъемы магистрали, выполненные печатными проводниками. Количество установочных мест для плат расширения зависит от типа корпуса компьютера и составляет обычно 2-3 для Ultra-slimline корпусов, 3-4 для Slimline корпусов, 5-6 для Desktop корпусов, 4-5 для Mini-tower корпусов, 5-7 для Midi-tower корпусов и более 8 для Big-tower корпусов.

Разъем магистрали ISA разделен на две части, что позволяет уменьшать размеры 8-разрядных плат расширения, а также использовать платы, разработанные для компьютеров IBM PC XT. Внешний вид плат расширения показан на рис.1.2. Назначение контактов разъемов представлено в таблице 1 (здесь знак минус перед названием сигнала говорит о том, что активным уровнем этого сигнала является уровень логического нуля, в противном случае активным уровнем будет уровень логической единицы). Рис.1.2 Нумерация контактов разъема (для IBM PC XT - только A1...A31 и B1...B31

Отметим, что в магистрали ISA используется положительная логика на шинах адреса и данных, то есть единице соответствует высокий уровень напряжения, а нулю - низкий). На магистрали присутствуют четыре напряжения питания: +5 В, -5 В, +12 , В и -12 В, которые могут использоваться платами расширения.

Табл. 1 Назначение контактов разъема ISA (I - входной сигнал, О - выходной сигнал, I/O - двунаправленный сигнал).

Контакт | Цепь | I/O | Контакт | Цепь | I/O
Al | -I/O CH CK | I | Bl | GND | -
А2 | SD7 | I/O | B2 | RESET DRV | 0
A3 | SD6 | I/O | B3 | +5 В | -
А4 | SD5 | I/O | B4 | IRQ9 (IRQ2) | I
А5 | SD4 | I/O | B5 | -5В | -
А6 | SD3 | I/O | B6 | DRQ2 | I
А7 | SD2 | I/O | B7 | -12В | -
А8 | SD1 | I/O | B8 | OWS | I
А9 | SDO | I/O | B9 | +12В | -
А10 | I/O CH RDY | I | B10 | GND | -
All | AEN | 0 | Bll | -SMEMW | 0
Al2 | SA19 | I/O | B12 | -SMEMR | 0
A13 | SA18 | I/O | B13 | -IOW | I/O
A14 | SA17 | I/O | B14 | -IOR | I/O
A15 | SA16 | I/O | B15 | -DACK3 | 0
A16 | SA15 | I/O | B16 | DRQ3 | I
A17 | SA14 | I/O | B17 | -DACK1 | 0
A18 | SA13 | I/O | B18 | DRQ1 | I
A19 | SA12 | I/O | B19 | -REFRESH | I/O
A20 | SA11 | I/O | B20 | SYSCLK | 0
A21 | SA10 | I/O | B21 | IRQ7 | I
A22 | SA9 | I/O | B22 | IRQ6 | I
A23 | SA8 | I/O | B23 | IRQ5 | I
A24 | SA7 | I/O | B24 | IRQ4 | I
A25 | SA6 | I/O | B25 | IRQ3 | I
A26 | SA5 | I/O | B26 | -DACK2 | 0
A27 | SA4 | I/O | B27 | T/C | 0
A28 | SA3 | I/O | B28 | BALE | 0
A29 | SA2 | I/O | B29 | +5 В | -
A30 | SA1 | I/O | B30 | OSC | 0
A31 | SAO | I/O | B31 | GND | -
Cl | -SBHE | I/O | Dl | -MEM CS16 | I
C2 | LA23 | I/O | D2 | -I/O CS16 | I
СЗ | LA22 | I/O | D3 | IRQ10 | I
C4 | LA21 | I/O | D4 | IRQ 11 | I
C5 | LA20 | I/O | D5 | IRQ 12 | I
C6 | LA19 | I/O | D6 | IRQ15 | I
C7 | LA18 | I/O | D7 | IRQ 14 | I
C8 | LA17 | I/O | D8 | -DACKO | 0
C9 | -MEMR | I/O | D9 | DRQO | I
C10 | -MEM | I/O | D10 | -DACK5 | 0
Cll | SD8 | I/O | Dll | DRQ5 | I
C12 | SD9 | I/O | D12 | -DACK6 | 0
C13 | SD10 | I/O | D13 | DRQ6 | I
C14 | SD11 | I/O | D14 | -DACK7 | 0
C15 | SD12 | I/O | D15 | DRQ7 | I
C16 | SD13 | I/O | D16 | +5 В | -
C17 | SD14 | I/O | D17 | -MASTER | I
C18 | SD15 | I/O | D18 | GND | -

Сигналы магистрали ISA

Рассмотрим теперь назначение сигналов магистрали ISA и их особенности.

SAO...SA19 - фиксируемые адресные разряды (они действительны в течение всего цикла обмена). Используются для передачи 20 младших разрядов адреса памяти и для адресов устройств ввода/вывода. При обращении к устройствам ввода/ вывода действительны только сигналы SAO...SA15 (но практически все платы расширения работают только с SAO...SA9). Распределение адресов устройств ввода/вывода представлено в таблице 2, а распределение адресов памяти - в таблице 3. Легко заметить, что значительная часть этих адресов занята стандартными устройствами компьютера. При регенерации памяти действительны только сигналы SAO...SA7, состояния старших разрядов не определены. Логика всех сигналов SAO...SA19 - положительная. В режиме MASTER эти сигналы вырабатывает устройство, захватившее магистраль. Тип выходных каскадов - три состояния.

LA17...LA23 - нефиксируемые адресные разряды. Используются для адресации памяти и выработки сигнала -MEM CS 16. Действительны только в начале цикла обмена. Исполнитель должен фиксировать их по отрицательному фронту сигнала BALE. При обращении к устройствам ввода/вывода эти сигналы имеют уровень логического нуля. Логика положительная. Тип выходного каскада - три состояния. Для фиксации необходимо использовать регистр типа "защелка" (с записью по уровню), стробируемый сигналом BALE (например, КР1533ИРЗЗ, К555ИР22). При прямом доступе к памяти эти сигналы действительны в течение всего цикла обмена, как и SAO...SA19. В режиме MASTER эти сигналы вырабатывает устройство, захватившее магистраль. Тип выходных каскадов - три состояния.

BALE (Bus Address Latch Enable - разрешение защелкивания адреса) - сигнал стробирования адресных разрядов. Его отрицательный фронт соответствует действительности адреса на линиях SAO...SA19 и LA17...LA23. Может использоваться устройствами ввода/вывода для заблаговременной подготовки к предстоящему обмену информацией (применяется редко). Тип выходного каскада - ТТЛ.

-SBHE (System Bus High Enable - разрешение старшего байта) - определяет тип цикла передачи данных (8- или 16-разрядный). Вырабатывается параллельно с сигналами SAO...SA19 и может рассматриваться как дополнительный разряд адреса. Становится активным при передаче старшего байта или 16-разрядного слова (определяется сигналом SAG), пассивен при передаче младшего байта. В режиме MASTER источником этого сигнала является устойство, которое захватило магистраль. Тип выходного каскада - три состоя ния. В таблице 4 приведены типы выполняемых операций при различных значениях сигналов -SBHE и SAO в случае программного обмена, а в таблице 1.6 - в случае прямого доступа к памяти.

SDO...SD15 - разряды данных. По линиям SDO...SD7 передается младший байт, по линиям SD8...SD15 - старший байт. Обмен данными с 8-разрядными платами расширения осуществляется по линиям SDO...SD7. Устройство может активизи ровать шину данных, если к нему идет обращение с циклом чтения или если оно захватило магистраль (в режиме MASTER). Логика сигналов положительная. Тип выходных каскадов - три состояния.

-SMEMR, -MEMR (Memory Read - чтение памяти) - стробы чтения данных из памяти. Память должна выставлять данные при активизации этих сигналов. Сигнал -SMEMR вырабатывается только при обращении к адресам, не превышающим FFFFF (в пределах 1 Мбайта), сигнал -MEMR - при обращении ко всем адресам. В режиме MASTER эти сигналы вырабатывает устройство, захватившее магистраль. Тип выходных каскадов - три состояния.

-SMEMW, -MEMW (Memory Write - запись памяти) - стробы записи данных в память. Память должна принимать данные по положительному (заднему) фронту этих сигналов. Сигнал -SMEMW вырабатывается только при обращении я адресам, не превышающим FFFFF (в пределах 1 Мбайта), сигнал -MEMW - при обращении ко всем адресам. В режиме MASTER эти сигналы вырабатывает устройство, захватившее магистраль. Тип выходных каскадов - три состояния.

-IOR (I/O Read) - строб чтения данных из устройств ввода/ вывода. Устройство ввода/вывода должно выставлять свои данные при активизации сигнала -IOR и снимать их при снятии -IOR. В режиме MASTER этот сигнал вырабатывает устройство, захватившее магистраль. Тип выходного каскада - три состояния.

-IOW (I/O Write) - строб записи данных в устройства ввода/ вывода. Устройство ввода/вывода должно принимать данные по положительному (заднему) фронту сигнала -IOW. В режиме MASTER этот сигнал вырабатывает устройство, захватившее магистраль. Тип выходного каскада - три состояния.

-MEM CS16 (Memory Cycle Select - выбор цикла для памяти) - сигнал выставляется памятью для сообщения задатчику о том, что она имеет 16-разрядную организацию. При отсутствии этого сигнала выполняется 8-разрядный обмен, Сигнал вырабатывается при распознавании памятью своего адреса на линиях LA17...LA23. Процессор фиксирует его по заднему фронту сигнала BALE. Тип выходного каскада - открытый коллектор.

-I/O CS16 (I/O Cycle Select - выбор цикла для устройства ввода/вывода) - сигнал выставляется устройством ввода/вывода для сообщения задатчику о том, что оно имеет 16-разрядную организацию. При отсутствии этого сигнала выполняется 8-разрядный обмен. Сигнал вырабатывается при распознавании устройством ввода/вывода своего адреса на линиях SAO...SA15. Тип выходного каскада - открытый коллектор.

I/O CH RDY (I/O Channel Ready - готовность канала ввода/ вывода) - сигнал снимается (делается низким) исполнителем

(устройством ввода/вывода или памятью) по переднему фронту сигналов -IOR и -IOW в случае, если он не успевает выполнить требуемую операцию в темпе задатчика. При этом реализуется асинхронный обмен. Если исполнитель успевает работать в темпе задатчика, сигнал не снимается (фактически не устанавливается в низкий уровень). Цикл обмена в ответ на снятие этого сигнала продлевается на целое число периодов сигнала SYSCLK. Сигнал I/O CH RDY не должен сниматься на время, большее заданного в данном компьютере (по стандарту - 15 мкс), иначе компьютер-переходит к обработке немаскируемого прерывания. Тип выходного каскада - открытый коллектор.

-I/O CH CK (I/O Channel Check - проверка канала ввода/ вывода) - сигнал вырабатывается любым исполнителем (устройством ввода/вывода или памятью) для информирования задатчика о фатальной ошибке, например об ошибке четности при доступе к памяти. Сигнал вызывает немаскируемое прерывание. Тип выходного каскада - открытый коллектор.

-OWS (0 Wait States - 0 тактов ожидания) - выставляется исполнителем для информирования задатчика о необходимости проведения цикла обмена без вставки такта ожидания, если длительность стандартного цикла обмена велика для него. Вырабатывается после перехода сигнала BALE в низкий уровень. Должен быть синхронизован с сигналом SYSCLK. Используется редко. Тип выходного каскада - открытый коллектор.

-REFRESH (Refresh - регенерация) - сигнал выставляется контроллером регенерации для информирования всех устройств на магистрали о выполнении циклов регенерации динамического ОЗУ компьютера (каждые 15 мкс). При регенерации выполняется псевдочтение из одного из 256 адресов ОЗУ (активизируются только разряды адреса SAO...SA7). Полный цикл регенерации - около 4 мс. Тип выходного каскада - открытый коллектор.

RESET DRV (Reset of Driver - сброс устройства) - сигнал сброса в начальное состояние всех устройств на магистрали. Вырабатывается центральным процессором при включении или сбое питания, а также при нажатии на кнопку RESET компьютера. Внешние платы должны в ответ на этот сигнал (длительностью не менее 1 мс) перевести все свои выходы в высокоимпедансное состояние. Тип выходного каскада - ТТЛ.

SYSCLK (System Clock - системный такт) - сигнал системного тактового генератора со скважностью 2 (меандр). В большинстве компьютеров его частота равна 8 МГц независимо от тактовой частоты процессора. Если в программе SETUP предусмотрена возможность изменения тактовой частоты магистрали, пользователь может задавать ее в широких пределах. Но для обеспечения наибольшей совместимости со всеми имеющимися платами расширения ISA не рекомендуется поднимать эту частоту выше 8 МГц. К тому же на производительность новых компьютеров в целом она влияет незначительно. В компьютерах XT сигнал SYSCLK - это тактовый сигнал процессора. Тип выходного каскада - три состояния.

OSC - не синхронизированный с SYSCLK сигнал кварцевого генератора с частотой 14,31818 МГц со скважностью 2. Может использоваться платами расширения в качестве тактового сигнала, так как его частота одинакова для всех компьютеров с магистралью ISA. Тип выходного каскада - ТТЛ.

IRQ (Interrupt Request - запрос прерывания) - сигналы запроса радиальных прерываний. Запросом является положительный переход на соответствующей линии IRQ. Сигнал должен удерживаться до начала обработки процессором запрошенного прерывания. Тип выходного каскада - ТТЛ. На каждой линии IRQ должен быть один выход. Иногда в литературе можно встретить рекомендацию применять выходы с тремя состояниями, но все равно больше одного выхода на линию быть не должно во избежание конфликтов сигналов. Многие входы IRQ заняты системными ресурсами компьютера (табл. 6). Сигналы IRQO...IRQ2, IRQ8 и IRQ13 задействованы на системной плате и недоступны платам расширения. В компьютере используются два 8-разрядных контроллера прерываний. Сигналы IRQO...IRQ7 относятся к первому из них, a IRQ8...IRQ15 - ко второму. Для каскадирования второго контроллера прерываний задействован вход IRQ2. В связи с этим запросы прерывания имеют следующие приоритеты в порядке возрастания: IRQ7, IRQ6, IRQ5, IRQ4 IRQ3, IRQ15, IRQ14, IRQ12, IRQ11, IRQ10, IRQ9.

DRQ (DMA Request - запрос ПДП) - сигналы запросов прямого доступа к памяти (ПДП). Запросом является положительный переход на соответствующей линии DRQ. Сигнал должен удерживаться до получения ответного сигнала -DACK с тем же номером. Тип выходного каскада - ТТЛ. На каждой линии DRQ должен быть один выход. В компьютере используются два контроллера ПДП. Каналы ПДП, соответствующие первому контроллеру (сигналы DRQO...DRQ3) предназначены для 8-битного обмена, а соответствующие второму котроллеру (DRQ5...DRQ7) - для 16-битного. Канал DRQ4 используется для каскадирования контроллеров и недоступен пользователям. DRQO имеет наивысший приоритет, DRQ7 - наинизший. В IBM PC XT канал DRQO использо вался для регенерации динамической памяти. Канал DRQ1 зарезервирован для контроллера бисинхронного обмена SDLC, а канал DRQ2 - для контроллера гибкого диска.

-BACK (DMA Acknowledge - подтверждение ПДП) - сигналы подтверждения предоставления прямого доступа. Вырабатываются в ответ на соответствующий сигнал DRQ в случае, если прямой доступ предоставлен данному каналу. Удерживаются до окончания прямого доступа. Тип выходного каскада - ТТЛ.

AEN (Address Enable - разрешение адреса) - используется в режиме ПДП для сообщения всем платам расширения, что производится цикл ПДП. Устанавливается и снимается параллельно с адресом. При его переходе в активное состояние все платы расширения, не участвующие в данном ПДП, должны отключаться от магистрали (переходить в пассивное состояние). Тип выходного каскада - ТТЛ.

Т/С (Terminal Count - окончание счета) - устанавливается в режиме ПДП тогда, когда по текущему каналу ПДП закончен счет циклов пересылок данных. Тип выходного каскада - ТТЛ.

-MASTER (Master - хозяин, задатчик) - используется платой расширения, желающей стать задатчиком магистрали. В этом случае надо выставить сигнал DRQ и, получив в ответ сигнал

-DACK, установить сигнал -MASTER, а затем через минимум один период SYSCLK можно выставлять адрес и через минимум два периода SYSCLK можно вырабатывать стробы обмена. Если -MASTER удерживается более 15 мкс, то динамическое ОЗУ компьютера требует регенерации (разрешения сигнала -REFRESH). Тип выходного каскада - открытый коллектор.

Стандартом магистрали ISA установлены ограничения на максимальное значение тока, потребляемого каждой платой расширения (они связаны только с возможностями используемого разъема). Значения этих токов для всех напряжений питания приведены в таблице 7. Отметим, что максимальный ток потребления всеми используемыми платами расширения определяется типом источника питания данного компьютера и не стандартизован. Вообще же'мощность блока питания зависит от класса компьютера и может варьироваться от 100-150 Вт (для slim-корпусов) до 300-330 Вт (для bigtower). Некоторые современные "зеленые" компьютеры имеют блоки питания с мощностью не более 75 Вт. Но наиболее типичные параметры источника питания IBM PC AT мощностью 200 Вт приведены в таблице 8.

Выходные напряжения источника достигают номинального уровня за время не более 100 мс после включения питания. Источники, как правило, имеют встроенную защиту от перегрузок, которая включается за время 20 мс. Источник должен быть обязательно нагружен по напряжениям +5 В и +12 В. Если по этим выходам не будет обеспечен минимальный ток потребления, это воспринимается как перегрузка. Для выхода из перегрузки надо выключить и снова включить питание источника через время не менее 1с.

Табл. 2. Распределение адресов устройств ввода/вывода ISA (адреса даны в 16-ричном коде).

Адреса | Назначение
000...01F | Контроллер ПДП 1
020...03F | Контроллер прерываний 1
040...05F | Программируемый таймер
060...06F | Контроллер клавиатуры
070...07F | Часы реального времени
080...09F | Регистр страницы ПДП
OAO...OBF | Контроллер прерываний 2
OCO...ODF | Контроллер ПДП 2
OFO...OFF | Математический сопроцессор
170...177 | Накопитель на жестком диске (второй)
1F0...1F7 | Накопитель на жестком диске (первый)
200...207 | Игровой порт (джойстик)
278...27F | Параллельный порт LPT2
2C0...2DF | Адаптер EGA 2
2F8...2FF | Последовательный порт COM2
300...31F | Прототипные платы
320...32F | Накопитель на жестком диске XT
360...36F | Резервные адреса
370...377 | Накопитель на гибком диске (второй)
378...37F | Параллельный порт LPT1
380...38F | Контроллер бисинхронного обмена SDLC2
3A0...3AF | Контроллер бисинхронного обмена SDLC1
3B0...3DF | Адаптер VGA
3B0...3BF | Адаптер монохромного дисплея MDA и принтера
3C0...3CF | Адаптер EGA 1
3D0...3DF | Адаптер CGA
3F0...3F7 | Накопитель на гибком диске (первый)
3F8...3FF | Последовательный порт СОМ1

Табл. 3. Распределение адресов памяти.

Адреса памяти | Назначение
000000...0003FF | Таблица векторов прерываний
000000...09FFFF | Память DOS и пользовательских программ
OAOOOO...OAFFFF | Память дисплея EGA или VGA
OBOOOO...OB7FFF | Память монохромного дисплея MDA
OB8000...0BFFFF | Память дисплея CGA
OCOOOO...OC3FFF | ПЗУ BIOS для EGA/VGA
OC8000...0DFFFF | ПЗУ устройств ввода/вывода
OEOOOO...OEFFFF | Резерв ПЗУ BIOS на материнской плате
OFOOOO...OFFFFF | ПЗУ BIOS на материнской плате

Табл. 4. Тип выполняемых операций в зависимости от сигналов -SBHE и SAO при программном обмене (L - младший байт, Н - старший байт, УВВ - устройство ввода/вывода).

Задатчик (процессор) |  |  | Исполнитель (УВВ) |  | Выполняемый цикл
Размер данных | -SBH | SAO | Размер данных | -CS16 | Размер данных | Операция: чтение запись
8 | 1 | 0 | 8 | 1 | 8 | L->L | L->L
8 | 0 | 1 | 8 | 1 | 8 | L->H | H->L
8 | 1 | 0 | 16 | 0 | 8 | L->L | L->L
8 | 0 | 1 | 16 | 0 | 8 | H->H | H->H
16 | 0 | 0 | 8 | 1 | 8 | L->L | L->L
16 | 0 | 0 | 16 | 0 | 16 | L->L H->H | L->L H->H

Табл. 5. Тип выполняемых операций в зависимости от сигналов -SBHE и SAO при ПДП (L - младший байт, Н - старший байт, УВВ - устройство ввода/вывода).

УВВ | Контроллер ПДП |  | Память |  | Выполняемый цикл
Размер данных | -SBHE | SAO | Размер данных | -CS16 | Размер данных | Операция: чтение запись
8 | 1 | 0 | 8 | 1 | 8 | L->L | L->L
8 | 1 | 0 | 16 | 0 | 8 | L->L | L->L
8 | X | 1 | 8 | 1 | 8 | L->L | L->L
8 | X | 1 | 16 | 0 | 8 | H->L | L->H
16 | 0 | 0 | 8 | 1 | 8 | Запрещено
16 | 0 | 0 | 16 | 0 | 16 | L->L H->H | L->L H->H

Табл. 6. Назначение аппаратных прерываний ISA.

Номер прерывания IRQ | INT | Назначение
0 | 08h | Программируемый таймер
1 | 09h | Контроллер клавиатуры
2 | 0Ah | Каскадирование второго контроллера
8 | 70h | Часы реального времени (только AT)
9 | 71h | Программно переадресовано на IRQ2
10 | 72h | Резерв
11 | 73h | Резерв
12 | 74h | Резерв
13 | 75h | Математический сопроцессор
14 | 76h | Контроллер жесткого диска
15 | 77h | Резерв
3 | 0Bh | Последовательный порт COM2
4 | 0Ch | Последовательный порт СОМ1
5 | 0Dh | Параллельный порт LPT2
6 | 0Eh | Контроллер гибкого диска
7 | 0Fh | Параллельный порт LPT1

Табл. 7. Максимальные токи потребления платами расширения.

Напряжение | 8-разрядная плата (XT) | 16-разрядная плата
+5 В | 3,0 А | 4,5 А
-5В | 1,5А | 1,5А
+12 В | 1,5А | 1,5А
-12В | 1.5А | 1,5А

Табл.8. Допустимые токи потребления от источника питания.

Напряжение питания источника | Допустимый ток нагрузки
+5В | 7,0...19.8А
-5В | 0,0...0,ЗА
+12В | 2,5...7,ЗА
-12В | 0,0...0,ЗА

Циклы магистрали ISA

В режиме программного обмена информацией на магистрали ISA выполняются четыре типа циклов:

  • цикл записи в память;
  • цикл чтения из памяти;
  • цикл записи в устройство ввода/вывода;
  • цикл чтения из устройства ввода/вывода.

    Наиболее часто УС проектируются как устройства ввода/вывода. Временные диаграммы циклов обмена для этого случая приведены на рис. 1.3 (все временные параметры (в наносекундах) приведены для частоты SYSCLK, равной 8 МГц). Циклы начинаются с выставления задатчиком адреса на линиях SAO...SA15 и сигнала -SBHE. Отметим, что несмотря на потенциальную возможность адресации по 16 линиям адреса, чаще всего используются только 10 младших линий SAO...SA9, так как большинство разработанных ранее плат расширения используют только их, и, следовательно, за исключением особых случаев нет смысла обрабатывать старшие разряды SA10...SA15. Рис.1.3 Временные диаграммы циклов программного обмена с устройствами ввода/вывода В ответ на получение адреса исполнитель, распознавший свой адрес, должен сформировать сигнал -I/O CS16 в случае, если обмен должен быть 16-разрядным.

    Далее следует собственно команда чтения или записи. При цикле чтения задатчик выставляет сигнал -IOR, в ответ на который исполнитель (УС) должен выдать данные на шину данных. Эти данные должны быть сняты исполнителем после окончания сигнала -IOR. В цикле записи задатчик выставляет записываемые данные и сопровождает их стробом записи -IOW. Здесь надо отметить, что хотя в соответствии со стандартом установка записываемых данных предшествует выставлению -IOW, в некоторых компьютерах реализуется обратный порядок: сначала выставляется -IOW, а затем появляются данные. Поэтому при проектировании УС надо рассматривать как момент действительности данных только задний (положительный) фронт сигнала -IOW.

    В случае, когда УС не успевает выполнить требуемую от него команду в темпе магистрали, оно может приостановить на целое число периодов сигнала SYSCLK завершение цикла чтения или записи с помощью снятия (перевода в низкий уровень) сигнала I/O CH RDY (так называемый удлиненный цикл). Это производится в ответ на получение сигнала -IOR или -IOW. Сигнал I/O CH RDY может удерживаться низким не более 15,6 мкс, в противном случае процессор переходит в режим обработки немаскируемого прерывания. Отметим, что некоторые изготовители персональных компьютеров указывают в сопроводительной документации другие допустимые величины этого временного интервала (например, 2,5 мкс), так что не следует ориентироваться на максимальную величину, указанную в стандарте, иначе нет гарантии работы УС во всех компьютерах.

    На рис.1.4 приведены временные диаграммы циклов обмена с памятью (указаны только временные интервалы, отличающиеся от аналогичных на рис. 1.3). Для асинхронного режима обмена (удлиненного цикла) здесь также используется сигнал I/O CH RDY. Отметим, что УС, работающее как память, должно обрабатывать все адресные разряды, включая LA17...LA23. Рис.1.4 Временные диаграммы циклов программного обмена с памятью Помимо циклов программного обмена на магистрали ISA могут выполняться также циклы прямого доступа к памяти (ПДП). Временная диаграмма для этого случая показана на рис.1.5. Так как магистраль ISA имеет раздельные стробы чтения и записи для устройств ввода/вывода и для памяти, пересылка данных в режиме ПДП производится за один машинный цикл. То есть если данные надо переслать из устройства ввода/вывода в память, то одновременно производится чтение данных из устройства ввода/вывода (по сигналу -IOR) и их запись в память (по сигналу -MEMW). Аналогично производится пересылка данных из памяти в устройство ввода/вывода (по сигналам -MEMR и -IOW). Цикл ПДП начинается с запроса ПДП от исполнителя, желающего произвести обмен, с помощью одного из сигналов DRQ. После освобождения магистрали текущим задатчиком (например, процессором) контроллер ПДП формирует соответствующий сигнал -DACK, говорящий о предоставлении ПДП запросившему его устройству. Затем контроллер ПДП вырабатывает адрес ячейки памяти, Рис.1.5 Временные диаграммы циклов ПДП (t-время предоставления ПДП, Т - период сигнала SYSCLK) с которой будет проиводиться обмен в текущем цикле, и сигнал AEN, который говорит устройству ввода/вывода о том, что к нему вдет обращение в режиме ПДП. После этого выставляется строб чтения (-IOR или -MEMR), в ответ на который источник передаваемых данных выставляет свою информацию на шину данных, и строб записи (-MEMW или -IOW), по которому данные записываются в приемник данных. Здесь так же, как и в обычном цикле возможен асинхронный обмен (удлиненный цикл) с использованием сигнала I/O CH RDY.

    Одной из особенностей магистрали ISA является необходимость проведения регенерации динамической памяти компьютера с помощью специальных циклов регенерации на магистрали. Временная диаграмма цикла регенерации показана на рис. 1.6. Эти циклы выполняет входящий в состав материнской платы компьютера контроллер регенерации, который должен для этого получать управление магистралью каждые 15 микросекунд. Рис.1.6. Временные диаграммы циклов регенерации (Т - период сигнала SYSCLK) Во время цикла регенерации производится чтение одной из 256 ячеек памяти (для адресации используются только восемь младших разрядов адреса SAO...SA7). При этом читаемая информация нигде не используется, то есть это цикл псевдочтения. Проведение 256 циклов регенерации, то есть псевдочтение из 256 последовательных адресов ОЗУ, обеспечивает полное освежение информации в ОЗУ и ее непрерывное сохранение. Если по каким-то причинам цикл регенерации не производит ся вовремя, то возможна утеря информации в ОЗУ. Цикл регенерации включает в себя выставление сигналов -REFRESH, адреса SAO...SA7 и -MEMR. В случае необходимости может использоваться сигнал I/O CH RDY.

    Электрические характеристики линий ISA

    При проектировании УС помимо протоколов обмена по магистрали надо учитывать также электрические характеристики сигналов. Стандарт магистрали определяет требования к входным и выходным токам приемников и источников сигнала каждой из плат расширения. Несоблюдение этих требований может нарушить функционирование всего компьютера и даже вывести его из строя.

    Выходные каскады передатчиков магистральных сигналов УС должны выдавать ток низкого уровня не меньше 24 мА (это относится ко всем типам выходных каскадов), а ток высокого уровня-не меньше 3 мА (для выходов с тремя состояниями и ТТЛ).

    Входные каскады приемников магистральных сигналов должны потреблять входной ток низкого уровня не больше 0,8 мА, а входной ток высокого уровня - не больше 0,04 мА.

    Кроме этого необходимо учитывать, что максимальная длина печатного проводника от контакта магистрального разъема до вывода микросхемы не должна превышать 65 миллиметров, а максимальная емкость относительно земли по каждому контакту магистрального разъема не должна быть больше 20 пФ.

    К некоторым линиям магистрали подключены нагрузочные резисторы, идущие на шину питания +5 В. К линиям -IOR, -IOW, -MEMR, -MEMW, -SMEMR, -SMEMW, -I/O CH СК подключены резисторы 4,7 кОм, к линиям -I/O CS 16, -MEM CS 16, -REFRESH, -MASTER, -OWS - 300 Ом, а к линии I/O CH RDY - 1 к0м. Кроме того к некоторым линиям магистрали подключены последовательные резисторы: к линиям -IOR, -IOW, -MEMR, -MEMW, -SMEMR, -SMEMW и OSC - резисторы номиналом 22 Ом, а к линии SYSCLK - 27 Ом.

    Габаритные размеры платы ISA.

    Рис.1.7. Размеры печатной платы ISA (все размеры в миллиметрах) На рис.1.7 приведены габаритные размеры платы ISA, a также размеры всех разъемов и вырезов платы. Отметим, что на рисунке указана только макимальная длина платы" но эта длина может изменяться и ограничена она снизу только размерами одного разъема (правого по рисунку) дли 8-битных устройств или размерами двух разъемов для 16-. битных устройств.

    Расстояния между центрами печатных проводников контактов разъемов должны составлять 2,54 мм. Платы должны изготавливаться из фольгированного стеклотекстолита толщиной 1,6 мм (отклонение не больше 0,2 мм). Коробление платы не должно превышать 1,3 мм на всей длине платы. Максимальная высота компонентов на собранной плате не должна превышать 10 мм.

    Список литературы.

    Разработка устройств сопряжения. Ю.В. Новиков О.А. Калашников С.Э. Гуляев. - М.: "Эком" Москва, 2000.