2.2. Назначение входов/выходов ВМ86 в минимальном режиме
2.3. Назначение входов/выходов ВМ86 в максимальном режиме
2.4. Внутренняя архитектура МП ВМ86
2.6. Программная модель МП ВМ86
2.7. Организация оперативной памяти
2.8. Организация адресного пространства портов ВУ
2.9. Методы обмена информацией между МП и портами ВУ
2.10. Параллельный программируемый адаптер К1810ВВ55 (i8255)
2.11. Пример использования и программирования адаптера
2.12. Программируемый таймер К1810ВИ54 (i8254)
2.13. Пример использования таймера
2.16. Контроллер прерываний К1810ВН59 (i8259)
2.17. Дополнительная информация о настройке ВН59
2.19. Контроллер прямого доступа к памяти К1810ВТ37 (i8237)
2.20. Программирование КПДП ВТ37
2.21. Организация процессорного модуля ВМ86
2.22. Организация шинного интерфейса в максимальном режиме
2.23. Слабо связанные конфигурации
2.1. Микропроцессор К1810ВМ86
Зарубежный аналог этой микросхемы имеет обозначение i8086. Этот микропроцессор (МП) относится к CISC-типу. Он имеет 20 адресных линий (т.е. может адресовать 220 = 1 Мбайт ячеек ОП) и 16 линий данных. МП может работать в двух режимах: минимальном и максимальном.
Минимальный режим используется, когда на основе МП реализуется несложная однопроцессорная система. Для сложных однопроцессорных и многопроцессорных систем используется максимальный режим.
2.2. Назначение входов/выходов ВМ86 в минимальном режиме
Обозначение МП ВМ86 на функциональных схемах приведено на рис.2.1. Рассмотрим назначение входов-выходов МП в минимальном режиме.
CLK (clock – частота) – вход тактовых импульсов. Синхросерия на этот вход обычно подается с микросхемы генератора К1810ГФ84 (i8284).
INTR (interrupt request – запрос на прерывание) – маски-руемый вход запросов на прерывание. Все запросы на прерывание от внешних устройств заводятся на этот вход через схему ИЛИ. Внутри процессора имеется флаг if. Если этот флаг установлен в единицу, МП воспринимает запросы на входе INTR, если установлен в ноль – игнорирует. Вход INTR называют статическим. Процессор опрашивает сигнал на этом входе на границах команд. Cигнал на этом входе должен иметь достаточную длительность, иначе процессор может его «не заметить».

