Лекции по «Проектированию и программированию микропроцессорных систем управления»

Автор работы: Пользователь скрыл имя, 24 Декабря 2012 в 22:23, курс лекций

Краткое описание

К началу 70-х годов были созданы сложные системы. Возникла потребность в передаче части функций управления периферийным устройствам, расположенным рядом с объектом управления. К концу 60-х годов в технике стала проявляться тенденция к децентрализации управления. Для этого требовались недорогие, малогабаритные и надежные вычислители. С другой стороны электрическая промышленность к этому времени способна была производить интегральные микросхемы (ИМС) до 3-го уровня интеграции.

Содержание

1. Введение, цели и задачи курса ……………………………………………………………… 3
2. Историческая справка …………………………………………………………………………. 4
3. Структурная организация типового микроконтроллера МК51 …………………………….. 7
4. Методология проектирования систем на основе МП и МЭВМ ……………………………. 8
Описание микроконтроллера C8051F310/311 ……………………………………………… 12
1. Краткий обзор ……………………………………………………………………………… 12
2. Предельно допустимые параметры ……………………………………………………… 24
3. Основные электрические параметры …………………………………………………… . 25
4. Описание корпусов и выводов …………………………………………………………… 26
5. 10-разрядный АЦП ………………………………………………………………………… 30
6. Источник опорного напряжения ………………………………………………………… 44
7. Компараторы …………………….………………………………………………………… 46
8.4. Режимы управления электропитанием ……………………………………………… 53
9. Источники сброса ………………………….……………………………………………… 55
10. Flash-память ……………………………………………………………………………… 60
11. Встроенная память XRAM ……………………………………………………………… 70
12. Генераторы …………………………………………………………….………………… 72
13. Порты ввода/вывода ……………………..……………………………………………… 76
14. SMBus ……………………………………..……………………………………………… 87
15. UART0 ……………………………………..……………………………………………… 103
16. Модуль расширенного SPI (SPI0) ……..……………………………………………… 111
17. Таймеры ……………………………………………………………………………………… 122
18. Программируемый массив счетчиков ……………………………………………………… 137
Список использованных источников ……………………………………………………………

Прикрепленные файлы: 1 файл

Лекции по курсу МК.doc

— 4.57 Мб (Скачать документ)

Ядро CIP-51 имеет два программируемых  режима управления электропитанием: режим  ожидания (Idle) и режим остановки (Stop). В режиме ожидания процессорное ядро (CPU) останавливается, а периферийные модули и внутренние тактовые сигналы остаются активными. В режиме остановки CPU останавливается, все источники прерываний и таймеры (кроме детектора исчезновения тактирования) неактивны, тактирование  системы прекращается. Т.к. в режиме ожидания тактирование системы сохраняется, то энергопотребление зависит от системной тактовой частоты и количества периферийных модулей, оставленных в активном режиме до входа в режим ожидания. В режиме остановки энергопотребление наименьшее. SFR-описание 9.11 описывает регистр управления питанием (PCON), используемый для настройки режима электропитания CIP-51.

Хотя CIP-51 имеет встроенные режимы ожидания и остановки (как любой  МК со стандартной архитектурой 8051), управление питанием всего МК наиболее эффективно осуществляется путем включения/отключения отдельных периферийных модулей. Каждый аналоговый периферийный модуль, когда он не используется, может быть отключен и переведен в режим пониженного энергопотребления. Цифровые периферийные модули, такие как таймеры или последовательные интерфейсы, потребляют мало энергии, когда не используются. Отключение Flash-памяти уменьшает энергопотребление так же, как переход в режим ожидания (Idle). Отключение генераторов значительно снижает энергопотребление, но после этого требуется сброс для перезапуска МК.

МК семейства C8051F31x поддерживают также режим пониженного энергопотребления SUSPEND, в котором внутренний тактовый генератор останавливается до тех пор, пока не произойдет «пробуждающее» событие (см. раздел «16.1.1. Режим остановки внутреннего генератора»).

 

8.4.1. Режим ожидания (Idle)

Установка в 1 бита выбора режима ожидания (PCON.0) заставит CIP-51 остановить процессорное ядро и перейти в режим ожидания сразу же после завершения команды, которая устанавливает этот бит. Все внутренние регистры и память сохраняют свои данные. Все аналоговые и цифровые периферийные модули могут оставаться активными в то время, пока МК находится в режиме ожидания. Выйти из режима ожидания можно или по сигналу сброса, или по прерыванию (которое разрешено).

