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


Микроконтроллеры MCS51Общая характеристика семейства MCS–51.

В табл. 7.2.1 приведены основ­ные показатели микросхем шести групп MCS–51, рассматриваемых в этом разделе.

В каждую из них сведены микросхемы наиболее близких по функциональным осо­бенностям и электрическим параметрам микроконтроллеров согласно методике, принятой в технической документации фирмы Intel.

В обозначениях, приведенных в таблице микросхем, используется только четвертое поле системы обозначений фирмы Intel, при этом первый элемент 8 является символом фирмы.

Второй элемент микросхем отражает: 0 — кристалл без ПЗУ (начиная с микросхем 5–й группы); 3 — масочное ПЗУ (начиная с микросхем 5–й группы); 7 — репрограммируемое ПЗУ с ультрафиолевым стиранием (УФРПЗУ).

Буквенный элемент C указывает на КМОП–технологию изготовления микро­схем.

В 4–й и 5–й группах не приведены кристаллы с обозначением L, относящем­ся к микросхемам с 3–вольтовым питанием.

При отсутствие буквенного элемента микросхемы изготовлены по nМОП–технологии.

табл. </p> <p>7.2.1Последующие две цифры 51 во всех выпусках микросхем, начиная с 5–й груп­пы служат для обозначения рассматриваемого семейства МК MCS–51.

Буквенные символы в конце обозначения отражают функциональные и другие особенности микросхем.

В первых выпусках микросхем (с 1–й по 4–ю группы): цифра 3 отражала отсут­ствие ПЗУ; 5 — наличие ПЗУ, A следующая цифра 1, 2, 4 или 8 — емкость ПЗУ со­ответственно 4, 8, 16 или 32 Кбайт.

табл. </p> <p>7.2.2 Семейство MCS–51 пополнилось новыми регистрами вспомогательных функ­ций SFR.

Приведенный в табл. 7.2.2 перечень регистров SFR (звездочкой * поме­чена возможность побитной адресации) составлен с учетом их введения в после­дующие модификации микросхем.

При этом регистры микросхем низших групп остались в микросхемах старших групп.

Однако в некоторых из них, например, в регистрах разрешения прерываний (IE) и приоритетов прерываний (IP, IPH) за­действованы не используемые ранее разряды.

Микросхемы 6–й группы пополнились двумя портами ввода/вывода.

Значи­тельно расширились альтернативные функции выводов портов Р0–Р5 (табл.7.2.3).

табл. </p> <p>7.2.3 Введение новых аппаратных средств в последующие разработки микросхем привело к расширению возможностей микроконтроллеров семейства.

Дополнительные функциональные возможности микроконтроллеров раз­личных групп МСS–51 по отношению к базовой версии отражены (помечены зна­ком +) в табл.7.2.4.

табл. </p> <p>7.2.4

Таймер–счетчик T/C2

Таймер–счетчик T/C2 путем соответствующей установ­ки бита C/¯T2 регистра управления T2СON (табл.7.2.5) может быть использован как таймер для подсчета машинных циклов или как счетчик событий, фиксиру­ющий на входе число перепадов из 1 в 0.

табл. </p> <p>7.2.5 Шестнадцатиразрядный таймер–счетчик T/C2 состоит из пары восьмиразряд­ных регистров TH2 (старшие 8 разрядов) и TL2 (младшие 8 разрядов).

Внешним входом T/C2 служит вывод P1.0 порта P1, на который подается сигнал T2.

Другой вывод P1.1 того же порта используется для управления автоматической переза­грузкой T/C2 .

табл. </p> <p>7.2.6 Режимы работы T/C2 (табл.7.2.6) выбираются битами регистра T2CON.

В табл.7.2.7 приведено назначение бит регистров IE, IP и порта P1, использу­емых для T/C2 .

табл. </p> <p>7.2.7

Режим защелки

На рис.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, а).

табл. </p> <p>7.2.8 рис. </p> <p>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.

рис. </p> <p>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); табл. </p> <p>7.2.9

● регистр режима CMOD (табл.7.2.10); табл. </p> <p>7.2.10 - табл. </p> <p>7.2.11

● пять 16–разрядных регистров сравнения/фиксации ССАМРn, где n = 0…4 (табл.7.2.11).

В табл.7.2.12 приведены сведения об использование выводов P1.х порта P1 для РСА.

табл. </p> <p>7.2.12 Каждый модуль может быть запрограммирован на один из пяти возможных ре­жимов (табл.

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

табл. </p> <p>7.2.13 Режим 16–битной фиксации. Для реализации одного из возможных ре­жимов фиксации необходимо установить биты регистра режима модуля ССАРМn (табл.7.2.13, рис.7.2.4): рис. </p> <p>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).

рис. </p> <p>7.2.5 табл. </p> <p>7.2.13 Текущее значение таймера/счетчика РСА сравнивается с предварительно за­груженным значением регистров сравнения/фиксации ССАР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).

рис. </p> <p>7.2.6 Широтно–импульсный модулятор (PWM). Включение модулятора осу­ществляется битами ЕСОМn = 1, PWMn = 1 (рис.7.2.7, а).

В процессе работы мо­дулятора в компараторе происходит сравнение младших байтов (МБ) счетчика/ таймера CL и регистра фиксации/сравнения CCAPnL.

рис. </p> <p>7.2.7 По результатам сравнения сигнал на выходе СЕХ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).

табл. </p> <p>7.2.14 - табл. </p> <p>7.2.15 - табл. </p> <p>7.2.16 В микросхеме МК предусмотрены вход внешнего запуска Т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: :???: :?: :!: