logo
ЗФ / Вопросы-Ответы (ВМСиС)

40. Ввод данных через параллельный порт.

Основной интерфейс между микроконтроллером и внешними устройствами реализуется через параллельные порты ввода-вывода. Во многих микроконт­роллерах выводы этих портов служат также для выполнения других функций, например, последовательного или аналогового ввода-вывода. При первом знакомстве с микроконтроллером очень важно понять, как осуществляется параллельный ввод-вывод данных. В большинстве микроконтроллеров отдельные выводы портов могут быть запрограммированы на ввод или вывод данных. Типичная схема подключе­ния внешнего вывода на рис. Необходимо обратить особое вни­мание на то, что при вводе данных считывается значение сигнала, поступа­ющего на внешний вывод, а не содержимое триггера данных. Если к внешнему выводу подключены выходы других устройств, то они могут установить свой уровень выходного сигнала, который будет считан вместо ожидаемого значе­ния данных, записанных в триггер. В некоторых микроконтроллерах суще­ствует возможность выбора между чтением данных, установленных на выхо­де триггера или на внешнем выводе. Могут возникнуть некоторые проблемы в микроконтроллерах, которые выполняют чтение данных и их запись в регистр порта с помощью одной команды. При этом ввод неправильных данных приведет к их записи в триг­гер в результате выполнения команды чтения/записи.

рис1,2

Другой распространенный вариант подключения внешнего вывода - это схема с «открытым коллектором» (в действительности с «открытым стоком). Состояние данного вывода соответствует состоянию подключенной к нему шины до тех пор, пока он не будет переключен на работу в режиме выхода и установлен в состояние 0. В этом случае вывод соединен с «землей» через MOS-транзистор, который управляется логичес­кой схемой «И», подключенной к выходам триггеров управления и данных.

Такое подключение вывода позволяет создавать шины с объединением выходов устройств по схеме «монтажное И». В этой схеме шина подключается к напряжению питания Vdd (логическая 1) через резистор, а к потенциалу «земли» (логический 0) - через несколько ключей или транзисторов. При их включении на шине устанавливается низкий потенциал. Примером применения данной схемы включения является двунаправленная шина с нескольки­ми источниками информации, каждый из которых может передавать дан­ные, переводя шину в состояние с низким потенциалом (логический 0). Обычный выход (рис. 2.24) функционирует как выход с открытым кол­лектором, если он работает в режиме ввода и переходит в режим вывода только для выдачи «0». Когда на шину необходимо вывести «0», то сначала «0» записывается в триггер данных, а затем с помощью триггера управления на выходе устанавливается низкий уровень потенциала. Триггер управления разрешает вывод данных на шину. Как показано на приведенных схемах, в современных микроконтроллерах обеспечивается ин­дивидуальный доступ к триггерам данных и управления с помощью адресной шины. В некоторых более старых типах микроконтроллеров выводы объединя­ются в группы по 4 или 8 разрядов, которые программируются на совмест­ную работу в качестве входов или выходов. В этом случае при разработке уст­ройств требуется более тщательно планировать работу аппаратного и программного обеспечения, чтобы обеспечить выполнение внешними выво­дами требуемых функций.

Внешний вход может быть также использован для подачи запроса преры­вания. Это обычно реализуется, когда вывод работает в режиме ввода.