Основы микропроцессорной техники | |
Раздел 4. Организация микроконтроллеров | |
| «Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения | |
| Раздел 4 - Страницы: «| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |» | |
4.3. Память программ и данных МКВ МК используется три основных типа памяти. Память программ представляет собой постоянную память (ПЗУ), предназначенную для хранения программного кода (команд) и констант. Ее содержание в ходе выполнения программы не меняется. Память данных предназначена для хранения переменных в процессе выполнения программы и представляет собой ОЗУ. Регистры МК - этот вид памяти включает в себя внутренние регистры процессора и регистры, которые служат для управления периферийными устройствами (регистры специальных функций). 4.3.1. Память программОсновным свойством памяти программ является ее энергонезависимость, то есть возможность сохранения программы при отсутствии питания. С точки зрения пользователей МК следует различать следующие типы энергонезависимой памяти программ:
4.3.2. Память данныхПамять данных МК выполняется, как правило, на основе статического ОЗУ. Термин "статическая" означает, что содержимое ячеек ОЗУ сохраняется при снижении тактовой частоты МК до сколь угодно малых значений (с целью снижения энергопотребления. Большинство МК имеют такой параметр, как "напряжение хранения информации" - U STANDBY. При снижении напряжения питания ниже минимально допустимого уровня U DDMIN, но выше уровня U STANDBY работа программы МК выполняться не будет, но информация в ОЗУ сохраняется. При восстановлении напряжения питания можно будет проинициализировать МК и продолжить выполнение программы без потери данных. Уровень напряжения сохранения составляет обычно около 1 В, что позволяет в случае необходимости перевести МК на питание от автономного источника (батареи) и сохранить в этом режиме данные ОЗУ. Объем памяти данных МК, как правило, невелик и составляет преимущественно десятки и сотни байт. Это обстоятельство необходимо учитывать при разработке программ для МК. Так, при программировании МК константы, если возможно, не сохраняются как переменные, а заносятся в ПЗУ программ. Максимально используются аппаратные возможности МК, в частности, таймеры. Прикладные программы должны ориентироваться на работу без использования больших массивов данных. 4.3.3. Регистры МККак и все МПС, МК имеют набор регистров, которые используются для управления его ресурсами. В число этих регистров входят обычно регистры процессора (аккумулятор, регистры состояния, индексные регистры), регистры управления (регистры управления прерываниями, таймером), регистры, обеспечивающие ввод / вывод данных (регистры данных портов, регистры управления параллельным, последовательным или аналоговым вводом / выводом. Обращение к этим регистрам может происходить по-разному. В МК с RISC-процессором все регистры (часто и аккумулятор) располагаются по адресам, явно задаются. Это обеспечивает более высокую гибкость при работе процессора. Одним из важных вопросов является размещение регистров в адресном пространстве МК. В некоторых МК все регистры и память данных располагаются в одном адресном пространстве. Это означает, что память данных совмещена с регистрами. Такой подход называется "отображением ресурсов МК на память". В других МК адресное пространство устройств ввода / вывода отделен от общего пространства памяти. Отдельное пространство ввода / вывода дает некоторое преимущество процессорам с гарвардским архитектурой, обеспечивая возможность считывать команды во время обращения к регистру ввода / вывода. 4.3.4. Стек МКВ микроконтроллерах ОЗУ данных используется также для организации вызова подпрограмм и обработки прерываний. При этих операциях содержимое программного счетчика и основных регистров (аккумулятор, регистр состояния и др.) сохраняется и затем восстанавливается при возврате к основной программе. В фон-нейманивський архитектуре используется единая область памяти, в том числе, и для реализации стека. При этом снижается производительность устройства, так как одновременный доступ к различным видам памяти невозможен. В частности, при выполнении команды вызова подпрограммы следующая команда выбирается после того, как в стек будет помещен содержимое программного счетчика. В Гарвардской архитектуре стековые операции происходят в специально выделенной для этой цели памяти. Это означает, что при выполнении программы вызова подпрограмм процессор с гарвардским архитектурой проводит несколько действий одновременно. Необходимо помнить, что МК обеих архитектур имеют ограниченную емкость памяти для хранения данных. Если в процессоре существует отдельный стек и объем записанных в него данных превышает его емкость, то происходит циклическая изменение содержимого указателя стека, и он начинает ссылаться на ранее заполненную ячейку стека. Это означает, что после слишком большого количества вызовов подпрограмм в стеке окажется неправильный адрес возврата. Если МК использует общую область памяти для размещения данных и стека, то существует опасность, что при переполнении стека произойдет запись в область данных или будет предпринята попытка записи данных, загружаемых в стек, в область ПЗУ. 4.3.5. Внешняя памятьНесмотря на существующую тенденцию по переходу к закрытой архитектуры МК, в некоторых случаях возникает необходимость подключения дополнительной внешней памяти (как памяти программ, так и данных). Если МК содержит специальные аппаратные средства для подключения внешней памяти, то эта операция происходит штатным способом (как для МП). Второй, более универсальный, способ заключается в том, чтобы использовать порты ввода / вывода для подключения внешней памяти и реализовать обращение к памяти программными средствами. Такой способ позволяет задействовать простые устройства ввода / вывода без реализации сложных шинных интерфейсов, однако приводит к снижению быстродействия системы при обращении к внешней памяти. | |
| «Структура курса Раздел 4 - Страницы:« | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | » | |