1.2.5. Порты ввода/вывода МК Z8 имеет до 32 линий ввода/вывода, сгруппированных в четыре восьмибитных порта Р0, Р1, Р2, Р3 (физическое наличие соответствующих выводов портов для каждой модели МК указано в табл.1.2). Порты размещены в адресном пространстве регистрового файла по адресам соответственно 00H, 01H, 02H, 03H. Порты Р0, Р1 и Р2 построены по типовой структуре, показанной на рис. 1.9. Каждый порт имеет входной и выходной регистры, входной и выходной буферы. Выходные буферы -двухтактные, однако, могут программироваться как схемы с открытым стоком (Open Drain). Кроме того, выходные буферы могут быть переведены в малошумящий режим.
Рис. 1.9. Структурная схема портов P0, P1 и P2 Работа линий портов может программироваться на ввод или вывод: Р0 -потетрадно, Р1 -побайтно (т.е. целиком), а Р2 -побитно (см. табл. на рис. 1.9). Порты могут работать в режиме синхронного программного обмена, в режиме обмена с квитированием, в режиме стробируемого ввода/вывода. При синхронном программном обмене ввод или вывод реализуется в момент исполнения команд чтения или записи регистра порта. При этом внешнее устройство должно быть постоянно готово к обмену. Режим обмена с квитированием или "рукопожатием" (Handshake) заключается в том, что МК и внешнее устройство обмениваются сигналами (квитанциями) ГОТОВНОСТИ к обмену -RDY (Ready) и ДЕЙСТВИТЕЛЬНОСТИ ДАННЫХ -/DAV (Data is Available). Ввод и вывод с квитированием подробно поясняются временными диаграммами, рис.1.10 и 1.11.
| |Состояние |Сигнал RDY имеет высокий уровень, что указывает MK принять данные.| | |1. | | | |Состояние |Внешнее устройство помещает данные на выводы порта и активизирует | | |2. |сигнал /DAV. Это приводит к фиксации данных во входном регистре | | | |порта МК и генерирования запроса прерывания. | | |Состояние |МК переводит выход RDY в низкое состояние, сигнализируя внешнему | | |3. |устройству, что данные зафиксированы. | | |Состояние |Внешнее устройство возвращает линию /DAV в высокое состояние после| | |4. |получения низкого уровня сигнала RDY. | | |Состояние |МК должен среагировать на запрос прерывания и прочитать содержимое| | |5. |порта для завершения последовательности квитирования. На линии RDY| | | |устанавливается высокий уровень тогда и только тогда, когда порт | | | |уже прочитан и /DAV имеет высокий уровень. Это возврощает | | | |интерфейс в его начальное значение. |
Рис. 1.10. Ввод с квитированием | |Состояние 1.|Вход RDY имеет высокий уровень, что указывает на готовность | | | |внешнего устройства к приему данных. | | |Состояние 2.|МК записывает данные в регистр порта для инициализации передач| | | |данных. Запись в порт новых данных и переход выхода /DAV в | | | |состояние низкого уровня происходит только тогда, когда RDY | | | |имеет высокий уровень. | | |Состояние 3.|Внешнее устройство делает уровень сигнала RDY низким после | | | |фиксации данных. Низкий уровень RDY вызывает генерирование | | | |запроса прерывания. МК может уже записать новые данные в ответ| | | |на низкий уровень DRY, однако эти данные не выводятся до | | | |состояния 5. | | |Состояние 4.|Уровень выхода /DAV МК становится высоким в ответ на переход | | | |выхода RDY в состояние низкого уровня. | | |Состояние 5.|Уровень выхода /DAV остается высоким, внешнее устройство может| | | |установить высокий уровень RDY, что возвращает интерфейс в его| | | |начальное состояние. |
Рис. 1.11. Вывод с квитированием Для приема и передачи сигналов квитирования используются соответствующие линии ввода/вывода порта Р3 (см. табл. на рис.1.9). Выбор направления обмена с квитированием осуществляется в соответствии с направлением, запрограммированным для старшей тетрады порта Р0 и для старшего бита порта Р2. Режим стробируемого ввода/вывода реализуется как частный случай обмена с квитированием по схеме рис. 1.12.
Рис. 1.12. Стробируемый ввод/вывод
а) вывод; б) ввод. Дополнительно к основным функциям порты P0 и P1 могут использоваться для интерфейса внешней памяти (Р0 -старшие разряды адреса A8...A15, P1 -мультиплексированная шина адреса/данных AD0...AD7), а порт P2 -для последовательного интерфейса SPI в модели 06 (P20 -вход DI, P27 -выход D0). Схемотехника портов P0, P1, P2 поясняется рис. 1.13. Двухтактный буферный выходной усилитель выполнен на комплементарных МОП-транзисторах VT1 и VT2. Отключение транзистора VT1 переводит буферный усилитель в конфигурацию с открытым стоком. Входной буфер содержит автофиксатор и триггер Шмитта, который обеспечивает формирование входного сигнала.
Рис. 1.13. Схемотехника входного и выходного буферов Автофиксатор предназначен для фиксации потенциала незадействованного входа на уровне допустимых КМОП потенциалов, близких к потенциалам шины питания VCC или общей шины GND. Этим исключается переход пары входных транзисторов в активный режим и резкое возрастание потребляемого тока. Автофиксатор представляет собой бистабильную ячейку (триггер), выполненную на двух замкнутых в кольцо инверторах, управляемую по выходу. Шунтирующее сопротивление автофиксатора -не менее 500 кОм. В ряде случаев, когда входы задействованы, шунтирующее действие автофиксатора нежелательно. Поэтому в некоторых модификациях МК предусмотрен специальный бит отключения автофиксаторов (Z86C30/31/40). Порт Р3 -особый. Первые четыре его линии P30...P33 предназначены для ввода, вторые -P34...P37 -для вывода. Структурная схема порта и таблица назначения его выводов в различных режимах приведены на рис. 1.14. Независимо от выбранного режима с входами порта P3 связаны соответствующие запросы прерывания, указанные в таблице. Физическое наличие выводов порта P3 для разных моделей МК см. в табл. 1.2.
Рис. 1.14. Структурная схема порта P3 |Вывод |Аналоговый |Квитировани|SP|Таймер|Внешняя |Прерывани| |P3 |режим |е |I |ы |память |я | |P30 | | | | | |IRQ3 | |P31 |AN1 |/DAV2/RDY2 | |TIN | |IRQ2 | |P32 |AN2 |/DAV0/RDY0 | | | |IRQ0 | |P33 |REF |/DAV1/RDY1 | | | |IRQ1 | |P34 |AN1-OUT |RDY1/DAV1 |SK| |/DM | | |P35 |AN2-OUT* |RDY0/DAV0 |/S| | | | | | | |S | | | | |P36 | |RDY2/DAV2 | |TOUT | | | |P37 |AN2-OUT | | | | | |
Примечание: *только для моделей 03 и 06. Порт P3 содержит четырехбитные входной и выходной регистры, входной и выходной буферы. Наличие четырехбитного буфера возврата позволяет при чтении порта P3 контролировать данные на выходных линиях. Запись информации в младшую тетраду порта P3 не имеет эффекта. Схемотехника порта P3 иллюстрируется рис. 1.15. Дополнительной особенностью МК является наличие двух встроенных аналоговых компараторов AN1 и AN2, позволяющих решать вопросы сравнения аналоговых сигналов, квантования сигналов, аналого-цифрового преобразования. Входы и выходы порта P3 используются для обслуживания аналоговой схемы. Переключение входов в аналоговый режим осуществляется битом D1 регистра режима порта 3 PЗM, а выходов -битом D0 регистра управления портами PCON. Входы P31 и P32 используются соответственно для неинвертирующих входов компараторов, а вход P33 является входом опорного напряжения REF, общего для AN1 и AN2.
Рис. 1.15. Схемотехника порта P3 Управление работой портов реализуется путем записи информации в управляющие регистры: регистр режимов портов P0 и P1 -P01M, регистр режима порта P2 -P2M, регистр режима порта P3 -P3M. Все эти регистры находятся в рабочей группе F стандартного РФ. В моделях 03, 06, 30, 31 и 40, кроме того, для управления режимами работы выходных буферов портов (режим "открытый сток" и малошумящий режим) задействован регистр управления портами PCON, расположенный в расширенной группе регистров F. Все эти регистры предназначены только для записи. Результат чтения этих регистров будет равен FFH. Назначение разрядов этих регистров и их состояние после сброса МК для разных моделей МК поясняется рис. 1.16 -1.19.
Рис. 1.16. Регистр режимов портов P0 и P1
Рис. 1.17. Регистр режима порта P2
Рис. 1.18. Регистр режима порта P3
Рис. 1.19. Регистр управления портами PCON Разрабатывая прикладную программу МК, необходимо предусматривать в ней процедуру инициализации портов ввода/вывода до выполнения операций обмена данными с внешними устройствами.
1.2.6. Таймеры/счетчики МК Z8 может иметь до двух таймеров/счетчиков, в зависимости от модели (см. табл.1.2). Каждый из 8-битных таймеров/счетчиков Т0 и Т1 снабжен 6-битным предделителем PRE0 и PRE1 (рис.1.20). Работа таймеров/счетчиков происходит независимо от работы процессора, что освобождает его от выполнения критичных временных операций, таких как счет событий, измерение временных интервалов, генерирование импульсов заданной длительности и т.п.
Страницы: 1, 2, 3, 4, 5, 6