При проектировании устройств сопряжения для ISA надо учитывать также электрические характеристики сигналов. Стандарт магистрали определяет требования к входным токам приёмников и источников сигналов каждой из плат расширения. Не соблюдение этих требований может нарушить функционирование компьютера.
Выходные каскады передатчиков магистральных сигналов должны выдавать ток низкого уровня не меньше 24 мА, а ток высокого уровня – не меньше 3 мА. Входные каскады приёмников магистральных сигналов должны потреблять входной ток низкого уровня не больше 0,8 мА, а входной ток высокого уровня – не больше 0,04 мА.
В структуре любого устройства сопряжения можно выделить две части: интерфейсную и операционную (рис.2.4). Интерфейсная часть обеспечивает непосредственное сопряжение данного устройства с ISA, то есть обеспечивает необходимые параметры сигналов с соблюдением протокола обмена. Операционная часть несёт на себе функции, ради которых, собственно, и создавалось устройство сопряжение. Подходы к проектированию этих двух частей имеют принципиальные отличия.
Операционные части различных устройств могут быть самыми разнообразными в зависимости от решаемых задач. Интерфейсные части практически у всех устройств одинаковы или очень похожи между собой, так какинтерфейсные функции жёстко определяются протоколом выбранного стандартного интерфейса (в данном случае ISA).
В соответствии с определением интерфейса, в число главных функций интерфейсной части входит обеспечение информационной, электрической и конструктивной совместимости. Информационная совместимость предполагает точное выполнение протоколов обмена и правильное использование сигналов магистрали. Электрическая совместимость подразумевает согласование уровней входных, выходных и питающих напряжений и токов. Вопрос о конструктивной совместимости в основном касается конечного этапа разработки устройства – проектирования печатной платы и сводится к точному соблюдению всех размеров платы, разъёмов и крепёжных элементов.
К основным функциям интерфейсной части можно отнести:
- буферирование сигналов магистрали;
- селектирование или дешифрация линий адреса;
- выработка внутренних стробирующих сигналов.
Буферирование сигналов применяется для электрического согласования и выполняет две основные функции: электрическая развязка (для всех сигналов) и передача сигналов в нужном направлении (только для двунаправленных сигналов). Иногда с помощью буферирования реализуется также мультиплексирование сигналов [6].
Другой основной функцией интерфейсной части является селектирование и дешифрация адреса. Эту функцию выполняет узел, называемый селектором адреса, который должен выработать сигналы, соответствующие выставлению на шине адреса магистрали кода адреса, принадлежащего данному устройству, или одного из зоны адресов данного устройства. Важно, чтобы адреса проектируемого устройства не перекрывались с адресами, занятыми другими устройствами компьютера. В том случае если устройство сопряжения работает в адресном пространстве памяти селектор адрес должен обрабатывать 20 разрядов адресной шины (при полном объёме памяти до 1 Мбайт) или больше при бóльшем объёме памяти.
Выработка внутренних стробирующих сигналов должна происходить синхронно с магистральными командными сигналами (-IOR, -IOW, -SMEMR, -SMEMW и др.). Для организации асинхронного обмена по шине ISA в низких скоростных характеристик устройства, используется сигнал I/OCHRDY, снятие которого, установка в состояние логического нуля, говорит о неготовности к циклу чтения (записи).
Существует четыре основных способа обмена данными с компьютером:
- по опросу флага готовности
- в режиме прерывания программы
- в режиме прямого доступа к ОЗУ компьютера
- с использованием автономного контроллера с буферной памятью в качестве накопителя.
Перечисленные способы обмена данными отличаются различными скоростями передачи данных и уровнем сложности аппаратуры, необходимой для их реализации.
Обмен экспериментальных данных с компьютером, работающим по опросу флага готовности внешнего устройства, требует минимальных затрат на разработку и изготовление дополнительной аппаратуры. Данный способ обмена характеризуется достаточно высокой скоростью реакции на обслуживание. Однако это обходится постоянной занятостью процессора тривиальными операциями опроса флага [3].
Если необходимость в обмене возникает достаточно редко, то наиболее приемлемым будет способ обмена с использованием прерывания. Реализация режима прерывания программы требует некоторого усложнения интерфейса связи с объектом, но это позволяет освободить процессор от периодического опроса устройства сопряжения и он в этом случае может заниматься другими задачами. Однако, использование аппаратных прерываний ни в коем случае не увеличивает скорости обмена с устройством сопряжения, наоборот, уменьшает её. Это связано с тем, что реакция на прерывание гораздо медленнее, чем на выставление флага готовности, т.к. чтобы обслужить прерывание процессор должен завершить текущий цикл, сохранить в стеке текущие значения своих регистров и только потом инициализировать контроллер прерываний и перейти на программу обработки прерывания [3,6].
Прямой доступ к памяти предназначен для быстрого обмена данными между устройством ввода-вывода и системной памятью компьютера. Использование режима ПДП весьма специфично. Во-первых, это связано с тем, что максимальный темп выдачи и приёма информации возможен только при передачи большого массива данных и даже в режиме блочной передачипересылка одного байта (слова) требует нескольких тактов SYSCLC и занимает около 1 мкс. Как известно в поле адресов устройств ввода-вывода свободных адресов крайне мало, поэтому на практике возможен только последовательный доступ к буферному ОЗУ устройства ввода-вывода, что дополнительно снижает скорость обмена, и требует усложнения аппаратуры.
Наибольшую скорость выдачи или приёма данных обеспечивают не устройства сопряжения с прямым доступом, а устройства с так называемой разделяемой памятью, в которых быстрая буферная память, расположенная на плате устройства сопряжения доступна как со стороны внешнего устройства, так и со стороны магистрали ISA. При этом процессор рассматривает эту буферную память, как часть системного ОЗУ. В этом случае приём информации в ОЗУ компьютера или выдача её может осуществляться со скоростью до 50 Мбайт/с и выше.
Рассматривая устройства сопряжения имеющие буферные ОЗУ, можно выделить две большие группы:
- устройства сопряжения с непрерывным режимом обмена с внешним устройством. В этом случае буферное ОЗУ непрерывно выдаёт на внешнее устройство или принимает от него данные, а процессор в определённые моменты соответственно записывает или считывает необходимые ячейки этого ОЗУ.
- устройства сопряжения с периодическим режимом обмена. Буферное ОЗУ может находиться в одном из двух режимов: в режиме обмена с компьютером (запись или чтение содержимого ОЗУ) или в режиме обмена с внешним устройством (приём или выдача).
По методу доступа к буферному ОЗУ со стороны компьютера устройства сопряжения могут быть разделены на следующие группы:
- устройства с параллельным доступом к буферному ОЗУ;
- устройства с последовательным доступом к буферному ОЗУ.
Схематически оба метода представлены на рисунке 2.5.
При параллельном доступе каждой ячейке буферного ОЗУ соответствует свой адрес в адресном пространстве компьютера. В этом случае любой задатчик магистрали (процессор, контроллер ПДП и т.д.) может общаться с буферным ОЗУ как с системным, используя для этого все средства, все методы адресации, команды обработки строк. Данные, с точки зрения программиста, накапливаются непосредственно в памяти компьютера.
Естественно это наиболее быстрый метод общения с буферным ОЗУ (а также и с внешним устройством), так как в данном случае не требуется времени для перекачки данных из системной памяти в буферное ОЗУ или наоборот. Адресное пространство устройств ввода-вывода в данном случае использовать нецелесообразно, так как в нем нет достаточно больших непрерывных зон свободных адресов. Кроме того, возможности процессора по работе с памятью гораздо богаче, чем по общению с устройствами ввода-вывода.
При последовательном доступе данные буферного ОЗУ по очереди проецируются в один из адресов в адресном пространстве компьютера (или реже в несколько адресов). То есть задатчик при обращении по одному и тому же адресу в разное время общается с разными ячейками буферного ОЗУ. Главный недостаток этого подхода резкое снижение темпа обмена, а очевидное преимущество – экономия адресов магистрали [6].
Размеры плат микро-PC составляют всего 114×124 мм, поэтому для создания крупных систем нужно использовать микросхемы высокой степени интеграции и стараться разметить всю схему в минимальное число корпусов элементов.
Наряду со стандартными, в системе накопления, как и в любой другой системе, присутствуют и нестандартные части, специфичные для данной разработки. Это могут быть различные схемы управления, схемы реализации заданного алгоритма и т.п. Процесс реализации нестандартной части устройства, как правило, связан применением микросхем малой и средней степени интеграции. Применение малых и средних ИС неизбежно приводит к росту числа корпусов ИС, усложнением монтажа и отладки, снижением быстродействия и надёжности схем. Заказать для системы специализированные ИС высокого уровня интеграции затруднительно, т.к. это связано с большими затратами средств и времени. Существующее противоречие может быть разрешено путём применения современных программируемых логических интегральных схем [7].