Микроконтроллеры MCS–51, особенности модификаций MCS–51, особенности последовательного интерфейса

Общая характеристика семейства 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 читайте в первой и второй частях.

Понравилась статья? Поделиться с друзьями:
Все об энергетике, электротехнике и электронике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: