INTEL 8051

Наред с разработването и производството на първите поколения универсални микропроцесори, от известната фамилия х86, предназначени основно за компютърни цели, през 1980 година фирмата INTEL започва производство на микропроцесора 8051, опростена структура и ориентиран за вграждане в програмируеми електронни устройства.
В резултат на умелата архитектура, този процесор стана основа за развитие на цяла фамилия микроконтролери, имащи сходно ядро и съвместимо програмно осигуряване. Всички микроконтролери на тази фирма и техните модификации от други фирми използват общи инструкции и общ асемблер.
На основата на сполучливата разработка, много световни фирми започват лицензирано производство на различни модификации на тази основна 8 битова структура. В повечето от многобройните варианти обаче присъстват три характеризиращи знака x8x5Cxx или x89xCxx. Символът С означава, че технологията е CMOS.
Първите 8 битови разработки под общо наименование 8051/8052, имат относително проста архитектура. Производните се различават основно по вида и обема на програмната памет и паметта за данни RAM.
Следват подобрени 8 битови фамилии с вградена програмна памет ЕPROM и EEPROM, а в последните години и FLASH ROM. Броят и възможностите на интегралните модули – таймерни, за прекъсвания, за АЦП, ШИМ и др., са разширени значително, като доближават тези микроконтролери до едночиповите микрокомпютри.
Произвеждат се фамилии микроконтролери с 16 битова разредност, с повишен обем на паметите, със съкратен брой тактове за изпълнение на една инструкция. Производителността на тези фамилии достига 100 MIPS.
Архитектурата на тези фамилии е типична CISC Фон-Нойманова, без самостоятелна адресна магистрала. За адресирането на се използва обща магистрала за данни.
Базовият микроконтролер 8051 притежава следните качества:
  • 8 ботово АЛУ с аретметични и булеви операции;
  • 8 битова шина за данни
  • 16 битова адресация;
  • вграден ROM програмен блок с обем до 4кб;
  • вграден RAM блок данни с обем до 256кб;
  • вграден тактов генератор, с максимална честота до 12 мегахерца (за ношите модификации до 33 мегахерца);
  • два 16 битови таймер/брояча Т0 и Т1;
  • 4 входно-изходни 8 битови порта за данни
  • UART
  • два енергоспестяващи режима
  • двустепенен приоритет на прекъсванията
Чипът е затворен в 40 изводен двуреден корпус, но се произвеждат и 20 изводни модификации. Функциионални изисквания и ограничения в броя на изводите на корпуса са наложили някои от тях да бъдат с двойно предназначение.
В структурата на микроконтролера е обособена сърцевината CPU, съдържащ АЛУ, блок с регистри и управляващ блок с вградена схема на тактов генератор, с изводи за външен кварцов кристал.
Работният цикъл, от 12 тактови импулса, е разделен на 6 състояния, всяко от които заема по 2 такта.
Вътрешният блок съдържа 32 вътрешни регистри с общо предназначение, разделени в 4 секции. Важни битово програмируеми регистри от ядрото са акумулаторът АСС, регистърът за състояние на думата PSW (Program Status Word). Последният отразява състоянието на АСС и CPU. Регистър B е 16 битов и е полезен при многоразредни операции като умножение и делене. Регистърът – указател на данни DPTR (Data Pointer Register) е друг основен 16 битов регистър с универсално предназначение.
Към адресните регистри преднадлежат програмният брояч PC и стека заедно с указателя – брояч SP.
В рамките на чипа са блоковете за прекъсвания и приоритет, два таймера, блок за сериен обмен и за икономичен режим, програмната ROM и оперативанта RAM памет.
Повечето от интегрираните модули модули притежават регистри със специализирано предназначение: за серийния порт – регистър SCON, за прекъсванията – регистрите TCON, IE и IP, консумация – регистър PCON. Тези регистри притежават флагове за управление, за разширение на действие и за избор на режим. Специалните флагове се установяват (нулират) програмно, апаратно или комбинирано.
В програмната памет са запазени фиксирани, векторни адреси за началото на програми, свързани с прекъсванията INT, за таймерите C/T, за началното установяване RST и за сериен обмен Serial.
Микроконтролерите 8051 имат четири осем битови паралелни порта – Р0, Р1, Р2 и Р3.
  • Порт Р0 е с двойно значение - като двупосочен I/O порт за данни и като адресен за младшия байт за външна памет.
  • Порт Р1 е двупосочен I/O с общо предназначение.
  • Порт Р2 е с общо предназначение и за старшия байт на адреса.
  • Порт Р3, основен като двупосочен I/O за данни, се използва най-често за входове на таймерите, за сериен обмен, за прекъсване и за управление на четене и запис при външна памет.
