Каково типичное соотношение между требуемыми объемами памяти программ и данных микроконтроллера

Распределение памяти программ микроконтроллера КР1830ВЕ51 представлено ниже:

Рисунок 2. Адресное пространство памяти программ.

Для других микроконтроллеров этого семейства изменяется только объем внутренней памяти программ и количество доступных векторов прерываний программы.

Ниже приведены адреса векторов прерываний и соответствующие им аппаратурные источники прерываний программы:

Примечание: вектора прерывания, выделенные:

  1. жирным подчеркнутым текстом- присутствуют во всех микросхемах семейства;
  2. жирным текстом- отсутствуют в микросхемах 8051,8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751;
  3. обычным текстом- присутствуют только в микросхемах 8Х51FA, FB, FC и GB
  4. курсивом- присутствуют только в микросхеме 8Х51GB

Внешняя память данных микроконтроллеров MCS-51

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

005. Производящие функции и линейные рекуррентные соотношения — А.М.Райгородский

Точно также как и в случае внешней памяти программ, объем внешней памяти данных может быть увеличен за счет использования портов P1 и P3 до 1 Гбайта. Внешняя память данных для своей работы требует использование портов P0, P2 и P3. Это приводит к увеличению габаритов устройства, увеличению уровня помех и, в конечном итоге, увеличения стоимости устройства в целом. Поэтому в современных устройствах внешняя память не используется. Однако, в некоторых микроконтроллерах (например 87с550 фирмы DALLAS) команды обращения к внешней памяти используются для работы с дополнительной внутренней памятью большого объема.

Рисунок 3. Адресное пространство внешней памяти данных.

Отметим, что в качестве внешней памяти данных могут быть использованы как микросхемы ОЗУ так и микросхемы ПЗУ.

Внутренняя память данных (RAM) предназначена для временного хранения информации, используемой в процессе выполнения программы. Внутренняя память данных представляет собой 128 восьмиразрядных ячеек, с адресами от 000h до 07Fh для микроконтроллеров 8051, 8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751 или 256 восьмиразрядных ячеек, с адресами от 000h до 0FFh для всех остальных микроконтроллеров семейства. Распределение памяти данных микроконтроллеров серии MCS-51 приведено на рисунке 4.

Адреса с 080h по 0FFh используются регистрами специальных функций.

Младшие 32 байта внутреннего ОЗУ данных объединены с 4 мя банками регистров (RB0 — RB3). Банк регистров состоит из восьми восьмиразрядных регистров с именами R0, R1, …, R7. Несколько банков регистров служат для организации независимой работы нескольких параллельно выполняемых программ. Переключение банков регистров производится при помощи двух особых бит регистра слова состояния программы PSW (RS0 и RS1).

Секреты погружения в новые проекты. Елена Егорова

Команды программы могут обращаться к регистрам, используя их имена R0-R7 (MOV A, R0 или MOV R7, A), или используя их адрес во внутренней памяти данных (MOV A, 0 или MOV 7, A).

Рисунок 4. Адресное пространство внутренней памяти данных.

Следующие после банков регистров внутреннего ОЗУ данных 16 ячеек памяти (адреса 20Н-2FH) образуют область памяти, к которой возможна как байтовая, так и битовая адресация. В этих ячейках располагаются 128 программных флагов (битовых ячеек памяти). Обращение к этим ячейкам возможно по их битовым адресам. Например команды SETB 15 или JB 15 обращаются к 15 флагу, расположенному в старшем бите байтовой ячейки памяти 21h.

Использование однобитовых ячеек памяти позволяет сократить необходимый для работы программы объЈм памяти данных

Рисунок 4. Адресное пространство регистров специальных функций.

  1. жирным подчеркнутым текстом- присутствуют во всех микросхемах семейства;
  2. жирным текстом- отсутствуют в микросхемах 8051,8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751;
  3. обычным текстом- присутствуют только в микросхемах 8Х51FA, FB, FC и GB
  4. курсивом- присутствуют только в микросхеме 8Х51GB
Читайте также:
Программа которая шифрует сообщения

Источник: computer-museum.ru

Типы памяти микроконтроллеров: память программ, память данных, регистры

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

1. ПЗУ масочного типа – Mask ROM. Содержание ячеек ПЗУ этого типа заносится на заводе-изготовителе МК с помощью масок и не может быть заменено или «допрограммировано». Поэтому МК с такой памятью программ следует использовать только после достаточно длительной опытной эксплуатации.

Основным недостатком данной памяти является необходимость значительных затрат на создание нового комплекта фотошаблонов и их внедрение в производство. Обычно такой процесс занимает 2 – 3 месяца и является экономически выгодным только при выпуске несколько десятков тысяч приборов. Достоинством ПЗУ масочного типа является высокая надежность хранения информации по причине программирования в заводских условиях с последующим контролем качества.

2. ПЗУ, однократно программируемые пользователем – OTPROM (One-Time Programmable ROM). В незапрограммированном состоянии каждая ячейка памяти однократно программируемого ПЗУ при считывании возвращает код FFh. Программированию подлежат только те разряды, которые должны содержать «0».

Если в процессе программирования некоторые разряды какой-либо ячейки памяти были установлены в «0», то восстановить в этих разрядах единичное значение уже невозможно. Поэтому рассматриваемый тип памяти и носит название «однократно программируемые ПЗУ». Технология записи информации состоит в многократном приложении импульсов повышенного напряжения к элементарным ячейкам байта памяти (т.е. к битам), подлежащим программированию. МК с однократно программируемым ПЗУ рекомендуется использовать в изделиях, выпускаемых небольшими партиями.

3. ПЗУ, программируемые пользователем с ультрафиолетовым стиранием – EPROM (Erasable Programmable ROM). ПЗУ данного типа программируются электрическим сигналами и стираются с помощью ультрафиолетового облучения. Ячейка памяти EPROM представляет собой МОП-транзистор с «плавающим» затвором, заряд на который переносится с управляющего затвора при подаче на него высокого напряжения.

При этом МОП-транзистор переключается в открытое состояние, и при обращении к ячейке считывается «0». Для стирания содержимого ячейки она облучается ультрафиолетовым светом, который сообщает заряду на плавающем затворе энергию, достаточную для преодоления потенциального барьера и стекания на подложку. Этот процесс может занимать от десятков секунд до нескольких минут.

Число циклов стирания/программирования ПЗУ данного типа ограничено и составляет 15-25 раз. Обычно микросхемы EPROM выпускаются в керамическом корпусе с кварцевым окошком для доступа ультрафиолетового света. МК с ПЗУ данного типа имеют высокую стоимость, поэтому их рекомендуется использовать только в опытных образцах изделий.

4. ПЗУ, программируемые пользователем с электрическим стиранием – EEPROM (Electrically Erasable Programmable ROM). Электрически программируемые и электрически стираемые ПЗУ совместили в себе положительные качества рассмотренных выше типов памяти. Максимальное число циклов стирания/программирования ПЗУ типа EEPROM в составе МК обычно равно 100000.

Эта память позволяет реализовать побайтное стирание и побайтное программирование. По цене ЕEPROM занимают среднее положение между OTPROM и EPROM. Основное преимущество использования ЕEPROM заключается в том, что можно многократно стирать и программировать МК, не снимая его с платы. Таким способом можно производить отладку и модернизацию программного обеспечения.

Это дает огромный выигрыш на начальных стадиях разработки микроконтроллерных устройств или в процессе их изучения, когда много времени уходит на поиск причин программ. Несмотря на очевидные преимущества, только в редких моделях современных МК такая память используется для хранения программ. Связано это с тем, что во-первых, ПЗУ типа ЕEPROM имеют ограниченную емкость и могут использоваться в качестве резидентной памяти программ только в маловыводных МК с небольшим объемом памяти. Во-вторых, почти одновременно с ЕEPROM появились ПЗУ типа Flash, которые при сходных потребительских характеристиках имеют более низкую стоимость.

Читайте также:
Как привязать программу к жесткому диску

5. ПЗУ с электрическим стиранием типа Flash – Flash ROM. Электрически программируемые и электрически стираемые ПЗУ типа Flash функционально мало отличаются от ЕEPROM. Основное отличие состоит в способе стирания записанной информации.

Для увеличения объема памяти транзистор адресации каждой элементарной ячейки был удален, что не дает возможности программировать каждый бит памяти отдельно. Память типа Flash стирается и программируется страницами или блоками. Страница, как правило, составляет 8, 16 или 32 байта памяти, блоки могут объединять некоторое число страниц, вплоть до полного объема резидентного ПЗУ МК. Если необходимо изменить содержимое одной ячейки Flash-памяти, потребуется перепрограммировать весь блок. Упрощение декодирующих схем, произошедшее из-за уменьшения числа транзисторов, и, как следствие, снижение стоимости и размеров привели к тому, что МК с Flash-памятью в настоящее время становятся конкурентоспособными не только по отношению к МК с однократно программируемыми ПЗУ, но и с масочными ПЗУ также.

Выше отмечалось, что ЕEPROM ПЗУ практически никогда не используется для хранения программ, но оно имеет режим побайтного программирования. Данное обстоятельство сделало ЕEPROM идеальным энергонезависимым запоминающим устройством для хранения изменяемых в процессе эксплуатации изделия настроек пользователя. В качестве примера достаточно вспомнить современный телевизор: настройки каналов сохраняются при отключении питания. Одной из тенденций совершенствования резидентной памяти 8-разрядных МК стала интеграция на кристалл МК сразу двух моделей энергонезависимой памяти: OTPROM или Flash ROM – для хранения программ и EЕPROM – для хранения перепрограммируемых констант.

Память данных (ПД) микроконтроллеров предназначена для хранения промежуточных данных в ходе выполнения программы. В современных микроконтроллерах память данных подразделяется по выполняемым функция и способу реализации на два вида:

1) оперативная память – ОЗУ;

2) память хранения данных в EEPROM.

Оперативная память (англоязычный термин RAM) является ОЗУ статического типа, так как ячейки ее выполняются на основе триггеров. Эта память энергозависима, так как ее содержимое теряется при выключении электропитания. Достоинством статического ОЗУ является высокое быстродействие, простота управления памятью. Однако такое ОЗУ имеет существенные недостатки: большое энергопотребление и большое количество активных компонентов (транзисторов), необходимых для ее реализации. Объем оперативной памяти данных МК, как правило, невелик и составляет обычно десятки или сотни байт.

Второй вид ПД – это память хранения данных в EEPROM. Эту память можно использовать для данных, которые необходимо сохранить при выключении электропитания, а также неоперативных данных. Неоперативными данными могут быть настроечные параметры, изменяемые константы. Объем памяти хранения данных небольшой и обычно составляет несколько десятков байт.

Эту память нельзя использовать в качестве оперативной. Во-первых, она является очень «медленной». Так время записи в ее ячейку составляет несколько миллисекунд. Во-вторых, она имеет ограниченное количество циклов записи-стирания.

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

В МК с RISC-процессором все регистры (часто и аккумулятор) располагаются по явно задаваемым адресам. Это обеспечивает более высокую гибкость при работе процессора.

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

В других МК адресное пространство устройств ввода/вывода отделено от пространства памяти. Отдельное пространство ввода/вывода дает некоторое преимущество процессорам с Гарвардской архитектурой, обеспечивая возможность считывать команду во время обращения к регистру ввода/вывода.

Читайте также:
Программа готов к труду и обороне появилась в каком году

Источник: megaobuchalka.ru

Организация памяти микроконтроллера

Большинство современных микроконтроллеров имеют Гарвардскую архитектуру и содержат 3 вида памяти:

  • память программ FLASH;
  • оперативная память (ОЗУ) SRAM (Static RAM);
  • энергонезависимая память данных EEPROM.

Адресные пространства указанных видов памяти, как правило, разделены. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность. Каждая из областей памяти данных (SRAM и EEPROM) также расположена в своем адресном пространстве.

Память программ

Память программ представляет собой электрически стираемое ППЗУ (FLASH) и может поддерживать команды с разрядностью больше 8 бит. В некоторых микроконтроллерах память программ разделена на 2 секции:

  • секцию загрузчика (Boot Program);
  • секцию прикладных программ (Application Program).

Память программ чаще всего является электрически перепрограммиру­емой, количество циклов перезаписи превышает 10 тысяч.

Большинство микроконтроллеров поддерживают внутрисхемное программирование , т. е. загрузку программы в микроконтроллер можно осуществлять после монтажа на плату посредством специального разъема программирования.
Для адресации памяти программ используется счетчик команд (Program Counter – PC).
В памяти программ также находится вектор сброса — в момент подачи питания микроконтроллер начинает выполнение программы с этого адреса, и здесь размещается команда перехода к началу исполняемой программы. Кроме того, память программ содержит таблицу векторов прерываний. При возникновении прерывания после сохранения в стеке текущего значения счетчика команд происходит выполнение команды, расположенной по адресу соответствующего вектора. Поэтому по данным адресам располагаются команды перехода к подпрограммам обработки прерываний.
Положение вектора сброса и таблицы векторов прерываний может быть перенесено из секции прикладных программ в секцию загрузчика.

В некоторых случаях память программ может использоваться не только для хранения кода программы, но и для хранения различных констант.

Оперативная память

Оперативная память, как правило, содержит 3 области:

  • регистры общего назначения;
  • служебные регистры;
  • память для хранения данных.

Регистры общего назначения (РОН) находятся в непосредственной близости к АЛУ. Однако в микроконтроллерах некоторых фирм (в частности, PIC фирмы Microchip) имеется только один рабочий регистр, играющий роль одного из операндов в командах.
Применение набора регистров общего назначения в сочетании с конвейерной обработкой позволяет АЛУ выполнять одну операцию (извлечение операндов из набора регистров, выполнение команды и запись результата обратно в регистр) за один такт.

Служебные регистры имеют свои имя, адрес и назначение. Они предназначены для конфигурации и обслуживания периферийных узлов микроконтроллера. Краткая характеристика служебных регистров должна быть приведена в руководстве по использованию микроконтроллера (Data Sheet).
Среди служебных регистров есть, как правило, один регистр, используемый наиболее часто в процессе выполнения программ. Это регистр состояния. Он содержит набор флагов, показывающих текущее состояние микроконтроллера.

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

Остальная часть оперативной памяти предназначена для хранения пользовательских данных.

Энергонезависимая память данных

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

Чтение и запись данных в EEPROM, как правило, осуществляется посредством использования соответствующих регистров из области служебных регистров SRAM. Как правило, это:

  • регистр адреса при обращении к EEPROM;
  • регистр данных, считанных/записанных в EEPROM;
  • регистр управления чтением-записью EEPROM.

Источник: prog-cpp.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru