В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > 68300 > Архитектура
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Блок внешнего интерфейса и порты ввода - вывода

Блок внешнего интерфейса производит выдачу и прием сигналов, обеспечивающих обмен данными между микроконтроллером и другими устройствами системы. Обмен выполняется с помощью шин адреса A18-0, данных D15-0 и выводов портов C,E,F, которые имеют многофункциональное назначение (рис. 3.5). Регистры данных этих портов PORTE(0,1), PORTF (0,1) и управляющие регистры DDRE, DDRF, PEPAR, PFPAR располагаются в адресном пространстве модуля SIM (табл. 3.14). Кроме ввода-вывода данных порт E используется для передачи сигналов, управляющих выполнением циклов обращения к внешней памяти, а порт F - для приема внешних запросов прерывания IRQ7-0# и сигнала MODCLK, определяющего выбор источника тактовых импульсов ( см. раздел Генератор тактовых импульсов). Порт C служит для выдачи старших разрядов адреса A23-19, сигналов FC2-0, указывающих тип выполняемого цикла, и сигналов BR#, BG#, BGACK#, обеспечивающих захват внешней шины другими устройствами системы. При использовании входящего в состав SIM блока выборки кристаллов на выводы порта C выдаются сигналы выборки CS10-0#. При этом семь выводов могут быть запрограммированы на выдачу данных PC6-0 из регистра PORTC.

Таблица 3.18. Функциональное назначение выводов SIM, задаваемое при начальной установке микроконтроллера

Вход данных Назначение вывода
при Di = 1 при Di = 0
D0 CSBOOT# (16p) CSBOOT# (8p)
D1 CS0#
CS1#
CS2#
BR#
BG#
BGACK
D2 CS3#
CS4#
CS5#
FC0
FC1
FC2
D3
D4
D5
D6
D7
CS6#
CS7#
CS8#
CS9#
CS10#
A19
A20
A21
A22
A23
D8 DSACK0,1#,
AVEC#, RMC#
DS#, AS#, SIZ0
PE0-7
D9 MODCLK
IRQ1-7#
PF0-7

Функциональное назначение выводов портов задается в процессе начальной установки микроконтроллера путем подачи соответствующих значений сигналов на входы D9-0 (табл. 3.18). При Di=0 порты E,F осуществляют ввод-вывод данных, а порт C используется для передачи разрядов адреса, сигналов типа цикла и захвата шины. При Di=1 порт C служит для выдачи сигналов выборки, порт E - для обмена сигналами управления внешним циклом, а порт F - для приема запросов I RQ7-0# и сигнала MODCLK. Различные биты Di обеспечивают раздельное назначение функций для определенной группы выводов.
    Индивидуальное назначение функций выводов портов E,F производится записью соответствующего содержимого в регистры управления PEPAR, PFPAR. Значение i-го бита bi в этих регистрах определяет функцию соответствующего вывода Pxi, где x=E или F: при bi=0 вывод служит для передачи данных, при bi=1 - для обмена сигналами управления циклом или приема сигналов MODCLK,IRQ7-0#.
    Таким образом, функции выводов для порта C задаются только в процессе начальной установки микроконтроллера, а для портов E, F могут изменяться путем загрузки регистров PEPAR, PFPAR.

Таблица З.19. Значения функционального кода на выходах FC2-0 для различных типов циклов

Код FC2 - 0 Тип выполняемого цикла
000 -резервировано
001 выборка данных пользователя
010 выборка команд пользователя
011 - резервировано
100 - резервировано
101 выборка данных супервизора
110 выборка данных супервизора
111 подтверждение прерывания

В цикле обращения к внешней памяти микроконтроллер выдает и принимает сигналы, управляющие процессом обмена:
    AS#, DS# - выходные стробсигналы адреса и данных;
    FC2-0 - выходные сигналы, указывающие тип выполняемого цикла в соответствии с табл.3.15 (при использовании процессора CPU16, постоянно работающего в режиме супервизора, всегда FC2=0);
    SIZ1,0 - выходные сигналы, указывающие число передаваемых байтов (один при SIZ1,0=00, два при SIZ1,0=01, три при SIZ1,0=10, четыре при SIZ1,0=11);
    R/W# - выходной сигнал, определяющий вид выполняемого цикла - чтение или запись;
    DSACK1,0# - входные сигналы, подтверждающие готовность памяти или внешнего устройства к обмену и указывающие разрядность используемой шины данных (табл. 3.19);
    RMC# - выходной сигнал, формируемый при выполнении команды TAS процессора CPU32, когда реализуется комбинированный цикл "чтение-модификация-запись", при котором запрещен захват шины (этот сигнал и соответствующий вывод PE3 отсутствуют в микроконтроллерах 68HC16);
    AVEC# - входной сигнал подтверждения запроса автовекторного прерывания (см. раздел Исключения, прерывания и режим отладки BDM)

Таблица 3.20. Значения сигналов подтверждения готовности к обмену DSACK1,0#

DSACK1,0# Состояние внешнего устройства и шины
11
10
01
Запрещение обмена (неготовность)
Готовность к обмену, 8-разрядная шина
Готовность к обмену, 16-разрядная шина
00 Не используют (резервная)

