Основной интерфейс между микроконтроллером и внешними устройствами реализуется через параллельные порты ввода-вывода. Во многих микроконтроллерах выводы этих портов служат также для выполнения других функций, например, последовательного или аналогового ввода-вывода. Для работы с микроконтроллером очень важно понять, как осуществляется параллельный ввод-вывод данных.
В большинстве микроконтроллеров отдельные выводы портов могут быть запрограммированы на ввод или вывод данных. Типичная схема подключения внешнего вывода показана на рис. 1.
Рисунок 1 Типовая схема подключения внешнего вывода
Необходимо обратить особое внимание на то, что при вводе данных считывается значение сигнала, поступающего на внешний вывод, а не содержимое триггера данных. Если к внешнему выводу подключены выходы других устройств, то они могут установить свой уровень выходного сигнала, который будет считан вместо ожидаемого значения данных, записанных в триггер. В некоторых микроконтроллерах существует возможность выбора между чтением данных, установленных на выходе триггера или на внешнем выводе.
|
|
Другой распространенный вариант подключения внешнего вывода - это схема с «открытым коллектором» (в действительности с «открытым стоком»), показанная на рис. 2.
Рисунок 2 Схема подключения вывода с открытым коллектором
Состояние данного вывода соответствует состоянию подключенной к нему шины до тех пор, пока он не будет переключен на работу в режиме выхода и установлен в состояние 0. В этом случае вывод соединен с «землей» через МОS-транзистор, который управляется логической схемой «И», подключенной к выходам триггеров управления и данных.
Такое подключение вывода позволяет создавать шины с объединением выходов устройств по схеме «монтажное И». В этой схеме шина подключается к напряжению питания Усc (логическая 1) через резистор, а к потенциалу «земли» (логический 0) — через несколько ключей или транзисторов. При их включении на шине устанавливается низкий потенциал. Примером применения данной схемы включения является двунаправленная шина с несколькими источниками информации, каждый из которых может передавать данные, переводя шину в состояние с низким потенциалом (логический 0).
Обычный выход (рис. 1) функционирует как выход с открытым коллектором, если он работает в режиме ввода и переходит в режим вывода только для выдачи «О». Когда на шину необходимо вывести «О», то сначала «О» записывается в триггер данных, а затем с помощью триггера управления на выходе устанавливается низкий уровень потенциала.
Триггер управления разрешает вывод данных на шину. Как показано на приведенных схемах, в современных микроконтроллерах обеспечивается индивидуальный доступ к триггерам данных и управления с помощью адресной шины. В некоторых более старых типах микроконтроллеров выводы объединяются в группы по 4-или 8 разрядов, которые программируются на совместную работу в качестве входов или выходов. В этом случае при разработке устройств требуется более тщательно планировать работу аппаратного и программного обеспечения, чтобы обеспечить выполнение внешними выводами требуемых функций.
|
|
Внешний вход может быть также использован для подачи запроса прерывания. Это обычно реализуется, когда вывод работает в режиме ввода.