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

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

- системный тактовый сигнал, деленный  по частоте на 12;

- системный тактовый сигнал, деленный  по частоте на 4;

- сигнал переполнения Таймера  0;

- сигнал от внешнего входа  тактирования (ECI – External Clock Input);

- системный тактовый сигнал;

- сигнал внешнего генератора, деленный  по частоте на 8.

Выбор внешнего источника тактирования полезно использовать для реализации функций RTC (Real Time Clock - часы реального  времени), когда ПМС тактируется  от внешнего источника, а внутренний генератор формирует системный тактовый сигнал.

Каждый модуль захвата/сравнения  может быть настроен на работу в  одном из шести режимов:

- захват, управляемый фронтом (сигнала);

- программный таймер;

- высокоскоростной выход;

- выход заданной частоты;

- 8-разрядный широтно-импульсный модулятор;

- 16-разрядный широтно-импульсный  модулятор.

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

Рисунок 1.9. Структурная  схема модуля ПМС

1.7. 10-разрядный аналого-цифровой  преобразователь

МК C8051F310/1/2/6/7/8/9 имеют встроенный 10-разрядный АЦП последовательного приближения с 21-канальным дифференциальным входным мультиплексором. При максимальной производительности 200 тыс. преобразований в секунду этот АЦП обеспечивает 10-битную точность преобразования с нелинейностью на уровне ±1МЗР. Система АЦП включает настраиваемый аналоговый мультиплексор, посредством которого осуществляется выбор как положительного, так и отрицательного входов АЦП. Порты 1-3 доступны как аналоговые входы; кроме этого, входными сигналами АЦП могут быть выходной сигнал встроенного датчика температуры и напряжение питания (VDD). Программа пользователя может отключать АЦП с целью уменьшения энергопотребления.

Преобразование может быть запущено шестью способами: командой из программы, переполнением таймеров 0, 1, 2 или 3, а также внешним сигналом запуска преобразования (CNVSTR). Такая гибкость позволяет осуществлять запуск преобразований при возникновении определенных программных событий, периодически (при переполнениях таймера) или по сигналам от внешних устройств. По окончании преобразования устанавливается специальный бит состояния и инициируется (если разрешено) прерывание. Полученное 10-разрядное слово данных при завершении преобразования «защелкивается» в регистрах данных АЦП.

АЦП может быть настроен таким образом, чтобы генерировать прерывание лишь при попадании или непопадании  результата преобразования в заданный диапазон значений (окно). АЦП может  непрерывно отслеживать сигнал в  фоновом режиме, но не прерывать  МК до тех пор, пока преобразованные данные не окажутся в/вне заданного диапазона значений.

Рисунок 1.10. Структурная  схема 10-разрядного АЦП

1.8. Компараторы

МК семейства C8051F31x содержат два  встроенных компаратора напряжения, которые включаются/ отключаются  и настраиваются программой пользователя. Используя входные мультиплексоры, внешние порты ввода/вывода МК можно настроить как входы компараторов. При необходимости на внешние выводы можно развести (с помощью матрицы) два выходных сигнала компаратора: синхронный выход типа «защелка» и/или асинхронный («сырой») выход.

Время отклика компараторов программируется, что позволяет выбирать между  высокоскоростным и энергосберегающим  режимами работы. Величина положительного и отрицательного гистерезиса также  программируется. Компараторы могут генерировать прерывания по переднему или заднему фронту выходного сигнала, либо по обоим фронтам. В режиме ожидания (Idle) эти прерывания могут использоваться как источники «пробуждения» МК. Кроме того, компаратор CP0 можно также настроить как источник сброса. Структурная схема компаратора CP0 показана на рисунке 1.11; структурная схема компаратора CP1 показана на рисунке 1.12.

 

Рисунок 1.11. Структурная  схема компаратора CP0

 

Рисунок 1.12. Структурная  схема компаратора CP1

 

2. Предельно допустимые параметры

Таблица 2.1. Предельно  допустимые параметры

 

 

3. Основные электрические  параметры

Таблица 3.1. Основные электрические  параметры

Температура от – 40 .С до + 85 .С, тактовая частота 25 МГц, если не указано иное .

‡ SYSCLK должен быть как минимум 32 kHz для разрешения отладки.

 

4. Описание корпусов  и выводов

Таблица 4.1. Описание выводов  МК C8051F310/311

 

Таблица 4.1. Описание выводов  МК C8051F310/311 (продолжение)

 

 

Рисунок 4.1. Цоколевка  корпуса LQFP-32 (вид сверху)

 

Рисунок 4.2. Чертеж корпуса LQFP-32

 

 

Рисунок 4.3. Цоколевка  корпуса MLP-28 (вид сверху)

 

Рисунок 4.4. Чертеж корпуса MLP-28

 

5. 10-разрядный  АЦП

