Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_i_otvety_MPT.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.94 Mб
Скачать

10. Порты ввода/вывода: назначение, основные типы. Таймеры микроконтроллеров: назначение, внутренняя структура.

Каждый МК имеет некоторое количество линий ввода/вывода, которые объединены в многоразрядные (чаще 8-разрядные) параллельные порты ввода/вывода Рx (х – имя порта, используемое в техническом описании). Порты обозначаются либо цифрами (Р0, Р1, Р2 и т.д.), либо буквами латинского алфавита (PA, PB, PC и т.д.). В карте памяти МК каждый порт представлен регистром данных порта, который имеет имя, аналогичное порту, то есть Рx. В режиме ввода логические уровни сигналов на линиях порта Рx отображаются нулями или единицами в соответствующих разрядах регистра данных порта Рx. В режиме вывода данные, записанные под управлением программы в регистр Рx, передаются на выводы МК, которые отмечены в качестве линий порта Рx. Обращение к регистру данных порта Рx осуществляется теми же командами, что и обращение к ячейкам резидентной оперативной памяти. Кроме того, во многих МК отдельные разряды портов могут быть опрошены, установлены или сброшены командами битового процессора.

С функциональной точки зрения различают следующие типы параллельных портов:

1) однонаправленные порты, предназначенные в соответствии со спецификацией МК только для ввода или только для вывода информации;

2) двунаправленные порты, направление передачи которых (ввод или вывод) устанавливается программно, обычно при инициализации микроконтроллерной системы;

3) порты с альтернативной функцией (мультиплексированные порты). Отдельные линии этих портов используются совместно периферийными устройствами МК, такими, как таймеры, АЦП, контроллеры последовательных интерфейсов. Если соответствующий периферийный модуль МК не используется, то выводы порта, связанные с ним, можно задействовать как обычные линии ввода/вывода. Напротив, если модуль активизирован, то принадлежащие ему линии порта автоматически конфигурируются в соответствии с функциональным назначением в модуле и не могут быть использованы в качестве линий ввода/вывода.

Объединение групп линий в порты позволяет обращаться к ним как к ячейкам памяти, что удобно для организации обмена в параллельном формате. Однако двунаправленные порты современных МК выполняются с возможностью независимого задания направления передачи каждой линии. Поэтому в случае необходимости каждая линия может быть сконфигурирована индивидуально и обслужена командами битового процессора независимо от других линий того же порта. Учитывая это обстоятельство, обычно схемотехника портов ввода/вывода рассматривается на уровне одной линии.

Различают следующие основные типы линий портов:

1) двунаправленные линии, которые настраиваются на ввод или вывод программированием бита в регистре направления передачи;

2) двунаправленные линии, которые не требуют предварительной настройки направления передачи.

Примером линий 1-го типа могут служить линии портов МК семейства PIC16 фирмы Microchip (рис. 10.1). В каждой линии имеется триггер данных, входящий в регистр данных порта PORT; триггер направления передачи данных, входящий в регистр направления TRIS; выходной буфер OBF; буфер чтения вывода порта IBF. Буферы OBF и IBF имеют выходы с тремя состояниями. Управление состоянием выходов выполняется с помощью сигналов на входах EN. При EN = 1 выходы буферов находятся в активном режиме и передают логические “1” или “0” со входов. При EN = 0 находятся в отключенном Z-состоянии. Управление буфером OBF выполняется от триггера TRIS. Когда в триггере записан “0”, высокий уровень с инверсного выхода триггера поступает на управляющий вывод EN буфера OBF и переводит его выход в активный режим. Информация, записанная в триггере данных PORT (“0” или “1”), поступает на выход линии порта. Когда в триггере TRIS записана “1”, на выводе EN будет “0”, и выход буфера OBF переходит в Z-состояние, т.е. отключается от вывода порта. Логическое состояние на выводе порта в этом случае может быть прочитано с помощью буфера IBF, который открывается командой чтения выводов порта. Буфер IBF открывается кратковременно только на момент чтения выводов порта. В остальное время выход IBF находится в Z-состоянии и не влияет на шину данных МК. Таким образом, для настройки линии порта на вывод в соответствующий разряд регистра TRIS надо записать 0, а для настройки линии на ввод – записать 1.

Рис. 10.1. Схема двунаправленной линии порта МК семейства PIC16

Примером двунаправленных портов, которые не требуют предварительной настройки направления передачи, могут служить линии порта Р0 микроконтроллера 8051 фирмы Intel (рис. 10.2). Особенность этих линий заключается в том, что при считывании возвращаемое значение равно логическому произведению сигнала на линии и содержимого одноименного триггера регистра данных порта Р0.i. По этой причине те разряды порта, которые будут считываться, должны быть установлены в «1» командой записи в порт и лишь потом прочитаны. Транзистор VT1 линии порта выполнен по схеме с открытым стоком, поэтому в режиме ввода линии имеет высокое входное сопротивление (Z-состояние). Значение сигнала на выводе порта может быть прочитано через буфер IBF, который открывается сигналом «чтение выводов». В режиме вывода «1» транзистор VT1 закрыт и выходная линия порта оказывается под «плавающим» потенциалом. Поэтому для вывода «1» необходимо устанавливать на выводах порта «подтягивающие» резисторы для задания высокого уровня.

Рис. 10.2. Схема двунаправленной линии порта P0 МК семейства MCS-51

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]