На начало страницы
| Главная страница | Обмен с внешними устройствами | Системная шина ISA | Платы расширения для шины ISA |
| Пример системы сбора данных | Система виртуальной отладки | Справочная информация |
Построение систем сбора и обработки 
информации
Платы расширения для шины ISA
Варианты реализации платы

Структурная схема платы составлена. Естественно, что в схеме платы могут оказаться как оригинальные блоки, определяемые особенностями конкретной системы сбора и обработки информации, так и части, общие для разных систем.
Прежде всего, общими можно считать буферные схемы, расположенные между схемами на плате и линиями системной шины  - адресными и управляющими сигналами.
В любом случае, даже если не использовать буферные схемы, на плате можно применять ИС с малыми входными токами и высоким быстродействием. ИС КМОП серий имеют малые входные токи, но недостаточное быстродействие; ИС серии К155 имеют большие входные токи. Предъявляемым требованиям удовлетворяют ИС серий КР1533, К555, КР1554. Даже при буферизации сигналов микросхемы этих серий рекомендуется использовать на плате расширения для уменьшения энергопотребления.
Последовательность
разработки системы

Структурная схема платы
Состав программного
обеспечения

Варианты
реализации платы

БУФЕРНЫЕ СХЕМЫ
Для буферизации адресных и управляющих сигналов можно использовать специальные микросхемы магистральных приемников серии КР559. В платах расширения, разрабатываемых в рамках задания, рекомендуется использовать постоянно включенные в одном направлении (от шины к плате) однонаправленные или двунаправленные передатчики серий К1533 и К555.
Для буферизация сигналов данных требуются двунаправленные передатчики с отключаемым выходом (с "третьим" состоянием). В качестве таких передатчиков также рекомендуется использовать микросхему К1533АП6.
Внутри платы передатчики выполняют функцию мультиплексирования данных, которые должны поступать на внутреннюю шину от различных источников. Для этого могут быть использованы многоразрядные мультиплексоры с "третьим" состоянием выходов или те же самые передатчики.
Схемы передатчиков

БЛОК ПРЕРЫВАНИЙ
Много общих для разных систем элементов может оказаться и в блоке прерываний. Вариант блока прерывания и схемы интерфейса с линиями запроса прерываний IRQi для выбранного варианта системы показан на рисунке (см. >>). Схема позволяет воспринять три запроса и запомнить этот факт в триггерах Т1-Т3 при наличии соответствующих сигналов разрешения на выходах 0-2 регистра RG1. Таким образом возможен запрет восприятия некоторых запросов. Запись в регистр происходит сигналом WR5#. Одновременно этим же сигналом могут изменяться состояния триггеров Т1-Т3. Схема проста, но ее использование приводит к необходимости иметь в памяти ПК копию состояния триггеров. Перемычками SI1-SI3 выполняется настройка на линии IRQ10, IRQ11 или IRQ15.
При твердой уверенности в том, что никакое другое устройство не может быть подключено к выбранной линии IRQ, элемент, работающий на линию, может иметь обычный TTL-выход. Но лучше всегда страховаться, тем более, что стандарт шины ISA требует отключения выходных сигналов платы во время действия. Выход передатчика (DT2) на время действия сигнала RESDRV оказывается в "третьем" состоянии. В качестве передатчика можно использовать микросхему К555ЛП8.
Можно на вход передатчика подать сигнал "1", вход OE# подключить к источнику прерывания, активному при "0" (инверсии выхода элемента D5). Тогда, поскольку в ПК это обычно не предусмотрено, следует зашунтировать выход передатчика на "Землю" резистором (около 10 КОм), чтобы обеспечить нулевой уровень линии IRQ в пассивном состоянии.
При различном количестве запросов схема блока прерываний будет различной. Однако действия, выполняемые при обработке прерываний всегда остаются одинаковыми: разрешить или запретить прием запроса; принять запрос, если это разрешено; запомнить факт запроса; прочитать флаг запроса; выдать запрос на линию; сбросить сигнал запроса.
На плате расширения, разрабатываемой в рамках домашнего задания, рекомендуется использовать для выполнения всех этих функций обработки прерываний стандартную БИС, в которую эти функции встроены "от рождения", тем более, что эта БИС берет на себя практически все функции передачи данных и часть функций селектора адреса.
Схема блока прерываний

