Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASSEMBLER / Пособие51GB / 3.описание особенностей GB.doc
Скачиваний:
200
Добавлен:
16.04.2015
Размер:
750.08 Кб
Скачать

3.2 Порты I/o p0-p5

Все шесть портов и 8XC5IGB двунаправленные:. Каждый из них состоит из регистра-защелки (SFRs Р0 -Р5), выходного драйвера и входного буфера. Все порты, за исключением порта Р0, имеют на выходе триггер Шмидта. Выходные драйверы портов Р0 и Р2 и входные буферы порта PC используются при обращении к внешней памяти. В этом случае порт Р0 выводит младший байт адреса внешней памяти, мультиплексированный во времени с байтом данных в цикле чтения или записи. Порт Р2 выводит старший байт адpecа внешней памяти если адрес 16-битный. Иначе выводы порта Р2 продолжают имитировать содержимое SFR P2.

Все выводы портов Р1, РЗ, Р4 и большинство выводов порта Р5 многофункциональны. Они не только являются выводами портов I/O но и имеют альтернативные функции, которые приведены в таблице.

Конфигурация портов I/O

Битовая защелка порта представлена в виде D-триггера. Данные с внутренней шины записываются в защелку по сигналу "запись в защелку ". Выход "Q" D-триггера. Подключается на внутреннюю шину в ответ на сигнал " чтение защелки". Непосредственное значение с вывода порта может быть считано на внутреннюю шину по сигналу "чтение порта ". Некоторые команды чтения порта используют сигнал "чтение защелки ", другие "чтение порта" Первые из них яв­ляются командами чтение-модификация-запись.

Выходные драйверы портов Р0 и P2 могут подключаться к внутренней шине ADDRESS и ADDRESS/DATA благодаря внутреннему сигналу управления при обращениях к внешней памяти. Во время доступа к внешней памяти, содержимое защелок порта Р2 не изменяется, а в защелки порта Р0 предварительно записываются "1",

Если защелки портов Р1, Р3, Р4, Р5 содержат "1", то выходные уровни могут управляться сигналом "альтернативная функция выхода". Уровень сигнала, присутствующий на выводе порта всегда доступен альтернативной функции входа.

Порты Р1-Р5 имеют внутренние подтягивающие pull-up элементы, подключенные к источнику питания. Выходы порта Р0 являются выходами с открытыми стоком. Каждая линия порта может быть индивидуально использована как вход или как выход (Порты Р0 и Р2 не могут быть использованы как порты I/О общего назначения, если они используются как шина ADDRESS/DATA) Чтобы настроиться на вход, защелка должна содержать "1", которая запирает выходной pull-down транзистор. Высокий уровень на выводах порта P1-P5 поддерживается внутренним pull-up элементом, однако мощ­ный внешний источник может принудительно установить вы­вод в логический "0".

При сбросе, порты P1, Р2, Р4 и Р5 устанавливаются в низкое состояние, В это время выводы этих портов могут потребить большой ток. Если во время сброса они используются как входы и управляются извне высоким уровнем, то пользо­вателю необходимо использовать, интерфейс с открытии коллектором или буферизовать входы.

Порт Р0 отличается от других тем, что не имеет внутренних. pull-up элементов Транзистор, выполняющий роль pull-up элемента в выходном драйвере, открыт только тогда, когда вывод имитирует "1" при обращениях к внешней памяти. В любом другом случае транзистор заперт. Поэтому линии порта Р0, которые используются как выходы, являются выходами с открытым стоком. Запись "1" в защелку оставляет pull-down транзистор запертым и переводит вывод в высокоимпедансное состояние, что позволяет использовать его в качестве высокоомного входа. Так как порты P1-P5 имеют фиксированные внутренние pull-up элементы, их называют квазидвунаправленными портами.

Когда порты P1-P5 настроены на вход (pull-down транзистор зарыт), они поддерживают на выходе высокий уровень. При установке внешним источником низкого уровня, порты ста­новятся источниками тока ( I1L в справочном листе). Когда порт Р0 настроен на вход, его выходы находятся в высокоим­педансном состоянии, поэтому его называют двунаправленым.

Во время сброса в защелки портов Р0 и РЗ записываются "1", Если впоследствии в защелку записывается "0", порт можно переустановить на вход путем записи в него "1".

Запись в порт

При выполнении инструкции, которая изменяет значение в защелке порта, новое значение записывается в защелку в фазе State6.Phase2 последнего цикла команды. Однако, выходной буфер порта копируют значение защелки только в фазе Phase1 каждого такта периода. (В фазе Phase2 выходные буферы поддерживают значение, зафиксированное во время (предыдущей фазы-Phase1). Поэтому новое значение защелки появится на выходе порта только в фазе State1.Phase1 сле­дующего нашивного цикла (см рис. 3).

За более полной информацией о внутренних временных диаграммах обратитесь к разделу "Временные Диаграммы CPU".

При переходе состояния защелки из "0" в "1", в портах Р1-Р5 на время фаз State1.Phase1 и State1.Phase2, открывается до­полнительный pull-up транзистор (в цикле, в котором этот переход происходит). Это увеличивает скорость перехода. Дополнительный pull-up транзистор обеспечивает ток при­мерно в 100 раз больше, чем обычный pull-up транзистор Внутренними pull-up транзисторами являются полевые тран­зисторы (нелинейные резисторы)- Схема pull-up элемента показана на рис. 4 .

Pull-up элемент состоит из трех рМОП транзисторов P1-P3. Заметьте, что n-канальный МОП транзистор (nМОП) открывается когда к затвору приложена логическая "1"и запирается, когда к затвору приложен "0", р-канальный МОП (pМОП) транзистор работает наоборот.

Транзистор P1 открывается на 2 периода осциллятора после перехода состояния защелки из "0" в "1". "1" на выводе порта через Инвертор открывает транзистор РЗ. Инвертор и РЗ образуют триггер, который удерживает состояние вывода в "1", после того как транзистор P1 закрывается.

Если вывод порта находится в "1", отрицательная помеха на этом выводе от некоторого внешнего источника способна запереть транзистор Р3, заставив вывод перейти в 3-е состоя­ние. Для предотвращения подобной ситуации служит транзи­стор Р2 (очень слабый pull-up транзистор), который открывается всякий раз, когда транзистор n запирается, в традици­онном CMOS стиле. Его мощность составляет 1/10 часть от мощности транзистора Р3.

Порты Р1-Р5 являются 8-битовыми квазидвунаправленными портами ввода-вывода с мощным внутренним резистором, обеспечивающим быстрое установление на выходах портов логической "1". Резистор подключается к выходному каскаду на 2 периода тактового генератора для перевода вывода в данное состояние и затем отключается. Вывод данного порта, находящийся в состоянии логической "1", имеет высокий потенциал за счет внутреннего резистора и может использоваться в этом состоянии как вход. В отличие от порта 0, входные линии портов 1-5 снабжены входными триггерами Шмидта. Почти все выводы портов имеют альтернативное назначение. При сбросе выводы порта 3 устанавливаются в состояние "1", а все остальные - в "0".

Соседние файлы в папке Пособие51GB