- •Конспект лекцій з дисципліни “Мікропроцесорні пристрої”
- •1 Основи теорії мікропроцесорних пристроїв
- •Класифікація мікропроцесорів. Варіанти архітектури
- •Базова структура мікропроцесорної системи
- •Основні характеристики мп
- •Типова структура мікропроцесора
- •Система команд мп і режими адресації
- •Організація передачі інформації в мпс. Інтерфейс
- •1.6.1 Способи передачі інформації
- •Методи обміну інформацією в мікропроцесорній системі
- •2 Мікроконтролери
- •Структура мк
- •Процесорне ядро мк
- •Резидентна пам'ять мк
- •Порти уведення/виводу
- •Таймери і процесори подій
- •Аналогово-цифрові й цифро-аналогові перетворювачі
- •Мінімізація споживання енергії в мп-системах
- •Моніторинг напруги живлення мк
- •Апаратні і програмні рішення по підвищенню надійності роботи мк
- •Контролери Intel mcs-51
- •3.1 Структурна організація Intel 8051
- •3.1.1 Арифметично-логічний пристрій
- •Зовнішня пам'ять
- •Пристрій керування і синхронізації
- •Програмна модель омк
- •Система команд Intel 8051
- •Арифметичні операції:
- •Логічні команди:
- •Бітові команди:
- •Периферійні присторої омк
- •Порти введення/виводу
- •Звертання до портів можливе тільки за прямою адресою.
- •Лічильники/таймери
- •Послідовний порт
- •Примітка
- •Мікроконтролер pic16f877
- •Характеристика мікроконтролера
- •Cтруктурна схема мікроконтролера pic16f877
- •Організація пам'яті
- •Пам’ять програм
- •Організація пам'яті даних
- •Регістр стану status
- •Лічильник команд
- •Порти введення/виводу
- •Регістри portа і trisa
- •Регістри portb і trisb
- •Регістри portc і trisc
- •Регістри portd і trisd
- •Регістри porte і trise
- •Таймери
- •Модуль таймера tmr0
- •Модуль таймера tmr1
- •Модуль таймера tmr2
- •Модуль 10-розрядного ацп
- •Adcon0 (адреса 1Fh)
- •Adcon1 (адреса 9Fh)
- •Переривання
- •Сторожовий таймер wdt
- •Біти конфігурації
- •Слово конфігурації (адреса 2007h)
- •Система команд
- •Література
Мікроконтролер pic16f877
Характеристика мікроконтролера
Високошвидкісна архітектура RISC.
35 інструкцій.
Усі команди виконуються за один цикл, окрім інструкцій переходів, що виконуються за два цикли.
Тактова частота:
DC – 20 МГц, тактовий сигнал DC – 200 нс, один машинний цикл.
8к х 14 слів FLASH пам'яті програм.
368 байтів пам'яті даних (ОЗП).
256 EEPROM пам'яті даних.
Сумісність по виводах з PIC16C73B/74B/76/77.
Система переривань (до 14 джерел).
8-рівневий апаратний стек.
Прямій, непрямий і відносний режими адресації.
Скидання по включенні живлення (POR).
Таймер скидання (PWRT) і таймер очікування запуску генератора (OST) після включення живлення.
Сторожовий таймер WDT з власним генератором RC.
Програмований захист пам'яті програм.
Режим енергозбереження SLEEP.
8 каналів 10-розрядного АЦП.
Вибір параметрів тактового генератора.
Високошвидкісна, енергозберігаюча CMOS FLASH/EEPROM технологія.
Повністю статична архітектура.
Програмування в готовому пристрої (використовується два виведення мікроконтролера).
Низьковольтний режим програмування.
Режим внутрішньосхемного відлагодження (використовується два виведення мікроконтролера).
Широкий діапазон напруги живлення від 2,0 В до 5,5 В.
Підвищена здатність навантаження портів введення/виводу (25 мА).
Мале енергоспоживання: < 0,6 мА при 3,0 В, 4,0 МГц; 20 мкА при 3,0 В, 32 кГц ; < 1 мкА в режимі енергозбереження.
Cтруктурна схема мікроконтролера pic16f877
Cтруктурна схема мікроконтролера PIC16F877 наведена на рисунку 4.1. Розглядаючи дану структурну схему, видно, що фізичні і логічні компоненти, з яких складається PIC 16FXX, аналогічні будь-якому іншому мікроконтролерові. Тому писати програми для PIC не складніше, ніж для будь-якого іншого процесора. Звичайно, Гарвардська архітектура і велика розрядність команди дозволяє зробити код для PIC значно більш компактним, чим для інших мікроконтролерів й істотно підвищити
швидкість виконання програми.
Рисунок 4.1 – Структура мікроконтролера PIC16F877
Основу структури даного мікроконтролера складають дві внутрішні шини: двонаправлена 8-бітова шина даних і 14-бітова шина команд. Це відповідає, як вже згадувалося раніше, Гарвардській архітектурі, заснованій на концепції роздільних шин і областей пам'яті для даних і команд. Шина даних зв'язує між собою всі основні функціональні блоки МК: пам'ять даних (RAM); арифметико-логічний пристрій (ALU); порти введення/виводу (PORT A,B,C,D,E); регістри стану (STATUS), непрямої адресації (FSR), таймерів-лічильників (TMR 0,1,2), програмного лічильника (PC).
У мікроконтролерах сімейства РІС існують пряма і непряма адресація всіх регістрів і елементів пам'яті. Усі спеціальні регістри і лічильник команд також відображаються на пам'ять даних.
Мікроконтролери РІС16FXХ мають ортогональну (симетричну) систему команд, що дозволяє виконувати будь-яку операцію з будь-яким регістром, використовуючи будь-який метод адресації. Це полегшує програмування для них і значно зменшує час, необхідний на навчання роботі з ними.
Арифметико-логічний пристрій (ALU) 8-розрядний і виконує складання, віднімання, зрушення, бітові і логічні операції. У командах, що мають два операнди, одним з операндів є робочий регістр W. Другий операнд може бути константою або вмістом будь-якого регістра ОЗП. У командах з одним операндом операнд може бути вмістом робочого регістра або вмістом будь-якого регістра. Для виконання всіх операцій ALU використовує робочий регістр W, який не може бути прямо адресований. Залежно від результату виконання операції, можуть змінитися значення бітів перенесення С, десяткового перенесення DC і нуля Z в регістрі стану STATUS. При відніманні біти С і DC працюють як біти позики і десяткової позики відповідно.
Вхідна тактова частота, що надходить з виведення OSC1/CLKIN, усередині ділиться на чотири і з неї формуються чотири циклічні тактові послідовності, що не перекриваються Q1, Q2, Q3 і Q4.
Вибірка команди і її виконання суміщені за часом таким чином, що вибірка команди займає один цикл, а виконання – наступний цикл. Ефективний час виконання команди складає один цикл. Якщо команда змінює лічильник команд (наприклад, команда GOTO), то для виконання цієї команди буде потрібно два цикли. Цикл вибірки починається із збільшення лічильника команд в такті Q1. У циклі виконання команди вибрана команда защіпується в регістр команд в такті Q1. Протягом тактів Q2, Q3 і Q4 відбувається декодування і виконання команди. У такті Q3 прочитується пам'ять даних (читання операнда), а запис відбувається в такті Q4. Таким чином, цикл виконання команди складається з 4-х тактів Q1-Q4, в кожному з яких проводяться різні, заздалегідь визначені дії:
Q1 – Вибірка певної команди з пам'яті програм і її декодування або вимушений NOP.
Q2 – Вибірка даних або NOP.
Q3 – Виконання команди і обробка даних. Q4 – Запис даних або NOP. Характеристика периферійних модулів:
Таймер 0: 8-розрядний таймер/лічильник з 8-розрядним програмованим перед дільником.
Таймер 1: 16-розрядний таймер/лічильник з можливістю підключення зовнішнього резонатора.
Таймер 2: 8-розрядний таймер/лічильник з 8-розрядним програмованим переддільником і вихідним дільником.
Два модулі порівняння/захоплення/ШІМ (РСР).
16-розрядне захоплення (максимальна роздільна здатність 12,5 нс); 16-розрядне порівняння (максимальна роздільна здатність 200 нс); 10- розрядний ШІМ.
Багатоканальний 10-розрядний АЦП.
Послідовний синхронний порт MSSP; ведучий/ведений режим SPI; ведучий/ведений режим I2C.
Послідовний синхронно-асинхронний приймач USART з підтримкою детектування адреси.
Ведений 8-розрядний паралельний порт PSP з підтримкою зовнішніх сигналів: -RD,-WR, -CS.
Детектор зниженої напруги (BOD) для скидання по зниженні напруги живлення (BOR).
