Автор работы: Пользователь скрыл имя, 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
Список использованных источников ……………………………………………………………
Шаги 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-интерфейс.
Байт защитной блокировки,
расположенный в последнем
Ниже приведен пример использования байта защитной блокировки для МК C8051F310:
Байт защитной блокировки 11111101b
Обратное значение
Блокируемые страницы Flash-памяти 3 (Две первые страницы Flash-памяти + страница, содержащая байт защитной блокировки)
Блокируемые адреса 0x0000 – 0x07FF (две первые страницы Flash-памяти) и 0x7800 – 0x7BFF (страница, содержащая байт защитной блокировки)
Рисунок 10.1. Карта распределения Flash-памяти программ
10.2.1. Обзор возможностей защиты Flash-памяти
Уровень защиты Flash-памяти зависит
от метода доступа к Flash-памяти. Существует
три метода доступа к Flash-памяти,
которые характеризуются
1) чтение, запись и стирание Flash-памяти через отладочный интерфейс С2;
2) доступ к Flash-памяти из
3) доступ к 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. Указания относительно
1. Если источник системного
2. Следует убедиться
в том, что соблюдается
3. Следует держать встроенный монитор питания включенным и программа должна выбрать его в качестве источника сброса сразу же, как только это станет возможным. Это должен быть первый набор команд, выполняемый после вектора сброса. Для систем, программируемых на языке С, потребуется модифицировать код запуска, добавляемый C-компилятором (см. более подробную информацию в документации к вашему компилятору). Следует убедиться в том, что в программе отсутствуют задержки между включением монитора питания и выбором его в качестве источника сброса. Примеры кода, демонстрирующего данные приемы программирования, можно найти в указаниях по применению AN201 «Writing to Flash from Firmware» (Запись Flash-памяти из программы), которые доступны на web-сайте Silicon Laboratories.
Примечание: В МК C8051F31x монитор питания обязательно должен быть включен и выбран в качестве источника сброса, иначе при записи или стирании Flash-памяти будет сгенерирован сброс по некорректному обращению к Flash-памяти.
4. В качестве дополнительной меры предосторожности следует внутри функций, которые осуществляют запись и стирание Flash-памяти, явным образом включать монитор питания и выбирать его в качестве источника сброса. Команды включения монитора питания и выбора его в качестве источника сброса должны располагаться сразу же после команды установки в 1 бита PSWE, но перед командой, инициирующей операцию записи или стирания Flash-памяти.
5. Следует убедиться
в том, что все операции
6. Следует убедиться
в том, что все операции
10.3.2. Указания относительно PSWE
7. В программном коде следует сократить количество мест, где устанавливается в 1 бит PSWE (PSCTL.0). В программе должна быть ровно одна процедура, которая устанавливает в 1 бит PSWE для записи байтов во Flash-память, и еще одна процедура, которая устанавливает в 1 оба бита PSWE и PSEE для стирания страниц Flash-памяти.
8. Следует минимизировать
9. Следует запрещать прерывания до установки в 1 бита PSWE и оставлять их запрещенными до тех пор, пока бит PSWE не будет сброшен в 0. Любое прерывание, отложенное в процессе выполнения операции записи или стирания Flash-памяти, будет обслужено в порядке приоритетов после того, как операция доступа к Flash-памяти будет завершена и программа снимет запрет прерываний.
10. Следует убедиться в том, что переменные-указатели для операций записи/стирания Flash-памяти не расположены в памяти XRAM. См. документацию по вашему компилятору относительно того, как явным образом разместить переменные в различных областях памяти.
11. Следует добавить проверку диапазона адресов в процедуры, которые записывают или стирают Flash- память, чтобы гарантировать, что вызов процедуры с некорректным адресом не приведет к модификации Flash-памяти.
10.3.3. Указания относительно системного тактирования
12. Если МК работает с внешним кварцевым резонатором, то следует иметь ввиду, что такая схема тактового генератора восприимчива к электрическим помехам и чувствительна к разводке печатной платы и изменениям температуры. Если система работает в условиях сильных электрических шумов, то следует использовать внутренний генератор или внешний КМОП-генератор.
13. Если МК работает с внешним
генератором, то во время
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-памяти
автоматически запрещаются
Чтение:
При чтении биты 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-память находится в состоянии пониженного энергопотребления.