
Основы микропроцессорной техники
..pdf90
модули периферийных устройств (параллельные порты, многорежимные таймеры/счетчики, процессоры событий, контроллеры последовательного интерфейса, многоканальный АЦП, контроллеры ЖК-индикаторов и светодиодной матрицы);
модули контроля за напряжением питания и ходом выполнения программы;
модули внутрисхемной отладки и программирования. Процессорное ядро представляет неразрывное единство трех
составляющих его технического решения, определяющих его производительность:
архитектуры с присущим ей набором регистров, способами адресации операндов, системой команд, организацией процесса выборки и исполнения команд;
схемотехники, которая определяет последовательность перемещения данных по внутренним магистралям между РОНами, АЛУ и памятью при выполнении каждой команды;
технологии, которая позволяет разместить схему той или иной сложности на полупроводниковом кристалле, определяет допустимую частоту переключений в схеме и энергию потребления.
Резидентная память МК
Закрытая архитектура современных 8-разрядных МК стала реализуемой лишь при условии интеграции на кристалл МК модулей памяти двух типов: энергонезависимого ЗУ памяти программ и ОЗУ памяти данных.
С момента появления МК технология ПЗУ претерпела множество изменений, что привело к повышению быстродействия, информационной емкости, надежности хранения информации и появлению принципиально новых технологий программирования РПП.
Различают пять типов ПЗУ:
ПЗУ масочного типа — mask-ROM. Самое простое, надежное, но экономически оправдано при партии в несколько десятков тысяч штук;
91
ПЗУ, однократно программируемое пользователем —
OTPROM (One-Time Programmable ROM). Рекомендуется в изде-
лиях, выпускаемых небольшими партиями;
ПЗУ, программируемое пользователем, с ультрафиолето-
вым стиранием — ЕPROM (Erasable Programmable ROM). Имеют высокую стоимость. Рекомендуется только в опытных образцах изделий;
ПЗУ, программируемое пользователем, с электрическим стиранием — ЕЕPROM (Electrically Erasable Programmable ROM).
Побайтовое стирание и запись информации. Имеют ограниченную емкость;
ПЗУ с электрическим стиранием типа FLASH — FLASH ROM. Транзистор адресации каждого бита удален. Программирование и стирание осуществляется страницами (8, 16 или 32 байта) или блоками (до 60 Кбайт). Снижение стоимости и размеров делает FLASH ROM конкурентным даже с масочным ПЗУ.
В ранних разработках повышенное напряжение для программирования подавалось на один из выводов МК. В новейших версиях ЕЕPROM и FLASH ПЗУ содержат встроенные схемы повышающих преобразователей напряжения — генераторы накачки. Допускается включение и отключение генераторов накачки посредством установки битов в регистре специальных функций модуля памяти без остановки выполнения прикладной программы. Появляется возможность программирования под управлением программы (FLASH ПЗУ используется для хранения программы, а ЕЕPROM — для хранения изменяемых в процессе эксплуатации настроек пользователя.
ОЗУ РПД всегда статического типа, что допускает снижение частоты тактирования до сколь угодно малых значений с целью снижения энергии потребления. Уровень напряжения хранения информации в режиме микропотребления порядка 1 В, что позволяет перейти на питание от батарейки. Появились МК со встроенным в корпус автономным источником питания, гарантирующим сохранность данных в ОЗУ в течение 10 лет (МК
DS5000 фирмы Dallas Semiconductor).
92
Таймеры и процессоры событий
Управление в реальном времени означает способность МПС получить информацию о состоянии управляемого объекта, выполнить необходимые расчеты и сформировать управляющее воздействие в течение интервала времени, по истечении которого эти воздействия вызовут желаемое поведение объекта. От процессорного ядра зависит время вычислений. Но надо тратить как можно меньше времени на прием информации с датчиков и выдачу управляющих сигналов. Для решения этих задач используют прежде всего систему прерываний и модуль таймера. Развитая система прерываний позволяет сократить время реакции МПсистемы на изменения состояния объекта. Модули таймеров служат для приема информации от датчиков с времяимпульсными выходами, а также для формирования управляющих воздействий
ввиде последовательности импульсов с изменяющимися параметрами.
Опыт построении МПС позволяет выделить типовые задачи, которые должен уметь решать МК для эффективного управления
вреальном времени:
отсчет равных интервалов времени заданной длительности, повтор алгоритма управления по истечении каждого такого временного интервала. Обычно эту функцию называют формированием меток реального времени;
контроль за изменением состояния линии ввода МК;
измерение длительности сигнала заданного логического уровня на линии ввода МК;
подсчет числа импульсов внешнего сигнала на заданном временном интервале;
формирование на линии вывода МК сигнала заданного логического уровня с программируемой задержкой по отношению к изменению сигнала на линии ввода;
формирование на линии вывода МК импульсного сигнала с программируемой частотой и программируемым коэффициентом заполнения.
93
Каждая из перечисленных задач может быть выполнена программными средствами, без использования специальных аппаратных решений. Можно реализовать программную временную задержку, загрузив в регистр число и повторяя декрементирование регистра до нуля. Для контроля за изменением состояния линии ввода можно организовать постоянный опрос линии — поллинг. Однако нельзя будет параллельно с этим производить вычисления или решать несколько задач. Поэтому, для выполнения функций, связанных с управлением в реальном времени, в состав МК включают специальные аппаратные средства, называемые таймерами.
Модуль таймера 8-разрядного МК представляет собой 16разрядный счетчик со схемой управления. В карте памяти он отображается двумя регистрами — TH и TL. Они доступны для чтения и записи. Счетчик работает на сложение. Может использовать для тактирования импульсную последовательность с управляемого делителя частоты fbus, либо внешнюю импульсную последовательность, поступающую на один из входов МК. При переполнении устанавливается флаг TF и генерируется запрос на прерывания, если прерывания разрешены. Классический модуль таймера используется в МК с архитектурой MCS-51. Дополнительная логика позволяет измерять длительность импульса, поступающего на одну из линий МК. Наличие режима перезагрузки позволяет получить метки реального времени с периодом, отличным от Ксч=216.
Совершенствование системы реального времени достигается увеличением числа модулей таймеров, а также введением аппаратных средств входного захвата (Input Capture) и выходного сравнения (Output Compare).
Канал входного захвата (рис. 9.1) содержит детектор событий, который наблюдает за уровнем напряжения на одном из входов МК. При изменении сигнала на линии с 0 на 1 или наоборот текущее состояние счетчика таймера записывается в 16-раз- рядный регистр данных TIC канала захвата. Выбор типа события захвата устанавливается в процессе инициализации модуля таймера и может многократно изменяться по ходу выполнения программы. Каждое событие захвата отмечается установкой в 1 триггера TIC. Состояние триггера может быть считано программно, а если разрешены прерывания по событию входного захвата, то генерируется запрос на прерывание.

94
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СТ2 |
|
|
RG |
|
|
|
входного |
|
|
|
Делитель |
|
|
|
|
|
|
|
|
|
|
|||||||||||
fк |
|
|
|
|
|
|
+1 |
TL |
|
|
|
TICL |
захвата |
|||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
частоты |
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
16 |
|
|
|
|
ШД |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ШД |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Kдел |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TH |
|
|
C |
TICH |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
РТх |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Разрешение |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
прерываний |
||||
|
|
Детектор |
|
|
|
|
|
|
|
|
TIC |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
событий |
|
|
|
|
|
|
|
|
|
|
|
|
Запрос |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
прерываний |
Рис. 9.1 — Канал входного захвата таймера
В канале выходного сравнения (рис. 9.2) многоразрядный цифровой компаратор непрерывно сравнивает изменяющийся во времени код счетчика таймера с кодом, который записан в 16-раз- рядном регистре TОC канала сравнения.
|
|
|
|
|
|
|
|
СТ2 |
fк |
|
Делитель |
||||||
|
|
|
|
+1 TL |
||||
|
частоты |
|
|
|
||||
|
|
|
||||||
|
|
|
|
|
|
|||
|
|
|
|
|
|
ШД |
||
|
|
|
|
|
||||
|
|
|
Kдел |
|
|
|
|
|
TH
Регистр
выходного
сравнения
|
RG |
16 |
|
|
|
|
|
|
Разрешение |
|||
|
TОCL |
А |
= = |
|
|
|
|
прерываний |
||||
|
16 |
|
|
|
TОC |
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
ШД |
|
В |
|
|
|
|
|
|
Запрос |
|||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||
|
TОCH |
|
|
|
|
|
|
|
|
прерываний |
||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
Формирователь |
|
|
|||
|
|
|
|
|
|
|
|
уровня |
РТх |
|||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Рис. 9.2 — Канал выходного сравнения таймера
95
В момент равенства кодов на одном из выводов МК устанавливается заданный уровень выходного сигнала. Каждое событие выходного сравнения отмечается установкой в 1 триггера TОC. Состояние триггера может быть считано программно, а если разрешены прерывания по событию выходного сравнения, то генерируется запрос на прерывание.
Следующий этап в развитии подсистемы реального времени — модули процессоров событий. Модуль содержит в себе 16-раз- рядный счетчик временной базы и некоторое количество универсальных каналов захвата/сравнения, которые могут работать в одном из трех режимов:
режим входного захвата;
режим выходного сравнения;
режим широтно-импульсной модуляции.
Сторожевой таймер
Предназначен для защиты микроконтроллера от сбоев в процессе работы. Представляет собой многоразрядный счетчик. При сбросе он обнуляется. При переходе в активный режим работы увеличивает код независимо от выполняемой программы и при переполнении генерирует сигнал внутреннего сброса МК. Для исключения этого события прикладная программа должна периодически сбрасывать счетчик.
Контроллеры последовательного ввода/вывода
Задачи, которые решаются средствами контроллера последовательного ввода/вывода могут быть условно разделены на три группы:
связь встраиваемой МПС с системой управления верхнего уровня: промышленным компьютером, офисным компьютером. Наиболее часто для этой цели используются интерфейсы RS-232
иRS-485;
связь с внешними по отношению к МК периферийными ИС встраиваемой МПС, а также с датчиками физических величин
96
с последовательным выходом. Для этой цели используются интерфейсы SPI, I2C;
интерфейс связи с локальной сетью в мультимикропроцессорных системах. В сложных системах более популярным становится протокол типа CAN.
Минимизация потребления энергии в системах с МК
Кроме активного режима большинство современных МК могут быть переведены в режим ожидания и режим останова с пониженным энергопотреблением.
Врежиме ожидания прекращает работу центральный процессор, но продолжают работать периферийные модули, которые отслеживают поведение объекта управления. При необходимости периферийные модули переводят МК в активный режим для вычисления корректирующих воздействий на объект управления. Мощность потребления снижается в 5–10 раз. Выход из режима по сбросу и прерыванию.
Врежиме останова прекращают работу и ЦП, и большинство периферийных модулей. Мощность потребления составляет единицы мкВт. Выход из режима по сбросу.
Различают три группы исполнения по напряжению питания: 5 В±10 %, с расширенным диапазоном питания (от 2–3 до 5–7 В),
спониженным напряжением питания (от 1,8 до 3 В).
Примеры устройств, где используется режим пониженного энергопотребления: пульт дистанционного управления бытовой аппаратуры и счетчик тепловой энергии.
Микроконтроллер семейства АТ89 фирмы Atmel представляет собой восьмиразрядную однокристальную микроЭВМ с системой команд MCS-51 фирмы Intel. Базовая структура микроконтроллеров совпадает с базовой структурой микроконтроллеров семейства MCS-51 и отечественных микроконтроллеров МК51 серий К1816/51 и К1830/51, однако микроконтроллеры многих типов содержат новые запоминающие и периферийные устройства, а некоторые устройства базовой структуры имеют иные характеристики.

97
10 МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА АТ89 фирмы Atmel
В табл. 10.1 перечислены типы микроконтроллеров семейства АТ89, указаны запоминающие и периферийные устройства и некоторые узлы, входящие в состав микроконтроллеров каждого типа, и приведены их характеристики.
Таблица 10.1
Тип МК |
FLASH |
SRAM |
EEPROM |
EM |
I/O |
SP |
T/С |
IS |
IV |
SPI |
WDT |
AC |
DPTR |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89С1051 |
1K |
64 |
– |
– |
15 |
– |
1 |
3 |
3 |
– |
– |
+ |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89С1051U |
1K |
64 |
– |
– |
15 |
+ |
2 |
6 |
5 |
– |
– |
+ |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89С2051 |
2K |
128 |
– |
– |
15 |
+ |
2 |
6 |
5 |
– |
– |
+ |
1 |
АТ89С4051 |
4K |
128 |
– |
– |
15 |
+ |
2 |
6 |
5 |
– |
– |
+ |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89С51 |
4K |
128 |
– |
+ |
32 |
+ |
2 |
6 |
5 |
– |
– |
– |
1 |
АТ89LV51 |
|||||||||||||
АТ89С52 |
8K |
256 |
– |
+ |
32 |
+ |
3 |
8 |
6 |
– |
– |
– |
1 |
АТ89LV52 |
|||||||||||||
АТ89С55 |
20K |
256 |
– |
+ |
32 |
+ |
3 |
8 |
6 |
– |
– |
– |
1 |
АТ89LV55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89S53 |
12K |
256 |
– |
+ |
32 |
+ |
3 |
9 |
6 |
+ |
+ |
– |
2 |
АТ89LS53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89S8252 |
8K |
256 |
2K |
+ |
32 |
+ |
3 |
9 |
6 |
+ |
+ |
– |
2 |
АТ89LS8252 |
|
|
|
|
|
|
|
|
|
|
|
|
|
АТ89S4D12 |
4K |
256 |
128K |
– |
5 |
– |
– |
– |
– |
+ |
– |
– |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В число запоминающих устройств входят внутреннее постоянное запоминающее устройство (FLASH), предназначенное для хранения команд программы и констант, и внутреннее оперативное запоминающее устройство (SRАM), предназначенное для хранения данных. FLASH память программ выдерживает до 1000 циклов перепрограммирования. SRAM является статическим оперативным запоминающим устройством.
98
Микроконтроллеры некоторых типов имеют «новое» запоминающее устройство — внутреннее перепрограммируемое запоминающее устройство для хранения данных (EEPROM). Первоначальная запись данных в EEPROM производится при программировании микроконтроллера. В процессе выполнения программы обращения к EEPROM для чтения и записи выполняются с использованием команд с мнемокодами операции MOVX. После обращения для записи в EEPROM выполняется цикл записи длительностью несколько мс, в течение которого новое обращение к EEPROM невозможно.
В табл. 10.1 указана емкость названных запоминающих устройств (число восьмиразрядных ячеек памяти). К микроконтроллерам некоторых типов не может подключаться внешняя память (External Memory, EM). Отсутствие возможности подключения внешней памяти отмечено знаком <–> в колонке ЕМ.
К числу периферийных устройств относятся восьмиразрядные параллельные порты ввода-вывода Р0, Р1, Р2, Р3, последовательный порт SP, таймеры-счетчики Т/С0, Т/С1, Т/С2 и контроллер прерываний. Микроконтроллеры некоторых типов содержат меньшее число параллельных портов, а некоторые порты имеют меньшее число входов-выходов. Суммарное число входоввыходов параллельных портов у микроконтроллера указано в табл. 10.1 в колонке I/O. У микроконтроллеров некоторых типов отсутствует таймер-счетчик Т/С2, при этом у некоторых микроконтроллеров отсутствует также таймер-счетчик Т/С1. Число таймеров-счетчиков у микроконтроллера указано в колонке Т/С.
Система прерываний имеет два уровня приоритета. Число источников запросов прерывания (Interrupt Source, IS) и векторов прерывания (Interrupt Vector, IV) у микроконтроллеров разных типов указано в табл. 10.1 в колонках IS и IV соответственно. «Новыми» периферийными устройствами являются блок последовательного периферийного интерфейса (SPI), сторожевой таймер (WDT) и аналоговый компаратор (АС). Наличие у микроконтроллера названных устройств отмечено знаком <+> в колонках SPI, WDT и АС соответственно.
Блок SPI предназначен для последовательного ввода и вывода данных с использованием трех шин. При этом микроконтроллер может работать в качестве ведущего или ведомого уст-

99
ройства. Блок SPI может быть использован также для программирования микроконтроллера после установки его в аппаратуру.
Аналоговый компаратор сравнивает по величине напряжения сигналы, поступающие на входы Р1.0 и Р1.1. (рис. 10.1). Результат сравнения подается на вход Р3.6, не имеющий внешнего вывода. Процессор у микроконтроллеров некоторых типов содержит два регистра-указателя данных — DPTR0 и DPTR1. Количество регистров-указателей данных у микроконтроллера указано в колонке DPTR.
Микроконтроллеры семейства AT89 выпускаются для работы при разных значениях напряжения питания и тактовой частоты, определяемой частотой подключенного к микроконтроллеру кварцевого резонатора. Диапазоны значений напряжения питания (Vcc) и тактовой частоты (Fosc) у микроконтроллеров разных типов указаны в табл. 10.2. Ток потребления зависит от величины напряжения питания и тактовой частоты. В табл. 10.2 приведены значения тока потребления в рабочем режиме (Icc) при максимальном значении напряжения питания и Fosc=12 МГц.
Таблица 10.2
Тип МК |
Vcc (В) |
Fosc (МГц) |
Icc (мА) |
N |
|
|
|
|
|
АТ89С1051 |
2,7–6,0 |
0–24 |
15 |
20 |
AT89C1051U |
2,7–6,0 |
0–24 |
15 |
20 |
АТ89С2051 |
2,7–6,0 |
0–24 |
15 |
20 |
АТ89С4051 |
2,7–6,0 |
0–24 |
15 |
20 |
АТ89С51 |
4,0–6,0 |
0–24 |
20 |
40 |
|
|
|
|
|
АТ89LV51 |
2,7–6,0 |
0–12 |
20 |
40 |
АТ89С52 |
4,0–6,0 |
0–24 |
25 |
40 |
|
|
|
|
|
АТ89LV52 |
2,7–6,0 |
0–12 |
25 |
40 |
|
|
|
|
|
AT89C55 |
4,0–6,0 |
0–33 |
25 |
40 |
АТ89LV55 |
2,7–6,0 |
0–12 |
25 |
40 |
|
|
|
|
|
АТ89S53 |
4,0–6,0 |
0–33 |
25 |
40 |
АТ89LS53 |
2,7–6,0 |
0–12 |
25 |
40 |
АТ89S8252 |
4,0–6,0 |
0–33 |
25 |
40 |
АТ89LS8252 |
2,7–6,0 |
0–12 |
25 |
40 |
АТ89S4D12 |
3,3 (+–10%) |
12–15 |
20 |
10 |
|
|
|
|
|