Старшие разряды адреса A23-20 формируются только при использовании процессора CPU32. В микроконтроллерах семейства 68HC16, использующих 20-разрядные адреса A19-0, сигналы на адресных выходах A23-20 повторяют значение старшего разряда адреса A19. При использовании для обмена с внешними устройствами 8-разрядной шины данных ее следует подключить к выводам D15-8.

Рис. 3.11. Временные диаграммы сигналов при выполнении циклов записи и чтения при обращении к внешней памяти

Временные диаграммы сигналов при выполнении циклов записи и чтения приведены на рис.3.11. Каждый цикл реализуется в течении трех тактов. В начале такта S0 устанавливается адрес и значения сигналов FC2-0, SIZ1-0, R/W#, определяющих тип цикла и разрядность передаваемых данных. В конце этого такта выдается адресный строб AS#=0, значение которого сохраняется до конца цикла (такт S2). При выполнении чтения в конце такта S0 выдается строб данных DS#=0, в такте S1 проверяются значения сигналов подтверждения готовности DSACK1-0#. Если поступили сигналы готовности DSACK1-0#=0, то в такте S2 данные вводятся в микроконтроллер. При выполнении записи микроконтроллер в такте S1 выводит данные на шину D15-0 и проверяет значения сигналов DSACK1,0#. Если сигналы готовности поступили, то в конце такта S1 выдается строб данных DS#=0, который служит для внешнего устройства сигналом разрешения приема. В этом случае данные принимаются внешним устройством в такте S2.
    Если в такте S1 сигналы готовности не поступают (значения DSACK1-0# = 11), то выполняются такты ожидания, в каждом из которых микроконтроллер проверяет значения сигналов DSACK1,0#. Только после получения сигналов готовности в следующем такте производится чтение (ввод) данных в микроконтроллер или запись (вывод ) данных во внешнее устройство. Когда монитор шины SIM выполняет контроль внешних циклов (в регистре SYPCR установлено значение бита BME=1), допустимое число тактов ожидания ограничено длительностью Tm (табл. 3.17). Если в течении времени T m сигналы готовности не поступают, то реализуется исключение с номером Ne=2 (табл.3.12).
    Сигналы готовности DSACK1-0# определяют также число циклов обмена, которые требуются для передачи необходимого числа байтов, указанного значением SIZ1-0. Например, при передаче слова по 8-разрядной шине (значение сигналов DSACK1-0#=10) микроконтроллер автоматически выполняет два последовательных цикла обмена. При этом значение сигналов SIZ1-0 меняется после каждого цикла, указывая число оставшихся для передачи байтов.
    Процедура захвата шины внешним устройством производится с помощью сигналов BR#, BG#, BGACK#. Внешнее устройство выдает запрос на захват шины BR#=0. Микроконтроллер после завершения очередного цикла переводит выводы A23-0, D15-0, FC2-0, SIZ1-0, AS#, DS#, R/W# в отключенное состояние и выдает сигнал разрешения захвата BG#=0. Получив этот сигнал, запросившее устройство подает сигнал подтверждения захвата BGACK#=0 и снимает запрос на захват, устанавливая значение BR#=1. Приняв данные сигналы, микроконтроллер устанавливает значение BG#=1, после чего запросившее устройство принимает на себя управление шиной. Когда оно прекращает управление, то выдает сигнал BGACK#=1, при получении которого микроконтроллер восстанавливает управление внешней шиной и продолжает выполнение циклов обращения.
    Порты E,F служат для ввода или вывода данных, если в их регистрах управления PEPAR, PFPAR установлены значения битов bi=0 для соответствующих выводов PEi,PFi. В этом случае значение битов Yi в регистрах DDRE, DDRF определяет для i-го вывода направление передачи данных: при Yi=0, вывод PEi или PFi является выходом, при Yi=1 - входом. Таким образом порты программируются на выполнение функций ввода или вывода путем загрузки соответствующего содержимого в регистры DDRE,DDRF. Ввод и вывод данных производится при выполнении команд чтения и записи в регистры данных PORTE1,0, PORTF1,0. Реально каждый порт имеет только один регистр данных, но обращение к нему может выполняться по двум адресам, указанным для PORTE1,0 и PORTF1,0 (табл.3.14).
    Если порт запрограммирован на вывод данных, то при записи в регистр PORTx1 или PORTx0 его содержимое поступает также на выходы порта x (E или F). При чтении будет считываться ранее записанное содержимое этого регистра. Если порт запрограммирован на ввод данных, то при чтении из PORTx1 или PORTx0 будет считываться текущее состояние входов порта x. При записи данные будут поступать в регистр PORTx1 или PORTx0. Можно программировать одну часть выводов порта для работы в качестве входов, а другую - в качестве выходов данных.
    Выводы PC6-0 порта C могут быть запрограммированы на работу в качестве выходов данных, записываемых в регистр PORTC. Для этого необходимо загрузить соответствующее содержимое в регистр управления CSPAR1,0 (см. раздел Блок формирования сигналов выборки кристалла).