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

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

SFR-адрес: 0xA4

Биты 7-0: Биты настройки  выходных драйверов для выводов P0.7 – P0.0 (соответственно):

игнорируются,  если соответствующий бит в регистре P0MDIN сброшен в 0.

0: Соответствующий вывод  P0.n настроен как выход с открытым  стоком.

1: Соответствующий вывод  P0.n настроен как обычный цифровой  выход.

 

(Примечание: Если сигналы  SDA и SCL появляются на любом  выводе порта, то каждый из  этих выводов будет настроен  как выход с открытым стоком  независимо от значения регистра P0MDOUT).

 

SFR-описание 13.6. P0SKIP: Регистр выбора выводов Порта  0, пропускаемых матрицей

SFR-адрес: 0xD4

Биты 7-0: P0SKIP.[7:0]: Биты выбора выводов  Порта P0, пропускаемых матрицей при 

назначении выводов. Эти биты выбирают выводы портов, пропускаемые декодером 

матрицы. Выводы портов, используемые как аналоговые входы (для АЦП  или 

компараторов) или используемые для специальных функций (вход VREF, схема

внешнего генератора, вход CNVSTR) должны пропускаться матрицей.

0: Соответствующий вывод P0.n не  пропускается матрицей при назначении  выводов.

1: Соответствующий вывод P0.n пропускается матрицей при назначении выводов.

 

 

SFR-описание 13.7. P1: Регистр данных Порта 1

SFR-адрес: 0x90 (доступен в битовом режиме адресации)

Биты 7-0: P1.[7:0]

Запись – выходной сигнал появляется на внешних выводах в зависимости от

состояния регистров матрицы.

0: Выход в состоянии лог. 0.

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

бит P1MDOUT.n = 0).

Чтение – Всегда читается как ‘0’, если в регистре P1MDIN выбран аналоговый вход.

Читается непосредственно состояние  вывода порта, если настроен как цифровой вход.

0: На выводе P1.n низкий логический  уровень.

1: На выводе P1.n высокий логический  уровень.

 

SFR-описание 13.8. P1MDIN: Регистр настройки входов  Порта 1

SFR-адрес: 0xF2

Биты 7-0: Биты выбора аналогового  режима работы для выводов P1.7 – P1.0 (соответственно).

Если вывод настроен как аналоговый вход, то его слаботоковая подтяжка, драйвер цифрового выхода и цифровой приемник отключаются.

0: Соответствующий вывод  P1.n настроен как аналоговый вход.

1: Соответствующий вывод P1.n не настроен как аналоговый вход.

 

 

 

 

 

SFR-описание 13.9. P1MDOUT: Регистр настройки выходов  Порта 1

SFR-адрес: 0xA5

Биты 7-0: Биты настройки  выходных драйверов для выводов P1.7 – P1.0 (соответственно):

игнорируются, если соответствующий  бит в регистре P1MDIN сброшен в 0.

0: Соответствующий вывод  P1.n настроен как выход с открытым  стоком.

1: Соответствующий вывод  P1.n настроен как обычный цифровой  выход.

 

SFR-описание 13.10. P1SKIP: Регистр выбора выводов Порта  1,

пропускаемых  матрицей

SFR-адрес: 0xD5

Биты 7-0: P1SKIP.[7:0]: Биты выбора выводов Порта P1, пропускаемых матрицей при 

назначении выводов. Эти  биты выбирают выводы портов, пропускаемые декодером 

матрицы. Выводы портов, используемые как аналоговые входы (для АЦП или 

компараторов) или используемые для специальных функций (вход VREF, схема

внешнего генератора, вход CNVSTR) должны пропускаться матрицей.

0: Соответствующий вывод  P1.n не пропускается матрицей при  назначении выводов.

1: Соответствующий вывод  P1.n пропускается матрицей при назначении выводов.

 

 

SFR-описание 13.11. P2: Регистр данных Порта 2

SFR-адрес: 0xA0 (доступен в битовом режиме адресации)

Биты 7-0: P2.[7:0]

Запись – выходной сигнал появляется на внешних выводах в зависимости от

состояния регистров матрицы.

0: Выход в состоянии лог. 0.

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

бит P2MDOUT.n = 0).

Чтение – Всегда читается как ‘0’, если в регистре P2MDIN выбран аналоговый вход.

Читается непосредственно состояние  вывода порта, если настроен как цифровой вход.

0: На выводе P2.n низкий логический  уровень.

1: На выводе P2.n высокий логический  уровень.

 

SFR-описание 13.12. P2MDIN: Регистр настройки входов  Порта 2

SFR-адрес: 0xF3

Биты 7-0: Биты выбора аналогового  режима работы для выводов P2.7 – P2.0 (соответственно).

Если вывод настроен как аналоговый вход, то его слаботоковая подтяжка, драйвер 

цифрового выхода и цифровой приемник отключаются.

0: Соответствующий вывод  P2.n настроен как аналоговый вход.

1: Соответствующий вывод  P2.n не настроен как аналоговый вход.

 

