Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электроника в приборостроении.doc
Скачиваний:
218
Добавлен:
02.05.2014
Размер:
8.49 Mб
Скачать

3. Специальные особенности микроконтроллеров

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

а) уменьшить стоимость устройства;

б) увеличить надежность системы;

в) предоставить дополнительные возможности разработчикам при проектировании устройства.

К специальным особенностям относятся:

  1. биты конфигурации;

  2. интегрированная схема сброса по включению питания (POR);

  3. схема сброса по снижению напряжения питания (BOR);

  4. сторожевой таймер;

  5. режим энергосбережения (SLEEP);

  6. интегрированный тактовый RC генератор;

  7. внутрисхемное программирование.

Рассмотрим назначение блоков структуры МК, приведенной на рис. 11.1.

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

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

Схема сброса предназначена для перевода микроконтроллера в исходное состояние с заведомо известными параметрами работы. Источник сброса микроконтроллера может быть идентифицирован с помощью битов состояния. Микроконтроллеры PICmicro имеют следующие виды сброса:

  1. сброс по включению питания (POR);

  2. сброс по сигналу -MCLR в нормальном режиме работы;

  3. сброс по сигналу -MCLR в режиме SLEEP;

  4. сброс по переполнению WDT в нормальном режиме;

  5. сброс по снижению напряжения питания (BOR);

  6. сброс по ошибке паритета (PER).

Большинство регистров не изменяются после любого вида сброса, но после сброса по включению питания POR они содержат неизвестное значение. Некоторые регистры сбрасываются в начальное состояние при сбросах POR, BOR, -MCLR и WDT в нормальном режиме, -MCLR в режиме SLEEP, PER.

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

W – регистр-аккумулятор, используемый при выполнении большинства операций с данными МК;

STATUS – содержит флаги состояния АЛУ, флаги причины сброса микроконтроллера и биты управления банками памяти данных;

OPTION_REG – содержит биты управления предварительным делителем TMR0/WDT, активным фронтом внешнего прерывания RB0/INT, подтягивающими резисторами на входах PORTB;

PCON – содержит до четырех дополнительных битов регистра STATUS (с их помощью можно определить источник сброса).

Арифметико-логическое устройство (АЛУ) требуется для работы с памятью данных. АЛУ выполняет арифметические, логические операции и управляет флагами состояния, расположенными в регистре STATUS. Выполнение ряда команд приводит к изменению битов состояния в зависимости от полученного результата.

Направление потока данных АЛУ выбирается с помощью мультиплексора MUX, определяющего, будет ли АЛУ работать с данными, поступающими с шины данных МК, или с командами, поступающими от регистра инструкций.

Организация памяти. МК содержит два независимых блока памяти: память программ и память данных. Каждый блок имеет собственную шину данных и адреса. Отдельным блоком памяти, предназначенным для временного хранения служебных данных, служит 8-уровневый стек. Многие МК содержат также энергонезависимую память данных (EEPROM).

Память программ – это ПЗУ (или ППЗУ), в котором расположены коды команд программы пользователя или какие-либо константы. Для адресации ячеек памяти программ используется счетчик команд. Микроконтроллеры семейства PICmicro имеют счетчик команд (РС) с различной разрядностью, определяемой максимальным объемом памяти программ семейства. Так, микроконтроллеры среднего семейства имеют 13-разрядный счетчик команд, способный адресовать 8Кх14 слов памяти программ, и 14-разрядную шину данных памяти программ.

Память программ разделена на 4 страницы по 2К слов каждая (0000h-07FFh, 0800h-0FFFh, 1000h-17FFh, 1800h-1FFFh). У различных типов МК аппаратно реализована только определенная часть всей доступной памяти программ. В памяти программ может размещаться калибровочная информация.

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

Для микроконтроллеров, имеющих память программ меньше 3К слов, обращение к памяти программ выше фактически реализованного значения приведет к циклической адресации. Например, в микроконтроллере с памятью программ 4Кслов при попытке перехода по адресу 17FFh будет выполнен переход по адресу 07FFh.

В микроконтроллерах с памятью программ 2К слов управление страницами памяти не требуется.

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

В микроконтроллерах среднего семейства PICmicro реализован 8-уровневый 13-разрядный аппаратный стек. Стек не имеет отображения на память программ и память данных, нельзя записать или прочитать данные из стека. Значение счетчика команд заносится в вершину стека при выполнении инструкций перехода на подпрограмму (CALL) или обработку прерываний. Чтение из стека и запись в счетчик команд PC происходят автоматически при выполнении инструкций возврата из подпрограммы или обработки прерываний.

Память данных состоит из регистров общего (GPR) и специального (SFR) назначения. Регистры общего назначения (GPR) для хранения данных программы. Они размещаются в различных банках памяти данных. Управление банками памяти выполняется битами 5-7 в регистре STATUS. Регистры специального назначения (SFR) управляют периферийными модулями и функциями МК.

Память данных допускает прямую и косвенную адресацию. При прямой адресации для указания банка памяти данных необходимо использовать биты PR1:PR0 регистра STATUS. При косвенной адресации адрес регистра сохраняется в специальном регистре FSR, а в бите IRP регистра STATUS указывается, к какой паре банков памяти данных выполняется обращение (Банк 0/Банк 1 или Банк 2/Банк 3).

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

  1. EECON1 (содержит биты управления чтением/записью EEPROM памяти данных);

  2. EECON2 (не физический регистр, предназначенный для защиты от случайной записи в EEPROM память данных);

  3. EEDATA (для хранения 8-разрядные данные записи/чтения);

  4. EEADR (содержит адрес ячейки EEPROM памяти данных).

Прерывания. Микроконтроллеры PICmicro среднего семейства могут иметь несколько источников прерываний. Для каждого периферийного модуля назначен отдельный источник прерываний, хотя некоторые периферийные модули содержат несколько источников прерываний (например, модуль USART).

Ниже приводятся возможные источники прерываний в микроконтроллерах PICmicro среднего семейства.

  1. Внешний источник прерываний INT.

  2. Переполнение таймера TMR0.

  3. Изменение уровня сигнала на входах PORTB (выводы RB7:RB4).

  4. Изменение выходного уровня компаратора.

  5. Прерывание от ведомого параллельного порта.

  6. Прерывания от USART.

  7. Прерывание от приемника.

  8. Прерывание от передатчика.

  9. Завершение преобразования АЦП.

  10. Прерывания от LCD.

  11. Завершение цикла записи в EEPROM память данных.

  12. Переполнение таймера TMR1.

  13. Переполнение таймера TMR2.

  14. Прерывания от модуля ССР.

  15. Прерывания от модуля SSP.

В микроконтроллерах среднего семейства присутствует как минимум один регистр, управляющий прерываниями. Это регистр INTCON.

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

  1. PIE1

  2. PIR1

  3. PIE2

  4. PIR2

Если новые микроконтроллеры будут содержать больше источников прерываний, то будут реализованы регистры PIR3 и PIE3.