ИСПОЛЬЗОВАНИЕ БИС ПАРАЛЛЕЛЬНОГО ИНТЕРФЕЙСА К580ВВ55
БИС параллельного интерфейса или БИС программируемого периферийного адаптера К580ВВ55(А) создана специально для целей передачи и приема информации через двунаправленную шину. БИС начинает работать только после подачи сигнала на вход сброса (R). После этого все внутренние регистры БИС обнуляются и выходы устанавливаются в "третье" состояние. Обмен информацией с шиной возможен только при активном сигнале CS#.
БИС при подключении ее к системной шине занимает в адресном пространстве ввода-вывода 4 адреса. Обычно состояние младших разрядов адреса (A1, A0) определяет регистры БИС, с которыми производится обмен данными: 00 - канал "А", 01 - канал "B", 10 - канал "C", 11 - регистр управляющего слова. БИС может работать в трех режимах:
- режим "0" - обычная передача, в которой могут работать каналы "А", "В" и "С" (канал "С" целиком или как 2 половины).
- режим "1" - стробируемый ввод-вывод. Информация передается через каналы "А" и "В", канал "С" используется для приема и выдачи управляющих сигналов. В канале "С" для передачи данных могут использоваться только 2 старших разряда.
- режим "2" - режим двунаправленной передачи через канал "А". Канал "С" используется для приема и выдачи управляющих сигналов.
Все варианты заданий на разработку систем сбора и обработки информации предполагают использование этой БИС вместо регистров и передатчиков, причем использоваться БИС может только в режимах "0" (ввод или вывод) и "1" (стробируемый ввод).
Режим "0"
Командой Out данные с системной шины по заданному адресу фиксируются в регистре и передаются на выход канала. После этого сигнал CS# может быть сделан неактивным, но данные в регистре остаются и будут присутствовать на выходе. При команде In данные читаются с контактов PA, PB или PC и передаются на системную шину без какой-либо фиксации во внутренних регистрах.
Каждый канал БИС может быть настроен только на ввод или только на вывод - менять направление передачи в процессе работы нельзя. Для настройки БИС по адресу А1, А0=11 должно быть записано управляющее слово:
Подключение БИС
параллельного
интерфейса
(режим "0")
7 6 5 4 3 2 1 0
Признак слова Режим канала "А" Обмен по каналу "А" Обмен по каналу "С" (7-4) Режим канала "В" Обмен по каналу "B" Обмен по каналу "С" (3-0)
1 -
установка режимов
00 - "0"
01 - "1"
10 - "2"
1 - ввод
0 - вывод
1 - ввод
0 - вывод
0 - "0"
1 - "1"
1 - ввод
0 - вывод
1 - ввод
0 - вывод

Режим "1" (стробируемый ввод)
При настройке каналов "А" или "В" на работу в режиме "1" назначение разрядов канала "С" изменяется, они становятся приемниками и источниками управляющих сигналов, которые позволяют выполнять стробируемый ввод или вывод. Настройка одновременно каналов "А" и "В" в режим стробируемого ввода задается управляющим словом:

Подключение БИС
параллельного
интерфейса
(режим "1")
7 6 5 4 3 2 1 0
Признак слова Режим канала "А" Обмен по каналу "А" Обмен по каналу "С" (7-4) Режим канала "В" Обмен по каналу "B" Обмен по каналу "С" (3-0)
1 01 1 1/0 1 1 X

