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