Любой из разрешенных сигналов прерывания приведет к сбросу бита PCON.0 и возобновлению работы процессорного ядра. Прерывание будет обслужено и после выхода из прерывания (RETI) будет исполнена команда, которая следует в программе за командой, установившей бит выбора режима ожидания (PCON.0). Если режим ожидания завершается по внутреннему или внешнему сигналу сброса, то CIP-51 отработает последовательность действий, обычную для сброса, и начнет выполнение программы с адреса 0x0000. Если сторожевой таймер включен, то со временем он вызовет сброс от сторожевого таймера, что приведет к выходу из режима ожидания. Эта возможность защищает систему от непреднамеренного постоянного отключения в случае случайной записи регистра PCON. Когда такое поведение нежелательно, сторожевой таймер может быть отключен программно до входа в режим ожидания, если первоначально такая операция для него была разрешена. Это обеспечивает возможность дополнительного уменьшения энергопотребления, т.к. система остается в режиме ожидания неопределенно долгое время, ожидая внешнего сигнала «пробуждения» системы. Подробная информация о настройке и использовании сторожевого таймера приведена в разделе «22.3. Режим сторожевого таймера».

Примечание: За любой  командой, которая устанавливает  бит IDLE, должна сразу же следовать команда, состоящая из двух или более байт. Например:

// пример кода на ‘C’:

PCON | = 0x01; // установка бита IDLE

PCON = PCON; // трехбайтная «холостая»  команда, следующая за установкой  бита IDLE

// пример кода на ассемблере:

ORL PCON, #01h; // установка бита IDLE

MOV PCON, PCON; // трехбайтная «холостая»  команда, следующая за установкой  бита IDLE

 

Если команда, следующая за командой установки бита IDLE, является однобайтной  и прерывание происходит во время  выполнения (фазы execution) команды, которая устанавливает бит IDLE, то CPU может «не пробудиться» из режима IDLE, когда в будущем произойдет прерывание.

 

8.4.2. Режим остановки  (Stop)

Установка в 1 бита выбора режима остановки (PCON.1) заставит CIP-51 перейти в режим  остановки сразу же после завершения команды, которая устанавливает этот бит. В режиме остановки процессорное ядро и тактовые генераторы останавливаются, что приводит к отключению всей цифровой периферии. Каждый аналоговый периферийный модуль должен быть отключен индивидуально до перехода в режим остановки. Выйти из режима остановки можно только по внутреннему или внешнему сигналу сброса. При сбросе CIP-51 отработает последовательность действий, обычную для сброса, и начнет выполнение программы с адреса 0x0000.

Если включен детектор исчезновения тактовых импульсов (Missing Clock Detector – MCD), то он вызовет внутренний сброс и тем самым выведет МК из режима остановки. Детектор исчезновения тактовых импульсов следует отключить, если необходимо перевести МК в режим остановки на время, большее времени задержки MCD (100 мкс).

 

 

SFR-описание 9.11. PCON: Регистр  управления электропитанием

SFR-адрес: 0x87

Биты 7-2: Зарезервированы. Читаются как 000000b. Должны записываться значением 

000000b.Это флаги общего назначения, предназначенные для использования под управлением программы.

Бит 1: STOP: Выбор режима остановки Stop.

Установка в 1 этого бита переведет CIP-51 в режим остановки. Этот бит  всегда будет 

читаться как ‘0’.

1: CPU переходит в режим остановки  (останавливается тактовый генератор).

Бит 0: IDLE: Выбор режима ожидания Idle.Установка в 1 этого бита переведет CIP-51 в

режим ожидания. Этот бит всегда будет  читаться как ‘0’.

1: CPU переходит в режим ожидания (отключается тактирование процессорного  ядра,

однако тактирование таймеров, прерываний и всей периферии сохраняется).

 

 

9. Источники сброса

Схема сброса позволяет  легко перевести МК в предопределенное по умолчанию состояние. При переходе к этому состоянию сброса происходит следующее:

- CIP-51 останавливает выполнение  программы;

- регистры SFR инициализируются значениями по умолчанию;

- внешние выводы портов  устанавливаются в известное  состояние;

- запрещаются прерывания  и отключаются таймеры.