Рис. 2.1
INTA (interrupt acknowledge – прерывание подтверждаю) – выход подтверждения прерывания. Если МП воспринял запрос на входе INTR, то он вырабатывает два сигнала на выходе INTA, подтверждая тем самым прерывание. Эти сигналы предназначены для контроллера прерываний К1810ВН59 (i8259).
NMI (non—maskable interrupt ‑ немаскируемое прерывание) – немаскируемый вход запросов на прерывание. МП всегда воспринимает запросы, поступающие на этот вход, независимо от состояния флага if. Сигналы подтверждения прерывания при этом не вырабатываются. Этот вход называют динамическим. Внутри процессора есть триггер, срабатывающий по переднему фронту сигнала на входе NMI. На границах команд процессор опрашивает состояние этого триггера. Таким образом, требования к длительности сигнала на входе NMI существенно ниже чем к длительности сигнала на входе INTR.
RESET – сброс микропроцессора. Сигнал на этот вход подается при включении питания или при нажатии кнопки RESET. Этот сигнал формируется генератором ГФ84. По этому сигналу происходит сброс в ноль всех флагов (т.е. внешние прерывания запрещаются), в регистры ip, es, ds и ss загружаются нули, а в регистр cs – единицы. Так как МП всегда формирует адрес следующей команды по формуле A = (cs)×16+(ip), то нетрудно видеть, что после сброса МП всегда стартует с адреса A = ffff0h+0000h = ffff0h.
READY – вход готовности. При обращении к памяти или порту внешнего устройства МП всегда выполняет так называемый цикл шины. Этот цикл состоит из четырех тактов (Т1, Т2, Т3 и Т4). Вначале такта Т4 происходит обмен информацией между МП и ОП или ВУ. Однако если в системе стоит медленная память, она может к этому моменту оказаться не готовой к обмену. В этом случае внешние схемы должны сформировать нулевой сигнал на входе READY, означающий, что устройство к обмену не готово. В такте Т3 МП проверяет вход READY и, если на нем единица, переходит к такту Т4. В противном случае МП вводит между тактами Т3 и Т4 такты ожидания. В каждом такте ожидания МП опрашивает вход READY и так до тех пор, пока на READY не появится единица.
TEST – МП проверяет сигнал на входе TEST, только когда он выполняет команду wait. Если при этом на входе TEST стоит ноль, МП переходит к следующей команде. В противном случае МП вводит «холостые» такты и через каждые пять тактов снова опрашивает вход TEST. Обычно этот вход используется при стандартном подключении арифметического сопроцессора К1810ВМ87 (i8087).
MN/MX (minimum/maximum) – если на этот вход «запаяна» единица, МП работает в минимальном режиме, если ноль – в максимальном.
HOLD – захват. В минимальном режиме это вход. Если на этот вход приходит единица, то МП прекращает выполнение текущей команды и отключается от шин. После этого МП находится в состоянии «спячки» до тех пор, пока на HOLD не появится ноль. Сигнал на вход HOLD формирует контроллер прямого доступа к памяти.
HLDA (hold acknowledge) – подтверждение захвата. В минимальном режиме это выход. Этот сигнал обычно заводится на контроллер прямого доступа к памяти и сообщает последнему, что он может брать управление системной шиной на себя.
A/D 15-0 (address/data) – 16-разрядная мультиплексная шина адрес/данные. По этим линиям передается как адрес, так и данные, но в разные моменты времени. На эти линии МП выставляет 16 младших разрядов адреса при обращении к ОП и весь адрес при обращении к порту ВУ. Адрес на эти линии выставляется в такте Т1 в сопровождении стробирующего сигнала на выходе ALE. В такте Т2 адрес снимается, и далее по этим линиям происходит передача данных в сопровождении сигнала на выходе DEN. Поскольку адрес необходим нам до конца цикла шины (до такта Т4), его приходится запоминать во внешнем регистре. Кроме того, для правильной работы системы шину адрес/данные демультиплексируют, т.е. разделяют на шину адреса (ША) и шину данных (ШД), как показано на рис. 2.2. Здесь ШФ – шинные формирователи.
Рис. 2.2
А16 – А19 – при обращении к ОП на эти линии МП выставляет старшие четыре разряда адреса. В такте Т2 адрес с этих линий снимается (т.е. его также надо запоминать во внешнем регистре), и на эти линии МП выставляет сигналы состояния S3 – S6 (state). Последние обычно используются только при отладке системы.
BHE (bus high enable) – разрешение старшей половины шины данных. МП может производить обмен по ШД как словами (2 байта), так и отдельными байтами. В последнем случае байт может передаваться по старшей или по младшей половине ШД. Для решения этой проблемы и предназначен сигнал BHE. Если на BHE стоит ноль, то в данном цикле шины по старшей половине ШД будут передаваться данные. Совместно с сигналом на линии А0 сигнал BHE задает формат передачи информации по шине данных (табл. 2.1). В такте Т2 сигнал BHE снимается и, следовательно, его надо запоминать во внешнем регистре. Далее на эту линию выставляется зарезервированный фирмой сигнал состояния S7.
Таблица 2.1
| BHE | A0 | Формат передачи |
| 0 | 0 | Слово (по D15-0) |
| 0 | 1 | Байт по старшей половине ШД (D15-8) |
| 1 | 0 | Байт по младшей половине ШД (D7-0) |
| 1 | 1 | Нет передачи по ШД |
