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

Автор работы: Пользователь скрыл имя, 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 Мб (Скачать документ)

Шаги 3-26 необходимо повторять для  каждого записываемого блока.

10.1.4. Долговременное хранение данных

Flash-память может использоваться  не только для хранения программного кода, но и для

долговременного хранения данных. Это  позволяет рассчитывать и сохранять  во время выполнения программы такие  данные, как, например, калибровочные  коэффициенты. Данные записываются и  стираются с помощью команды MOVX (как описано в разделах 10.1.2 и 10.1.3) и считываются с использованием команды MOVC.

Примечание: команды чтения MOVX всегда относятся к памяти XRAM.

 

10.2. Защита FLASH-памяти

CIP-51 имеет опции защиты, позволяющие  защитить Flash-память от случайной  модификации со стороны программы и исключить возможность просмотра патентованного программного кода и констант. Биты разрешения записи памяти программ (бит PSWE в регистре PSCTL) и разрешения стирания памяти программ (бит PSEE в регистре PSCTL) защищают Flash-память от случайной модификации со стороны программы. Бит PSWE должен быть установлен в 1 явным образом, чтобы программа могла модифицировать Flash-память; оба бита PSWE и PSEE должны быть установлены в 1 явным образом, чтобы программа могла стирать Flash- память. Дополнительные функции защиты предотвращают чтение и изменение патентованного программного кода и констант через С2-интерфейс.

Байт защитной блокировки, расположенный в последнем байте  пользовательского кодового пространства Flash-памяти, обеспечивает защиту Flash-памяти программ от доступа (операций чтения, записи или стирания) со стороны незащищенного программного кода или через С2-интерфейс. Механизм защиты Flash-памяти позволяет пользователю заблокировать n 1024-байтных страниц Flash-памяти, начиная со страницы 0 (адреса 0x0000 – 0x03FF), где n – обратное значение байта защитной блокировки. Следует иметь ввиду, что страница, содержащая байт защитной блокировки Flash-памяти, будет незаблокированной, если не заблокирована ни одна другая страница Flash-памяти (все биты байта защитной блокировки установлены в ‘1’), и блокируется при блокировке любой другой страницы Flash-памяти (какой-либо бит байта защитной блокировки сброшен в ‘0’).

Ниже приведен пример использования  байта защитной блокировки для МК C8051F310:

Байт защитной блокировки 11111101b

Обратное значение               00000010b

Блокируемые страницы Flash-памяти 3 (Две  первые страницы Flash-памяти + страница, содержащая байт защитной блокировки)

Блокируемые адреса 0x0000 – 0x07FF (две  первые страницы Flash-памяти) и 0x7800 – 0x7BFF (страница, содержащая байт защитной блокировки)

 

Рисунок 10.1. Карта распределения Flash-памяти программ

10.2.1. Обзор возможностей  защиты Flash-памяти

Уровень защиты Flash-памяти зависит  от метода доступа к Flash-памяти. Существует три метода доступа к Flash-памяти, которые характеризуются различными ограничениями:

1) чтение, запись и стирание Flash-памяти  через отладочный интерфейс С2;

2) доступ к Flash-памяти из программы  пользователя, выполняющейся в незаблокированной  области Flash-памяти;

3) доступ к Flash-памяти из программы  пользователя, выполняющейся в заблокированной  области Flash-памяти.

В таблице 10.1 приведен обзор возможностей защиты Flash-памяти в МК C8051F31x.

 

Таблица 10.1. Обзор возможностей защиты Flash-памяти

10.3. Указания относительно  записи/стирания Flash-памяти

Для любой системы, в которой  выполняются процедуры записи или  стирания Flash-памяти из программы, существует определенный риск, связанный с возможностью случайного выполнения операций записи или стирания Flash-памяти при выходе напряжения питания VDD, системной тактовой частоты или температуры за пределы допустимого диапазона значений. Такое случайное выполнение программного кода, модифицирующего Flash-память, может привести к изменению содержимого Flash-памяти, что в свою очередь может вызвать системный сбой, устранить который можно только перепрограммированием Flash-памяти МК. Предотвращению случайной модификации Flash-памяти из программы способствует специальная функция, реализованная в МК C8051F31x. Она заключается в том, что для успешной модификации Flash- памяти монитор питания должен быть включен и выбран в качестве источника сброса. Если монитор питания отключен или включен, но не выбран в качестве источника сброса, то при попытке программы модифицировать Flash-память будет сгенерирован системный сброс по некорректному обращению к Flash-памяти.

Ниже приведены указания, рекомендуемые для всех систем, в которых выполняются процедуры записи

или стирания Flash-памяти из программы.

10.3.1. Указания относительно напряжения  питания VDD и монитора питания

1. Если источник системного питания  допускает «всплески» напряжения  или тока, то следует добавить к источнику питания необходимые устройства защиты, чтобы гарантировать, что напряжение питания не выйдет за диапазон значений, указанный в таблице «Предельно допустимые параметры».

2. Следует убедиться  в том, что соблюдается требование  по минимальному времени нарастания напряжения VDD (1 мс). Если система не может удовлетворить это требование, то к выводу /RST микроконтроллера следует добавить внешнюю схему слежения за напряжением питания, которая будет удерживать МК в состоянии сброса до тех пор, пока VDD не достигнет 2.7 В, и снова установит на выводе /RST активный уровень в случае, если VDD упадет ниже 2.7 В.

3. Следует держать встроенный  монитор питания включенным и  программа должна выбрать его  в качестве источника сброса  сразу же, как только это станет возможным. Это должен быть первый набор команд, выполняемый после вектора сброса. Для систем, программируемых на языке С, потребуется модифицировать код запуска, добавляемый C-компилятором (см. более подробную информацию в документации к вашему компилятору). Следует убедиться в том, что в программе отсутствуют задержки между включением монитора питания и выбором его в качестве источника сброса. Примеры кода, демонстрирующего данные приемы программирования, можно найти в указаниях по применению AN201 «Writing to Flash from Firmware» (Запись Flash-памяти из программы), которые доступны на web-сайте Silicon Laboratories.

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

4. В качестве дополнительной меры предосторожности следует внутри функций, которые осуществляют запись и стирание Flash-памяти, явным образом включать монитор питания и выбирать его в качестве источника сброса. Команды включения монитора питания и выбора его в качестве источника сброса должны располагаться сразу же после команды установки в 1 бита PSWE, но перед командой, инициирующей операцию записи или стирания Flash-памяти.

5. Следует убедиться  в том, что все операции записи  регистра RSTSRC используют операторы  непосредственного присваивания и НЕ используют в явном виде битовые операторы (такие как AND или OR). Например, оператор «RSTSRC = 0x02» является корректным, однако «RSTSRC |=0x02» является некорректным.

6. Следует убедиться  в том, что все операции записи  регистра RSTSRC явным образом устанавливают в 1 бит PORSF. Особо следует обратить внимание на процедуру инициализации, в ходе которой включаются другие источники сброса, например, детектор исчезновения тактирования или компаратор, а также на команды, которые вызывают программный сброс. Быстро выполнить проверку можно с помощью глобального поиска по слову «RSTSRC».

10.3.2. Указания относительно PSWE

7. В программном коде следует  сократить количество мест, где  устанавливается в 1 бит PSWE (PSCTL.0). В программе должна быть ровно одна процедура, которая устанавливает в 1 бит PSWE для записи байтов во Flash-память, и еще одна процедура, которая устанавливает в 1 оба бита PSWE и PSEE для стирания страниц Flash-памяти.

8. Следует минимизировать количество  различных обращений, пока бит PSWE установлен в 1. Управлять обновлением указателя адреса и поддержанием цикла следует за областью «PSWE = 1; … PSWE = 0;». Примеры кода, демонстрирующего данные приемы программирования, можно найти в указаниях по применению AN201 «Writing to Flash from Firmware» (Запись Flash-памяти из программы), которые доступны на web-сайте Silicon Laboratories.

9. Следует запрещать прерывания  до установки в 1 бита PSWE и оставлять  их запрещенными до тех пор,  пока бит PSWE не будет сброшен  в 0. Любое прерывание, отложенное в процессе выполнения операции записи или стирания Flash-памяти, будет обслужено в порядке приоритетов после того, как операция доступа к Flash-памяти будет завершена и программа снимет запрет прерываний.

10. Следует убедиться в том, что переменные-указатели для операций записи/стирания Flash-памяти не расположены в памяти XRAM. См. документацию по вашему компилятору относительно того, как явным образом разместить переменные в различных областях памяти.

11. Следует добавить проверку диапазона адресов в процедуры, которые записывают или стирают Flash- память, чтобы гарантировать, что вызов процедуры с некорректным адресом не приведет к модификации Flash-памяти.

10.3.3. Указания относительно  системного тактирования

