Микроконтроллеры для систем автоматики - часть 2

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  1  2  3   ..

 

 

Микроконтроллеры для систем автоматики - часть 2

 

 

 

Р

Е П Р О Г Р А М М И Р У Е М А Я   П А М Я Т Ь  

 

Репрограммируемая  память  (EPROM - Erasable PROM)  аналогична OTPROM, но 

допускает стирание информации и повторное программирование. Стирание информации в 
памяти осуществляется с помощью интенсивного ультрафиолетового излучения. Корпуса 
таких  микросхем  имеют  специальные  окна, закрытые кварцевым стеклом, через которые 
излучение  попадает  на  кристалл.  Число  циклов  стирания  и  программирования EPROM 
относительно небольшое (20….100).  

Стоимость  контроллеров  с EPROM относительно  велика  и  изделия  с  такой 

памятью  рекомендуется  использовать  только  на  стадии  проектирования  или  при 
изготовлении относительно малых (опытных) партий изделий. 

П

А М Я Т Ь   С   Э Л Е К Т Р И Ч Е С К И М   С Т И Р А Н И Е М

 

Память  с  электрическим  стиранием  (EEPROM - Electrically EPROM) 

программируется  пользователем  и  может  многократно  стираться.  Стирание  и  повторное 
программирование EEPROM осуществляется  по  отдельным  ячейкам  (побайтно),  что 
позволяет вносить в разработанные программы даже небольшие коррективы. Число циклов 
стирания  и  программирования,  допускаемых EEPROM, обычно  порядка  10000.  Для 
реализации технологии необходимо относительно высокое напряжение программирования 
в пределах 10…20В, которое подается на кристалл извне или формируется на кристалле 
встроенным преобразователем напряжения (генератор накачки). 

Контроллеры  с EEPROM относительно  дешевы  (по  сравнению  с EPROM), но 

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

Ф

Л Э Ш  

-  

П А М Я Т Ь

 

Флэш-память (Flash memory) относится к классу EEPROM, но использует особую 

технологию построения запоминающих ячеек. В отличие от EEPROМ, она может стираться 
только целиком, либо достаточно большими блоками. Возможность перезаписи отдельных 
ячеек памяти в ней отсутствует. Кристаллы с флэш - памятью всегда содержат встроенные 
генераторы  накачки  и  при  соответствующей  аппаратной  и  программной  поддержке 
позволяют  реализовать  режим  «программирования  в  системе» - программирование  без 
извлечения микроконтроллера из изделия. Необходимость использования программатора в 
этом случае отпадает. 

Современные 

технологии 

изготовления 

Flash 

Memory 

обеспечивают 

гарантированное число циклов стирания/записи до 1000….10000, срок хранения до 10 лет.  

Флэш-память  программ  микроконтроллера  может  быть  переписана  самим 

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

Например,  микроконтроллер ATmega163  имеет 8K 16-битных  ячеек Flash-памяти 

программ.  Общий  объем  памяти  16  Кбайт.  При  этом  всё  адресное  пространство  флэш-
памяти программ ($0000…$1FFF) разделено на два раздела (рис. 2.1): раздел программы 
начальной загрузки (Boot Program Section) размер которой может находиться в пределах от 
256 до 2048 байт и раздел прикладной программы (Application Program Section).  

Оба  раздела  могут  быть  программно  заблокированы  от  записи.  Кроме  того,  в 

системе  команд  микроконтроллера  предусмотрена  специальная  инструкция spm  (store 
program memory
),  осуществляющая  запись  данных  в  Application Program Section.  Эта 
команда может быть использована только в Boot Program Section . 

 

 Program 

Memory 

 

 

15                                                  0   

  

$0000 

 

Application Program Section 

$0001 

  

$0002 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Boot 

Program 

Section 

 

 

 

$1FFF 

Рис. 2.1. Организация flash-памяти программ микроконтроллера ATmega 163 

В  Boot Program Section  записывается  программа  Flash-resident Boot Loader , 

позволяющая 

процессорному 

ядру 

микроконтроллера 

организовать 

перепрограммирование  раздела  прикладной  программы  непосредственно  в  изделии. 
Программа Boot Loader может использовать различные способы связи микроконтроллера с 
внешними устройствами для ввода кода программы. 

Весь  массив  8К  ячеек  flash  memory  микроконтроллера ATMEGA163  разделен  на 

128 страниц по 64 слова. Размер раздела начальной загрузки может быть задан с помощью 
специальных fuse битов BOOTSZ, как показано в таблице 2.1. 

Таблица 2.1.  

