Микроконтроллеры для систем автоматики - часть 1

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  1  2  3   ..

 

 

Микроконтроллеры для систем автоматики - часть 1

 

 

 

3 

ВВЕДЕНИЕ 
Создание фирмой Intel в 1971 году первой программируемой электронной схемы на 

одном кристалле явилось началом эпохи микропроцессорной техники. Объединив в себе 
достижения  вычислительной  техники  и  микроэлектроники,  микропроцессорные  системы 
стали  удобным  общепринятым  инструментом  для  построения  самых  различных  систем 
автоматики.  

За 30 лет  своего  бурного  развития  микропроцессорные  системы  прошли  путь  от 

специализированных  комплектов  интегральных  схем  к  сложным  однокристальным 
микроконтроллерам,  имеющим  в  своем  составе  целый  набор  самых  различных 
программируемых  элементов.  Их  разработкой  занимаются  практически  все  крупнейшие 
мировые  производители  компьютеров,  бытовой  техники,  промышленных  систем  и 
электронных  компонентов – всем  известные: INTEL, AMD, ATMEL, MICROCHIP, 
MITSUBISHI, MOTOROLA, ANALOG DEVICE, NATIONAL SEMICONDUCTOR, SIEMENS, 
TEXAS INSTRUMENT, ZILOG и  др.  Они  выпускаются  сейчас,  как  и  все  остальные 
микросхемы, миллионными партиями, а стоимость одного микроконтроллера, как правило, 
составляет всего несколько долларов.  

В  условиях  существующей  в  области  микроэлектроники  жесткой  конкуренции 

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

и 

терминология, 

появляется 

множество 

архитектур  и  языков 

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

Вместе  с  тем,  принципы  построения  микропроцессорных  систем,  несмотря  на 

множество  направлений  развития,  не  подвергаются  существенной  переработке. 
Заложенные  в 70-х  годах,  при  всем  многообразии  изделий,  они  без  значительных 
изменений  сохраняются  и  до  настоящего  времени.  По  этой  причине  изучение 
микропроцессорной  техники  возможно,  и  всегда  строится,  на конкретных примерах какой 
либо  одной  архитектуры.  Именно  по  этому  принципу  строятся  учебные  курсы, 
предлагаемые  в  настоящее  время  ведущими  университетами  и  учебными  центрами.  В 
качестве  примеров  обычно  рассматриваются  микроконтроллеры  Intel, Motorola, Zilog, 
Microchip
 [1-5].   

Все  основные  понятия  микропроцессорной  техники  в  пособии  рассмотрены  на 

примерах  современных AVR-микроконтроллеров  фирмы  Atmel.  Этот  выбор    обусловлен 
целым  рядом  факторов,  таких  как  распространенность  микроконтроллеров  в  России, 
доступность технической информации, наличие свободно распространяемых программных 
и 

сравнительно 

недорогих 

аппаратных 

средств 

поддержки 

проектирования. 

Использованные при написании пособия оригинальные материалы можно найти на сайте 
www.atmel.ru. 

1. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА 

Контроллером  в  технике  регулирования  считается  управляющее  устройство, 

осуществляющее  регулирующие  или  контролирующие  функции  в  системе.  Контроллер, 
реализованный  на  одном  кристалле,  называется  микроконтроллером.  Современный 
микроконтроллер  является  большой  цифровой  интегральной  схемой,  объединяющей 
миллионы, выполненных по микронным технологиям, транзисторов. 

 

4 

Типовая  структура  микроконтроллера  изображена  на  рис.  1.1.  Микроконтроллер 

состоит из трех, связанных системными шинами, элементов: процессорного ядра, памяти и  
набора программируемых функциональных блоков различного назначения. 

 

Рис. 1.1. Структура микроконтроллера 

Процессорное  ядро  (MCU - Microprocessor Core Unit) является  основой 

микроконтроллера.  Оно  выполняет  все  вычислительные  операции  и,  одновременно, 
управляет работой всех остальных элементов схемы. По системным шинам процессорное 
ядро обменивается данными с памятью и всеми функциональными блоками. Разрядность 
процессорного 

ядра 

определяет 

разрядность 

микроконтроллера. 

Наиболее 

распространены в настоящее время 8-битные (8-разрядные) микроконтроллеры. Вместе с 
тем,  широкое  применение  в  простых  задачах  находят  и 4-битные  изделия,  а  в  сложных 
высокопроизводительных системах 16- и 32-битные. 