Все регистры SFR принимают  значения по умолчанию. В SFR-описании каждого  регистра приведено значение, загружаемое в этот регистр при сбросе. Содержимое внутренней памяти данных не изменяется при сбросе и ранее сохраненные данные остаются неизменными. Однако, т.к. регистр указателя стека сбрасывается, стек фактически теряется, хотя данные в нем не изменяются. Защелки портов ввода/вывода сбрасываются в состояние 0xFF (все логические единицы) и переводятся в режим с открытым стоком. Слаботоковые подтяжки активируются (включаются) в течение и после сброса. В случае сброса от монитора питания или при сбросе типа POR (по включению питания) на выводе /RST удерживается низкий логический уровень до выхода МК из состояния сброса.

При выходе из состояния  сброса программный счетчик (РС) сбрасывается, а тактирование системы осуществляется по умолчанию от внутреннего генератора. Информация о выборе и настройке источника системного тактового сигнала приведена в разделе «16. Генераторы» на стр.175. Сторожевой таймер включается и использует для тактирования сигнал SYSCLK/12 (подробная информация об использовании сторожевого таймера приведена в разделе «22.3. Режим сторожевого таймера» на стр. 277). Выполнение программы начинается с адреса 0x0000.

 

Рисунок 9.1. Структурная  схема источников сброса

 

 

 

9.1. Сброс при  включении питания (Power-on Reset –  POR)

Во время включения питания МК удерживается в состоянии сброса и на выводе /RST удерживается низкий логический уровень до тех пор, пока напряжение VDD не превысит в процессе включения уровень VRST. Помимо этого, выходу МК из состояния сброса предшествует некоторая дополнительная задержка (TPORDelay); эта задержка уменьшается с увеличением времени нарастания VDD (время нарастания VDD определяется скоростью изменения VDD от 0 до VRST). На рисунке 12.2 показаны временные диаграммы процессов включения питания и сброса от монитора питания. Для корректных значений времени нарастания (менее 1 мс) задержка по включению питания (TPORDelay) обычно не превышает 0.3 мс.

Примечание: Максимальное время нарастания VDD составляет 1 мс; более медленная скорость нарастания VDD может привести к тому, что МК выйдет из состояния сброса до того, как напряжение VDD превысит уровень VRST.

При выходе из состояния сброса типа POR флаг PORSF (RSTSRC.1) аппаратно устанавливается  в 1. Если флаг PORSF установлен в 1, то состояние  всех других флагов сброса в регистре RSTSRC считается неопределенным (флаг PORSF сбрасывается в 0 при сбросе от любого другого источника). Т.к. при сбросе любого типа выполнение программы начинается с одного и того же адреса (0x0000), то программа может опросить флаг PORSF, чтобы определить, было ли включение питания причиной сброса. Содержимое внутренней памяти данных после сброса типа POR следует считать неопределенным. Монитор питания включается после сброса типа POR.

 

 

9.2. Сброс при  исчезновении питания (Power-fail Reset – PFR)/Монитор питания

Когда при выключении питания или в случае сбоя по питанию  напряжение питания VDD опустится ниже уровня VRST, монитор питания установит на выводе /RST низкий логический уровень и переведет CIP-51 в состояние сброса (см. рис.12.2). Когда VDD превысит уровень VRST, CIP-51 выйдет из состояния сброса. Следует иметь ввиду, что, хотя содержимое внутренней памяти данных и не изменяется при сбросе типа PFR, невозможно определить, опускалось ли напряжение VDD ниже уровня, необходимого для сохранения данных.

Если флаг PORSF установлен в 1, то данные нельзя более считать действительными. После сброса типа POR монитор питания  включается; однако его состояние (включен/отключен) не изменяется после сброса от любого другого источника. Например, если монитор  питания отключен и выполняется программный сброс, то монитор питания будет оставаться отключенным и после этого сброса. Для обеспечения целостности содержимого Flash-памяти монитор питания должен быть включен и выбран в качестве источника сброса, если программа содержит процедуры, которые осуществляют стирание или запись Flash-памяти. Если монитор питания не включен, то любая операция стирания или записи, выполняемая с Flash-памятью, вызовет системный сброс от контроллера Flash-памяти. Монитор питания должен быть включен до выбора его в качестве источника сброса.

Выбор монитора питания в качестве источника сброса до его включения  и стабилизации может привести к  системному сбросу. Ниже приведена  процедура включения монитора питания  и настройки его в качестве источника сброса:

Шаг 1. Включить монитор  питания (бит VDMEN в регистре VDM0CN = ‘1’).

Шаг 2. Ожидать стабилизации монитора питания (приблизительно 5 мкс).

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

Шаг 3. Выбрать монитор питания  в качестве источника сброса (бит PORSF в регистре RSTSRC = ‘1’). Электрические  характеристики монитора питания приведены  в таблице 12.1.

Примечание: Программа должна следить  за тем, чтобы выбор монитора питания в качестве источника сброса не был случайно отменен при записи регистра RSTSRC, т.е. при включении других источников сброса или при вызове программного сброса. Любая запись в регистр RSTSRC должна явным образом устанавливать в 1 бит PORSF, чтобы сохранить выбор монитора питания в качестве источника.

 

SFR-описание 9.1. VDM0CN: Регистр управления монитором  питания

SFR-адрес: 0xFF

Бит 7: VDMEN: Включение монитора питания.

Этот бит включает/отключает  монитор питания. Монитор питания  не может генерировать системный сброс до тех пор, пока он не будет выбран также в качестве источника сброса в регистре RSTSCR (см. SFR-описание 12.2). Монитор питания должен стабилизироваться до выбора его в качестве источника сброса. Выбор монитора питания в качестве источника сброса до его стабилизации может вызвать сброс системы.

0: Монитор питания отключен.

1: Монитор питания включен.

Бит 6: VDDSTAT: Состояние VDD. Этот бит показывает текущее состояние напряжения питания VDD (выход монитора

питания).

0: VDD не превышает пороговое значение монитора питания.

1: VDD превышает пороговое значение монитора питания.

Биты 5-0: Зарезервированы. Читаются как 000000b. Запись не оказывает никакого влияния.

 

 

 

 

9.3. Внешний  сброс

Внешний вывод /RST позволяет внешней  схеме перевести МК в состояние сброса. Подача на вывод /RST сигнала с низким активным уровнем заставит МК перейти в состояние сброса. В некоторых случаях необходимо использовать на выводе /RST внешние подтягивающие и/или развязывающие цепи, чтобы предотвратить ложные сбросы, вызванные шумом. Электрические параметры для вывода /RST приведены в таблице 12.1. При завершении внешнего сброса устанавливается в 1 флаг PINRSF (RSTSRC.0).

 

9.4. Сброс от  детектора исчезновения тактирования

Детектор исчезновения тактирования (Missing Clock Detector – MCD) фактически представляет собой одновибратор, который управляется системным тактовым сигналом. Если уровень системного тактового сигнала остается высоким или низким в течение более 100 мкс, то одновибратор сработает и сгенерирует сброс. После сброса типа MCD будет установлен в 1 флаг MCDRSF (RSTSRC.2), показывая, что источником сброса был MCD; в иных случаях этот бит читается как 0. Детектор исчезновения тактирования включается установкой в 1 бита MCDRSF и отключается сбросом в 0 этого бита. Этот сброс не влияет на состояние вывода /RST.

 

9.5. Сброс от  Компаратора 0

Установка в 1 флага C0RSEF (RSTSRC.5) настраивает  Компаратор 0 как источник сброса с  низким активным уровнем. До записи бита C0RSEF необходимо включить Компаратор 0 и дождаться его стабилизации, чтобы дребезг на выходе не привел к генерации нежелательного сброса. Если напряжение на неинвертирующем входе (CP0+) меньше, чем напряжение на инвертирующем входе (CP0-), то генерируется системный сброс. После сброса от Компаратора 0 флаг C0RSEF (RSTSRC.5) будет читаться как 1, показывая, что Компаратор 0 был источником сброса; в иных случаях этот бит читается как 0. Этот сброс не влияет на состояние вывода /RST.

 

9.6. Сброс от  сторожевого таймера ПМС

Функция программируемого сторожевого таймера (WDT) модуля ПМС может использоваться для предотвращения выхода программы из-под контроля в случае системного сбоя. Функцию WDT модуля ПМС можно включать/отключать программно, как описано в разделе «22.3. Режим сторожевого таймера» на стр. 277; после любого сброса WDT включается, при этом для его тактирования используется сигнал SYSCLK/12. Если из-за системного сбоя программа пользователя не может обновить WDT, то генерируется сброс и устанавливается в 1 бит WDTRSF (RSTSRC.5). Этот сброс не влияет на состояние вывода /RST.

Информация о работе Лекции по «Проектированию и программированию микропроцессорных систем управления»