12. Если МК работает с внешним кварцевым резонатором, то следует иметь ввиду, что такая схема тактового генератора восприимчива к электрическим помехам и чувствительна к разводке печатной платы и изменениям температуры. Если система работает в условиях сильных электрических шумов, то следует использовать внутренний генератор или внешний КМОП-генератор.

13. Если МК работает с внешним  генератором, то во время выполнения  операций записи или стирания Flash-памяти следует переключиться  на внутренний генератор. Внешний  генератор может продолжать работать; после завершения операций доступа к Flash-памяти CPU может снова переключиться на тактирование от внешнего генератора.

 

SFR-описание 10.1. PSCTL: Регистр  управления записью/стиранием памяти  программ

SFR-адрес: 0x8F

Биты 7-2: Не используются. Читаются как 000000b. Запись не оказывает никакого влияния.

Бит 1: PSEE: Разрешение стирания памяти программ.

Установка в 1 этого бита разрешает  стереть целую страницу Flash-памяти

программ при условии, что бит PSWE также установлен в 1. Если PSEE = 1 и PSWE = 1, то операция записи во Flash-память с использованием команды MOVX сотрет целую страницу, которая содержит ячейку, адресуемую командой MOVX (значение записываемого байта данных не важно). Примечание: страница Flash- памяти, содержащая байт блокировки операций чтения и байт блокировки операций записи/стирания, не может быть стерта из программы пользователя.

0: Стирание Flash-памяти программ  запрещено.

1: Стирание Flash-памяти программ  разрешено.

Бит 0: PSWE: Разрешение записи памяти программ.

Установка в 1 этого бита разрешает  запись байта данных во Flash-память  программ, используя команду MOVX . Адресуемая в команде MOVX ячейка  памяти должна быть стертой.

0: Запись во Flash-память программ  запрещена. Команды записи MOVX

направлены на внешнее ОЗУ.

1: Запись во Flash-память программ  разрешена. Команды записи MOVX направлены 

на Flash-память.

 

 

SFR-описание 10.2. FLKEY: Регистр  блокировки и ключевого кода Flash-памяти

SFR-адрес: 0xB7

Биты 7-0: FLKEY: Регистр блокировки и  ключевого кода Flash-памяти.

Запись:

Этот регистр обеспечивает функции  блокировки и ключевого кода для  операций записи и стирания Flash-памяти. Операции записи и стирания Flash-памяти разрешаются путем записи в регистр FLKEY ключевых кодов в следующей  последовательности: сначала 0xA5, затем 0xF1.

Операции записи и стирания Flash-памяти автоматически запрещаются после  завершения следующей операции записи или стирания. Если какая-либо запись в регистр FLKEY осуществлена некорректно  или если попытка выполнить операцию записи или стирания Flash- памяти осуществлена в тот момент, когда такая операция запрещена, то Flash-память будет заблокирована для операций записи/стирания до следующего системного сброса. Если приложение никогда не записывает Flash-память, то ее можно специально заблокировать, записав программным путем в регистр FLKEY значение, отличающееся от 0xA5.

Чтение:

При чтении биты 1-0 показывают текущее  состояние блокировки Flash-памяти. 00: Flash-память заблокирована для операций записи/стирания.

01: Первый ключевой код записан (0xA5).

10: Flash-память разблокирована (операции  записи/стирания разрешены).

11: Операции записи/стирания Flash-памяти  запрещены до следующего системного  сброса.

 

10.4. Временные параметры  доступа к Flash-памяти в режиме  чтения

После сброса контроллер Flash-памяти настраивается для функционирования с частотой системного тактового сигнала 25 МГц. Если частота системного тактового сигнала не будет превышать 25 МГц, то регистры управления временными параметрами контроллера Flash-памяти можно оставить  в том состоянии, какое они принимают после сброса. Для каждой операции чтения или выборки данных из Flash-памяти система (контроллер Flash-памяти) обеспечивает внутренний строб чтения Flash-памяти. Строб чтения Flash-памяти длится один  или два цикла системного тактового сигнала, в зависимости от значения битов FLRT (FLSCL.4 и FLSCL.5).

Если частота системного тактового сигнала превышает 25 МГц, то биты FLRT должен быть изменены соответствующим  образом, иначе возможна ситуация, когда данные, считываемые или извлекаемые из Flash- памяти, не будут представлять действительное содержимое Flash-памяти. Когда строб чтения Flash-памяти установлен (имеет активный уровень), Flash-память находится в активном состоянии. Когда этот строб снят (имеет неактивный уровень), Flash-память находится в состоянии пониженного энергопотребления.

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