Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория микропроцессорных систем АТ_Методическое...docx
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
3.72 Mб
Скачать

2.1.7. Параллельный ввод-вывод данных и подключение внешней памяти

Параллельный обмен данными между микроконтроллерами семейства 68НС12/912 и внешними устройствами производится с помощью портов, количест­во которых для различных моделей составляет от 8 до 12.

Таблица 2.18. Состав и функции выводов портов для микроконтроллеров

семейства 68НС12/912

Состав и функции параллельных портов. Назначение выводов параллельных портов для ряда микроконтроллеров семейства 68НС11/711 указано в табл. 2.18. Порты имеют до восьми линий ввода-вывода (i/o), некоторые порты и линии служат только для ввода данных (i). Выводы ряда портов используются для выполнения альтернативных функций, обеспечивая обмен с внешней памятью в расширенном режиме (передачу адреса и данных), передачу входных и выходных сигналов для других устройств - последовательных портов SCI, SPI, таймера, АЦП, ШИМ, кон­троллеров шин CAN, BDLC, I2C. При работе этих устройств соответствующие вы­воды служат для передачи сигналов, обеспечивающих их функционирование, и не используются в качестве входов или выходов параллельных портов. Большинство портов обеспечивает передачу 8-разрядных данных, однако в некоторых моделях имеются порты с меньшим числом линий ввода-вывода.

Параллельные двунаправленные порты (i/o) содержат 8-разрядные регистры данных PORTx и регистры направления пересылки DDRx (символ х = А, В, С, D, Е, F, G, H, J, К, Р, S, T, DLC, IB, CAN, AD указывает имя порта). В регистры DDRx вводится управляющий код, программирующий направление передачи для каждого вывода порта: если i-й бит DDRxi имеет значение 0, то соответствующий вывод порта PTxi является входом, если DDRxi =1 - то выходом. В процессе на­чального запуска микроконтроллера в регистрах DDRx устанавливается нулевое значение всех битов, поэтому в исходном состоянии порты запрограммированы на выполнение ввода данных. Однонаправленные порты ввода AD имеют только реги­стры данных.

Обращение к портам производится с помощью команд LDAA, LDAB и STAA, STAB, как это описано в 1.3.6 для семейства 68НС11/711. Адреса регистров портов для семейства 68НС12/912 приведены в табл. 2.19. Для портов J, G, Н в скобках ука­заны адреса, используемые в модели 68НС812А4.

Таблица 2.19. Адреса регистров портов для микроконтроллеров семейства 68НС12/912

Назначение портов А, В, Е (а также портов С, D для модели 68НС812А4) зави­сит от режима использования микроконтроллера. При работе в автономном режиме эти порты служат для ввода-вывода данных, при работе в расширенных режимах они используются для выдачи адреса и обмена данными при обращении к внешней памяти. При этом назначение выводов порта Е определяется содержимым регистра PEAR (рис. 2.14), отдельные биты которого имеют следующее назначение:

NDBE - при NDBE=1 вывод РЕ7 используется для ввода-вывода данных, при NDBE=0 на этот вывод поступает сигнал разрешения передачи данных DBE#, ис­пользуемый при обращении к внешней памяти в расширенном режиме;

PIPOE - при РIРОЕ=0 выводы РЕ6-5 используются для ввода-вывода данных, при РIРОЕ=1 эти выводы служат для указания состояния очереди команд (см. 2.1.2);

NECLK - при NECLK=0 на вывод РЕ4 поступают сигналы тактовой частоты ECLK, при NECLK=1 этот вывод в автономном режиме используется для ввода-вывода данных, если в регистре MODE (см. 2.1.3) установлено значение бита ESTR=0 (в расширенных режимах значение NECLK всегда равно 0);

LSTRE - при LSTRE=0 вывод PE7 используется для ввода-вывода данных, при LSTRE=1 на этот вывод в расширенном 16-разрядном режиме поступает сигнал разрешения передачи данных LSTRB#, используемый при обращении к внешней памяти (в автономном и расширенном 8-разрядном режимах значение LSTRE все­гда равно 0);

RDWE - при RDWE=0 вывод PE7 используется для ввода-вывода данных, при RDWE=1 на этот вывод в расширенных режимах поступает сигнал записи-считывания, используемый при обращении к внешней памяти (в автономном режи­ме значение RDWE всегда равно 0);

CGMTE (для моделей 68HC912D60, DG128, 68НС812А4) - при значении CGMTE=1 разрешает в специальном режиме использование вывода РЕ6 в качестве выхода сигнала тестирования ГТИ;

