В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве

текст еще



Руководство пользователя по микроконтроллерам семейства MAXQ

Руководством пользователя по микроконтроллерам семейства MAXQ необходимо пользоваться совместно с соответствующими техническими описаниями микроконтроллеров этой серии.

Раздел 1: Краткий обзор

MAXQ - это семейство 16-разрядных микроконтроллеров с вычислительным ядром с уменьшенным набором команд (reduced instruction set computing - RISC), предназначенных для применения в недорогих низкопотребляющих встроенных устройствах. Гибкая модульная архитектура, используемая в этих микроконтроллерах, позволяет снизить усилия при разработке.

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

Система команд

Все микроконтроллеры семейства MAXQ используют общую систему 16- битных команд. Основанная на регистрах архитектура позволяет закодировать все команды как простые операции переноса. Все команды могут записывать данные в регистры или в память или же перемещать данные между регистрами и/или ячейками памяти.

Такое упрощенное декодирование команд по старшим символам позволяет выполнять их за один цикл. Так как вычислительное ядро работает только с регистрами, то новые функциональные возможности могут быть добавлены путем простого добавления модулей. Также простая система команд обеспечивает максимальную гибкость для оптимизации кода компилятором.

Гарвардская архитектура памяти

Память программы, память данных и область регистров в микроконтроллерах семейства MAXQ отдельны друг от друга и доступ к ним осуществляется по отдельным шинам. Этот тип архитектуры памяти (известный как Гарвардская архитектура) имеет некоторые преимущества.

Во-первых, длина слова для различных типов памяти может быть различной. Память программы должна иметь 16- битное слово, так как команды являются 16- разрядными, но системные и периферийный регистры могут быть как 8- так и 16- битными. Так как память данных не предназначена для хранения кода программы, то размер слова памяти данных должен определяться в каждом конкретном случае.

Также, так как доступ к памяти осуществляется вычислительным ядром только через соответствующие регистры, то возможно обеспечить модулям регистров прямой доступ к памяти независимо от вычислительного ядра. Кроме того, возможно иметь несколько типов памяти данных, доступ к которым осуществляется через соответствующие регистры.

Регистры

Так как доступ ко всем функциям в микроконтроллерах семейства MAXQ осуществляется через регистры, следовательно, доступ к общим функциям осуществляется через регистры общего назначения. Многие из этих регистров являются эквивалентом логических функций высокого уровня, обеспечивая формирование оперативных кодов, непосредственно получая доступ к арифметическому логическому устройству (АЛУ), циклическому счетчику и регистраторам указателя данных. Другие, типа регистра прерывания, обеспечивают общее управление и настройку функций, которые имеются у всех микроконтроллеров семейства MAXQ.

Совокупность общих регистров, называемых системными регистрами, состоит из:

  • Регистры доступа и управления АЛУ, включающие в себя рабочий аккумулятор и флаги состояния микропроцессора
  • Два указателя данных и указатель кадра для доступа к памяти данных
  • Автоматически уменьшающийся циклический регистр для ускорения и обеспечения компактности циклов
  • Указатель команды и регистры контроля точек ветвления
  • Указатель вершины стека и точка доступа к 16-разрядному аппаратному стеку
  • Регистры векторов прерывания, идентификации и маскирования

Доступ к периферийным устройствам и другим характеристикам, которые могут быть различными у различных микроконтроллеров семейства MAXQ, осуществляется через периферийные регистры. Эти регистры, сгруппированные в модули регистров, обеспечивают такие дополнительные функциональные возможности как:

  • Последовательный универсальный асинхронный приемопередатчик (UART)
  • Быстродействующие таймеры и счетчики
  • Последовательный периферийный интерфейс (Serial Peripheral Interface - SPI)
  • Аппаратный умножитель
  • Часы реального времени
  • Модуль мастера шины 1-Wire
  • Цифровые порты ввода-вывода общего назначения

Микроконтроллеры MAXQ10 и MAXQ20

В данном руководстве пользователя рассматриваются 8- битные микроконтроллеры семейства MAXQ10 и 16- битные микроконтроллеры семейства MAXQ20. Отличаются они только шириной шины данных и АЛУ. Микроконтроллеры семейства MAXQ10 имеют 8- битные шину данных и АЛУ, а микроконтроллеры семейства MAXQ20 - 16- битные шину данных и АЛУ. Это отличие наиболее очевидно при сравнении системы команд и, следовательно, определяет те действия, которые выполняет АЛУ и аккумуляторы. Регистры микроконтроллеров семейств MAXQ10 и MAXQ20 могут быть как 8- битными, так и 16- битными.