В состав модуля АЦП0 в МК C8051F310 входят: два аналоговых мультиплексора (обозначаемые далее как AMUX0) с 23 внешними входами на каждом, собственно 10-разрядный АЦП последовательного приближения (максимальная производительность . 200 тыс. преобразований в секунду) с интегрированным устройством выборки/хранения и программируемый детектор диапазона. Настройка AMUX0 и детектора диапазона, а также выбор режимов преобразования данных осуществляются полностью программно с помощью регистров специального назначения, показанных на рисунке 5.1. АЦП0 поддерживает как однофазный, так и дифференциальный режимы работы, и может быть настроен для измерения напряжения на портах P1.0 – P3.4 (если они доступны), выходного сигнала датчика температуры или напряжения питания VDD относительно любого из портов P1.0 – P3.4, VREF или GND. АЦП0 включен, когда бит AD0EN в регистре управления ADC0CN установлен в 1. АЦП0 отключен (переведен в режим пониженного энергопотребления), когда бит AD0EN сброшен в 0.

 

Рисунок 5.1. Функциональная схема АЦП0

5.1. Аналоговый  мультиплексор

AMUX0 осуществляет выбор положительного  и отрицательного входов АЦП.

В качестве положительного входа можно  выбрать:

- внешние порты ввода/вывода;

- выходной сигнал встроенного  датчика температуры;

- положительное напряжение питания  (VDD).

В качестве отрицательного входа можно  выбрать:

- внешние порты ввода/вывода;

- VREF;

- общий вывод питания GND.

Если в качестве отрицательного входа выбран GND, то АЦП0 функционирует  в однофазном

режиме; во всех остальных  случаях АЦП0 функционирует в  дифференциальном режиме.

Входные каналы АЦП0 выбираются в регистрах AMX0P и AMX0N (см. SFR-описания 5.1 и 5.2). Формат получаемого результата преобразования различен для однофазного и дифференциального режимов. По окончании каждого преобразования в регистры ADC0H и ADC0L записываются соответственно старший и младший байты результата преобразования. Данные могут быть выровнены вправо или влево в зависимости от значения бита AD0LJST (ADC0CF.2). В однофазном режиме результаты преобразований представлены в виде 10-разрядных целых чисел без знака. Диапазон измерения входных напряжений: 0 … VREF×1023/1024. Ниже приведены примеры результатов преобразований при выравнивании как вправо, так и влево. Неиспользуемые биты в регистрах ADC0H и ADC0L установлены в ‘0’.

В дифференциальном режиме результаты преобразований представлены в виде 10-разрядных чисел в дополнительном коде со знаком. Диапазон измерения входных напряжений: .VREF … VREF×511/512. Ниже приведены примеры результатов преобразований при выравнивании как вправо, так и влево. При выравнивании вправо неиспользуемые старшие разряды регистра ADC0H являются знаковым расширением слова данных. При выравнивании влево неиспользуемые младшие разряды регистра ADC0L установлены в ‘0’.

Важное примечание относительно конфигурации входов АЦП0: Выводы порта, выбранные в качестве входов АЦП0, должны быть настроены как аналоговые входы и должны пропускаться матрицей при назначении выводов. Чтобы настроить вывод порта как аналоговый вход, следует сбросить в 0 соответствующий бит в регистре PnMDIN (для n = 0,1,2,3). Чтобы заставить матрицу пропускать вывод порта при назначении выводов, следует установить в 1 соответствующий бит в регистре PnSKIP (для n = 0,1,2,3). Более подробная информация о настройке портов ввода/вывода приведена в разделе 17 «Порты ввода/вывода» на стр.189.

 

5.2. Датчик температуры

Типичная передаточная характеристика датчика температуры показана на рисунке 5.2. Если датчик температуры выбран битами AMX0P4-0 в регистре AMX0P, то его выходное напряжение (VTEMP) подается на положительный вход АЦП.

Рисунок 5.2. Передаточная характеристика датчика температуры

Неоткалиброванный выход датчика  температуры характеризуется высокой  линейностью и идеально подходит для выполнения относительных измерений  температуры (см. параметры линейности в таблице 5.1). Для выполнения абсолютных измерений температуры рекомендуется осуществлять калибровку параметров крутизны и/или смещения. Типичная 1-точечная калибровка осуществляется следующим образом:

1. Проверить/измерить температуру  окружающей среды (эта температура  должна быть известна).

2. Включить питание МК и выдержать паузу, достаточную для саморазогрева МК (приблизительно несколько секунд).

3. Выбрать датчик температуры  в качестве положительного входа  АЦП и GND в качестве отрицательного  входа АЦП. Выполнить преобразование  АЦП.

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

На рисунке 5.3 показана типичная погрешность  датчика температуры, откалиброванного по одной точке (при 25 ºC). Следует иметь ввиду, что параметры, которые влияют на точность аналого-цифрового преобразования, в частности на значение опорного напряжения, также будут влиять на точность измерения температуры.

 

Рисунок 5.3. Погрешность датчика температуры, откалиброванного по одной точке

5.3. Режимы работы  АЦП0

Максимальная скорость преобразования АЦП0 – 200 тыс. преобразований в секунду. Частота дискретизации АЦП0 определяется частотой системного тактового сигнала, деленной на значение, задаваемое битами AD0SC регистра ADC0CF (частота дискретизации АЦП0 равна частоте системного тактового сигнала, деленной на     (AD0SC + 1) для 0 ≤ AD0SC ≤ 31).