SFR-описание 13.13. P2MDOUT: Регистр настройки выходов  Порта 2

SFR-адрес: 0xA6

Биты 7-0: Биты настройки  выходных драйверов для выводов P2.7 – P2.0 (соответственно):

игнорируются, если соответствующий  бит в регистре P2MDIN сброшен в 0.

0: Соответствующий вывод  P2.n настроен как выход с открытым  стоком.

1: Соответствующий вывод  P2.n настроен как обычный цифровой  выход.

 

SFR-описание 13.14. P2SKIP: Регистр выбора выводов Порта  2,

пропускаемых  матрицей

SFR-адрес: 0xD6

Биты 7-0: P2SKIP.[7:0]: Биты выбора выводов Порта P2, пропускаемых матрицей при

назначении выводов.

Эти биты выбирают выводы портов, пропускаемые декодером матрицы. Выводы портов, используемые как аналоговые входы (для АЦП или компараторов) или используемые для специальных функций (вход VREF, схема внешнего генератора, вход CNVSTR) должны

пропускаться матрицей.

0: Соответствующий вывод  P2.n не пропускается матрицей при  назначении выводов.

1: Соответствующий вывод  P2.n пропускается матрицей при  назначении выводов.

 

SFR-описание 13.15. P3: Регистр данных Порта 3

SFR-адрес: 0xB0 (доступен в битовом режиме адресации)

Биты 7-0: P3.[7:0]

Запись – выходной сигнал появляется на внешних выводах в зависимости от

состояния регистров матрицы.

0: Выход в состоянии лог. 0.

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

бит P3MDOUT.n = 0).

Чтение – Всегда читается как ‘0’, если в регистре P3MDIN выбран аналоговый вход.

Читается непосредственно состояние  вывода порта, если настроен как цифровой вход.

0: На выводе P3.n низкий логический  уровень.

1: На выводе P3.n высокий логический  уровень.

 

SFR-описание 13.16. P3MDIN: Регистр настройки входов  Порта 3

SFR-адрес: 0xF4

Биты 7-0: Биты выбора аналогового  режима работы для выводов P3.7 – P3.0 (соответственно).

Если вывод настроен как аналоговый вход, то его слаботоковая подтяжка, драйвер 

цифрового выхода и цифровой приемник отключаются.

0: Соответствующий вывод  P3.n настроен как аналоговый вход.

1: Соответствующий вывод  P3.n не настроен как аналоговый вход.

 

SFR-описание 13.17. P3MDOUT: Регистр настройки выходов  Порта 3

SFR-адрес: 0xAF

Биты 7-0: Биты настройки  выходных драйверов для выводов P3.7 – P3.0 (соответственно):

игнорируются, если соответствующий  бит в регистре P3MDIN сброшен в 0.

0: Соответствующий вывод P3.n настроен как выход с открытым стоком.

1: Соответствующий вывод  P3.n настроен как обычный цифровой  выход.

 

 

14. SMBus

Интерфейс ввода/вывода SMBus представляет собой двухпроводную двунаправленную  последовательную шину. SMBus соответствует System Management Bus Specification (версия 1.1) и совместим с последовательным интерфейсом I2C. Системный контроллер считывает данные с последовательной шины и записывает их в последовательную шину побайтно с помощью модуля SMBus, который автоматически управляет последовательной передачей данных. Данные могут передаваться со скоростью до 1/10 системной тактовой частоты как в ведущем, так и в ведомом режимах (максимально возможная скорость передачи зависит от частоты используемого тактового сигнала и может превышать допускаемую спецификацией SMBus скорость передачи данных). Для обеспечения возможности работы устройств с различной скоростью передачи данных на одной шине используется метод растягивания синхросигнала за счет удержания низкого уровня.

Интерфейс SMBus может работать в режимах ведущего и/или ведомого, а также может функционировать на шине с несколькими ведущими. SMBus обеспечивает управление линией SDA (последовательные данные), генерацию и синхронизацию тактовых импульсов SCL, арбитраж, управление битами START/STOP и их генерацию. Управление интерфейсом SMBus осуществляется с помощью трех SFR- регистров: SMB0CF настраивает SMBus; SMB0CN управляет состоянием SMBus; SMB0DAT является регистром данных и используется для приема и передачи адреса ведомого и данных SMBus.

Рисунок 14.1. Структурная схема модуля SMBus

14.1. Техническая документация

Предполагается, что читатель знаком со следующими техническими документами  или имеет доступ к ним:

1. The I2C-Bus and How to Use It (including specifications), Philips Semiconductor.

2. The I2C-Bus Specification . Version 2.0, Philips Semiconductor.

2. System Management Bus Specification . Version 1.1, SBS Implementers Forum.

 

14.2. Подключение к шине SMBus

На рисунке 14.2 приведена типичная схема подключения к шине SMBus. Интерфейс SMBus0 способен работать при любом напряжении от 3.0В до 5.0В; различные устройства на шине могут иметь различные напряжения питания. Линии SCL (тактовые импульсы) и SDA (последовательные данные) являются двунаправленными. Необходимо подать на них положительное напряжение питания через подтягивающий резистор или подобную схему.