Псевдо- неймановское управление памятью

MAXQ поддерживает псевдо- неймановскую структуру памяти, которая может объединить программу и данные в одном линейном пространстве памяти. Это достигнуто за счет отображения памяти данных в области памяти программы или отображения памяти программы в памяти данных. Память программ с адресами от x0000h до x7FFFh - это обыкновенная память прикладной программы, за которой следует сервисная память. Верхние 64k слов памяти - логическая область для памяти данных, доступ к которой осуществляется как сегменту кода.

Память программы логически разделена на четыре программные страницы:

  • P0 содержит нижние 16К слов,
  • P1 содержит второй блок 16К слов,
  • P2 содержит третий блок 16К слов,
  • P3 содержит четвертый блок 16К слов.

По умолчанию, P2 и P3 не доступны для выполнения программы до тех пор, пока они явно не активизированы пользовательским программным обеспечением. Для этого необходимо установить бит доступа к верхней части памяти программы (Upper Program Access UPA). После установки UPA, P2 и P3 займут верхнюю половину 64К слов области программы. При такой конфигурации (UPA = 1), доступ к сервисному ПЗУ и памяти данных не может быть осуществлен из памяти программы.

Логическое отображение физической страницы (страниц) памяти программы в область данных зависит от двух факторов: текущей физической памяти, используемой в настоящее время для выполнения программы; и выбранного доступа к слову/байту памяти данных. Если выполняется код из сервисной памяти, то физическая страница (страницы) памяти программы может логически отобразиться к верхней половине пространства памяти данных. Если для выполнения используется логическая память данных, то физическая страница (страницы) памяти программы может логически отобразиться в нижней половине пространства памяти данных. Если выбран режим доступа к байтам, то только одна страница (16К слов) может логически отобразиться в соответствии со сказанным выше в верхней или нижней части пространства памяти данных. Если выбран режим доступа к словам, то можно логически отобразить в памяти данных две страницы (32К слов). Чтобы избежать наложения памяти в режиме доступа к байтам физическая память данных в режиме доступа к словам должна быть ограничена адресами от x0000h до x3FFFh. Для выбора физической страницы памяти или страниц, которые логически отображаются в пространстве памяти данных, используется биты выборки кода (Code Access Bits - CDA1:0).

На рисунках 3 и 4 показаны заданные по умолчанию карты памяти для этой структуры памяти. Основное отличие находится в заданных по умолчанию установках при сбросе в битах указателя данных выбора режима слов/байт (Word/Byte Mode Select - WBSn). Биты WBSn у MAXQ10 по умолчанию устанавливают режим доступа к байтам (WBSn = 0), а у MAXQ20 - доступ к словам (WBSn = 1).

Псевдо - неймановская карта памяти
Рисунок 3. Псевдо - неймановская карта памяти (значения по умолчанию для MAXQ10)

Псевдо - неймановская карта памяти
Рисунок 4. Псевдо - неймановская карта памяти (значения по умолчанию для MAXQ20)

Псевдонемановский доступ к памяти

Если в память не отображается сервисная память, память программ или сегменты памяти данных, то псевдонеймановское управление памятью является прямым. Однако, в приложениях, требующих большой памяти программы, для выборочной активизации отображаемых сегментов памяти может использоваться постраничная схема. Бит UPA может использоваться для активизации верхней половины памяти программы (P2 и P3) для выполнения кода прикладной программы. При доступе к памяти программы как к памяти данных, биты CDA могут использоваться для выбора одной из четырех необходимых страниц памяти программы. Полный доступ к любой из четырех страниц памяти программы как к памяти данных основан на том, что максимальный объем физической памяти данных равен 16К x 16. С другой стороны псевдонеймановский доступ к памяти накладывает ограничение, которое не позволяет получить доступ к памяти программы как к памяти данных в том случае, когда программа находится в специфическом сегменте памяти программы.

