Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 2. Переходим от цифровой техники к микропроцессору и микроконтроллеру 69 Пример. Хороший пример — печать текста на скоростном принтере. Если производить печать в обычном режиме работы, то необходимо написать некую подпрограмму, которая должна побайтно читать данные из памяти и выдавать их на порт принтера. Для чтения каж ­ дого байта процессор должен выполнить 3-4 команды. Если принтер скоростной, то процессор может не обеспечить требуемую ско ­ рость печати. В этом случае применяют прямой доступ к памяти. Для реализации этого режима микропроцессорная система должна иметь в своем составе специальное устройство — контроллер прямого доступа (см. рис. 2.5). щд ША ШУ DRQO DRQ1 DRQ2 DRQ3 DRQ4 HLDA г ЦПУ Контроллер . HOLD ПДП хТ ---------- ±2 Рис. 2.5. Подключение контроллера ПДП Сначала всем управляет микропроцессор. Перед тем, как начать печать, он производит подготовку сеанса прямого доступа. Для этого он программирует микросхему контроллера. Программирование сводится к записи в управляющие регистры контроллера специальных кодов, кото ­ рые и определяют в дальнейшем его работу. При помощи этих кодов про ­ цессор должен определить начальный и конечный адрес блока данных в памяти, подлежащих передаче и направление передачи информации. Затем центральный процессор подает команду на контроллер, которая запускает сеанса прямого доступа. С этого момента управление системой берет на себя микроконтроллер ПДП, а центральный процессор отклю ­ чается. Контроллер отвечает за формирование адреса на соответствую ­ щей шине, а также именно он формирует управляющие сигналы RD, WR, MREQ и IORQ на шине управления. При помощи этих сигналов контрол ­ лер прямого доступа выполняет довольно простую операцию. В нашем примере он читает байт за байтом данные из заранее опре ­ деленной области памяти и выдает их в порт принтера. По завершении процесса передачи контроллер подает специальный сигнал микропро ­ цессору, тот включается и берет на себя управление системой. Кроме выдачи данных из памяти в порт, контроллер прямого доступа может также осуществлять считывание блока данных из порта и запись его в заранее заданную область памяти. А также может осуществлять передачу данных из одной области памяти в другую.

RkJQdWJsaXNoZXIy MTExODQxMg==