Конфигурирование секции начальной загрузки  (Boot Section

BOOTSZ1 BOOTSZ0  Объем (слов)  

К-во страниц  

Адреса  

1  

128  

2  

$1F80 - $1FFF 

 0  

256  

$1F00 - $1FFF 

0  

1  

512 8 

$1E00 - $1FFF 

0  

1024  

16 

$1C00 - $1FFF 

2.2. Память данных 

Память данных предназначена для хранения результатов вычислений в процессе 

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

Память данных микроконтроллера может быть двух типов: SRAM и EEPROM. 

С

Т А Т И Ч Е С К А Я   П А М Я Т Ь

 

Статическая память (SRAM – Static Random Access Memory) энергозависима. Она 

обеспечивает  хранение  информации  только  при  наличии  напряжения  питания  не  менее 
определенной  величины  (порядка  1….3В).  Некоторые  микроконтроллеры  при  данном 
напряжении не работают, но данные в памяти сохраняются. Для обеспечения длительной 
сохранности  данных  в  такой  системе  необходим  резервный  источник  (аккумулятор  или 
батарея),  подключающийся  при  отключении  основного.  Отдельные  микроконтроллеры, 
например  МК DS50000 фирмы  Dallas Semiconductor,  даже  имеют  в  своем  корпусе 

 

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

Каждая  ячейка  статической  памяти  в  микроконтроллере  имеет  свой  адрес. 

Некоторые ячейки могут иметь специальное назначение. 

Например,  микроконтроллер  ATmega  163  имеет  1024  восьмибитные  ячейки 

встроенной статической памяти типа SRAM. Объем статической памяти микроконтроллера 
равен  1кбайт.  Сама  память  занимает  адресное  пространство $60…..$45F (рис. 2.2). 
Размещенные в том же адресном пространстве микроконтроллера 32 ячейки с адресами 
$0…1F  используются  микроконтроллером  как  регистры  общего  назначения  (General 
Purpose Registers
), а 64 ячейки с адресами $2F…$5F – как регистры ввода/вывода (Input 
Output Registers
). 

 Data 

Memory 

 

 

7                            0   

 General 

Purpose 

Registers 

$000 

  

$01F 

 Input 

Output 

Registers 

$020 

  

$05F 

  

$060 

 SRAM 

 

 

 

 

 

 

 

  

$45F 

Рис. 2.2.Статическая память данных микроконтроллера ATmega 163 

Регистры  общего  назначения  и  регистры ввода/вывода используются при работе 

процессорного ядра. 

Данные сохраняются в SRAM при напряжении питания в пределах от 4.0 до 5,5В. 

При  этих  же  значениях  напряжения  работоспособно  и  микропроцессорное  ядро 
микроконтроллера ATmega 163. 

П

А М Я Т Ь   С   Э Л Е К Т Р И Ч Е С К И М   С Т И Р А Н И Е М

 

Память данных типа EEPROM может быть включена в общее пространство памяти 

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

Содержимое EEPROM может быть разрушено при снижении напряжения питания в 

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

Например, EEPROM микроконтроллера ATmega163  имеет  объем  512  байт.  Она 

обеспечивает  100000  циклов  стирания/записи.  Обращение  к EEPROM ведется  через 

 

10 

специальные регистры ввода/вывода: регистр адреса EEPROM, регистр данных EEPROM и 
регистр управления EEPROM 

Время записи, в зависимости от напряжения питания, может составлять от 1,9 до 

3,8  мс.  Существует  специальная  функция,  которая  позволяет  пользовательскому 
программному  обеспечению  обнаружить  момент  окончания  записи  (EEPROM Write 
Complete
).  Случайная  запись  в EEPROM предотвращается  выполнением  специальной 
процедуры.  

Для защиты EEPROM от разрушения в микроконтроллере предусмотрен детектор 

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

2.3. Специализированные ячейки флэш-памяти 

В  энергонезависимой flash-памяти  микроконтроллеров  могут  присутствовать 

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

º 

Биты  блокировки  (lock-bits) LB1  и LB2, позволяющие  запретить  чтение 
программы, EEPROM и 

программирование 

кристалла. 

Запрограммированные  биты  блокировки  можно  стереть  только  при  очистке 
flash –памяти программ. При этом уничтожается и сама программа. 

Таблица 2.2.  

Режимы защиты программной информации AVR 

LB1 LB2 

Тип защиты 

Защита отсутствует 

Запрет программирования Flash  и EEPROM 

0 0 

Запрет программирования и чтения Flash и EEPROM 

º 

Биты 

предохранители 

(fuse-bits

позволяют 

задавать 

некоторые 

конфигурационные  особенности  микроконтроллера.  Состав  fuse-битов 
каждого 

конкретного 

микроконтроллера 

обусловлен 

особенностями 

построения    узлов  сброса,  тактирования  и  программирования  кристалла. 
ATmega163, поддерживающий режим последовательного программирования 
имеет fuse-бит SPIEN, который  может  запретить  этот  режим  перезаписи 
кристалла.  Кроме  того, fuse-биты CKSEL[0..3] задают  источник  тактового 
сигнала  микроконтроллера  и  время  задержки  старта  микроконтроллера 
после  сброса,  а  схемой  контроля  питания  управляют fuse-биты BODEN и 
BODLEVEL. Fuse-биты BOOTSZ, как  показано  ранее,  задают  объем секции 
начальной загрузки в памяти программ. 

º 

Байты сигнатуры (signature-byte) служат для идентификации типа кристалла, 
программируются изготовителем и доступны только для чтения. 

 

 

 

 

 

 

 

содержание   ..  1  2  3   ..