При выполнении программы из 32 К нижних страниц памяти (страницы P0 и P1):

  • Если бит UPA установлен в 1, верхняя половина памяти программы (страницы P2 и P3) доступна в качестве памяти программы.
  • Если UPA = 0, то физическая память данных доступна в качестве памяти программы со смещением xA000h.
  • Операции загрузки (LOAD) и хранения (STORE), обращающиеся к физической памяти данных выполняются в нормальном режиме.
  • Сервисная память может быть считана как память данных со смещением x8000h.

При выполнении программы из сервисной памяти (возможно только когда UPA = 0):

  • 32К нижних страницы памяти (P0 и P1) функционируют как обычная память программы.
  • Верхние страницы памяти программы (P2 и P3) не доступны как память программы (так как UPA = 0).
  • Физическая память данных может быть использована в качестве памяти программы со смещением xA000h.
  • Операции загрузки (LOAD) и хранения (STORE), обращающиеся к физической памяти данных выполняются в нормальном режиме.
  • Одна страница (режим доступа к байтам) или две страницы (режим доступа к словам) могут быть адресованы как память данных со смещением x8000h (определяется состоянием битов CDA1:0).

При выполнении программы из памяти данных (возможно только когда UPA = 0):

  • При выполнении прикладной программы возможны свободные переходы между 32 К нижних (P0 и P1) страниц памяти и областью сервисной памяти.
  • Верхние страницы памяти (P2 и P3) как память программы не доступны (так как UPA = 0).
  • К сервисной памяти можно обратиться как к памяти данных со смещением x8000h.
  • Одна страница (режим доступа к байтам) или две страницы (режим доступа к словам) могут быть адресованы как память данных со смещением x0000h (определяется состоянием битов CDA1:0).

Совмещение данных

Для поддержки совместной работы памяти программы и памяти данных при обеспечении эффективности использования пространства памяти, доступ к памяти данных должен поддерживаться как в побайтовом, так и в пословном режиме доступа. Данные совмещаются в памяти данных как слово, но эффективная адресация данных обеспечивается побайтно. Такое совмещение данных позволяет выбирать код программы в обычном пословном режиме при одновременной поддержки побайтного доступа. Важно понять, что эта доступность требует строгого позиционирования слова. Все выполняемые слова должны в побайтовом режиме находиться по четным адресам. Об этом необходимо позаботиться при обновлении сегмента кода программы в объединенном пространстве памяти данных, поскольку неточное совмещение слов приведет к неправильному выполнению программы. Хуже всего все то, что эта ситуация не может быть обнаружена если сторожевой таймер будет отключен.

Память данных организована в виде двухбайтных банков памяти с общим декодером слова адреса, но с двумя 8- битными шинами данных. Данные из памяти данных будут всегда считываться в виде законченного слова независимо от режима. Декодер программы всегда использует полное 16-разрядное слово, а для данных можно получить доступ ко всему слову или к отдельному биту.

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

Функции CDA (пословный режим доступа)
Рисунок 5. Функции CDA (пословный режим доступа)

Функции CDA (побайтный режим доступа)
Рисунок 6. Функции CDA (побайтный режим доступа)

Элемент управления памятью

Распределение памяти и управление доступной памятью программы и данных может осуществлять элемент управления памятью (MMU). В данном руководстве пользователя рассматривается только один вариант элемента управления памятью, однако, создание элемента управления памятью для любого конкретного изделия зависит от типа и объема памяти, адресуемого прибором. Для получения более подробной информации необходимо обратиться к техническому описанию для конкретного микроконтроллера.

При поддержке меньшего, чем максимально адресуемая память программы и данных, количества сегментов, представленная реализация MMU обеспечивает высокую степень гибкости управления выборкой и программированием. Элемент поддерживает следующее:

  • Пользовательская память программы до 32К x 16 (до 64К x 16 при установленном бите UPA).
  • Сервисную память до 8К x 16.
  • SRAM память данных до 16К x 16.
  • Внутрисистемное программирование и программирование в приложении встроенной EEPROM, Flash или SRAM памяти.
  • Доступ к любой из трех областей памяти (SRAM, память программы, сервисная память) при помощи указателей памяти данных.
  • Выполнение программы из трех областей памяти (SRAM, память программы, записанные и оттестированные при производстве подпрограммы сервисной памяти).