ARSIE (только для модели 68НС812А4) - при ARSIE=0 вывод PE7 служит для ввода-вывода данных, при ARSIE=1 этот вывод используется для запуска микро­контроллера при поступлении высокого уровня потенциала (сигнал RESET).

Рис. 2.14. Формат содержимого регистра PEAR (адрес $000A)

В моделях 68HC912D60, DG128 используются дополнительные биты, задаю­щие функции вывода РЕ7 порта Е:

CALE - определяет использование вывода РЕ7 при значении бита NDBE=1: ввод-вывод данных при CALE=0, выход сигналов калибрации с частотой Fs (см. 2.1.5) при CALE=1;

DBENE - определяет использование вывода РЕ7 в расширенных режимах при значении бита NDBE=0: выход сигнала передачи данных DBE# при DBENE=0, вы­ход инвертированных тактовых импульсов при DBENE=1.

При запуске микроконтроллера в расширенных режимах все биты в регистре PEAR принимают значение 0, в автономном режиме устанавливаются значения NDBE=NECLK=1. При даленейшей работе допускается только однократная запись (изменение) значений битов NDBE, PIPOE, NECLK, LSTRE, RDWE, DBENE.

К выводам портов подключаются резисторы, «подтягивающие» их потенциал к напряжению питания (pull-up), если соответствующий бит PUPx (символ х указы­вает имя порта - А, В, С, D, E, F, G, Н или К) в регистре PUCR (рис. 2.15) установ­лен в единицу.

Рис. 2.15. Формат содержимого регистра PUCR (адрес $000С) для моделей

68НС812А4 (а), 68НС912В32, ВС32 (б), 68HC912D60 (в), 68HC912DG128 (г)

В микроконтроллерах 68НС81А4 для выводов порта J возможно подключение резисторов, «подтягивающих» их потенциал к напряжению питания (pull-up) или к потенциалу «земли» (pull-down). Эти возможности реализуются с помощью 8-раз­рядных регистров PULEJ (адрес $002Е) и PUPSJ (адрес $002D). Если i-й бит в ре­гистре PULEJ равен 1, то к соответствующему выводу PJi порта J при работе в ре­жиме ввода данных подключается резистор, «подтягивающий» его потенциал к напряжению питания или «земли». При этом i-й бит в регистре PUPSJ определяет потенциал, к которому подключается «подтягивающий» резистор: если значение бита равно 0, то резистор подключается к потенциалу «земли» (pull-down), если рав­но 1, то к напряжению питания (pull-up).

Для портов микроконтроллера предусмотрена возможность работы с пони­женными выходными токами (уменьшенной нагрузочной способностью). В нормальном режиме эти выводы обеспечивают протекание выходных токов нагрузки Iн0=1,6 мА при низком уровне потенциала на выходе U0 и Iн1=0,8 мА при высоком уровне U1. Для снижения потребляемой мощности можно обеспечить ре­жим работы выходных каскадов с пониженными выходными токами Iн0=0,6 мА и Iн1=0,3 мА, если установить в регистре RDRIV (рис. 2.16) значения битов RDPx=l (символ х указывает имя порта - А, В, С, D, E, F, G, Н или К, бит RDPAB обеспечи­вает снижение токов нагрузки для портов А и В). Отметим, что снижение выходных токов приводит к уменьшению быстродействия, особенно при повышенной емкости нагрузки.

Рис. 2.16. Формат содержимого регистра RDRIV (адрес $000D) для моделей

68НС812А4 (а), 68НС912В32(б), 68HC912D60 (в), 68HC912DG128 (г)

Возможности подключения «подтягивающих» резисторов и снижения выход­ных токов предусмотрены также и для других портов микроконтроллера. Для порта S эти возможности реализуются с помощью регистра PURDS (рис. 2.17), где биты PUPS0, PUPS 1 и PUPS2 при значении 1 вызывают подключение «подтягивающих» резисторов к выводам PS1-0, PS3-2 и PS7-4 соответственно а биты RDPS0, RDPS1 и RDPS2 обеспечивают для этих выводов снижение выходных токов Iн0, Iн1.

Рис. 2.17. Формат содержимого регистра PURDS (адрес $00DB)

Для портов Р, Т, DLC, CAN, IB биты PUPx, RDPx, определяющие режим рабо­ты выходных каскадов, содержатся в регистрах управления модулей ШИМ, тайме­ров, контроллеров CAN, BDLC, I2C, которые подключены к этим портам.

При запуске микроконтроллера биты PUPx, RDPx во всех регистрах принимают значение 0, обеспечивая исходный режим работы выходных каскадов портов без «под­тягивающих» резисторов и с нормальными значениями выходных токов Iн0, Iн1.

Использование портов для формирования запросов прерывания. Как отме­чено в 2.1.3, формирование запросов прерывания KWi производится при подаче соответствующих сигналов на входы некоторых портов микроконтроллеров:

D, H, J - для модели 68НС812А4,

G, Н - для модели 68HC912D60,

J, H - для модели 68HC912DG128.

Эти функции реализуются с помощью регистров KWIEx, KWIFx (символ х указывает имя порта х = D, G, J, H), KPQL, KWPJ, KWPH, адреса которых приве­дены в табл. 2.20.

В регистрах KWIFx (x=D, G, Н или J) соответствующие биты фиксируют по­ступление сигналов, вызывающих прерывание, на i-й вход порта х = D, G, Н или J. Содержимое регистров KWIEx разрешает при установке i-ro бита в 1 формирова­ние запросов прерывания при поступлении сигнала на i-й вход порта х.

Таблица 2.20. Адреса регистров, управляющих формированием запросов прерывания KW

Обычно сигналом, вызывающим прерывание, является поступление отрица­тельного перепада потенциала на соответствующий вывод порта. Однако для порта J в микроконтроллерах 68НС812А4 и портов J, H в микроконтроллерах 68HCDG128 вид сигнала, вызывающего прерывание, определяется содержимым регистров KPOLJ и KWPJ, KWPH. Если значение i-ro бита в этих регистрах равно 0, то за­прос прерывания формируется при отрицательном перепаде потенциала на i-м вхо­де данного порта, если значение i-ro бита равно 1, то при положительном перепаде потенциала на соответствующем входе.

В микроконтроллерах 68HC912D60, DG128 сигналы KWi, поступающие на входы портов G, Н или J, H, вызывают обращение к вектору прерывания с адре­сом $FFCE-CF (см. 2.1.3). В микроконтроллерах 68НС812А4 запросы, поступающие от портов D, J, H, вызывают разные векторы прерываний:

  • запросы от порта D - вектор с адресом $FFF2-F3 (как и для запроса IRQ);

  • запросы от порта J - вектор с адресом $FFD0-D1;

  • запросы от порта Н - вектор с адресом $FFCE-CF.

Обычно сигналы KWi используются для перевода микроконтроллера из режима ожидания или останова в рабочий режим.

Подключение внешней памяти. В расширенных режимах работы микрокон­троллеры семейства 68НС12/912 используют для обращения к внешней памяти мультиплексированную шину адреса-данных с управляющими сигналами DBE -адресный строб, R/W# - сигнал чтения-записи (рис. 2.18), которые поступают на соответствующие выводы порта Е (см. рис. 2.1). Порт А служит для передачи стар­шего байта адреса А15-8 и данных D15-8, порт В - для передачи младшего байта адреса А7-0 и данных D7-0. При 8-разрядном расширенном режиме передается только младший байт данных D7-0, который поступает на выводы РА7-0 порта А.

Запись или чтение данных производится за один период тактовых сигналов на выходе ECLK, который имеет длительность Tt=1/Ft. Временные диаграммы сигна­лов для циклов записи и чтения приведены на рис. 2.18. В первой половине цикла на выводы AD15-0 портов А, В поступает адрес, устанавливается соответствующий уровень сигнала записи-чтения R/W# (0 - запись, 1 - чтение), а также выдается строб передачи младшего байта LSTRB# =0, если в регистре PEAR значение бита LSTRE=1. Во второй половине цикла передаются данные, при этом устанавливается сигнал передачи данных DBE# =0.

В микроконтроллерах 68НС812А4 для обращения к внешней памяти использу­ется раздельная шина: младший байт данных D7-0 поступает на выводы PD7-0 пор­та D, старший байт данных D15-8 - на выводы РС7-0 порта С, младший байт адреса А7-0 - на выводы РВ7-0 порта В, старший байт адреса А15-8 - на выводы РА7-0 порта А. При этом на выводы PG5-0 порта G могут дополнительно выводиться еще 6 старших разрядов адреса А21-16, обеспечивая возможность работы с памятью объемом до 4 Мбайт. При раздельной шине адреса-данных не требуется выдача сигнала DBE#, поэтому для управления обращением к внешней памяти использует­ся только сигнал R/W# и, если необходимо, сигнал LSTRB#. На выводах порта F в этих микроконтроллерах могут формироваться сигналы разрешения выборки CS# при обращении к различным разделам адресного пространства.

Рис. 2.18. Временные диаграммы цикла записи-чтения содержимого внешней памяти в расширенных режимах