В  памяти  (Memory)  хранится  программа  работы  микроконтроллера,  исходные 

данные  и  все  промежуточные  результаты  вычислений.  Память  состоит  из  множества 
многоразрядных  ячеек,  каждая  из  которых  имеет  свой  адрес.  По  этому  адресу 
процессорное  ядро  находит  конкретную  ячейку  памяти  в  процессе  обмена.  Память 
микроконтроллера  обычно  разделена  на  две  части:  память  данных  (Data Memory)  и 
память программ (Program Memory). 

Функциональные  блоки  различных  типов  обеспечивают  взаимодействие 

микроконтроллера  с  внешним  миром.  Эти  блоки  могут  выполнять  самые  различные 
функции:  ввод  и  вывод  информации,  подсчет  внешних  событий  и  интервалов  времени, 
передача внешних запросов на процессорное ядро, аналого-цифровые и цифроаналоговые 
преобразования  сигналов,  сравнение  различных  величин,  контроль  за  напряжением 
питания и др. Для процессорного ядра любой функциональный блок представляется в виде 
одного  или  нескольких  регистров.  Каждый  регистр  имеет  свой  оригинальный  адрес,  по 
которому процессорное ядро находит его в процессе работы. 

Программа 

работы 

микроконтроллера 

хранится 

в 

памяти 

в 

виде 

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

Практически  все  ведущие  производители  разрабатывают  целые  семейства 

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

 

5 

и,  обязательно,  оригинальное  имя.  Например,  микроконтроллеры  фирмы  Motorola  
построены  на  базе  ядра HC05 и  HС08,  фирма  Intel    создала  ядро MCS-51  и MCS-96, 
контроллеры фирмы Microchip строятся на базе ядра PIC12, PIC16, PIC17, PIC18, фирма 
Atmel  усиленно развивает семейство микроконтроллеров с ядром AVR.  

Процессорное  ядро  на  основе  известных  схемотехнических  решений,  технологий 

проектирования  и  производства  цифровых  схем  реализует  определенную  архитектуру 
системы.  Для  микропроцессорной  системы  понятие  «архитектура»  включает  в  себя 
множество  её  структурных  особенностей,  основными  из  которых  считаются:  организация 
памяти  и  система  команд.  В  настоящее  время  известны  четыре  общих  архитектурных 
принципа в той или другой мере, реализуемые в любом процессорном ядре.  

По организации памяти различаются: 

º 

Неймановская  архитектура - характеризуется  общим  пространством 
памяти  для  хранения  данных  и  программы.  При  этом  разрядность  памяти 
зафиксирована  (как  правило,  равна  одному  байту).  Такую  архитектуру 
имеют,  например,  микроконтроллеры HC05 и  НС08  фирмы  Motorola,  в 
которых  общий  массив 8-битных  ячеек  памяти  включает  в  себя  как  память 
программ, так и память данных [5]. 

º 

Гарвардская  архитектура – отличается  разделением  памяти  программ  и 
памяти данных. При этом разрядность памяти программ и памяти данных, а 
также  шины  доступа  к  ним,  различны.  В  частности,  все  микроконтроллеры 
PIC12, PIC16  фирмы Microchip имеют 8-битную  память  данных,  а 
разрядность  памяти  программ  у  них  различна: PIC12  имеют  12  битную 
память программ, а PIC16 – 14 битную [3]. 

По системе команд различаются: 

º 

СISC-архитектура (Complicated Instruction Set Computer) –  архитектура  с 
развитой  системой  команд.  Система  команд  процессорного  ядра  имеет 
инструкции  разного  формата:  однобайтовые,  двухбайтовые,  трехбайтовые.  
Различные  инструкции  при  этом  имеют  и  существенно  разное  время 
исполнения. 

º 

RISC-архитектура (Reduced Instruction Set Computer) – архитектура  с 
сокращенным  набором  команд.  Одна  инструкция,  как  правило,  занимает 
только  одну  ячейку  памяти,  и  все  инструкции  имеют  равное  время 
исполнения. 

Микроконтроллеры  с RISC-архитектурой  имеют  сравнительно  более  высокую 

производительность  при  той  же  тактовой  частоте  сигнала  синхронизации  и  в  настоящее 
время более распространены. 

