- Общая характеристика семейства MCS–51.
- Таймер–счетчик T/C2
- Режим защелки
- Матрица программируемых счетчиков.
- Режим с высокоскоростным выходом (HSO)
- Режим сторожевого таймера (WDT)
- Особенности последовательного интерфейса.
- Определение отсутствия стоп–бита.
- Автоматическое определение адреса.
- Расширенный последовательный порт SЕР
- Режим сканирования
- Режим выбранного канала
Общая характеристика семейства MCS–51.
В табл. 7.2.1 приведены основные показатели микросхем шести групп MCS–51, рассматриваемых в этом разделе.
В каждую из них сведены микросхемы наиболее близких по функциональным особенностям и электрическим параметрам микроконтроллеров согласно методике, принятой в технической документации фирмы Intel.
В обозначениях, приведенных в таблице микросхем, используется только четвертое поле системы обозначений фирмы Intel, при этом первый элемент 8 является символом фирмы.
Второй элемент микросхем отражает: 0 — кристалл без ПЗУ (начиная с микросхем 5–й группы); 3 — масочное ПЗУ (начиная с микросхем 5–й группы); 7 — репрограммируемое ПЗУ с ультрафиолевым стиранием (УФРПЗУ).
Буквенный элемент C указывает на КМОП–технологию изготовления микросхем.
В 4–й и 5–й группах не приведены кристаллы с обозначением L, относящемся к микросхемам с 3–вольтовым питанием.
При отсутствие буквенного элемента микросхемы изготовлены по nМОП–технологии.
Последующие две цифры 51 во всех выпусках микросхем, начиная с 5–й группы служат для обозначения рассматриваемого семейства МК MCS–51.
Буквенные символы в конце обозначения отражают функциональные и другие особенности микросхем.
В первых выпусках микросхем (с 1–й по 4–ю группы): цифра 3 отражала отсутствие ПЗУ; 5 — наличие ПЗУ, A следующая цифра 1, 2, 4 или 8 — емкость ПЗУ соответственно 4, 8, 16 или 32 Кбайт.
Семейство MCS–51 пополнилось новыми регистрами вспомогательных функций SFR.
Приведенный в табл. 7.2.2 перечень регистров SFR (звездочкой * помечена возможность побитной адресации) составлен с учетом их введения в последующие модификации микросхем.
При этом регистры микросхем низших групп остались в микросхемах старших групп.
Однако в некоторых из них, например, в регистрах разрешения прерываний (IE) и приоритетов прерываний (IP, IPH) задействованы не используемые ранее разряды.
Микросхемы 6–й группы пополнились двумя портами ввода/вывода.
Значительно расширились альтернативные функции выводов портов Р0–Р5 (табл.7.2.3).
Введение новых аппаратных средств в последующие разработки микросхем привело к расширению возможностей микроконтроллеров семейства.
Дополнительные функциональные возможности микроконтроллеров различных групп МСS–51 по отношению к базовой версии отражены (помечены знаком +) в табл.7.2.4.
Таймер–счетчик T/C2
Таймер–счетчик T/C2 путем соответствующей установки бита C/?T2 регистра управления T2СON (табл.7.2.5) может быть использован как таймер для подсчета машинных циклов или как счетчик событий, фиксирующий на входе число перепадов из 1 в 0.
Шестнадцатиразрядный таймер–счетчик T/C2 состоит из пары восьмиразрядных регистров TH2 (старшие 8 разрядов) и TL2 (младшие 8 разрядов).
Внешним входом T/C2 служит вывод P1.0 порта P1, на который подается сигнал T2.
Другой вывод P1.1 того же порта используется для управления автоматической перезагрузкой T/C2 .
Режимы работы T/C2 (табл.7.2.6) выбираются битами регистра T2CON.
В табл.7.2.7 приведено назначение бит регистров IE, IP и порта P1, используемых для T/C2 .
Режим защелки
На рис.7.2.1 представлена схема, иллюстрирующая работу T/C2 в режиме защелки, или фиксации.
При EXEN2 = 0 (позиция T2CON.3) происходит счет импульсов внутреннего тактового генератора или импульсов, поступающих от внешнего источника на вывод P1.1.
Переполнение T/C2 приводит к установке флага TF2 в регистре T2CON.
При EXEN2 = 1 счет импульсов ведется до первого перепада из 1 в 0 на выводе P1.1, после чего происходит защелкивание регистров RCAP2L, RCAP2H, отражающих текущее состояние счетчика (регистров TL2, TH2), и установка флага EXF2 в T2CON.
Флаги TF2 и EXF2 могут быть использованы для вызова прерываний.
Режим автоперезагрузки устанавливается согласно данным табл.7.2.6 режимов работы T/C2 .
Рассмотрим случай DCEN = 0 в регистре режима T2МOD (табл.7.2.8), соответствующий состоянию МК после сброса.
При DCEN = 0 конфигурируется схема суммирующего счетчика T/C2 (рис.7.2.2, а).
Если ЕХЕN2 = 0, то T/C2 считает вверх до 0FFFFh и затем устанавливает флаг переполнения ТF2 = 1.
Переполнение вызывает перезагрузку TL2, TH2 счетчика содержимым регистров RСАP2L, RСАP2Н, которое заранее устанавливается программно.
Если же ЕХЕN2 = 1, то перезагрузка TL2, TH2 счетчика может произойти как от переполнения, так и от перепада сигнала T2ЕХ из 1 в 0 на выводе P1.1.
При этом устанавливаются флаги ТF2 = 1, ЕХF2 = 1, которые могут вызвать прерывание, если оно разрешено.
Установка бита DCEN = 1 регистра режимов T2МOD (табл.7.2.8) переводит T/C2 в режим счета вверх или вниз (рис.7.2.2, б).
Направлением счета управляет уровень сигнала T2ЕХ на выводе P1.1:
? при T2ЕХ = 1 счетчик считает вверх.
По достижении значения 0FFFh происходит переполнение счетчика и установка ТF2 =1, после чего счетчик (ТL2, TH2) перезагружается содержимым регистров RСАP2L, RСАP2Н;
? при T2ЕХ = 0 счетчик считает вниз.
При равенстве значений содержимого TH2 и RСАP2Н, ТL2 и RСАP2L фиксируется антипереполнение, которое вызывает установку ТF2 = 1 и перезагрузку счетчика значением 0FFFFh.
Бит ЕХP2 (позиция T2СОN.6) изменяет свое значение всякий раз, когда происходит переполнение или антипереполнение.
Он не вызывает подпрограммы (при ЕХF2 = 1) и может быть использован как 17–й бит.
Генератор импульсов синхронизации приемопередатчика. Этот режим T/C2 устанавливается согласно данным таблицы 7.2.6 режимов работы T/C2.
Для его пояснения воспользуемся схемой на рис.7.2.3.
С помощью сигналов TCLК и РСLК производится выбор таймеров T/C1 или T/C2 для формирования сигналов синхронизации передачи (СИ Tx) и приема (СИ Rx) данных по последовательному каналу.
При выбранном T/C2 (ТСLК = 1, RСLК = 1) переполнение таймера (T2 = 1) приводит к перезагрузке его регистров содержимым регистров RСАP2Н, RСАP2L.
При этом скорость передачи приемопередатчика в бодах в режимах 1 и 3 последовательного порта определяется отношением FПП = FOSC / ( 32[65536–(RСАP2Н,RСАP2L)] ) где FOSC— частота тактового генератора; (RСАP2Н, RСАP2L) — содержимое регистров RСАP2Н, RСАP2L, взятое 16–битное без знака.
При установке T2OЕ = 1, С/T2# = 0 генерируемые импульсы с частотой F = 8 FПП будут поступать на вывод P1.0 порта P1.
Матрица программируемых счетчиков.
Введение в микроконтроллере 8ХС51FХ матрицы программируемых счетчиков РСА, предназначенных для выполнения различных операций с применением таймеров/счетчиков, позволяет сократить число обращений к центральному процессору и уменьшить объем программного обеспечения.
Матрица РСА содержит:
? один, закрепленный за ней, таймер/счетчик;
? регистр управления ССОN (табл.7.2.9);
? регистр режима CMOD (табл.7.2.10);
? пять 16–разрядных регистров сравнения/фиксации ССАМРn, где n = 0…4 (табл.7.2.11).
В табл.7.2.12 приведены сведения об использование выводов P1.х порта P1 для РСА.
Каждый модуль может быть запрограммирован на один из пяти возможных режимов (табл.
7.2.13): фиксации, программного таймера, высокоскоростного выхода, широтно–импульсного модулятора и сторожевого таймера.
Режим 16–битной фиксации. Для реализации одного из возможных режимов фиксации необходимо установить биты регистра режима модуля ССАРМn (табл.7.2.13, рис.7.2.4):
? САРР = 1 — для режима фиксации по положительному фронту (ПФ) входного сигнала СЕХn;
? САРN = 1 — для режима фиксации по отрицательному фронту (ОФ) СЕХn;
? САРР = 1, САРN = 1— для режима фиксации по перепаду (изменению) сигнала (ИС) СЕХn.
В момент перепада или изменения сигнала происходит (рис.7.2.4):
? загрузка 8–разрядных регистров сравнения/фиксации ССАРН, ССАРL текущим содержимым таймера/счетчика РСА;
? установка флага ССFn в регистре управления ССON.
Если в регистре режима модуля ССАРМn бит ЕССFn = 1, то флаг ССFn может быть использован для прерывания от РСА.
Сброс флага ССFn осуществляется программно. В режиме фиксации по изменению сигнала последнее значение сигнала должно храниться в ОЗУ до следующего момента фиксации.
Режим 16–битного программного таймера. Этот режим устанавливается битами ЕСОМn = 1 (запускает компаратор), МАТn = 1 (создает цепь для флага ССFn) регистра режима модуля ССАРМn (табл.7.2.13, рис.7.2.5).
Текущее значение таймера/счетчика РСА сравнивается с предварительно загруженным значением регистров сравнения/фиксации ССАРnН, CCAPnL.
В момент равенства значений происходит установка флага ССFn в регистре управления CCON.
Если в регистре режима модуля ССАРМn бит ECCFn = 1, то флаг CCFn может быть использован для прерывания от РСА.
Сброс флага ССFn осуществляется программно.
Отметим, что в процессе обработки прерывания в регистры сравнения/фиксации ССАРnН, CCAPnL могут быть записаны новые значения (на рис.7.2.5 цепи не показаны).
С целью недопущения неверного результата рекомендуется следующая последовательность записи:
? вначале младшим байтом загружается регистр CCAPnL, при этом компаратор выключен, так как ЕСОМn = 0 (см.рис.7.2.5);
? затем старший байт записывается в регистр ССАРnН и для возобновления работы компаратора устанавливается ЕСОМn = 1.
Режим с высокоскоростным выходом (HSO)
Этот режим отличается от режима программного таймера тем, что дополнительно задействован один из выводов порта P1 для снятия сигнала СЕХn путем установки бита TOGn = 1 в регистре режима модуля ССАРМп (табл.7.2.13, рис.7.2.5).
В, режиме с высокоскоростным выходом при равенстве значений таймера/счетчика РСА и регистров сравнения/фиксации ССАРnН, CCAPnL помимо установки флага CCFn в регистре управления CCON происходит изменение сигнала СЕХn.
Последующее его изменение произойдет при повторной фиксации равенства значений таймера/счетчика РСА и регистров сравнения/фиксации ССАРН, CCAPL, т.е.
после переполнения РСА и достижения нового равенства значений.
Режим сторожевого таймера (WDT)
В этом режиме используется модуль 4 сравнения/фиксации.
Для активизации режима (помимо приведенных в табл.7.2.13 данных) в регистре режима CMOD матрицы РСА устанавливается бит WDTE = 1 (позиция CMOD6).
При равенстве значений таймера/счетчика РСА и регистров сравнения/фиксации ССАР4Н, CCAP4L формируется сигнал внутреннего сброса RESET, который производит сброс микроконтроллера (рис.7.2.6).
Широтно–импульсный модулятор (PWM). Включение модулятора осуществляется битами ЕСОМn = 1, PWMn = 1 (рис.7.2.7, а).
В процессе работы модулятора в компараторе происходит сравнение младших байтов (МБ) счетчика/ таймера CL и регистра фиксации/сравнения CCAPnL.
По результатам сравнения сигнал на выходе СЕХn имеет:
? низкий уровень, если МБ CL < МБ CCAPnL;
? высокий уровень, если МБ CL > МБ CCAPnL.
Изменяя значение байта в регистре CCAPnL от 0 до 255, можно управлять скважностью формируемых импульсов СЕХn (рис.7.2.7, б).
Особенности последовательного интерфейса.
Последовательный порт ряда микросхем семейства МСS–51 в отличие от базовой версии обладает дополнительными возможностями.
Передача и прием данных с различными скоростями. Такая возможность обусловлена введением таймера/счетчика T/C2 с возможностью изменения скорости передачи в режимах 1, 3 и достигается путем использования при обмене данными с внешним устройством двух таймеров T/C1 и T/C2.
Один из таймеров настраивается на передачу, другой — на прием. В базовой микросхеме для реализации режима обмена с разными скоростями необходимо каждый раз производить перенастройку скорости таймера T/C1 на передачу и прием.
Определение отсутствия стоп–бита.
Для обнаружения отсутствия стоп–бита при приеме информации по последовательному каналу используется седьмой разряд SCON.7 регистра управления последовательным интерфейсом.
При отсутствии стоп–бита в этом разряде устанавливается флаг ошибки (FE = 1).
Так как разряд SCON.7 задействован для бита SM0 кодировки режимов последовательного интерфейса, проверка флага FE осуществляется с помощью управляющего бита SMOD0 регистра управления энергопотреблением PCON (PCON.6): SMOD =1 обеспечивает доступ к флагу FE, SMOD = 0 — к биту SM0.
Автоматическое определение адреса.
Этот режим предназначен для использования в мультипроцессорных системах.
Для его реализации в ведомых МКn задействованы два специальных функциональных регистра SADDR и SADEN.
Индивидуальный адрес ведомого МКn указывается в SADDR.
Регистр SADEN содержит байт маски адреса, нулевые биты которого маскируют (делают незначащими) соответствующие разряды собственного адреса.
Допустим, что в регистре SADDR находится собственный адрес 11110001 МК1, A регистр SADEN содержит байт 11111100, значения двух младших разрядов которого равны 0.
Тогда в общем адресе 111100ХХ обращения к МК1 сохраняются шесть старших разрядов собственного адреса, два младших разряда маскируются.
Они могут принимать любые 4 значения и, следовательно, позволяют ведущему МК обращаться к МК1 по четырем адресам.
МК1 МК2 МК3 Содержимое регистра SADDR 11110001 11110010 11110011 Содержимое регистра SADEN 11111100 11111010 11110101 Общий адрес (адрес отклика МК) 111100хх 11110×1х 1111x0x1 Адреса индивидуального обращения 11110000 11110110 11111001 11110111 11111011 Адреса обращения к МК1 и МК3 11110001 11110001 Адреса обращения к МК1 и МК2 11110010 11110010 Адреса обращения к МК1, МК2, МК3 111111хх 11111х1х 1111x1x1 Используя указанный подход, можно построить достаточно гибкую систему адресации.
Выше в качестве примера показана одна из таких возможностей обращения к трем ведомым микроконтроллерам.
В микросхемах предусмотрена возможность одновременного обращения ко всем ведомым МК.
Для этого формируется широковещательный адрес (обычно OFFh) путем логической операции ИЛИ над содержимым регистров SADDR и SADEN.
При этом нули в регистрах SADEN по–прежнему определяют незначащие биты в адресном байте.
Для 9–битных режимов последовательного порта флаг прерывания RI приемника будет устанавливаться только в случае поступления своего или широковещательного адреса, имеющего 1 в девятом бите (RB8 = 1). Данный механизм работает и в случае 8–битного режима, поскольку 9–м битом является стоп–бит.
Таким образом, при передаче ведущим МК по последовательному каналу данных одному или нескольким ведомым МК способность автоматического распознавания адреса (в отличие от микросхем 8051) позволяет обеспечить прерывание только требуемого микроконтроллера, что ускоряет процесс обмена.
Расширенный последовательный порт SЕР
В микросхемах 6–й группы предусмотрен порт расширения последовательных каналов, который увеличивает возможности МК по управлению подключенными к нему периферийными устройствами посредством последовательного кода, предоставляя средства для аппаратной реализации шины l2C–bus.
Порт SEP имеет 3 источника тактирования и 4 режима работы, которые задают неактивный уровень и фронт (передний или задний) сигналов тактирования.
Для вывода сигналов тактирования последовательной посылки задействован вывод Р4.0 порта Р4, для ввода/вывода данных — вывод Р4.1. Обмен данными через порт ведется байтами.
Байт передается за 8 тактов. При отсутствии обмена тактовый сигнал и данные неактивны.
Для обслуживания режимов порта SEP используются:
? регистр данных SEPDAT;
? регистр управления SEPCON (табл.7.2.14);
? регистр состояния SEPSTAT (табл.7.2.15).
В микросхеме МК предусмотрены вход внешнего запуска ТRIGIN и восемь аналоговых входов АСН0…АСН7, A также вывод для подачи опорного напряжения СОМРRЕF и отдельные выводы питания AVrefи земли AVSS.
Режим сравнения. Этот режим всегда активен и используется для сравнения в компараторе входных напряжений АСН0…АСН7 с опорным напряжением COMPREF.
Режим внутреннего запуска АЦП. Этот режим активизируется установкой бита ATM = 1 (вывод ACON.0 регистра управления).
После установки бита АСЕ = 1 (вывод ACON.4) в следующем машинном цикле начинается преобразование данных нулевого канала АСН0.
Флаг прерывания AIF (вывод ACON.5) установится только после завершения преобразования в седьмом канале АСН7.
В случае разрешения флаг AIF вызывает прерывание по вектору АЦП.
Новый цикл преобразования может начаться только после того, как завершен предыдущий.
Режим внешнего запуска АЦП. В этом режиме (АТМ = 0) преобразование начинается по отрицательному перепаду внешнего сигнала TRIGIN.
Для его обнаружения используется два машинных цикла.
В каждом машинном цикле производится опрос входа TRIGIN.
После фиксации перепада АЦП работает так же, как и в режиме внутреннего запуска.
Режим сканирования
При установке бита AIM = 0 (вывод ACON.1 регистра управления) происходит преобразование в порядке АСН0…АСН7 с занесением результата соответственно в регистры AD0…AD7.
Режим выбранного канала
При установке бита AIM = 1 (вывод ACON.1 регистра управления) происходит преобразование данных канала, выбранного с помощью двухразрядного кода из битов ACS1, ACS0 (00 — канал АСНО, 01 — канал АСН1, 10 — канал АСН2, 11 — канал АСН3,) с занесением результата в соответствующий регистр результатов ADn (n = 0…3).
После этого, как и в режиме сканирования происходит опрос каналов АСН4…АСН7 с занесением результатов в регистры AD3…AD7.
Возможности использования АЦП для меньшего числа каналов.
Если время преобразования некритично, то результат из требуемого канала считывается по завершению преобразования на 7–м канале.
Если же результат необходимо получить сразу по завершении преобразования на данном канале, то можно воспользоваться двумя способами:
? использовать таймер и его прерывание, программируя его исходя из известного времени преобразования каждого канала и, следовательно, известного временного интервала от начала цикла до чтения регистра результата преобразования требуемого канала;
? производить периодически сравнение значения в регистре результата требуемого канала.
Изменение содержимого регистра результата будет свидетельствовать о том, что произошло новое преобразование.
Начало статьи о микроконтроллерах MCS 51 читайте в первой и второй частях.