Однокристальные контроллеры семейства МК51
Однокристальные микроконтроллеры - отдельный класс микросистем. Полный набор их средств расположен на одном кристалле. Сюда кроме центрального процессора входят память, подсистема ввода-вывода, средства поддержки режима реального времени (РВ). Интеграция всех составных частей микро-ЭВМ на одном кристалле внесла ряд ограничений на принципы ее организации, потребовала новых решений в развитии ее архитектуры, не свойственных многокристальным компоновкам. В результате был получен новый класс микроконтроллеров (МК) с присущими только ему принципами построения архитектуры и структурной схемы.
Структурная организация, набор команд и аппаратурно-программные средства ввода/вывода информации микроконтроллеров лучше всего приспособлены для решения задач управления и регулирования в приборах, устройствах и системах автоматики, а не для решения задач обработки данных. Микроконтроллеры не являются машинами классического "фон-неймановского" типа, так как физическая и логическая разделенность памяти программ и памяти данных исключает возможность модификации и/или замены (перегрузки) прикладных программ микроконтроллеров во время работы, что сильно затрудняет их использование в качестве универсальных средств обработки данных.
МК51 имеет в своем составе: процессор, в состав которого входят 1-байтное АЛУ и схема аппаратурной реализации команд умножения и деления; стираемое ПЗУ программ емкостью 4 Кбайта, ОЗУ данных емкостью 128 байт; два 16-битных таймера/счетчика; программируемые схемы ввода/вывода (32 линии); блок двухуровневого векторного прерывания от пяти источников; асинхронный канал дуплексного последовательного ввода/вывода информации со скоростью до 375 кбит/с; генератор, схему синхронизации и управления. Структурная организация и система команд МК51.
Микроконтроллер выполнен на основе высокоуровневой n-МОП технологии и выпускается в корпусе БИС, имеющем 40 внешних выводов. Через четыре программируемых порта ввода/вывода МК51 взаимодействует со средой в стандарте ТТЛ-схем с тремя состояниями по выходу. В современном исполнении микроконтроллер может быть выполнен также в К-МОП исполнении Назначение выводов. GND - потенциал земли;
EA/VPP - отключение резидентной памяти программ/напряжение программирования (21В); VCC - основное напряжение питания +5В;
ALE/PROG - строб адреса внешней памяти/для подачи уровня GND при программировании; PSEN - разрешение внешней памяти программ;
RD - стробирующий сигнал при чтении из внешней памяти данных или устройства ввода/вывода;
WR - стробирующий сигнал при записи во внешнюю память данных или устройства ввода/вывода;
T0 - входной сигнал, опрашиваемый по командам условного перехода, так же используется при программировании;
Т1 - входной сигнал, опрашиваемый по командам условного перехода, используется в качестве входа внутреннего счетчика внешних событий; INT0, INT1 - сигнал запроса прерывания;
RST/VPD - сигнал общего сброса/вход питания при пониженном энергопотреблении; RXD и TXD - входы последовательного интерфейса; XTAL1, XTAL2 - входы подключения кварцевого резонатора;
P0, P1, P2, P3 - квазидвунаправленные порты параллельного ввода-вывода (порт P3 несет дополнительные функции) Арифметико-логическое устройство
8-битное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции и, или, исключающее или, а так же операции сдвига, сброса, инвертирования и т. д. В АЛУ имеются программно недоступные регистры Т1 и Т2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков. Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Резидентная память
Память программ и память данных, размещенные на кристалле МК51, физически и логически разделены, имеют различные механизмы адресации, работают под управлением различных сигналов и выполняют различные функции. Память программ(РПП): имеет емкость 4 Кбайта и предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных переменных и т. п. РПП имеет 16-битную шину адреса, через которую обеспечивается доступ из счетчика команд или из регистра указателя данных. Последний выполняет функции базового регистра при косвенных переходах по программе или используется в командах, оперирующих с таблицами. Память данных (РПД): предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт. Кроме того, к адресному пространству РПД примыкают адреса регистров специальных функций.
Память программ, так же как и память данных, может быть расширена до 64 Кбайт путем подключения внешних БИС.
В МК51 предусмотрены четыре банка по восемь рабочих регистров R0.... R7; банк выбирается полем RS в слове состояния программы. Они выполняют общецелевые функции по промежуточному хранению данных. По аналогии с МК48 R0 и R1 каждого банка реализуют также функцию 8-разрядных указателей данных. С помощью набора рабочих регистров существенно уменьшается длительность переключения контекстов ЦП, что очень важно для микроконтроллеров реального времени. В МС51 отсутствует ограничения, накладываемые на процедуры обслуживания прерываний, свойственные МК48.
Память программ (64 Кбайт) - однородная линейная область, реализуемая как внутренними, так и внешними средствами. Для совместимости с МК48 предусмотрен ряд команд, которые позволяют рассматривать память в виде набора 2-Кбайтных банков. Подобно архитектуре МК48 все банки рабочих регистров, а также системный стек располагаются во внутренней памяти данных. Определены два способа адресации памяти: прямой (direct) и косвенный (@Ri, где i=0.... 1). С помощью прямой адресации доступна только младшая адресного пространства внутренней памяти данных (128 байт), тогда как косвенная обеспечивает доступ к любой ее ячейки из диапазона 256 байт. Введение прямой адресации расширило возможности однокристальных микроконтроллеров по обработки данных. В частности, появились средства доступа к рабочим регистрам и системному стеку, интерпретируемым как обычные ячейки памяти.
Микроконтроллер МК51 имеет развитую подсистему ввода-вывода и средства управления режимом реального времени. Для их управления в микроконтроллере предусмотрен ряд регистров, которые размещены в отдельно прямо адресуемом пространстве специальных регистров (128 байт). Сюда же включены и некоторые регистры ЦП. Пространство специальных регистров вместе с младшей частью адресного пространства внутренней памяти данных образуют прямо адресуемую область. При этом сначала размещается младшая половина пространства внутренней памяти данных, а затем пространство специальных регистров. Блок регистров специальных функций Символ Наименование Адрес ACC Аккумулятор 0E0H B Регистр-расширитель аккумулятора 0F0H PSW Слово состояния программы 0D0H SP Регистр-указатель стека 81H DPRT Регистр-указатель данных (DPH) 83H (DPL) 82H P0 Порт 0 80H P1 Порт 1 90H P2 Порт 2 0A0H P3 Порт 3 0B0H IP Регистр приоритетов 0B8H IE Регистр маски прерываний 0A8H TMOD Регистр режима таймера/счетчика 89H TCON Регистр управления/статуса таймера 88H TH0 Таймер 0 (старший байт) 8CH TL0 Таймер 0 (младший байт) 8AH TH1 Таймер 1 (старший байт) 8DH TL1 Таймер 1 (младший байт) 8BH SCON Регистр управления приемопередатчиком 98H SBUF Буфер приемопередатчика 99H PCON Регистр управления мощностью 87H Формат слова состояния программы (PSW) Символ Позиция Имя и значение C PSW. 7
Флаг переноса. Устанавливается и аппаратурными средствами или программой при выполнении арифметических и логических операций AC PSW. 6
Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3 F0 PSW. 5
Флаг 0. Может быть установлен, сброшен или проверен программой как флаг специфицируемый пользователем RS1 RS0 PSW. 4 PSW. 3
Выбор банка регистров. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций OV PSW. 2
Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций PSW. 1 Не используется P PSW. 0
Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т. е. выполняет контроль по четности (PSW. 0)
Центральный процессор МК51 содержит специальную логику для выполнения ряда однобитных операций, в которых роль аккумулятора реализует флажок переноса СУ. Для хранения булевых данных в архитектуре МК51 предусмотрено отдельное прямо адресуемое пространство BSEG (256 бит), которое физически совмещено с прямо адресуемой частью внутренней памяти данных и областью специальных регистров. Hапример, аккумулятор A, доступный как элемент регистровой памяти, может быть прямо адресован и как элемент пространства специальных регистров (адрес 0E0h), и как область битов с адресами 0E0h.... 0E7h. При этом битовый адрес 0E0h относится к младшему разряду аккумулятора.
Размещенные в области специальных регистров четыре 8-разрядных псевдодвунаправленных порта ввода-вывода совмещены с битовым пространством, что обеспечивает доступ к отдельным их разрядам независимо друг от друга. Последовательный интерфейс
В составе МК1 введен дуплексный периферийный связной адаптер, который может быть запрограммирован для работы в одном из четырех основных режимов: 0 синхронный последовательный ВВ со скоростью OSC/12;
1 асинхронный с 10-битовым кадром и переменной скоростью передачи; 2 асинхронный с 11-битовым кадром и фиксированной скоростью передачи OSC/32 или OSC/64;
3 асинхронный с 11-битовым кадром и переменной скоростью передачи. Через универсальный асинхронный приемопередатчик (УАПП) осуществляется прием, передача информации, представленной последовательным кодом, в полном дуплексном режиме обмена. В состав УАПП входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приемопередатчика. Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр и инициирует начало передачи байта. Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного байта. Если к моменту окончания приема байта предыдущий байт не был считан из SBUF, то он будет потерян.
Управление режимом работы УАПП осуществляется через специальный регистр с символическим именем SCON. Этот регистр содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и TB8) и биты прерывания приемопередатчика (RI и TI). Таймер/счетчик
Два программируемых 16-битных таймера/счетчика (Т/С0 и Т/С1) могут быть использованы в качестве таймеров или счетчиков внешних событий. При работе в качестве таймера содержимое Т/С инкрементируется в каждом машинном цикле. При работе в качестве счетчика содержимое Т/С инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (Т0, Т1) вывод МК51. Так как на распознавание перехода требуется два машинных цикла, то максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считаемого сигнала он должен удерживать значение 1 как минимум в течение одного машинного цикла. Регистр режима работы таймера/счетчика (TMOD) Символ Позиция Имя и значение GATE TMOD. 7 для T/C1 TMOD. 3 для T/C0 Управление блокировкой. C/T TMOD. 6 для T/C1 TMOD. 2 для T/C0 Бит выбора режима таймера или счетчика событий. M1 TMOD. 5 для T/C1 TMOD. 1 для T/C0 Биты выбора режима работы M0 TMOD. 4 для T/C1 TMOD. 0 для T/C0 Структурная схема работы T/C0 (T/C1) Система прерываний
Внешние прерывания INT0 и INT1 могут быть вызваны либо уровнем, либо перепадом сигнала из 1 в 0 на входах МК51 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON.
Прерывания могут быть вызваны или отменены программой, так как все рассмотренные выше флаги прерываний программно-доступны и могут быть установлены/сброшены программой с тем же результатом, как если бы они были установлены/сброшены аппаратурными средствами.
В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний и уровнями приоритета. Их символические имена IE и IP соответственно.