Инверсные стробирующие сигналы STBa# и STBb# в режиме ввода должны вырабатываться внешними источниками при верном значении данных на входах канала "А" или "В" соответственно. Этими сигналами данные записываются во внутренние регистры БИС, где запоминаются. Одновременно БИС вырабатывает сигналы IBFa или IBFb - сигналы подтверждения источнику о том, что данные приняты и можно готовить новые.
После чтения данных из соответствующего канала сигнал подтверждения снимается, сигнализируя источнику что можно выдавать новый стробирующий импульс. Таким образом реализуется протокол ввода данных от источника. Собственно приемник данных - процессор ПК, а точнее говоря программа обмена, может узнать, что данные поступили в БИС двумя способами: либо опрашивая некий флаг готовности, который фиксирует факт запоминания данных в регистре БИС, или используя прерывание, которое должно вырабатываться после фиксации данных в регистре. Согласно общим правилам выработка этого прерывания в этой БИС должна разрешаться или запрещаться.
При работе в режиме "1" по адресу канала "С" (А1, А0=10) можно прочитать слово состояния канала "С". В нем отражается как состояние выходных контактов канала, так и состояние триггеров разрешения выработки прерываний - INTEa (для канала "А") и INTEb (для канала "В"). Прерывания разрешаются при наличии "1" в этих триггерах.
Разряды 3 и 0 слова являются одновременно и копиями выходных сигналов запросов прерываний INTRa и INTRb и одновременно флагами готовности. Эти разряды устанавливаются в "1" по окончании сигналов STB# и при разрешении соответствующих прерываний. Если прерывание от БИС не используется, то чтение слова состояния и анализ этих разрядов позволяет определить факт приема данных. При разделенном прерывании (при объединении нескольких выходных сигналов INTR на одно IRQi) анализ разрядов позволяет определить источник запроса прерывания.
Все разряды слова могут программно устанавливаться в "1" или "0". Установка разрядов (в том числе и старших разрядов канала "С" в режиме вывода) выполняется записью управляющего слова с признаком установки разрядов по адресу А1, А0=11. Для установки N разрядов естественно потребуется посылка N управляющих слов.

Слово состояния
канала "С"
7 6 5 4 3 2 1 0
Признак слова Не используются Двоичный код разряда канала "С" Значение разряда
0 - установка разрядов X X X от 000 до 111 1/0
Сигнал запроса прерывания сбрасывается при чтении байта данных из соответствующего канала фронтом 0/1 сигнала I/ORD#. Фронтом 1/0 сбрасывается и сигнал подтверждения IBF.

Проверьте свои знания
Формирование запроса прерывания
Как видно БИС параллельного интерфейса содержит все элементы для обмена с внешним миром и все элементы для управления прерываниями. Частично реализуются функции селектора адреса - 4 адреса дешифрируются в самой БИС. Формируется и сигнал подтверждения во внешнее устройство.
В платах расширения рекомендуется использовать эти БИС в максимальном объеме, даже в том случае, когда всего лишь нужно реализовать запрос на прерывание (канал "А" или "В" использовать только для приема сигнала STB#. Для того, чтобы сбросить запрос на прерывание, необходимо считать байт из канала "А" или "В" даже в случае, если ничего не нужно передавать в процессор.
Схема подключения сигналов INTR к выбранной линии IRQ остается аналогичной схеме, рассмотренной выше. Программная доступность каналов БИС позволяет легко организовать и программную настройку платы на линию IRQi.
Вспомним требования к сигналу IRQi - запрос должен сохранять значение "1" до фронта 0/1 первого сигнала INTA#. При работе с БИС это требование соблюдается автоматически - чтение всегда выполняется в обработчике прерывания, т.е. после окончания двух сигналов INTA#. Таким образом, коротким импульс IRQi никогда не будет.
Проверьте свои знания
Стробируемый ввод данных

Для реализации передач данных и обработки запросов прерывания в рассматриваемом варианте понадобится две БИС параллельного интерфейса.
Первая БИС (D10)
Каналы "А" и "B" настроены на работу в режиме "1" - ввод и используются в основном для приема сигналов S1 и S2 с ПУ и формирования запросов прерываний. Операции чтения данных из каналов "А" и "В" будут необходимы для сброса запросов, ходя сами считываемые данные не понадобятся. Поэтому один из каналов (например, "А") можно использовать для задания кода платы - сигналом RESDRV* все каналы БИС настраиваются на режим "0" - ввод. После определения наличия платы канал можно перенастроить в режим "1", но направление передачи не поменяется.
Схема передачи,
преобразования данных
и обработки запросов
прерываний
Вторая БИС (D11)
Канал "B" настроен на режим "1" для ввода байта данных с ВУА по сигналу SYN. Выход INTRb объединяется с выходами INTRa и INTRb 1-й БИС и подаются на линию IRQi с блокировкой в момент системного сброса. Настройка на линию запроса прерывания осуществляется перемычками. Сигнал IBFb является сигналом READY. Канал "А" настроен на режим "0" для ввода кода с АЦП. Более точный анализ показывает, что для получения с точностью 0,5 В среднего значения из 5 отсчетов достаточно использовать только 7 разрядов с выхода АЦП. На вход старшего разряд канала "А" подается сигнал готовности АЦП. Выход 7 канала "С" используется для выдачи сигнала запуска/сброса АЦП. Для работы АЦП требуется питание +15 В. Для его получения потребуется DC/DC конвертор, подключенный к одной из линий питания системной шины.
Определение разрядности
данных с АЦП

КАНАЛ ПОСЛЕДОВАТЕЛЬНОЙ ПЕРЕДАЧИ
Для передачи данных в приемник ВУВ и приема от него байтов подтверждения используем БИС UART i8250 (КР1847ВВ2). Программирование БИС и ее работа не отличаются от программирования и работы последовательного порта ПК. Обмен данными требует предварительного согласования приемника и передатчика по количеству используемых разрядов в символе, правилам формирования контрольного разряда и длительности передачи бита данных. Последнее согласование обеспечивается путем настройки последовательных приемопередатчиков на обоих сторонах канала связи на одну и ту же скорость передачи из стандартного дискретного ряда скоростей, определенных стандартом RS-232. Установленная скорость должна отличаться от номинальной не более чем на 2%, что гарантировано обеспечивается в ПК применением генератора с кварцевым резонатором - обычно с частотой 1,8432 МГц. Резонатор с такой же частотой можно использовать и на плате расширения. Подключение БИС UART

СЕЛЕКТОР АДРЕСА
Количество адресов портов ввода-вывода для обслуживания передач данных и обработки запросов прерываний стало равно 8, а суммарное их количество вместе с адресами БИС UART - 16. Желательно, чтобы все эти адреса располагались последовательно относительно некоторого базового адреса платы в пространстве ввода-вывода. Тогда адреса можно обозначать в форме Aбаз+0 - Абаз+3 для первой БИС параллельного интерфейса, Aбаз+4 - Абаз+7 для второй БИС, Aбаз+8 - Абаз+F для БИС UART. Сигналы, соответствующие младшим разрядам адреса подаются непосредственно на БИС, сигналы записи и чтения тоже. Поэтому схема селектора адреса должна только формировать сигналы обращения к конкретным БИС (CS#).
Самое простое, но не самое экономичное решение - реализация схемы полностью на логических элементах малой степени интеграции серии К1533 или К1534.
Возможно использование микросхем электрически программируемых ППЗУ и ПЛМ. Однако при этом возpастает ток потpебления и могут возникнут сложности с опеpативной настройкой платы на базовый адpес. Другой вариант схемы - реализация на двух 4-х разрядных схемах сравнения (К555СП1).
Для выборки конкретных БИС можно использовать и дешифратор (например, К1533ИД7 - D1). Подача сигнала AEN* на инверсный вход дешифратора блокирует работу селектора адреса в режиме DMA, перемычками S1 или S2 плата может быть настроена на Абаз=300h или Aбаз=310h. При этом плата не выходит за разрешенный диапазон области адресов - 300h-31Fh. Сигнал CS0# выбирает первую БИС параллельного интерфейса, CS1#  - вторую БИС, CS2# - БИС UART. Элемент D9 разрешает работу буферного передатчика на шине данных с его блокировкой в момент системного сброса.
Селектор адреса

ОКОНЕЧНЫЕ КАСКАДЫ И СХЕМЫ ВНЕШНИХ УСТРОЙСТВ
Во многих вариантах заданий предусматривается вывод данных или управляющих сигналов на светодиоды, семисегментные индикаторы, на реле и пр. С примерами реализации схем интерфейса для связи платы расширения с внешним миром можно познакомиться в соответствующем разделе пособия "Однокристальная микроЭВМ МК51".
Схемная реализация
элементов интерфейса
Для внешних устройств также требуется разработка принципиальных схем. Однако это касается только устройств с индикацией и устройств задания входных переменных (клавиатуры, наборы переключателей, кнопки со схемами подавления дребезга контактов). Внешние устройства изображаются с соответствующими разъемами. Примеры реализации также представлены в пособии по микроЭВМ МК51.
Результаты выполнения задания представляются в виде пояснительной записки.
Примерное содержание
пояснительной записки

| На главную страницу | На начало раздела | На начало страницы | © КСиТ МИФИ, 2001 г.