Параллельные порты вводаОбщие сведения. Через параллельные порты реализуется основной интер­фейс между микроконтроллером и внешними устройствами. Количество линий ввода/вывода 8–разрядных микроконтроллеров равно 8. В карте памяти микро­контроллера каждый порт ввода/вывода представлен регистром данных порта. Для обращения к регистру данных при организации обмена в параллельном фор­мате используются те же команды, что для обращения к ячейкам резидентной оперативной памяти. Доступ к отдельным разрядам портов осуществляется спе­циальными командами, которые называются командами битового процессора.

По функциональному признаку параллельные порты разделяют на три группы:

    однонаправленные порты, предназначенные для передачи информации в од­ном направлении (только для ввода или только для вывода);

    двунаправленные порты, позволяющие задавать направление передачи всех линий и каждой линии в отдельности. В случае необходимости каждая линия может быть сконфигурирована индивидуально и обслужена командами бито­вого процессора независимо от других линий того же порта ввода/вывода;

● порты с альтернативными функциями, которые определяются состоянием микроконтроллера. Отдельные линии таких портов связаны со встроенными в микроконтроллер периферийными модулями (таймером, АЦП, контролле­ром, последовательным приемопередатчиком и др.), при этом:

•      если модуль активизирован, то задействованные линии ввода/вывода пор­та автоматически конфигурируются в соответствии с функциональным на­значением в модуле и не могут быть использованы по другому назначению;

•      если же периферийный модуль МК не используется, то его выводы можно задействовать как обычные линии ввода/вывода порта.

Альтернативную функцию могут иметь линии однонаправленных и двунаправ­ленных портов.

Структурно–функциональные особенности портов. Рассмотрим схемотех­нику портов ввода/вывода на уровне одной линии. Совокупность аппаратных средства, обслуживаемых одну линию порта называют драйвером порта. Рас­смотрим основные типы двунаправленных драйверов (или линий ввода/вывода).

рис. 4.4.1

Драйверы с установкой на ввод/вывод. Схема такого драйвера при­ведена на рис. 4.4.1. Настройка драйвера на ввод/вывод осуществляется уста­новкой бита в специальном триггере направления передачи (ТИП). Нулевое зна­чение бита конфигурирует драйвер на ввод, единичное — на вывод.

Режим ввода данных автоматически устанавливается после сброса микроконт­роллера. В исходном состоянии триггер направления передачи ТНП и триггер данных ТД находятся в нулевом состоянии, с выходов логических элементов И снимаются нулевые уровни сигналов, транзисторы VT1 и VT2 заперты и не влияют на процесс ввода. При вводе данных:

●     на управляемый буфер В подается сигнал чтения данных (RD# = 0, где # — знак инверсии), открывая его;

●     поступающие на вывод РТх данные передаются непосредственно на внутрен­нюю линию Данные, минуя триггер данных ТД.

Режим вывода данных инициируется путем установки триггера направления передачи ТНП в единичное состояние, после чего на один из входов логических элементов И поступает единичный уровень и управление транзисторами VT1 и VT2 выходного каскада порта передается триггеру данных ТД. Если на прямом выходе ТД установлен сигнал Q = 1, то открыт транзистор VT2 и на выходе кон­троллера РТх = 1. При Q = 0 открыт транзистор VT1 и РТх = 0.

Рассмотренное техническое решение реализовано в микроконтроллерах НС08 фирмы Motorola. Его достоинство — высокоомный вход в режиме ввода, недоста­ток — наличие триггера направления передачи.

Драйверы с установкой на ввод. Схема драйвера, требующего предвари­тельную установку только на ввод данных, приведена на рис. 4.4.2.

рис. 4.4.2

Режим ввода данных инициируется уста­новкой триггера Т в состояние Q =1. Состо­яние триггера Т контролируется с помощью буфера В1. В этом режиме транзистор VТ1 заперт сигналом с инверсного выхода триг­гера. Данные в микроконтроллер поступают через буфер В2. Сопротивление со стороны вывода РТх определяется значением резис­тора R. После сброса микроконтроллер ав­томатически устанавливается в режим вво­да. По сути дела, режим ввода соответству­ет режиму вывода единичного бита.

Режим  вывода данных не требует никаких предварительных установок:

●     при выводе нулевого бита триггер Т переводится в состояние Q = 0, отпира­ется транзистор VT и с выхода РТх снимается сигнал с низким уровнем;

●     при выводе единичного бита триггер Т переводится в состояние Q=1, тран­зистор VT запирается и с выхода РТх снимается сигнал с высоким уровнем. Рассмотренное техническое решение реализовано в микроконтроллерах MCS51 фирмы Intel. Его недостаток — низкое входное сопротивление в режиме ввода, обусловленное необходимостью использования подтягивающего к 1 рези­стора R для вывода единичного бита.

Драйверы с управляемыми подтягивающими резисторами. Для уст­ранения указанного выше недостатка в схему драйвера вводится управляемый под­тягивающий резистор. Одно из таких технических решений приведено на рис. 4.4.3.

В качестве нагрузки выходного каскада используются транзисторы VT1 и VT3. Управляемый транзистор VT1 обладает сопротивлением в сотни раз меньшим по сравнению с транзистором VT3. Он обеспечивает быстрое переключение схемы и большую амплитуду импульса при выводе единичного бита. Транзистор VT3 вы­полняет функцию подтягивающего резистора в установившемся режиме, его со­противление значительно больше, чем R в схеме на рис. 4.4.2. При выводе еди­ничного бита с появлением Q# = 0 отпирается транзистор VT1 и на выходе фор­мируется логический уровень РТх = 1. Через некоторое время на выходе элемен­та задержки D появляется единичный сигнал, который переводит транзистор VT1 в запертое состояние.

рис. 4.4.3

На рис. 4.4.4 приведены общие технические решения с управляемыми подтя­гивающими резисторами. В схеме на рис. 4.4.4, а резистор R с помощью VT3 под­ключается параллельно нагрузочному транзистору VT1, что позволяет при выводе данных подтягивать логический уровень к 1. В схеме на рис. 4.4.4, б резистор R подключается параллельно транзистору VT1, что позволяет подтягивать логиче­ский уровень к 0. Приведенные схемы используются в контроллерах фирмы Motorola.

рис. 4.4.4

В контроллере имеются средства программного подключения подтягивающих резисторов:

●     специальный бит регистра конфигурации разрешает подключение резистора R;

 

●     биты 0–7 регистра входного сопротивления непосредственно подключают R к требуемой линии. Значение бита можно многократно изменять в ходе вы­полнения прикладной программы. Следовательно, имеется возможность ди­намического управления входным сопротивлением по каждой линии порта ввода.


Рекомендуйте эту статью другим!