6 Ввод/вывод в микропроцессорных системах 6.1. Введение Микропроцессор, используемый изолированно, – устройство с ограниченными возможностями. Только способность управления различными дополнительными устройствами, возможность получения и обработки информации от таких устройств делают микропроцессоры привлекательными для инженеров. Взаимодействие микропроцессора и периферийных устройств происходит через интерфейсы. Классификация и примеры различных интерфейсов приведены в учебнике. Разработка интерфейсов – одна из наиболее важных задач при разработке вычислительных систем. В данном разделе приведены задачи и упражнения, которые помогут более глубоко понять принципы построения интерфейсов микропроцессорных систем. 6.2. Примеры 1. Постройте параллельный интерфейс между двумя микропроцессорными системами, используя два параллельных периферийных адаптера 8255 в режиме 1 или 2. Решение. Два адаптера 8255 в режиме 1 или 2 не могут быть соединены между собой непосредственно. Необходима дополнительная логическая схема. На первый взгляд кажется, что можно решить задачу, используя один дополнительный инвертор (для режима однонаправленного обмена) или два дополнительных инвертора (для режима двунаправленного обмена), как показано на рисунке 6.1. 35 Рис. 6.1. Некорректное соединение адаптеров Временная спецификация для микросхемы 8255 показывает, что данная схема не будет работать правильно. Дело в том, что сигналы «квитирования», вырабатываемые одной микросхемой, не дадут импульса строба данных STB нужной длительности для стробирования записи данных в другую микросхему. Временная диаграмма на рисунке 6.2 показывает процессы, протекающие в схеме на рисунке 6.1. Здесь левая микросхема (обозначенная Х) передает данные к правой микросхеме Y). Последовательность переходов управляющих сигналов, которые сопровождают передачу, показана на рис. 6.2 стрелками, начинающимися на спаде сигнала DBFX и оканчивающимися на фронте сигнала STBY. На временной диаграмме tDELAY1 представляет задержку от фронта DBFX до фронта STBY; tDELAY2 – задержка от фронта IBFY до среза ACKX. Рис.6.2. Временная диаграмма Задержки tDELAY1 и tDELAY2 обусловлены инверторами и внутренними задержками самих адаптеров. Передача данных становится неуверенной, если длительность импульса STBY меньше минимально допустимой величины (500 нс). Длительность импульса 36 можно определить из рисунка 6.2, следуя по стрелкам от среза к фронту STBY; это tST. Получим: tST = tSIB + tDELAY2 + tAOB + tDELAY1 >= 500нс. Для tSIB и tAOB минимальные значения в технической документации не определены (то есть, в принципе, они могут быть очень малыми), поэтому ими можно пренебречь, тогда tDELAY1 + tDELAY2 >= 500ns. Из наших рассуждений следует вывод, что последовательно с сигналами управления должна быть внесена дополнительная задержка величиной, как минимум, 500 нс. Такая задержка не может быть создана просто инверторами. Рисунок 6.3 аналогичен рисунку 6.1, но в него добавлены элементы задержки Delay1 и Delay2. Требуемая задержка может быть создана или Delay1 или Delay 2 или обеими вместе. Предпочтительнее использовать только Delay2, так как эта линия должна содержать инвертор и функции инверсии и задержки могут быть совмещены. Один элемент задержки необходим, если порты работают в режиме 1, и два элемента необходимы, если порты работают в режиме 2. Рис.6.3. Соединение двух адаптеров 8255 6.3. Задачи 6.3.1. Пользовательские интерфейсы 6-1. Что такое протокол обмена? Как делятся интерфейсы по протоколам обмена? 6-2. Что такое адаптер параллельного интерфейса? Как его можно применить для разработки пользовательского параллельного интерфейса? 37 6-3. Что такое адаптер последовательного интерфейса? Как его использовать для реализации последовательного интерфейса? 6-4. Что такое программируемый интервальный таймер? Как его можно использовать при проектировании интерфейсов? 6-5. Подключите к микропроцессорной системе 9 внешних устройств: 5 входных и 4 выходных. Адреса портов входных устройств должны лежать в диапазоне 01H .. 05H, выходных – в диапазоне 06H..09H. 6-6. Нарисуйте схему интерфейса с использованием параллельного адаптера 8255 и напишите программу, которая должна периодически вводить данные из порта А микросхемы 8255 и суммировать их. Когда сумма станет равной или больше некоторого числа k, микропроцессор должен вывести это число в порт C микросхемы 8255. 6-7. Нарисуйте принципиальную схему системы, состоящей из микропроцессора 8086, программируемого параллельного адаптера 8255 и интервального таймера 8253. Запрограммируйте эту систему в режим 0 для микросхемы 8255 (порты А и В работают на ввод, порт С– на вывод информации). Каналы 1 и 2 таймера 8253 должны работать в режиме делителя частоты. 6-8. Разработайте принципиальную схему интерфейса аналогоцифрового преобразователя с микропроцессорной системой. 6.3.2. Специальные режимы ввода/вывода 6-9. Что такое режим прерываний? Как его можно реализовать в микропроцессорной системе на основе 8086? 6-10. Что такое режим прямого доступа к памяти? Как его можно реализовать в микропроцессорной системе на основе 8086? 6-11. Напишите программу обработки прерывания, которая должна вводить данные из порта 1AH, определять знак числа и, если число положительное, выводить его в порт 0F0H. 6-12. Нарисуйте схему и напишите программу для передачи 64 байт информации в режиме прямого доступа к памяти из порта 8FH в память с начальным адресом 0100:00F0. 6.3.3. Стандартные интерфейсы 6-13. Разработайте схему интерфейса “Centronics” на основе программируемого параллельного адаптера 8255. 6-14. Разработайте схему интерфейса RS232C на основе программируемого последовательного адаптера 8251. 38