Разные  производители  в  своих  изделиях  используют  зачастую  различные 

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

Например, AVR-микроконтроллеры фирмы Atmel, по мнению её создателей, имеют 

улучшенную RISC (enhanced RISC)  архитектуру.  В  соответствии  с  принципами RISC – 
архитектуры практически все команды микроконтроллера (исключая те, у которых одним из 
операндов является 16-разрядный адрес) занимают только в одну ячейку памяти программ. 
Но сделать это разработчикам удалось за счет одновременного использования принципов 
Гарвардской архитектуры и расширения ячейки памяти программ до 16 разрядов. Поэтому 
в системе команд AVR-микроконтроллеров целых 130 различных команд, что значительно 
больше, чем у большинства современных RISC – архитектур. Для сравнения, контроллеры 
фирмы Microchip с ядром PIC12, PIC16, PIC17 имеют всего 33 команды [3]. 

 

6 

2. ПАМЯТЬ 

Память  микроконтроллера  предназначена для хранения инструкций программы и 

данных.  В  микроконтроллерах  с  Гарвардской  архитектурой  она  разделена  на  отдельные 
блоки: память программ (Program Memory) и память данных (Data Memory). 

2.1. Память программ 

Программа  микропроцессора  представляет  собой  последовательность  команд 

(инструкций). Каждая инструкция имеет свой оригинальный двоичный код. Коды инструкций 
и хранятся в памяти программ 

Память программ состоит из множества ячеек определенной разрядности, каждая 

из  которых  имеет  свой  номер  (адрес).  Количество  ячеек  (объем  памяти)  может  быть 
различно.  Обычно  ячейки  памяти  программ  нумеруются  в  шестнадцатеричной  системе 
счисления, начиная нуля: $0, $1, $2 …..Знаком $ в дальнейшем будем обозначать числа в 
шестнадцатеричной системе счисления.  

Память программ, по существующей классификации, всегда является какой либо 

разновидностью  постоянной  памяти  (ROM – Read Only Memory).  Постоянная  память 
энергонезависима,  она  способна  хранить  записанную  в  неё  информацию  при отсутствии 
питающего напряжения. Основным режимом такой памяти является считывание данных, но 
способы записи программы (способы программирования) памяти могут быть самые разные. 
В зависимости от способа программирования память типа ROM разделяется на несколько 
групп: maskROM, OTPROM, EPROM, EEPROM и flash memory.  

М

А С О Ч Н А Я   П А М Я Т Ь  

 

Масочная память (maskROM) программируется с помощью фотошаблонов (масок) 

на  стадии  изготовления  микроконтроллера.  Т.е.  контроллер  с  масочной  памятью 
изготавливается с записанной в память программой. Содержимое такой памяти не может 
быть изменено в процессе настройки и эксплуатации изделия. Память этого типа считается 
самой  дешевой,  но  её  применение  целесообразно  только  при  изготовлении  уже 
спроектированных и не требующих доработки устройств очень большими партиями, когда 
становится  целесообразным  оформление  отдельного  заказа  на  изготовление  большого 
количества запрограммированных по одному шаблону кристаллов. 

О

Д Н О К Р А Т Н О   П Р О Г Р А М М И Р У Е М А Я   П А М Я Т Ь

 

Однократно программируемая память (OTPROM - One Time Programmable ROM) по 

принципу  построения  и  функционирования  аналогична  масочной,  но  она  поставляется 
изготовителем  микроконтроллера  незапрограммированной,  а  контроллер  имеет  режим 
программирования.  Каждая  ячейка  памяти  в  исходном состоянии, как правило, содержит 
код $FF. Операция  программирования  заключается  в  избирательном  разрушении 
(пережигании) части плавких перемычек, включенных в элементы памяти. В этом случае 
отдельные биты в ячейках памяти принимают нулевые значения. Восстановить исходное 
значение  ячейки  после  программирования  невозможно.  Программирование OTPROM 
осуществляется  в  специальных  приборах – программаторах,  обеспечивающих  заданные 
изготовителем технические условия программирования.  

Контроллеры с OTPROM относительно дешевы. Их применение целесообразно при 

серийном изготовлении изделий даже сравнительно небольшими партиями. 

 

 

 

 

 

 

 

 

 

содержание   ..  1  2  3   ..