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

 

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

 

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

 

 

 

 

 

 

 

 

 

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

 

 

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

 

 

 

ВВЕДЕНИЕ 
Создание фирмой 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. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА 

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

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

 

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

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

 

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

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

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

ядра 

определяет 

разрядность 

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

Наиболее 

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

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

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

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

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

Программа 

работы 

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

хранится 

в 

памяти 

в 

виде 

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

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

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

 

и,  обязательно,  оригинальное  имя.  Например,  микроконтроллеры  фирмы  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]. 

 

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   ..