Параллельные порты предназначены для обмена информацией микропроцессора с внешними устройствами, при этом в качестве внешнего устройства может изпользоваться другой компьютер. Параллельные порты позволяют согласовывать низкую скорость работы внешнего устройства и высокую скорость работы системной шины микропроцессора. С точки зрения внешнего устройства порт представляет собой обычный источник или приемник информации со стандартными цифровыми логическими уровнями (обычно ТТЛ), а с точки зрения микропроцессора — это ячейка памяти, в которую можно записывать данные или в которой сама собой появляется информация.
В качестве внешнего устройства может служить любой объект управления или источник информации (различные кнопки, датчики, микросхемы приемников, синтезаторов частот, дополнительной памяти, исполнительные механизмы, двигатели, реле и т.д.).
В зависимости от направления передачи данных параллельные порты называются портами ввода, вывода или портами ввода вывода.
Структурная схема порта ввода приведена на рис 1.
Рис. 1. Структурная схема порта ввода. | В качестве порта ввода может быть использована схема с открытым коллектором или с третьим (Z) состоянием. В настоящее время обычно используются схемы с третьим состоянием. Параллельное соединение таких схем называется шинным формирователем. Из порта ввода возможно только чтение информации. Выход шинного формирователя подключается к внутренней шине. Значение сигнала с внешнего вывода порта считывается по сигналу "RD". Для отображения этого шинного формирователя только в одну ячейку памяти адресного пространства микропроцессорного устройства в составе порта ввода-вывода всегда присутствует дешифратор адреса. |
Так как с точки зрения программиста эта ячейка памяти ничем не отличается от регистра данных порта вывода, то по аналогии она называется регистром данных порта ввода.
Структурная схема порта вывода приведена на рис 2.
Рис. 2. Структурная схема порта вывода. |
В качестве порта вывода может быть использован параллельный регистр. В порт вывода возможна только запись. Данные с внутренней шины микроконтроллера записываются в регистр по сигналу "WR". Выходы "Q" регистра могут быть использованы как источники логических уровней для управления внешними устройствами. Для отображения этого регистра только в одну ячейку памяти адресного пространства микропроцессорного устройства в составе порта ввода-вывода всегда присутствует дешифратор адреса. Этот регистр называется регистром данных порта вывода. |
Так как из порта ввода возможно только чтение, а в порт вывода возможна только запись, то для них обычно отводится один и тот же адрес в адресном пространстве памяти микропроцессора.
Порты выпускаются в качестве универсальных микросхем, но на заводе, где производятся эти микросхемы неизвестно сколько на самом деле потребуется линий ввода информации, и сколько потребуется линий вывода информации. Количество же ножек у микросхемы ограничено. Поэтому в одной универсальной микросхеме размещаются и порт ввода и порт вывода информации, а для подключения этих портов к внешним ножкам микросхемы используется коммутатор. Для управления этим коммутатором используется еще один (внутренний) параллельный порт вывода, регистр данных которого называется регистром управления параллельного порта ввода-вывода, а сам порт называется портом ввода-вывода. Адрес для регистра управления обычно назначается рядом с адресом регистра данных порта ввода-вывода.
Рис. 3. Структурная схема параллельного порта ввода-вывода.
В некоторых микропроцессорах для портов ввода вывода выделяется отдельное адресное пространство. В этом случае для записи в порт и для чтения из порта используются отдельные сигналы чтения и записи. Чаще всего они называются IOWR# и IORD#.
Параллельные порты, предназначенные для обмена данными между компьютерами, или компьютером и принтером, устроены несколько иначе. Основным отличием обмена данных между компьютерами или контроллерами от обмена данными между компьютером и простым внешним устройством является большой объём передаваемых данных. В этом случае недостаточно выдачи на выход порта одного или даже нескольких байт информации, поэтому приходится передавать данные последовательно байт за байтом через один и тот же параллельный порт. Байты необходимо каким либо образом отличать друг от друга, поэтому вводится специальный сигнал синхронизации CLK, который позволяет отличать один байт от другого. Для формирования такого сигнала можно воспользоваться вторым параллельным портом, и получить его программным способом, но обычно этот сигнал формируется аппаратно из сигнала WR# при записи очередного байта в параллельный порт вывода. Временная диаграмма обмена данными через параллельный порт приведена на рисунке 4.
Рис. 4. Временная диаграмма работы параллельного порта.
В лекции приведены только основы работы параллельного порта. Кому интересно познакомиться с особенностями работы параллельных портов может обратиться к специализированной литературе.
Далеко не полную информацию по LPT порту универсального компьютера можно посмотреть здесь.