Учитывая эти возможности, при обращении к памяти применяются следующие правила:

  • Нельзя одновременно получить доступ к специфическому сегменту памяти как к памяти данных и памяти программы.
  • При логическом отображении памяти данных в памяти программы адрес смещения равен xA000h.
  • При логическом отображении сервисной памяти в памяти данных адрес смещения равен x8000h.
  • Память программ:
    • Нижняя половина памяти программы (страницы P0 и P1) всегда доступна начиная с адреса x0000h.
    • Верхняя половина памяти программы (страницы P2 и P3) должна быть активизирована путем установки бита UPA в единицу для выполнения кода начиная с адреса x8000h.
    • Установка бита UPA в 1 отвергает выборку сервисной памяти и логической памяти как памяти программы.
    • Страницы физической памяти программы (P0, P1, P2, P3) логически отображаются в области данных в соответствии с используемым в настоящее время сегментом памяти, выбранным режимом доступа (побайтный или пословный) и конфигурационными битами CDA1:0, как это было описано выше
  • Память данных
    • Выбираться может байт или слово
    • Все 16 адресных бит указателя данных используются в обоих режимах (пословном или побайтовом)

Формирование синхросигнала

Все функциональные модули в MAXQ синхронизируются при помощи единого системного синхросигнала. Встроенный генератор синхросигнала формирует системные синхроимпульсы из сигналов одного из возможных источников:

  • Внутренний кольцевой автогенератор
  • Внутренний автогенератор, использующий внешний кварцевый или керамический резонатор
  • Внутренний релаксационный автогенератор, использующий внешнюю RC цепочку
  • Внешний источник синхросигнала

Внешние синхроимпульсы и кварцевый генератор являются взаимоисключающими, так как они используют одни и те же выводы. Выбор основного генератора тактовых импульсов осуществляется путем установки двух битов: RGSL и XT/RC. Бит RGSL управляет выбором внутреннего кольцевого автогенератора, формирующего системные синхроимпульсы. Если RGSL = 1, то для формирования системных синхроимпульсов используется внутренний кольцевой автогенератор. Бит RGSL доступен для чтения и записи в любое время, при этом после сброса при подаче питания он устанавливается в "0", разрешая внутреннему кольцевому автогенератору выполнять синхронизацию системы до тех пор, пока не запустится кварцевый генератор или пока прикладная программа не настроит вывод XTAL1 на работу с внешней RC цепочкой (XT/RC =0). Бит XT/RC может быть перезаписан только тогда, когда для формирования синхроимпульсов выбран внутренний кольцевой автогенератор (RGSL=1). Для того чтобы изменения бита XT/RC вступили в силу прикладная программа должна остановить внутренний кольцевой автогенератор (RGSL = 0). Так как биты RGSL и XT/RC находятся в одном и том же регистре, то выбор внешнего источника синхронизации может быть выполнен той же командой, что и отключение внутреннего кольцевого автогенератора. После отключения кольцевого автогенератора (RGSL = 0) бит RGMD может использоваться для того, чтобы оценить, когда произошло переключение к источнику, выбранному битом XT/RC. При выборе внешней RC цепочки (XT/RC =0) требуется 4 цикла для выхода автогенератора на режим, а при использовании внешнего кварцевого резонатора или внешнего источника синхроимпульсов (XT/RC = 1) пройдет 65,536 цикла прежде, чем система синхронизации выйдет на режим. Кроме того, эти интервалы являются защитными при ошибочном переключении бита XT/RC, которое может привести к рассогласованию состояния выводов XTAL1 и XTAL2 и внешней времязадающей цепочки.

При использовании внешней синхронизации каждое временное выполнение прикладной программы (например, при выходе прибора из дежурного режима) выполняется следующая последовательность:

  • Сброс установочного счетчика кварцевого генератора
  • Формирование задержки:
    • 65 536 внешних тактовых циклов если XT/RC = 1 и выход из режима останова
    • 4 внешних тактовых цикла если XT/RC = 0
  • В течение установочной последовательности прикладная программа может выполняться при синхронизации от внутреннего кольцевого автогенератора (если он имеется в данном типе микроконтроллера MAXQ). Обнаружить переход от синхронизации внутренним кольцевым автогенератором к синхронизации от выбранного XT/RC источника прикладная программа может путем опроса бита RGMD. Если бит RGSL равен единице, то это означает, что выбран внутренний кольцевой автогенератор или установочный интервал еще не закончился.

Источники синхросигнала MAXQ
Рисунок 7. Источники синхросигнала MAXQ






 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники