Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Микроконтролеры семейства Intel 8051Стр 1 из 3Следующая ⇒
Микроконтролеры семейства Intel 8051
Микроконтроллеры базового семейства Intel 8051 (МК51) выполнены на основе высокоуровневой n-МОП или КМОП технологии. Для работы МК51 требуется источник питания +5В. Основу структурной схемы МК51 составляет внутренняя 8-битная шина, связывающая между собой все основные узлы и устройства: резидентную память, арифметико-логическое устройство (АЛУ), блок регистров специальных функций, устройство управления и порты ввода-вывода. Микроконтроллеры этого семейства можно разделить на 4 группы: 1. ОМЭВМ с отсутствием внутренней памяти (n-МОП - 8031; КМОП - 80С31) 2. ОМЭВМ с однократно программируемой памятью программ (n-МОП – 8051/52/54/58 объемом соответственно 4/8/16/32, КМОП - 80С51/52/54/58). 3. ОМЭВМ с перепрограммируемой памятью программ с ультрафиолетовым стиранием (n-МОП – 8751/52/54/58; КМОП - 87С51/52/54/58). 4. ОМЭВМ с внутренней памятью программ, выполненной по технологии FLASH (89С51…).
Базовая модель однокристальных ЭВМ 80С51содержит: 1. Центральный восьмиразрядный процессор. 2. Внутреннюю память программ 4 кбайт с возможностью расширения до 64 кбайт за счет подключения внешней памяти программ. 3. Внутреннюю память данных емкостью 128 байт с возможностью расширения до 64 кбайт. 4. Четыре восьмиразрядных программируемых порта ввода – вывода. 5. Два 16-битных многорежимных таймер-счетчика. 6. Подсистему прерываний с 5 векторами и 2 уровнями. 7. Последовательный интерфейс. 8. Тактовый генератор. 9. Схему управления энергопотреблением. Назначение выводов микросхемы 1-8 – Р1.0–Р1.7 – восьмиразрядный универсальный двунаправленный порт Р1. 9 - RST – сигнал общего сброса. 10-17 - Р3.0–Р3.7 – восьмиразрядный двунаправленный порт Р3 с дополнительными функциями: 10 – Р3.0 – последовательные данные приемника (RxD). 11 – Р3.1 - последовательные данные передатчика (TxD) 12 – Р3.2 – вход внешнего прерывания (INT0). 13 – Р3.3 – вход внешних прерываний (INT1). 14 – Р3.4 – вход таймер – счетчика 0 (T0). 15 – Р3.5 – вход таймер – счетчика 1 (T1). 16 – Р3.6 – выход строба при записи во внешнюю память данных (WR). 17 – Р3.7 – выход строба при чтении из внешней памяти (RD). 18-19 – XTAL1–XTAL2 – выводы для подключения кварцевого резонатора. 21-28 –Р2.0–Р2.7 – восьмиразрядный двунаправленный порт Р2, использующийся как выход адреса А8–А15 в режиме работы с внешней памятью. 29 - PSEN – сигнал чтения внешней памяти программ. 30 - ALE – сигнал стробирования адреса внешней памяти. 31 - EA – вывод блокировки внутренней памяти. 32-39 – Р 0.0–Р 0.7 – восьмиразрядный двунаправленный порт Р0, Рисунок 1 - УГО микроконтроллера использующийся как мультиплексированная шина адреса/данных при в корпусе с 40 выводами работе с внешней памятью. 20 – Vss - общий 40 – Vcc - напряжение питания
Базовая частота тактирования MК51 - 12 МГц. Каждый машинный цикл выполняется за 12 тактов. При этом обеспечивается минимальное время выполнения операций сложения (одноцикловых) за 1 мкс., команды умножения - 4 мкс. Микроконтроллеры могут тактироваться от кварцевого резонатора или от внешнего генератора. Существуют версии однокристальных ЭВМ с тактовой частотой 16, 20, 24, 30, 33, 40… МГц. Кроме этого существует версии, выполняющие машинный цикл не за 12, а за 6 (Philips) или 4 (Dallas) машинных такта. В однокристальных микро-ЭВМ данного семейства реализованы режимы пониженного энергопотребления: 1. Режим холостого хода - Idle. Блокируются функциональные узлы процессора, это и понижает потребляемую мощность. Сохраняются содержимое указателя стека, программного счетчика, содержимое аккумулятора, регистра PSW и других регистров, а также внутреннего ОЗУ. Выход из режима холостого хода возможен по прерыванию или по аппаратному сбросу (RESET). 2. Режим микропотребления – Power Down. Задающий генератор выключается, работа всех узлов ОМЭВМ прекращается, сохраняется только содержимое ОЗУ, единственный выход - аппаратный сброс.
АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА Основу структурной схемы образует внутренняя двунаправленная 8-битная шина, которая связывает между собой основные узлы и устройства микроконтроллера: резидентную память программ, резидентную память данных, арифметико-логическое устройство, блок регистров специальных функций, устройство управления и порты ввода/вывода. Рисунок 2 - Структурная схема микроконтроллера семейства Intel 8051
УУ и УС - устройство управления и устройство синхронизации. OSC – oscillator - внутренний ГТИ для синхронизации которого нужен кварц. РПД – resident Program memory - резидентная память данных. РПП – resident Data memory - резидентная память программ. Микропроцессорное ядро осуществляет организацию взаимодействия между всеми элементами МК, управляя его работой. В его состав входят: ALU – арифметико-логическое устройство, A – accumulator – сверхоперативный регистр, который является местом фиксации результата операций, B – второй сверхоперативный регистр, PSW – Program Status Word – регистр слова состояния программы, содержит флаги – признаки результата операции, SP - Stack Pointer – регистр указатель стека, PС - Program Counter - счетчик команд, содержит адрес выполняемой команды, RAR - Ram Address Register – регистр адреса данных, содержит адреса данных, используемых в операциях, программно недоступен, DPTR - Data Pointer – регистр указатель данных, содержит адреса ячеек памяти (ВПП и ВПД).
Контроллер прерываний – устройство, реализующее механизм прерываний, Таймеры/счетчики Т0, Т1, Т2- устройства, использующиеся для подсчета количества импульсов или формирования временных интервалов. UART – универсальный асинхронный приемопередатчик, последовательный порт МК, использующийся при обмене данных с внешними устройствами. Р0-Р3 – параллельные двунаправленные восьмиразрядные порты ввода/вывода, формируют шину расширения МК. ВПД – внешняя память данных, расширение адресного пространства ПД до 64 Кбайт. ВПП – внешняя память программ, расширение адресного пространства ПП до 64 Кбайт. WDT – Watchdog Timer – сторожевой таймер, автоматически сбрасывающий МК, при сбоях в работе или зависании. ВУ – внешние устройства Особенностью микроконтроллера является использование мультиплексированной шины адреса/данных (A/D). Это значит, что сначала по шине A/D передаются сигналы адреса, а затем сигналы данных. При этом адреса сопровождаются стробирующими сигналом ALE, а данные – сигналами PSEN , RD, WR в зависимости от направления передачи и типа памяти. Большинство микросхем памяти имеет раздельные линии адреса и данных, поэтому для их подключения шину A/D необходимо демультиплексировать. Для демультиплексирования используется параллельный регистр-защелка адреса, записывающий младший байт адреса внешней памяти A/D(0-7) по срезу сигнала ALE.
Таймеры/счётчики
В составе микроконтроллера имеются регистровые пары с символическими именами TH0, TL0 и TH1, TL1, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счётчика событий T/C0 и T/C1. При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, то есть через каждые 12 периодов резонатора. При работе в качестве счётчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0, T1) вход микроконтроллера. Опрос сигналов выполняется в каждом машинном цикле. Так как на распознавание перехода требуется два машинных цикла, то максимальная частота подсчёта входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считываемого сигнала он должен удерживать значение 1 как минимум в течение одного машинного цикла. Для управления режимами работы и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций TMOD и TCON (таблицы 5 и 6). Для обоих таймер/счетчиков режимы работы 0, 1 и 2 одинаковы. Режимы 3 для T/C0 и T/C1 различны.
Таблица 5- Регистр режима работы таймера/счётчика TMOD
Режим 0. Перевод любого T/C в этот режим делает его 8-разрядным таймером, на вход которого подключен 5-битный предделитель частоты на 32. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния “все единицы” в состояние “все нули” устанавливается флаг прерывания от таймера TF1. Входной синхросигнал таймера 1 разрешен (поступает на вход T/C), когда управляющий бит TR1 установлен в 1 и либо управляющий бит GATE (блокировка) равен 0, либо на внешний вход запроса прерывания INT1 поступает уровень 1. Установка бита GATE в 1 позволяет использовать таймер для измерения длительности импульсного сигнала, подаваемого на вход запроса прерывания. Режим 1. Работа любого T/C в этом соответствует режиму 0, за исключением того, что таймерный регистр имеет разрядность 16 бит. Режим 2. В этом режиме работа организована таким образом, что переполнение (переход из состояния «все единицы» в состояние «все нули») 8-битного счётчика TL1 приводит не только к установке флага TF1, но и автоматически перезагружает в TL1 содержимое старшего байта (TH1) таймерного регистра, которое предварительно было задано программным путем. Перезагрузка оставляет содержимое TH1 неизменным. В режиме 2 T/C0 и T/C1 работают одинаково. Режим 3. В этом режиме T/C0 и T/C1 работают по-разному. T/C1 сохраняет неизменным своё текущее содержимое. Иными словами, эффект такой же, как и при сбросе управляющего бита TR1 в нуль. В этом режиме TL0 и TH0 функционируют как два независимых 8-битных счётчика. Работу TL0 определяют управляющие биты T/C0 (C/T, GATE, TR0), входной сигнал INT0 и флаг переполнения TF0. Работу TH0, который может выполнять только функции таймера (подсчёт машинных циклов микроконтроллера), определяет управляющий бит TR1. При этом TH0 использует флаг переполнения TF1. Режим 3 используется в тех случаях, когда требуется наличие дополнительного 8-битного таймера или счётчика событий. Можно считать, что в режиме 3 микроконтроллер имеет в своем составе три таймера/счётчика. В том случае, если T/C0 используется в режиме 3, T/C1 может быть или включен, или выключен, или переведен в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи, или, наконец, может быть использован в любом применении, не требующем прерывания.
Таблица 6 - Регистр управления/статуса таймера TCON
Последовательный порт
Через универсальный асинхронный приёмопередатчик UART (Universal Asynchronous Receiver-Transmitter) происходит передача информации, представленной последовательным кодом (младшими битами вперед), в полном дуплексном режиме обмена. В состав UART, называемого часто последовательным портом, входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приёмопередатчика. Регистр SBUF. Представляет собой два независимых регистра: буфер приёмника и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт. Когда байт считывается из SBUF, это значит, что его источником является приёмник последовательного порта. Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта. Наличие буферного регистра приёмника позволяет совмещать операцию чтения ранее принятого байта с приёмом очередного байта. Если к моменту окончания приёма байта предыдущий байт не был считан, то он будет потерян.
Регистр SCON. Регистр предназначен для управления режимом работы UART. Регистр содержит управляющие биты и девятый бит принимаемых или передаваемых данных RB8 и TB8, а также биты прерывания приёмопередатчика RI и TI. Функциональное назначение битов указано в таблице 7. Таблица 7 - Регистр управления/статуса SCON
Прикладная программа путём загрузки в два старших разряда SCON определяет режим работы UART. Последовательный порт может работать в четырех различных режимах. Режим 0 - восемь бит данных передаются и принимаются через вход приёмника RхD. Выход передатчика TхD используется для выдачи импульсов синхронизации, которые сопровождают каждый бит. За один машинный цикл передаётся один бит. Частота передачи равна FРЕЗ/12. Режим 1 - передаются или принимаются 10 бит данных в формате: старт-бит=0, 8 бит данных, стоп-бит=1 Скорость приёма/передачи задаётся таймером. Режим 2 - передаются или принимаются 11 бит данных в формате: старт-бит=0, 8 бит данных, программируемый девятый бит В8, стоп-бит=1 Девятый бит может использоваться для повышения достоверности путём контроля чётности, в него можно записать значение признака паритета из PSW. Частота приёма/передачи выбирается программно и может быть равна FРЕЗ/32 или FРЕЗ/64 частоты резонатора в зависимости от состояния бита SMOD в регистре PCON. Режим 3 - совпадает с режимом 2, но частота приёма/передачи задаётся таймером.
Во всех режимах передача инициируется любой командой, где SBUF указан как получатель байта. Приём в UART в режиме 0 происходит при условии RI=0 и REN=1. В режимах 1-3 приём начинается с приходом старт-бита, если REN=1. В TB8 программно устанавливается значение девятого бита данных, который будет передан в режиме 2 или 3. В RB8 фиксируется в режимах 2 и 3 девятый принимаемый бит данных. В режиме 1, если SM2=0, в бит RB8 заносится стоп-бит. В режиме 0 RB8 не используется. Флаг прерывания передатчика TI устанавливается аппаратно в конце периода передачи восьмого бита данных в режиме 0 и в начале периода передачи стоп-бита в режимах 1-3. Подпрограмма обслуживания этого прерывания должна сбрасывать бит TI. Флаг прерывания приёмника RI устанавливается аппаратно в конце периода приёма восьмого бита данных в режиме 0 и в середине периода приёма стол-бита в режимах 1-3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI. Работа UART в мультиконтроллерных системах. В системах децентрализованного управления, которые используются для управления и регулирования в типологически распределенных объектах, возникает задача обмена информацией между множеством микроконтроллеров, объединенных в локальную вычислительно-управляющую сеть. Как правило, локальные сети на основе Intel 51 имеют магистральную архитектуру с разделяемым моноканалом (коаксиальный кабель, витая пара, оптическое волокно), по которому осуществляется обмен информацией между контроллерами. Бит SM2 в SCON позволяет простыми средствами реализовать межконтроллерный обмен. Механизм обмена построен на том, что в режимах 2 и 3 программируемый девятый бит данных при приёме фиксируется в бите RB8. UART может быть запрограммирован таким образом, что при получении стоп-бита прерывание от приёмника будет возможно только при условии RB8=1. Ведущий контроллер всем ведомым передаёт широковещательное сообщение с байтом-идентификатором абонента, которое отличается от байтов данных только тем, что в его девятом бите содержится 1. Ведомые по этому признаку вызывают подпрограммы сравнения байта-идентификатора с кодом собственного сетевого адреса. Адресуемый контроллер сбрасывает свой SM2 и готовится к приёму блока данных. Остальные ведомые микроконтроллеры оставляют неизменными свои SM2=1 и передают управление основной программе. При SM2=1 информационные байты в сети прерывания не вызывают. В режиме 1 автономного микроконтроллера SM2 используется для контроля истинности стоп-бита. В режиме 0 SM2 не используется и должен быть сброшен. Скорость приёма/передачи. Скорость зависит от режима работы UART. В режиме 0 частота зависит только от резонатора: f0=fрез/12. За один машинный цикл передаётся один бит. В режимах 1-3 скорость зависит от значения управляющего бита SMOD в регистре специальных функций PCON (таблица 8). В режиме 2 частота передачи f2=(2SMOD/64)fрез. В режимах 1 и 3 в формировании частоты передачи кроме управляющего бита SMOD принимает участие таймер 1. При этом частота передачи зависит от частоты переполнения (OVT1) и определяется следующим образом: f1, 3=(2SMOD/32)fOVT1. Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам T/C1 может работать и как таймер, и как счётчик событий в любом из трёх режимов. Однако наиболее удобно использовать режим таймера с автоперезагрузкой (старшая тетрада TMOD=0010В). При этом частота передачи определяется выражением f1, 3=(2SMOD/32)(fрез/12)(256-(TH1)).
Таблица 8 - Регистр управления мощностью PCON
Примечание. При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс PCON выполняется путем загрузки в него кода 0XXX0000. Система прерываний
Внешние прерывания INT0 и INT1 (рисунок 6) могут быть вызваны уровнем или переходом сигнала из 1 в 0 на входах микроконтроллера в зависимости от значений управляющих битов IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания. Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага IE управляет соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса. Рисунок 6 - Схема прерываний микроконтроллера семейства Intel 51 Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и TI устанавливаются UART аппаратно, но сбрасываться должны программой. Прерывания могут быть вызваны или отменены программой, так как все перечисленные флаги программно доступны. В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний и уровнями приоритета. Форматы этих регистров, имеющих символические имена IE и IP описаны в таблицах 9 и 10. Таблица 9 - Регистр масок прерывания IE
Таблица 10 - Регистр приоритетов прерывания IP
Примечание. Если флаг прерывания был установлен, но по одному из перечисленных условий не получил обслуживания и к моменту окончания блокировки уже был сброшен, то запрос прерывания теряется. Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает систему прерываний исключительно гибкой. Флаги прерываний опрашиваются в каждом машинном цикле. Ранжирование прерываний по приоритету выполняется в течение следующего машинного цикла. Система прерываний сформирует аппаратно вызов LCALL соответствующей подпрограммы обслуживания, если она не заблокирована одним из условий: 1. В данный момент обслуживается запрос прерывания равного или более высокого уровня приоритета; 2. Текущий машинный цикл – не последний в цикле выполняемой команды; 3. Выполняется команда RETI или любая команда, связанная с обращением к регистрам IE или IP. По аппаратно сформированному коду команды LCALL система прерывания помещает в стек содержимое программного счётчика PC и загружает в PC адрес вектора прерывания соответствующей подпрограммы обслуживания. По этому адресу должна быть расположена команда безусловного перехода JMP к начальному адресу подпрограммы обслуживания прерывания. Эта подпрограмма в случае необходимости должна начинаться командами записи в стек PUSH слова состояния программы PSW, аккумулятора A, расширителя аккумулятора B, указателя данных DPTR и т.д. и заканчиваться командами восстановления из стека POP. Подпрограммы обслуживания прерывания обязательно завершаются командой RETI, по которой в программный счётчик перезагружается из стека сохранённый адрес возврата в основную программу. Команда RET также возвращает управление, но при этом не снимает блокировку прерывания.
Микроконтролеры семейства Intel 8051
Микроконтроллеры базового семейства Intel 8051 (МК51) выполнены на основе высокоуровневой n-МОП или КМОП технологии. Для работы МК51 требуется источник питания +5В. Основу структурной схемы МК51 составляет внутренняя 8-битная шина, связывающая между собой все основные узлы и устройства: резидентную память, арифметико-логическое устройство (АЛУ), блок регистров специальных функций, устройство управления и порты ввода-вывода. Микроконтроллеры этого семейства можно разделить на 4 группы: 1. ОМЭВМ с отсутствием внутренней памяти (n-МОП - 8031; КМОП - 80С31) 2. ОМЭВМ с однократно программируемой памятью программ (n-МОП – 8051/52/54/58 объемом соответственно 4/8/16/32, КМОП - 80С51/52/54/58). 3. ОМЭВМ с перепрограммируемой памятью программ с ультрафиолетовым стиранием (n-МОП – 8751/52/54/58; КМОП - 87С51/52/54/58). 4. ОМЭВМ с внутренней памятью программ, выполненной по технологии FLASH (89С51…).
Базовая модель однокристальных ЭВМ 80С51содержит: 1. Центральный восьмиразрядный процессор. 2. Внутреннюю память программ 4 кбайт с возможностью расширения до 64 кбайт за счет подключения внешней памяти программ. 3. Внутреннюю память данных емкостью 128 байт с возможностью расширения до 64 кбайт. 4. Четыре восьмиразрядных программируемых порта ввода – вывода. 5. Два 16-битных многорежимных таймер-счетчика. 6. Подсистему прерываний с 5 векторами и 2 уровнями. 7. Последовательный интерфейс. 8. Тактовый генератор. 9. Схему управления энергопотреблением. Назначение выводов микросхемы 1-8 – Р1.0–Р1.7 – восьмиразрядный универсальный двунаправленный порт Р1. 9 - RST – сигнал общего сброса. 10-17 - Р3.0–Р3.7 – восьмиразрядный двунаправленный порт Р3 с дополнительными функциями: 10 – Р3.0 – последовательные данные приемника (RxD). 11 – Р3.1 - последовательные данные передатчика (TxD) 12 – Р3.2 – вход внешнего прерывания (INT0). 13 – Р3.3 – вход внешних прерываний (INT1). 14 – Р3.4 – вход таймер – счетчика 0 (T0). 15 – Р3.5 – вход таймер – счетчика 1 (T1). 16 – Р3.6 – выход строба при записи во внешнюю память данных (WR). 17 – Р3.7 – выход строба при чтении из внешней памяти (RD). 18-19 – XTAL1–XTAL2 – выводы для подключения кварцевого резонатора. 21-28 –Р2.0–Р2.7 – восьмиразрядный двунаправленный порт Р2, использующийся как выход адреса А8–А15 в режиме работы с внешней памятью. 29 - PSEN – сигнал чтения внешней памяти программ. 30 - ALE – сигнал стробирования адреса внешней памяти. 31 - EA – вывод блокировки внутренней памяти. 32-39 – Р 0.0–Р 0.7 – восьмиразрядный двунаправленный порт Р0, Рисунок 1 - УГО микроконтроллера использующийся как мультиплексированная шина адреса/данных при в корпусе с 40 выводами работе с внешней памятью. 20 – Vss - общий 40 – Vcc - напряжение питания
Базовая частота тактирования MК51 - 12 МГц. Каждый машинный цикл выполняется за 12 тактов. При этом обеспечивается минимальное время выполнения операций сложения (одноцикловых) за 1 мкс., команды умножения - 4 мкс. Микроконтроллеры могут тактироваться от кварцевого резонатора или от внешнего генератора. Существуют версии однокристальных ЭВМ с тактовой частотой 16, 20, 24, 30, 33, 40… МГц. Кроме этого существует версии, выполняющие машинный цикл не за 12, а за 6 (Philips) или 4 (Dallas) машинных такта. В однокристальных микро-ЭВМ данного семейства реализованы режимы пониженного энергопотребления: 1. Режим холостого хода - Idle. Блокируются функциональные узлы процессора, это и понижает потребляемую мощность. Сохраняются содержимое указателя стека, программного счетчика, содержимое аккумулятора, регистра PSW и других регистров, а также внутреннего ОЗУ. Выход из режима холостого хода возможен по прерыванию или по аппаратному сбросу (RESET). 2. Режим микропотребления – Power Down. Задающий генератор выключается, работа всех узлов ОМЭВМ прекращается, сохраняется только содержимое ОЗУ, единственный выход - аппаратный сброс.
Популярное:
|
Последнее изменение этой страницы: 2016-04-10; Просмотров: 2103; Нарушение авторского права страницы