В качестве интерфейса устройства с персональным компьютером была выбрана синхронная шина ISA. Выбор обоснован целым рядом причин: устройство данного типа более удобно во внутреннем исполнении, кроме того, применение шины ISA позволяет использовать устройство в устаревших компьютерах, в которых и может возникнуть потребность в аппаратном ускорении сжатия. Интерфейс с шиной организован на микросхемах серий 1533 и 556. Малые входные токи микросхем данных серий позволяют обходится без специальных буферных элементов.
При организации обмена с внешними устройствами по шине ISA возможно адресовать до 64k регистров, однако большинство плат расширения используют только 10 младших адресных линий, то есть работают в диапазоне адресов до одного килобайта. Иными словами можно дешифровать только 10 адресных линий. В качестве дешифратора адреса используется микросхема ППЗУ КР556РТ13 (DD3), имеющая 10 адресных линий и хранящая до 1024 4-разрядных слов. Использование ПЗУ в качестве дешифратора позволяет изменять адреса регистров устройства путём замены или перепрограммирования ПЗУ. Так как на время операций прямого доступа к памяти на шине ISA все устройства должны блокировать схемы дешифрации адреса, на разрешающий вход ПЗУ CS1 с шины подаётся сигнал AEN, который переключается в единицу при операциях DMA. В ПЗУ используется только два выхода. Один из них (SEL, вывод 14) переключается в ноль при обращении к устройству, а другой (RN, вывод 13) равен нулю, при обращении к регистру состояния, и равен единице при обращении к регистру данных. Из сигнала SEL и сигналов шины IOR и IOW с помощью элементов DD5.1 и DD5.2 соответственно команда на чтение данных (CR) и на запись данных (CW). Эти команды подаются на микроконтроллер через выводы PORTD.2 и PORTD.3. На вывод PORTD.4 подаётся сигнал RN, идентифицирующий регистр, к которому идёт обращение. Обмен данными с шиной производится через двунаправленный шинный усилитель КР1533АП6 (микросхема DD2), подключённый к порту B контроллера (выводы PORTB.0–PORTB.7). Усилитель подключает контроллер к шине данных только при обращении к нашему устройству, так как он управляется сигналом SEL, переводящим входы/выходы усилителя в высокоимпедансное состояние при отсутствии адреса устройства на шине. Направлением передачи усилителя микроконтроллер управляет сигналом COD с вывода PORTD.1.
Так как в момент обращения к регистрам устройства контроллер может быть занят вычислениями, и не успеть осуществить обмен в темпе задатчика, обмен происходит в цикле с дополнительными тактами ожидания. Для этого задействуется сигнал шины I/O CH RDY, сообщающий задатчику о необходимости продлить цикл обмена. Согласно спецификации шины ISA, сигнал I/O CH RDY от устройства должен быть установлен не позднее четвёртого такта от начала выполнения операции чтения или записи. При этом, из-за необходимости регенерации памяти, длительность операции не должна превышать 15 мкс. (Подтверждение тому, что данные условия выполняются можно увидеть на плакате №8 «Временные диаграммы циклов обмена устройства с шиной ISA»). Так как микроконтроллер может не успеть оперативно отреагировать на запрос обмена, он устанавливает в единицу сигнал FIN (вывод PORTD.5). В этом случае, если произойдет обращение к регистрам, сигнал I/O CH RDY установится сразу после дешифрации адреса (плюс небольшие задержки на логических элементах). После окончания обмена микроконтроллер переключает сигнал FIN в ноль, чтобы прекратить цикл обмена. Сигнал I/O CH RDY выдаётся на шину ISA через элемент с открытым коллектором КР1533ЛА23 (микросхема DD8.1).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.