Лекция 5. Архитектура микроконтроллера PIC16F877

      

      PIC16F877 - 8-разрядный микроконтроллер, выпускаемый фирмой Microchip Technology, представляет собой специализированный микропроцессор, предназначенный для программного управления автоматизированными системами, электрическими двигателями, устройствами передачи информации и измерительными приборами. В отличие от универсальных процессоров, он имеет развитые средства взаимодействия с внешними устройствами и более простую систему команд.

PIC16F877 представляет собой микросхему с 40 выводами, 32 из которых предназначены для обмена информацией с внешними устройствами. Выполняемая программа хранится в перепрограммируемом ПЗУ, куда она заносится специальным устройством - программатором. Необходимые данные, переменные, результаты расчетов и счетчики циклов хранятся в ОЗУ и обнуляются при выключении питания. Чтобы избежать потери данных применяются 256 ячеек энергонезависимой памяти данных.

Микроконтроллер PIC16F877 имеет следующие технические характеристики:

· - Микроконтроллер выполнен по высокоскоростной RISC технологии. Высокая производительность достигается за счет применения конвейерной архитектуры и малого числа команд (всего 35);

· - Тактовая частота МК составляет 20 МГц, при этом время длительности машинного цикла достигает 200 нс;

· - 8Кх14 слов FLASH памяти программ;

· - 368х8 байт памяти данных (ОЗУ);

· - 256х8 байт EEPROM памятью данных;

· - Система прерываний имеет 14 источников.

Характеристика периферийных модулей:

· - Два 8-разрядных таймера/счетчика;

· - Один 16-разрядный таймер/счетчик с возможностью подключения внешнего кварцевого резонатора;

· - Два модуля захват/сравнение/ШИМ (CCP):

o 1) 16-разрядный захват (максимальная разрешающая способность 12.5 нс);

o 2) 16-разрядное сравнение (максимальная разрешающая способность 200нс);

o 3) 10 разрядный ШИМ.

· - 8-канальный 10-разрядный АЦП;

· - Последовательный синхронный порт;

· - Ведущий/ведомый режим SPI;

· - Ведущий/ведомый режим I2C;

· - Последовательный асинхронный приемопередатчик USART c поддержкой детектирования адреса;

· - Ведомый 8-разрядный параллельный порт PSP с поддержкой внешних сигналов

Архитектура микроконтроллера (МК) показана на рис. 1. МК можно условно разделить на две части: вычислительное ядро (серый цвет) и периферийные модули (белый цвет).

Рисунок 1 -   Архитектура микроконтроллера PIC16F877

 

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

1. По адресу из ПС производится выборка команды из памяти программ в РК;

2. Пока дешифрируется эта команда, производится инкремент ПС на единицу и ПС адресует следующую команду;

3. Когда выполнение данной команды заканчивается, содержимое ПС выдается памяти программ и цикл повторяется.

Команды безусловного перехода позволяют изменить естественный порядок следования команд путем замещения содержимого ПС (т. е. адреса следующей по порядку команды) адресом, определяемым самой командой перехода.

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

Циклы реализуются с помощью команд условных переходов.

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

Арифметико-логическое устройство (АЛУ) выполняет арифметические и логические операции над данными. Входные данные АЛУ в зависимости от кода операции могут находиться:

· в регистре W;

· в регистре команд;

· в памяти данных.

Мультиплексор данных подключает к входу АЛУ в соответствии с кодом операции либо РК (в режиме непосредственной адресации), либо память данных (в режиме прямой и косвенной адресации).

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

Биты конфигурации задают режим функционирования МК:

· сброс по включению питания (POR);

· таймер включения питания (PWRT);

· таймер запуска генератора (OSC);

· сброс по снижению напряжения питания (BOR);

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

· режим низковольтного последовательного программирования (LVP);

· режим внутрисхемной отладки (ICD).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: