- •6. Проектирование микропроцессорных систем
- •6.1. Представление системы как объекта проектирования
- •6.2. Основные этапы проектирования
- •6.3. Разработка архитектуры системы
- •6.4. Проектирование аппаратных средств
- •6.4.1. Схемотехническое проектирование процессора
- •6.4.2. Схемотехническое проектирование памяти
- •Банкирование памяти
- •Организация банков памяти
- •Проектирование запоминающих устройств
- •6.4.3. Схемотехническое проектирование интерфейса
- •Организация ввода/вывода данных
- •6.4.4. Тестирование и настройка аппаратных средств
- •Тестирование статическими сигналами
- •Свободный прогон микропроцессора
- •6.5. Проектирование программных средств
- •6.5.1. Этапы жизненного цикла программы
- •6.5.2. Точная постановка задачи и формулировка требований к программе
- •Постановка задачи ввода данных в озу
- •6.5.3 Проектирование программы
- •Декомпозиция общей задачи
- •Декомпозиция задачи ввода данных в озу
- •Структуры данных
- •Разработка структуры данных программы для ввода данных в озу
- •Алгоритмизация программы
- •Подходы к алгоритмизации
- •Иерархическая организация алгоритма
- •Алгоритмизация программы для ввода данных в озу
- •1. Модуль "Тестовый контроль озу по шд" (dTstContr)
Проектирование запоминающих устройств
Проектирование ПЗУ и ОЗУ осуществляется на основе ИМС ЗУ с накопителями соответствующего типа (см.подраздел 2.5). При этом в состав ЗУ в общем случае входят несколько ИМС накопителей. Обобщенная схема ЗУ приведена на рис. 6.9.

Рис. 6.9. Обобщенная схема запоминающего устройства
Количество N ИМС, необходимых для построения ЗУ, определяется требуемым объемом памяти Vmemв байтах и объемом накопителя V0в используемой ИМС в соответствии с формулой N=1+ ent(Vmem1)/V0.
Все ИМС накопителей (DD1DDN)
объединены по входам адреса, обращения
и выводам данных. При этом входы адреса
через буфер адреса BA подключаются к
младшим линиям входной шины адреса,
входы разрешения выхода
к линии
,
а вход записи
/Rк линии
шины
управления МПС. Выводы данных ИМС
накопителей через буфер данных BD
подключаются к шине данных МПС. Буферы
адреса и данных служат для приведения
нагрузки со стороны проектируемого ЗУ
на каждую линию системной шины к
единственному входу.
Буфер адреса BA является однонаправленным и не требует никакого управления. Он может быть реализован либо на регистрах ИР82, либо на буферах ВА86 (см.подразделы 2.4, 2.6.1) в соответствующем включении.
Буфер данных BD является двунаправленным и требует управления выборкой и направлением передачи. При этом буфер данных включается таким образом, чтобы при отсутствии обращений к ЗУ он был подключен к шине данных входами и лишь при выполнении операции чтения разворачивался к ней выходами. Это упрощает согласование ЗУ с шиной при различных переключениях.
Для выбора одной из множества параллельно
включенных ИМС накопителей служит
адресный дешифратор, декодирующий
старшие разряды входной шины адреса.
Вход выборки
этого дешифратора совместно с входом
выборки
буфера данных являются входом выборки
AЗУ в целом.
Если быстродействие используемых ИМС накопителей недостаточно для работы в темпе процессора, то в состав ЗУ должен включаться одновибратор S, предназначенный для формирования флага готовности к обмену. Этот одновибратор возбуждается сигналом выборки ЗУ и формирует импульс с нулевым уровнем активности, длительность которого определяется временем выборки адреса ИМС накопителей. Флаг готовности ЗУ должен подключаться к входу READY процессора, что обеспечит введение для МП состояний ожидания на требуемый интервал времени при каждом обращении к ЗУ.
Схема, приведенная на рис.6.9, полностью
соответствует схеме ОЗУ. Схема ПЗУ
является частным случаем этой схемы.
Действительно, в ней не будет использоваться
лишь сигнал записи
,
так как операция записи недопустима
для ПЗУ.
При построении ОЗУ на ИМС К537РУ8, не
имеющих входа разрешения выхода
,
схема по рис.6.9 должна быть несколько
изменена. Изменение заключается в том,
что выборка адресного дешифратора DC и
буфера данных BD должна осуществляться
сигналом CS, сформированным по формуле
CS=CSA·(MEMRMEMW).
В простейшем случае (при условии соблюдения гальванического и емкостного согласования ЗУ с системной шиной МПС) буферы адреса и данных могут отсутствовать.
6.4.3. Схемотехническое проектирование интерфейса
Для ввода/вывода данных в МПС на базе МП ВМ86/ВМ88 могут использоваться два типа структур интерфейса:
структура с изолированным интерфейсом;
структура с неизолированным или общим интерфейсом.
В структуре с неизолированным интерфейсом
порты ввода/вывода рассматриваются как
ячейки памяти, и обращение к ним
осуществляется сигналами чтения
и записи
.
Это обеспечивает высокую гибкость
ввода/вывода, так как любая команда
обращения к памяти выполняет обращение
и к интерфейсу. Однако, при этом проблема
распределения адресного пространства
МП распространяется и на интерфейс, что
может привести к усложнению селектирующих
дешифраторов. Кроме того, команды
обращения к памяти выполняются дольше
и имеют больший формат. Использование
такой структуры интерфейса необходимо
для пересылки блоков данных между ЗУ и
УВВ с помощью строковых команд.
В структуре с изолированным интерфейсом
ввод/вывод данных осуществляется
командами ввода IN и вывода OUT (см.подраздел
3.11.1), а обращение к портам сигналами ввода
и вывода
.
Это обеспечивает передачу данных между
портами и аккумуляторами МП. В зависимости
от типа аккумулятора (AL или AX), указанного
в команде, осуществляется обмен байтами
или словами. Изолированное адресное
пространство ввода/вывода не сегментировано
и составляет 64 кбайт. При этом первые
256 портов могут адресоваться прямо или
косвенно, а остальныетолько косвенно. Прямой адрес port
представляется байтом и указывается в
команде, а косвенный адрес выбирается
из регистра DX.
Допустимые форматы команд ввода/вывода и полное описание реализуемых ими функций приведены в табл.6.2.
Таблица 6.2
Форматы и функции команд ввода/вывода
-
Форматы команд
Описание функций
IN AL, port
(AL) (port)
IN AX, port
(AX) (port+1:port)
IN AL, DX
(AL) ((DX))
IN AX, DX
(AX) ((DX)+1:(DX))
OUT port, AL
(port) (AL)
OUT port, AX
(port+1:port) (AX)
OUT DX, AL
((DX)) (AL)
OUT DX, AX
((DX)+1:(DX)) (AX)
Из этой таблицы следует, что обращение к портам осуществляется аналогично обращению к памяти.
При вводе данных командой IN байт вводится в регистр AL из порта с указанным адресом (port или (DX)), а слово в регистр AX из двух смежных адресов (port+1:port или (DX)+1:(DX)), причем младший байт передается в AX из порта с меньшим адресом.
Обращение к портам при выводе данных командой OUT осуществляется аналогичным образом.
При проектировании интерфейса необходимо обеспечить возможность схемотехнического обращения к портам в соответствии с табл. 6.2.
В МПС на базе МП ВМ 88, имеющих однобайтную
шину данных, все порты ввода/вывода
подключаются к этой шине, а их выборка
осуществляется выходными сигналами с
дешифратора, декодирующего адрес портов,
появляющийся на шине адреса при выполнении
команд IN и OUT. Схема интерфейса с
использованием ИМС ИР82 (см.подраздел
2.6.1) в качестве портов ввода/вывода
приведена на рис. 6.10. Учитывая кодирование
адресных и управляющих сигналов обращения
к портам, с целью упрощения интерфейса
целесообразно формировать сигналы
выборки портов ввода с помощью логических
элементов ИЛИ (К555ЛЛ1), а сигналы записи
в порты вывода с
помощью элементов ИЛИНЕ
(К555ЛЕ1). Для упрощения анализа при
настройке МПС адресный дешифратор DC
целесообразно стробировать сигналом
МП M/
,
разделяющим адресные пространства
памяти и ввода/вывода, таким образом,
чтобы его работа разрешалась лишь при
обращении к интерфейсу.

Рис. 6.10. Схема интерфейса для МП ВМ88
Для адресации портов ввода и вывода
можно использовать отдельные дешифраторы,
стробируемые соответственно сигналами
и
.
В этом случае логических элементов для
формирования сигналов обращения к
портам не потребуется.
В МПС на базе МП ВМ86, имеющих двухбайтную
шину данных, порты ввода/вывода однобайтных
УВВ можно подключать к старшей или
младшей половинам шины данных, равномерно
распределяя нагрузку на эту шину. Все
порты, подключенные к линиям D15D8
шины данных, должны иметь нечетные
адреса (A0=1(
=0)),
а порты, подключенные к ее линиям D7D0четные адреса
(A0=0). В этом случае четные и нечетные
адреса дешифрируются отдельными
дешифраторами, стробируемыми сигналами
A0 и
соответственно, и схема интерфейса с
использованием ИМС КР580ВВ55А (см.подраздел
2.6.3) в качестве портов ввода/вывода
приведена на рис. 6.11. Линии А2, А1 шины
адреса используются для адресации
внутренних регистров ВВ55.
Порты двухбайтных УВВ подключаются и к старшей и к младшей половинам шины данных. Обращение к портам осуществляется аналогично обращению к банкам памяти (см.табл.6.1). При этом имеется возможность передавать как байты, так и слова по любому адресу. Для повышения производительности системы двухбайтные порты должны иметь четные адреса. Тогда чтение слова осуществляется за один цикл шины.

Рис. 6.11. Схема интерфейса для МП ВМ86
При необходимости обращения к одному и тому же однобайтному УВВ по последовательным адресам следует преобразовать двухбайтную шину данных МП ВМ86 в однобайтную в соответствии с рис.6.12. Это, в частности, требуется при подключении контроллеров ПДП К1810ВТ37 и КР580ВТ57.
Обращение к УВВ, подключенному к внешней
однобайтной шине данных осуществляется
с помощью сигналов
и A0 в соответствии с табл.6.3. При обращении
к УВВ на шине адреса появляется его
адрес, декодируемый дешифратором. Сигнал
на соответствующем выходе дешифратора
DC активируется и разрешает по одному
из входов логических элементов выборку
шинных буферов.
При передаче байтов с нечетным адресом
=0,
A0=1 и выбирается буфер, подключающий
линии D15D8 к внешней
шине данных. При передаче байтов с четным
адресом
=1,
A0=0 и выбирается буфер, подключающий
линии D7D0 к внешней
шине данных. Направление передачи данных
через шинные буферы определяется
сигналом
,
поступающим с МП. Буферы включаются
так, что в исходном состоянии они
подключены к системной шине данных
входами и лишь при вводе данных
подключаются к ней выходами.

Рис. 6.12. Схема преобразования двухбайтной шины данных в однобайтную
Таблица 6.3
Доступ к порту на внешней шине
|
|
A0 |
Тип обращения |
|
0 |
0 |
Не используется (доступ запрещён) |
|
0 |
1 |
Байт с нечётным адресом на старшую половину шины (D15D8) |
|
1
|
0
|
Байт с чётным адресом на младшую половину шины (D7D0) |
|
1 |
1 |
Доступ отсутствует |
Комбинация сигналов
=0
и A0=0 никогда не должна появляться, так
как при обращении к однобайтному УВВ
команды передачи слов не используются.
Однако, с целью защиты от ошибок
программиста оба логических элемента
выборки буферов застробированы сигналом
A0 в противофазном значении. Поэтому при
любом значении сигнала A0 может
активироваться лишь один буфер, что
гарантирует сохранность аппаратуры и
при недопустимых обращениях.
Регистры УВВ, подключенного к внешней однобайтной шине данных, могут иметь как четные, так и нечетные адреса, выбираемые произвольным образом.
