PIC-контроллеры

Тема лекции 13. Однокристальные МК с RISC архитектурой. PIC-контроллеры. Однокристальные AVR-микроконтроллеры.

Рассмотренные в предыдущей лекции СISC-контроллеры характеризуется довольно развитой системой команд, например, МК 51 имеют 111 команд. Анализ показал, что всего лишь 20% команд используются в 80% случаев. Выполненные в кристалле дешифратор команд, таким образом, используется не в полной мере, а занимает 70% площади кристалла. Поэтому у разработчиков ОМК возникла идея сократить количество команд и уменшить площадь кристалла, т.е. использовать RISC (Reduced Instruction Set Computing ) архитектуру.

Особенностью контроллеров, выполненных по RISC-архитектуре, является то, чтовсе команды выполняютсмя за 1-3 такта, тогда как СISC-контроллерах-за 1-3 машинных цикла. Каждый изкоторых состоитиз нескольких тактов. Поэтому RISC-контроллеры имеют большее быстродействие.

 

Типичными представителями RISC-процессоров являются PIC-контроллеры производства фирмы MicroChip. PIC-контроллеры применяются в системах управления автомобильными и электрическими двигателями, приборах бытовой электроники, телефонных приставках с АОН, системах охраны с оповещением по телефонной линии, мини-АТС. Отдельные БИС отличаются разрядностью ПЗУ: от 12 до 14 бит в серии PIC16Схх, 16 бит – в серии PIC17Схх. Благодаря сокращенному числу команд (от 33 до 35) все команды занимают в памяти одно слово. Время выполнения каждой команды, кроме команд разветвления, составляет четыре такта, т.е. один машинный цикл. ОЗУ выполнено по схеме с произвольной выборкой с возможностью непосредственной адресацией. Стек реализован аппаратно и имеет глубину 2, 8 или 16 ячеек. Почти во всех PIC-контроллерах есть система прерываний, источниками прерываний для которой служить переполнение таймеров или изменение состояний сигналов на некоторых входах БИС. В PIC-контроллерах предусмотрен бит защиты ПЗУ который предотвращает нелегальное копирования содержимого памяти.

Простейший микроконтроллер имеет 8 выводов. Микроконтроллер 8-ми разрядный с Гарвардской архитектурой, что повышает производительность. Одновременно считывается команда и происходит обращение за данными. В некоторых микроконтроллерах есть операции умножения, деления, операции с плавающей точкой. Система команд компактная – не более 51 команды (LOW, LITLE и HIGH – 51 команда). Есть банки регистров как МК51.

Есть ПЗУ разных типов и перифирийные устройства (АЦП, ЦАП). В составе перифирийных устройств имеется несколько выводов последовательного интерфейса – обычный RS232, интерфейс I2C фирмы Philips, SPI.

Контроллеры PIC могут быть использованы как ²умные² перифирийные устройства, т.е. SLAVE – контроллер может быть подсоединен к управляющему контроллеру PIC как обычное перифирийное устройство через порт (или линю данных). Очень развиты перифирийные средства коммуникации (I2C, SPI, RS232, порты).

На основе PIC может быть организованна сеть микроконтроллеров (через шину I2C).

У SPI и I2C общая особенность: для передачи используется два провода.

Интерфейс SPI работает со стробиованием по фронту сигнала (клока), т.е. по одной линии передаются данные, по другой – клок.

В I2C стробирование осуществляется по уровню. В обоих интерфейсах Master обеспечивает выдачу сигналов тактирования.

Архитектура PIC16-контроллеров.

Архитектуру PIC-контроллеров рассмотрим на прмере PIC16С71 (см. рис. 13.1). Основой являются раздельные шины и области памяти для данных и команд. Шина данных и ячейка ОЗУ – 8-разрядные, а шина команд и программная память (ПЗУ) – 14-разрядные. Двухступенчатый конвейер обеспечивает одновременные выбор и выполнение команды. Система команд содержит 35 команд. Все команды выполняются за один цикл, за исключением команд переходов, которые выполняются за два цикла.

Рис. 13.1. Структурная схема контроллера PIC16С71

Труктурная схема контроллера содержит:

- 8-уровневый аппаратный стек (STACK);

- 13-разрядный программный счетчик команд ( PC );

- 8-разрядное АЛУ (ALU);

- ОЗУ (BlockREG), которое состоит из 36 8-разрядных РОН;

- 15 регистров специальных функции SFR;

- 8-разрядный таймер/счетчик (Т/С);

- модуль АЦП (ADC) с четырьмя входами;

- 13 линий ввода/вывода (4-разрядный порт РА, 8-разрядный порт РВ и линия RТСС;

-сторожевой таймер (WDT);

- формирователь Form внешнего сигнала RТСС или сигнала сторожевого таймера

- систему управления и синхронизации с внутренним генератором (Synh. Control System).

Однокристальные AVR-микроконтроллеры.

Однокристальные AVR-микроконтроллеры представляют 8-разрядные высокопродуктивные RISC-контроллеры общего назначения. Они были созданы группой фирмой Atmel, инициалы которых и сформировали AVR. Особенностью AVR-микроконтроллеров является их широкая номенклатура, которая позволяет пользователю выбрать микроконтроллер с минимальной аппаратной избыточностью и , следовательно, наименьшой стоимости.

Рассмотрим микропроцессор AT89C2051. Это представитель семейства однокристальных микроконтроллеров американской фирмы Atmel.

Микросхема выполнена в стандартном DIP – корпусе и имеет 20 выводов.

К достоинствам микросхемы AT89C2051 относится наличие режима защиты программы, «зашитой» в память программ микросхемы от несанкционированного копирования.

На рисунке 13.2 приведена структурная схема микроконтроллера AT89C2051. Рассмотрим основные элементы схемы. Встроенное перепрограммируемое ПЗУ объемом 2 Килобайта. Выполнено по технологии электрически стираемого ПЗУ (так называемая Флэш-память). В эту память записывается программа, по которой микроконтроллер начинает работать после включения питания и окончания сигнала сброса. Программирование ППЗУ программ производится при помощи специального устройства - программатора. Программатор последовательно, байт за байтом записывает программу в ячейки ПЗУ, начиная с первой. Технология флэш-памяти допускает перепрограммирование, то есть повторную запись. В стертое ППЗУ программ можно «зашивать» новую программу. Допускается: 1000 циклов записи/стирания.

При помощи того же программатора можно читать записанную в ППЗУ программ информацию. Этот режим введен для контроля правильности прошивки.

Рис. 13.2. Структурная схема AT89C2051

 

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

ОЗУ данных. Используется для хранения оперативных данных. Оно имеет 128 восьмиразрядных ячеек памяти. Как и в большинстве однокристальных микроЭВМ, микросхема AT89C2051 применяется принцип совмещения ОЗУ данных с регистрами общего назначения процессора и портами ввода/вывода. Порты P1 и P3. Это два восьмиразрядных порта ввода/вывода. Поставив перед собой задачу, сократить количество выводов до 20, конструкторы были вынуждены сократить количество портов ввода/вывода. В связи с этим были исключены порты P0 и P2. Кроме того, порт P3 теперь не полный. Линия P3.6 не выходит не на один из внешних выводов микросхемы и используется, как вход для сигнала от встроенного аналогового компаратора.

АЛУ. Арифметико-логическое устройство. Оно заменяет здесь центральный процессор. Дело в том, что АЛУ и есть центральный процессор в чистом виде. Без внутренних регистров и других вспомогательных элементов, функции которых в данном случае распределены между другими устройствами системы. Внутренние регистры, например, совмещены с ОЗУ данных.

Таймеры. В микросхеме имеются два встроенных 16-разрядных таймера/счетчика Т1 и Т2. Они могут использоваться программистом для задания любых интервалов времени. Причем счетчик T1 имеет режим работы, при котором он делится на два 8-разрядных таймера, которые могут работать по отдельности. Можно программно запустить и остановить любой из счетчиков. Счетчики могут работать как в режиме отсчета временных интервалов (в этом случае они считают импульсы внутреннего тактового генератора), так и в режиме подсчета внешних импульсов. В позиционере спутниковой антенны используются оба таймера. Один из них задает период динамической индикации, а второй используется для формирования временных интервалов, системы распознавания сигналов дистанционного пульта управления. При этом оба счетчика работают в режиме отсчета времени.

Последовательный канал. Это канал специального типа для последовательной передачи информации по одной линии (бит за битом по одному проводу). В любом компьютере имеются обычно два последовательных интерфейса. К одному из них часто подключается манипулятор «мышь». А второй предназначен в основном для подключения модема. Именно такой канал и реализуется в микросхеме. В позиционере спутниковой антенны данный канал не применяется.

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

Аналоговый компаратор. Обычный компаратор аналоговых сигналов. На его выходе появляется сигнал лог. 1, когда напряжение на входе «+» превысит напряжение на входе «-».

Внутренняя системная шина. По устройству и назначению полностью аналогична системной шине стандартной микропроцессорной системы.

Микросхема AT89C2051 относится к полностатическим системам. Это означает, что частота тактового генератора может изменяться от 0 Гц от 24 МГерц. И во всем этом диапазоне частот микросхема сохраняет полную работоспособность.

Рис. 13.3. Микросхема AT89C2051

Рассмотрим теперь подробнее назначение выводов микросхемы AT89C2051. На рисунке 13.3 приведена цоколевка микросхемы. Как видно из рисунка, на вывод 20 подается напряжение питания микросхемы (2,7…6В). Вывод 10 – это общий провод. Выводы XTAL1 и XTAL2 предназначены для подключения кварцевого резонатора. Остальные выводы микросхемы - это разряды портов ввода/вывода (P1 и P3). Каждый из этих выводов является одновременно и входом и выходом. При этом многие выводы выполняют сразу несколько функций (альтернативные функции выводов указаны в скобках).

Мощность выходных ключей микроконтроллера AT89C2051 допускает прямое подключение светодиодного дисплея к любому своему информационному выходу.

Основная литература:4 [182-199], 7 [51-82]

Дополнительная литература: 9 [236-283], 10 [35-61]

Контрольные вопросы:

1. Назначение и структура однокристального контроллера PIC16С71?

2. Назначение и структура однокристального контроллера AT89C2051?

3. Особенности микроконтроллеров фирмы MicroChip ?

4. Особенности микроконтроллеров фирмы Atmel?

5. Из скольких команд состоит система команд PIC16С71 ?

6. Из скольких команд состоит система команд AT89C2051?