5.3.1. Запуск  преобразования

Запуск преобразования может быть осуществлен одним из шести способов, в зависимости от состояния  битов режима запуска преобразования АЦП0 (AD0CM2-0) в регистре ADC0CN. Преобразование АЦП0 может быть инициировано:

1) установкой в 1 бита AD0BUSY в регистре ADC0CN;

2) переполнением Таймера 0 (т.е.  непрерывные преобразования через определенные промежутки времени);

3) переполнением Таймера 2;

4) переполнением Таймера 1;

5) нарастающим фронтом внешнего  сигнала запуска преобразования CNVSTR (вывод Р0.6);

6) переполнением Таймера 3.

Возможность запуска преобразования путем установки в 1 бита AD0BUSY обеспечивает программное управление модулем АЦП0, при котором преобразования осуществляются «по требованию». Во время преобразования бит AD0BUSY установлен в 1. После окончания преобразования этот бит сбрасывается в 0. При сбросе бита AD0BUSY инициируется прерывание (если оно разрешено) и устанавливается флаг прерывания от АЦП0 (AD0INT). Если требуется определять момент окончания преобразования путем программного опроса, то опрашивать следует тот же флаг AD0INT. Преобразованные данные доступны в регистрах старшего и младшего слова данных АЦП0, ADC0H и ADC0L соответственно, когда AD0INT=1. Следует иметь ввиду, что если запуск преобразования осуществляется переполнением Таймера 2 или Таймера 3, то используются переполнения младшего байта, когда Таймер 2/3 работает в 8-разрядном режиме, и переполнения старшего байта, когда Таймер 2/3 работает в 16-разрядном режиме. Информация о настройке таймеров приведена в разделе «21. Таймеры».

Важное примечание относительно использования CNVSTR: Внешний вход CNVSTR функционирует также как вывод порта P0.7 в МК C8051F310 и как вывод порта P0.6 в МК. Если вход CNVSTR используется для запуска  преобразования АЦП0, то соответствующий вывод порта должен пропускаться матрицей при назначении выводов. Чтобы заставить матрицу пропускать этот вывод порта, следует установить в 1 соответствующий бит 6 в регистре P0SKIP. Более подробная информация о настройке портов ввода/вывода приведена в разделе «17. Порт ввода/вывода».

 

5.3.2. Режимы  слежения

Каждому преобразованию АЦП0 должен предшествовать период выборки, минимальная длительность которого должна быть достаточной для обеспечения точности результата преобразования. Минимальное значение периода выборки приведено в таблице 5.1. Бит AD0TM в регистре ADC0CN управляет режимом выборки-хранения АЦП0. По умолчанию состояние входа АЦП0 отслеживается непрерывно, за исключением непосредственно периода преобразования. Установка в 1 бита AD0TM переводит АЦП0 в энергосберегающий режим выборки-хранения. В этом режиме каждому преобразованию предшествует (после сигнала запуска преобразования) период выборки, равный трем периодам сигнала дискретизации АЦП. Если для запуска преобразования в энергосберегающем режиме выборки-хранения используется сигнал CNVSTR, то АЦП0 отслеживает входной сигнал только тогда, когда на входе CNVSTR присутствует сигнал низкого уровня; преобразование запускается нарастающим фронтом сигнала на входе CNVSTR (см. рисунок 5.4). Кроме этого, слежение может быть запрещено (отключено), когда весь МК переведен в малопотребляющие режимы ожидания или остановки. Энергосберегающий режим выборки-хранения особенно полезен в том случае, когда настройки AMUX0 часто изменяются: он позволяет обеспечить соответствие времени установления заданным требованиям (см. раздел «5.3.3. Время установления» на стр. 55).

 

Рисунок 5.4. Временные  диаграммы процесса преобразования АЦП0

A. Временные  диаграммы АЦП0 с внешним источником запуска

В. Временные  диаграммы АЦП0 с внутренним источником запуска

AD0TM=1

AD0TM=0

Переполнение  Таймера 0, 1, 2, 3

Установка в  ‘1’ бита AD0BUSY

(AD0CM[2:0]=000, 001, 010, 011, 101)

 

Тактовые

импульсы

Тактовые

Импульсы

 

5.3.3. Время установления

Если изменяется конфигурация входов АЦП0 (т.е. выбираются другие настройки AMUX0), то после этого для обеспечения  точности преобразования АЦП необходимо выдержать паузу (время слежения) длительностью не менее минимального времени установления сигнала. Это время установления определяется входным сопротивлением мультиплексора AMUX0, емкостью накопительного конденсатора УВХ, сопротивлением внешнего источника сигнала и требуемой точностью преобразования. В энергосберегающем режиме выборки-хранения после запуска каждого преобразования выборка длится три периода сигнала дискретизации АЦП. Для большинства приложений эти три периода сигнала дискретизации будут достаточны, чтобы соответствовать требованиям, предъявляемым ко времени установления.

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