Каждое устройство, подключенное к  шине, должно иметь выход с открытым стоком или с открытым коллектором  как для линии SCL, так и для  линии SDA; тогда при свободной шине обе линии будут «подтянуты» к напряжению высокого логического уровня.

Максимальное количество устройств  на шине ограничивается только следующим  требованием: время нарастания и  спада сигнала на линиях шины не должно превышать 300 нс и 1000 нс соответственно.

 

Рисунок 14.2. Подключение  к шине SMBus

 

14.3. Протокол SMBus

Возможны два режима передачи данных: передача данных от ведущего передатчика  к адресуемому ведомому приемнику (ЗАПИСЬ) и передача данных от адресуемого  ведомого передатчика к ведущему приемнику (ЧТЕНИЕ). Ведущее устройство инициирует процесс передачи данных в обоих режимах и генерирует тактовый сигнал на линии SCL. Модуль SMBus может функционировать в ведущем или ведомом режимах, а также поддерживает режим работы с несколькими ведущими на одной шине. Если два или более ведущих пытаются инициировать процесс передачи данных одновременно, то применяемая схема арбитража всегда определит одного ведущего, который выиграет арбитраж и захватит управление шиной. Следует отметить, что нет необходимости определять какое-либо устройство как ведущее в системе; любое устройство, которое передает бит START и адрес ведомого, становится ведущим в течение этого сеанса связи.

Типичное сообщение SMBus состоит  из бита START, следующего за ним байта адреса (биты 7-1: 7- разрядный адрес ведомого; бит 0: бит направления передачи R/W), одного или нескольких байт данных и бита STOP. Каждый принятый (ведущим или ведомым) байт должен быть подтвержден (ACK) низким уровнем сигнала на линии SDA во время высокого уровня сигнала на линии SCL (см. рисунок 14.3). Если принимающее устройство не подтверждает прием, то передающее устройство воспримет этот факт как бит «нет подтверждения» (NACK), который представляет собой высокий уровень сигнала на линии SDA во время высокого уровня сигнала на линии SCL.

 

Бит направления занимает самый  младший значащий разряд байта адреса. Бит направления устанавливается  в 1 для выполнения операции чтения и сбрасывается в 0 для выполнения операции записи.

Все сеансы обмена данными инициируются ведущим, который адресует одно или несколько ведомых устройств. Ведущий генерирует бит START и затем передает адрес ведомого и бит направления. Если инициируется операция записи от ведущего к ведомому, то ведущий передает по одному байту данных за раз, ожидая бита подтверждения (ACK) от ведомого в конце каждого байта. Если осуществляется операция чтения, то ведомый передает данные, ожидая бита подтверждения (ACK) от ведущего в конце каждого байта. В конце сеанса передачи данных ведущий генерирует бит STOP, чтобы завершить сеанс и освободить шину. На рисунке 14.3 показан формат типичного сообщения SMBus.

 

Рисунок 14.3. Формат сообщения SMBus

 

14.3.1. Арбитраж

Ведущий может начать сеанс передачи, только если шина свободна. Шина является свободной после бита STOP или после того, как на линиях SCL и SDA в течение определенного времени удерживается высокий уровень сигнала (см. раздел «14.3.4. Таймаут высокого уровня на линии SCL (таймаут освобождения шины)» на стр. 212). В случае, когда два или более ведущих устройства пытаются начать передачу данных одновременно, используется схема арбитража, которая заставит какое-либо ведущее устройство освободить шину. Ведущие устройства продолжают передавать до тех пор, пока один из ведущих не попытается передать на линию SDA сигнал высокого уровня, в то время как другие ведущие выдают на эту линию сигнал низкого уровня. Т.к. выходы всех устройств, подключенных к шине, являются выходами с открытым стоком (или с открытым коллектором), то на линии SDA установится низкий уровень. Ведущее устройство, пытающееся передать на линию SDA сигнал высокого уровня, определит, что вместо сигнала высокого уровня на линии SDA присутствует сигнал низкого уровня, и освободит шину. Выигравший арбитраж ведущий продолжает передавать свои данные без какого-либо перерыва; потерявший арбитраж ведущий становится ведомым и, если он адресован, принимает остаток передаваемых данных. Данная схема арбитража является «неразрушающей»: какое-нибудь одно устройство всегда выигрывает и никакие данные не теряются.

 

 

 

 

14.3.2. Растягивание тактового  сигнала

Модуль SMBus обеспечивает механизм тактовой синхронизации, аналогичный I2C, который позволяет устройствам с различной скоростью передачи данных сосуществовать на одной шине. Чтобы позволить медленным ведомым устройствам обмениваться данными с быстрыми ведущими, применяется растягивание тактовых импульсов на участке с низким уровнем сигнала. Ведомый может временно удерживать линию SCL на низком уровне, тем самым удлиняя период тактового сигнала (за счет удлинения участка с низким уровнем) и уменьшая таким образом частоту тактирования шины.

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