Всеки порт притежава управляващи регистри. Чрез регистрите се избира състояние на вход (съответния бит установен на 1) или като изход ( състояние 0) или се прави избор на алтернативна функция.
Товароспособността на портовете се определя като за основа е взето натоварването от TTL LS биполярен ЛЕ, при ниско ниво (0,4 mA). Буферът на порт Р0 издържа натоварване от 8 паралелно свързани TTL входа (3,2mА), а портовете Р1, Р2 и Р3 са с 2 пъти по-малка товароспособност.
Типовото захранванващо напрежение е 5 волта, но в новите CMOS разработки това напрежение може да се избира в границите от 2,7 до 6 волта.
Блокът за прекъсване осигурява асинхронно взаимодействие между периферните устройства и процесора.
За микроконтролер 8051 заявките са от 6 независими източника:
  • Заявка от външни сигнали чрез изводите INT0 и INТ1;
  • Заявка за прекъсване през определени интервали от време, индикани от препълването на таймер-броячи Т0 и Т1, чрез флаговете TF0 и TF1;
  • Заявка за прекъсване от серийния порт - приемане или предаване RI и TI;
Системата за прекъсване се управлява от 3 регистъра: битово адресируемият регистър TCON и регистрите IE и IP, като към нея имат отношение и двата флага от регисъра SCON. Системата за прекъсване на микроконтролера 8051 притежава двустепенен приориртет. За приоритет претендират всички източници за заявка, които са групирани в два блока във вътрешен приоритетен порчдък – висок H и нисък L.
Микроконтролерът 8051 притежава два 16 битови таймер-брояча Т0 и Т1. Всеки от тях има възможност да бъде индивидуално програмиран да работи в 3 основни режима:
  • таймерен – за работа с външни тактови сигнали и генериране на външни импулси;
  • броячен – за броене на външни тактови сигнали;
  • като хронометър – за измерване на интервали от време;
PCB8051 притежава подсистема за преобразуване на данните от паралелен код в последователен и обратното – от сериен в последователен чрез серийния модул UART – асинхронния приемник-предавател, с дуплексно действие. Работата на порта се управлява от битово адресеруемия регистър SCON.
Серийния порт може да се конфигурира за работа в 4 режима, управлявани от битовете SM0 и SM1 на регистър SCON. Синхронизиращата, стандартизирана скорост се определя програмно от таймера Т1, който има специален изход за тази цел. Тази скорост зависи от няколко параметъра на таймера: от честотата на тактовия генератор и предварителния делител към брояча; от коефициента на броене на брояча TL1, зареждан с код от секция TH2, от коефициента на делене на крайния делител в таймера, управляван от SMOD и от режимите на серийния порт.
Микроконтролерите 80С51, произвеждани по CMOS технология имат два режима на работа с намалена консумация – idle (пасивно състояние) и Power Down (с намалена мощност), активирани програмно. При режим idle се преустановява активното действие на базовата структура на микроконтролера, без да се изключва захранването. Съдържанието на вътрешните памети и на регистрите се запазва. Вградените подсистеми в чипа продължават да работят. Крайният резултат е намаляване на консумацията с около 80-90%. Вторият режим на намалена консумация Power Down директно блокира работата на тактовия генератор. В резултат спира нормалната работа на процесора, но данните в регистрите и RAM паметта се запазват.

2 коментара:

Анонимен каза...

Архитектурата на INTEL 8051 всъщност е Харвардска ;)

Unknown каза...
Този коментар бе премахнат от администратор на блога.