Реферат Курсовая Конспект
У 1975 році фірма GI розробила периферійний контролер Peripheral Interface Controller або PIC - раздел Образование, ...
|
2. СТРУКТУРНА ОРГАНІЗАЦІЯ ТА РЕЖИМИ РОБОТИ ОМК PIC
2.1. Загальні відомості про ОМК PIC та їхня класифікація
У 1975 році фірма GI розробила периферійний контролер (Peripheral Interface Controller або PIC), призначений для підтримки вводу/виводу 16-роз-
рядного процесора. Від нього не вимагалася складна обробка інформації, тому його набір команд був сильно обмежений, але майже всі команди в ньому виконувалися за один машинний цикл. Цей контролер, що мав
RISC-архітектуру, став прообразом сьогоднішньої архітектури мікроконтролерів PIC [3 – 6], які випускаються з кінця 80-х років компанією Arizona Microchip Technology Ltd., дочірньою компанією GI Microelectronics Inc.
Мікроконтролери сімейства PIC по'єднують всі передові технології ОМК: одноразово або багаторазово електрично перепрограмовуємі користувачем ППЗП, мінімальне енергоспоживання, виключну продуктивність, потужну RISC-архітектуру і мінімальні розміри корпуса. Ці широкі можливості та низька вартість зробили серію мікроконтролерів PIC однією з кращих виборів для інженерних застосувань. Понад 250 мільйонів мікроконтролерів PIC використовується в декількох тисячах прикладень по всьому світу. Використовувати ці мікроконтролери рекомендується в усіх випадках, коли критичні енергозбереження, габарити і вартість пристрою.
Ось тільки деякі приклади застосування мікроконтролерів PIC:
· Комп'ютери і периферія: принтери, плотери, мережні картки,
модеми, мишки, сканери, накопичувачі на гнучких і жорстких магнітних дисках, CD ROM, мультимедійні пристрої тощо.
· Радіотехніка (ТНП): CD програвачі, аудіосистеми, системи синтезу мовних повідомлень, блоки дистанційного керування, модулі телетексту, відеоігри.
· Техніка зв'язку: модеми, радіомодеми, мікро-АТС, автовідповідачі, мобільні телефони, пейджери, факс-апарати та ін.
· Промислові контролери: інтелектуальні датчики, пристрої попередньої обробки даних та керування (наприклад, електродвигунами), промислові роботи, регулятори температури, вологості, тиску та ін.
· Автомобільна електроніка: системи керування запалюванням, мікрокліматом і вприском палива, панелі приладів, радарні детектори, автомобільні сигналізації, комбіновані вимірювальні пристрої.
· Побутова техніка: системи сигналізації, вимірювальні пристрої, лічильники води, газу та електроенергії, детектори іонізуючого випромінювання, іграшки і т.д.
В залежності від розрядності команд, архітектурних особливостей і функціональних можливостей, мікроконтролери PIC поділяються на чотири основні групи (сімейства):
1. Сімейство найпростіших ОМК (12-розрядні команди) – PIC 12CXX;
2. Базове сімейство (12-розрядні команди) – PIC 16 C5XX;
3. Розширене сімейство (14-розрядні команди) – PIC 16CXX;
4. Високопродуктивні сімейства (16-розрядні команди) – PIC 17CXX та PIC 18CXX.
Архітектура ОМК PIC основана на концепції роздільних шин та областей пам'яті для даних і команд (Гарвардська архітектура). Шина і пам'ять даних (ОЗП) має ширину 8 бітів, а програмна шина і пам'ять команд (ПЗП або ППЗП) має ширину 12, 14 або 16 бітів в залежності від сімейства ОМК. Така концепція забезпечує просту, але потужну систему команд, а двоступеневий конвеєр забезпечує їхню одночасну вибірку і виконання. Всі команди складаються з одного слова (шириною 12, 14 або 16 бітів) і виконуються за один цикл (200 нс при тактовій частоті 20 МГц), крім команд переходу, які виконуються за два цикли. Контрольні випробування показують, що застосування ОМК серії PIC дозволяють зменшити час налагодження в 1,5 – 2 рази у порівнянні із звичайними 8-розрядними мікроконтролерами.
Система команд ОМК PIC включає тільки 33/35/57 команд і може бути легко і швидко вивчена. В конструкцію PIC включено багато особливостей по енергозбереженню, що роблять їх на сьогоднішній день найбільш мікроспоживаючими (в режимі SLEEP струм, що споживається, менше
1 мкА), самими низьковольтними за напругою живлення (2 В), що програмуються користувачем, мікроконтролерами.
Найпростіші типи таких ОМК містять 8-бітний таймер-лічильник з
8-бітним програмуємим попереднім дільником (фактично 16-бітний таймер) і 6 – 20 ліній двонаправленого вводу-виводу. Корпус таких ОМК має 8 (18) виводів. Мікроконтролери розширеного і високопродуктивного сімейства містять окрім цього цілий ряд додаткових функціональних вузлів та блоків, таких, наприклад, як: багатоканальні аналого-цифрові перетворювачі, розгалужену систему переривань, блоки керування рідиннокристалічними індикаторами, компаратори, широтно-імпульсні модулятори, паралельні та послідовні інтерфейси типу I2C, RS-232 і т. д., цифрові помножувачі, додаткові таймери-лічильники, збільшену кількість портів вводу-виводу дискретних сигналів та інше.
Таким чином, ОМК PIC мають вагомі переваги у порівнянні з іншими типами мікроконтролерів того ж класу.
В нинішній час випускаються мікроконтролери з різною ємністю постійної і оперативної пам'яті, з різними типами тактових генераторів, з різною швидкодією і конструктивним виконанням, а також з різними функціональними можливостями. Конкретний тип мікроконтролера для вирішування певної задачі можна вибрати на підставі критеріїв, які були розглянуті в розділі 1, використовуючи відповідну інформацію, наведену в додатку А і в довідковій літературі [6 – 13].
В залежності від технології виготовлення ПЗП всі типи МК поділяються на п'ять груп:
1.Мікроконтролери, які можуть бути багаторазово запрограмовані
користувачем, що, в свою чергу можуть бути поділені також на дві наступні групи:
1) Мікроконтролери з ультрафіолетовим стиранням.
Ці МК оптимальні для експериментальних розробок і налагодження програм. Необхідну конфігурацію тактового генератора <RC>, <XT>, <HS> або <LP> встановлюють програмним шляхом. За замовчуванням встановлюється тип генератора <RS>. В залежності від вибраного типу генератора і частоти, напруга живлення повинна бути у тому ж діапазоні, що і для пристроїв OTP/QTP, розглянутих нижче.
2) Мікроконтролери, ПЗП програм і даних яких можуть бути бага- торазово електрично перепрограмовані користувачем (EEPROM).
Ці МК (такі наприклад, як PIC 16C84X чи 16F84X) дозволяють легко підстроювати програму і дані під конкретні вимоги навіть після завершення її відлагодження і тестування. Ця можливість може бути використана як для тиражування, так і для занесення калібровочних даних вже після остаточного тестування розробленого мікроконтролерного пристрою (МКП). Проте дані МК мають обмежену кількість циклів перепрограмування.
2. Мікроконтролери, які одноразово програмуються (ОТР).
Ці МК можуть бути одноразово запрограмовані користувачем і застосовуються в тих випадках, коли немає потреби часто змінювати зміст програми або конфігурацію мікроконтролера в розробленому МКП. Для деяких типів МК (таких наприклад, як PIC 16C54, PIC 16C55, PIC 16C57 і т.д.) тип генератора задається на підприємстві, яке їх виготовляє, і мікроконтролер тестується тільки для заданого типу генератора. Для інших типів МК (таких, наприклад, як PIC16C52, PIC16C54A, PIC16C58A і т.д.) тип генератора програмується користувачем. Додатково можна при цьому підключити сторожовий таймер і (або) логіку захисту програм від зчитування. Також можна запрограмувати 16 спеціальних бітів для ідентифікації МК.
3. Мікроконтролери, які програмуються на підприємстві, що їх виготовляє (QTP).
Ці МК замовляються і повністю програмуються на підприємстві, яке їх виготовляє, за заздалегідь наданою користувачем інформацією. Тобто, це також мікроконтролери, що програмуються одноразово (ОТР) з єдиною різницею, що програмування здійснюється не користувачем, а на підприємстві, яке їх виготовляє.
4. Мікроконтролери, які послідовно програмуються на підприємстві, що їх виготовляє(SQTP).
Це також замовні МК типу QTP, які одноразово програмуються на підприємстві, що їх виготовляє, у яких декілька комірок, що задаються користувачем, в кожному мікроконтролері програмуються різними серійними номерами. Причому, ці номери можуть бути випадковими, псевдовипадковими або послідовними. Послідовне програмування дозволяє кожному МК мати власний номер, що може бути використано в якості пароля, коду доступу чи ідентифікації.
5. Масочні мікроконтролери (ROM).
Ці МК також являються замовними і забезпечують максимально низьку вартість при великих серійних замовленнях (наприклад, такими МК є PIC16CR54, PIC16CR56, PIC16CR57, PIC16CR58 і т.д.).
2.2. Однокристальні мікроконтролери базового сімейства PIC16C5X
2.2.1. Особливості структурної організації та функціонування
Сімейство мікроконтролерів PIC16C5X почала випускати фірма Microchip першим і тому воно одержало назву “базового”. Структурна схема ОМК PIC16C5X показана на рис. 2.1. Основу структури даного мікроконтролера складають дві внутрішні шини: двонаправлена 8-бітна шина даних і 12-бітна шина команд. Шина даних зв'язує між собою всі основні функціональні блоки МК: пам'ять даних (ОЗП); арифметичнологічний пристрій (АЛП); порти вводу-виводу (PORT A, B і С); регістри стану (STATUS), побічної (непрямої) адресації (FSR), таймера-лічильника (RTCC/TMRO), програмного лічильника (PCL).
Регістри загального призначення (Register File) створюють пам’ять даних і використовуються програмою для зберігання змінних за розсудом користувача.
Регістри поділяються на дві функціональні групи: спеціальні регістри і регістри загального призначення. Спеціальні регістри включають в себе регістр таймера/лічильника реального часу (TMRO/RTCC), лічильник команд (PC), регістр стану (STATUS), регістри вводу/виводу (PORT) і регістр непрямої адресації (FSR). Крім того, спеціальні регістри керують конфігурацією портів вводу-виводу (TRIS) і режимом попереднього дільника (OPTION).
В мікроконтролерах сімейства РIС 16С5Х існує пряма та непряма адресація всіх регістрів і комірок пам'яті даних. Всі спеціальні регістри та
лічильник команд також відображаються на пам'ять даних і розміщуються в молодших адресах 0-ї сторінки (0-го банку).
Мікроконтролери PIC16С5Х мають ортогональну (симетричну) систему команд, що дозволяє виконувати будь-яку операцію з будь-яким регістром, використовуючи будь-який метод адресації. Це полегшує їх програмування і значно зменшує час, необхідний для навчання роботі з ними.
В мікроконтролерах PIC16С5Х є 8-розрядний арифметичнологічний пристрій (АЛП) і робочий регістр W. Арифметичнологічний пристрій виконує додавання, віднімання, зсув, бітові та логічні операції. У командах, що мають два операнди, одним із операндів є робочий регістр W. Другий операнд може бути константою або вмістом будь-якого регістра ОЗП. У командах із одним операндом, операнд може бути вмістом робочого регістра або вмістом будь-якого регістра. Для виконання всіх операцій АЛП використовується робочий регістр W, що не може бути прямо адресований. В залежності від результату виконання операції, можуть змінитися значення бітів переносу С,десяткового переносу DC і нуля Z у регістрі стану STATUS. При відніманні біти С і DC працюють як біти позики і десяткової позики, відповідно. В описі команд SUBWF і ADDWF наведені необхідні приклади.
До складу мікроконтролерів PIC16C5X входить ще цілий ряд функціональних блоків і вузлів, таких, наприклад, як: ПЗП/ППЗП програм (ROM/EPROM), лічильник команд або програмний лічильник (PC), стек (Stack 1,2), регістри керування портами вводу-виводу (TRIS A, B, C), сторожовий таймер Watch Dog Timer (WDT), попередній дільник Prescaler (PRS) для WDT і TMRO/RTCC, слово конфігурації Configuration EPROM (CONE), яке топологічно розташоване в ПЗП програм, блок генераторів тактових послідовностей і сигналів керування Oscillator Timing & Control (OSTC).
Вхідна тактова частота, яка надходить з виводу OSC1/CLKIN, всередині МК ділиться на чотири і з неї формуються чотири циклічні тактові послідовності Q1, Q2 , Q3 і Q4, що не перекриваються за часом (рис. 2.2).
Рис. 2.2. Цикл виконання команди
Вибірка команди та її виконання суміщені за часом таким чином, що вибірка команди займає один цикл, а її виконання наступний цикл. Ефективний час виконання команди складає один цикл. Якщо команда змінює лічильник команд (наприклад, команда GOTO), то для виконання цієї команди необхідно два цикли.
Цикл вибірки починається із збільшення лічильника команд у такті Q1. Команда зчитується з ПЗП пам’яті програм в тактах Q2 і Q3 та записується в регістр команд в такті Q4.
В циклі виконання команди вибрана команда защепується в регістр команд в такті Q1. На протязі тактів Q2, Q3 і Q4 відбувається декодування і виконання команди. В такті Q3 зчитується пам'ять даних (читання операнда), а запис відбувається в такті Q4.
Таким чином, цикл виконання команди (рис. 2.2) складається з 4-х тактів Q1 – Q4, в кожному з яких виконуються різні заздалегідь заплановані дії:
· Q1 – вибірка певної команди з пам'яті програм і її декодування або змушений NOP – “Вибірка INST (PC + 1)”;
· Q2 – вибірка даних або NOP;
· Q3 – виконання команди і обробка даних – “Виконання INST (PC)”;
· Q4 – Запис даних або NOP.
Розглянемо послідовно основні елементи структури, а також особливості організації і функціонування МК.
2.2.2. Позначення виводів і їхнє функціональне призначення
Позначення виводів PIC16C5X і їхнє функціональне призначення наведені на рис. 2.3 а також в табл. 2.1 і 2.2.
PDIP, SOIC, CERDIP, Windov
Рис. 2.3. Розташування виводів PIC16C5Х
Таблиця 2.1
Позначення і функціональне призначення виводів ОМК
PIC 16C52/16C54/16C56/16C58
Наймен. | Тип корпуса | Тип | Буфер | Примітка | |
DIP SOIC | SSOP | ||||
RAO | I/O | TTL | Двонаправлений порт вводу-виводу | ||
RA1 | I/O | TTL | |||
RA2 | I/O | TTL | |||
RA3 | I/O | TTL |
Закінчення табл. 2.1
Наймен. | Тип корпуса | Тип | Буфер | Примітка | |
DIP SOIC | SSOP | ||||
RB0 | I/O | TTL | Двонаправлений порт вводу-виводу | ||
RB1 | I/O | TTL | |||
RB2 | I/O | TTL | |||
RB3 | I/O | TTL | |||
RB4 | I/O | TTL | |||
RB5 | I/O | TTL | |||
RB6 | I/O | TTL | |||
RB7 | I/O | TTL | |||
TOCKI | ST | Вхід таймера TMRO | |||
_____ МСLR/Vpp | ST | Вхід скидання/напруги програмування. Скид низьким рівнем | |||
OSC1/CLKIN | ST | Вхід генератора або зовнішня тактова частота | |||
OSC2/CLKOUT | – | Вихід генератора. Підключається до резонатора. В режимі RC вихід ¼ тактової частоти OSC1 | |||
VDD | 15,16 | Р | – | Позитивна напруга живлення | |
Vss | 5,6 | Р | – | Загальний вивід |
Таблиця 2.2
Позначення і функціональне призначення виводів
ОМКPIC 16C55/16C57
Наймен. | Тип корпуса | Тип | Буфер | Примітка | |
DIP SOIC | SSOP | ||||
RAO | I/O | TTL | Двонаправлений порт вводу-виводу | ||
RA1 | I/O | TTL |
Закінчення табл. 2.2
Наймен. | Тип корпуса | Тип | Буфер | Примітка | |
DIP SOIC | SSOP | ||||
RA2 | I/O | TTL | Двонаправлений порт вводу-виводу | ||
RA3 | I/O | TTL | |||
RBO | I/O | TTL | Двонаправлений порт вводу-виводу | ||
RB1 | I/O | TTL | |||
RB2 | I/O | TTL | |||
RB3 | I/O | TTL | |||
RB4 | I/O | TTL | |||
RB5 | I/O | TTL | |||
RB6 | I/O | TTL | |||
RB7 | I/O | TTL | |||
RC0 | I/O | TTL | Двонаправлений порт вводу-виводу | ||
RC1 | I/O | TTL | |||
RC2 | I/O | TTL | |||
RC3 | I/O | TTL | |||
RC4 | I/O | TTL | |||
RC5 | I/O | TTL | |||
RC6 | I/O | TTL | |||
RC7 | I/O | TTL | |||
TOCKI | I | ST | Вхід таймера TMR0 | ||
MCLR/Vpp | I | ST | Вхід скидання/напруги програмування. Скид низьким рівнем | ||
OSC1/ CLKIN | I | ST | Вхід генератора/зовнішня тактова частота | ||
OSC2/CLKOUT | – | Вихід генератора. Підключається до резона- тора. В режимі RC вихід 1/4 тактової частоти OSC1 | |||
vdd | 3,4 | Р | – | Позитивна напруга живлення | |
Vss | 1,14 | Р | – | Загальний вивід | |
N/C | 3,5 | – | – | – | Не використовується |
Позначення: I – вхід, O – вихід, I/O – вхід/вихід, Р – живлення, — – не використовується, TTL – вхід ТТЛ, ST – вхід з тригером Шмітта.
2.2.3. Організація пам'яті програм
Пам'ять програм (ПЗП/ППЗП) має сторінкову організацію (рис. 2.4). Обсяг однієї сторінки 512 байтів, тому пряма адресація пам'яті програм в сімействі PIC16С5Х можлива в межах 512 байтів. Мікроконтролери PIC 16C5X мають одну, дві або чотири сторінки пам'яті програм для зберігання 12-розрядних кодів команд (512 х 12, 1024 х 12, 2048 х 12). У відповідності з цим всі ОМК даного сімейства можна поділити на три групи. Доступ до пам'яті понад 512 байтів здійснюється після переключення на відповідну сторінку пам'яті. МК PIC16C52/54/C54A/CR54/CR54A/ CR54B/C55 мають одну сторінку пам'яті програми, PIC16C56/CR56 мають 2 сторінки по 512 байтів, PIC16C57/CR57A/CR57B/C58A/CR58A/CR58B мають 4 сторінки по 512 байтів кожна.
2.2.4. Оргаізація пам'яті даних
Пам'ять даних (ОЗП) також має сторінкову організацію (рис. 2.5). Вона складається максимум з 4-х банків (0... 3). Причому, банки в різних типах PIC можуть мати різні обсяги. Мінімальний обсяг банку 16 байтів, а максимальний – 32 байти. Шина даних розрядністю 8 бітів з'єднує групу регістрів ОЗП, порти вводу-виводу і 8-розрядний арифметичнологічний пристрій. Прямо адресуються 32 байти оперативної пам'яті, інша пам'ять адресується банками по 16 байтів кожний.
Мікроконтролери PIC16C52/C54/C54A/CR54/CR54A/CR54B/C56/CR56 також мають один банк оперативної пам'яті ємністю 32 байти, з яких 25 байт можуть бути використані в якості регістрів загального призначення. Для PIC16С55, що має PORTC, обсяг – 24 байт. PIC16C57/CR57A/CR57B і PIC16C58A/CR58A/CR58B мають 4 банки пам'яті даних. Ємність для них 72 і 73 байти відповідно.
Регістри можуть бути адресовані прямо або побічно, з використанням регістра побічної (непрямої) адресації FSR. Безпосередня (пряма) адресація підтримується спеціальними командами, що завантажують дані з пам'яті програми в робочий регістр W. Регістри, як вже згадувалося, поділяються на дві функціональні групи: спеціальні регістри та регістри загального призначення.
Рис. 2.4. Організація пам'яті програм
(*) – Регістр фізично не існує
(**) – Регістр 07h для PIC16C52/C54/C56 використовується як регістр загального призначення
(***) – Банк 0 доступний у всіх мікроконтролерах сімейства PIC16C5X. Банки 1, 2, 3 доступні тільки в PIC16C57/58.
Рис. 2.5. Організація пам'яті даних
Спеціальні регістри (табл. 2.3) мають у своєму складі регістр таймера/лічильника реального часу (RTCC-TMR0), лічильник команд (PC), регістр стану (STATUS), регістри вводу-виводу (PORT) і регістр побічної адресації (FSR).
Рис. 2.14. Загальний формат команди
Для біт-орієнтованих команд "b" позначає номер біта, який бере участь в команді, а "f" – це регістр поточного банку, в якому цей біт розміщений.
Для команд передачі керування і операцій з константами “k” позначає восьми або дев'ятибітну константу.
Всі команди виконуються протягом одного командного циклу. В двох випадках виконання команди займає два командних цикли:
1. Виконання умовної команди.
2. Перевірка умови і перехід.
Один командний цикл складається з чотирьох періодів генератора. Таким чином, для генератора з частотою 4 Гц час виконання командного циклу буде 1 мкс.
Стек
Мікроконтролер PIC16C71 має 8-рівневий апаратний стек шириною 13 бітів. Область стека не належить ані до програмної області, ані до області даних, а покажчик стека користувачу недосяжний. Поточне значення програмного лічильника посилається в стек, коли виконується команда CALL або проводиться обробка переривання. При виконанні процедури повернення з підпрограми (команди RETLW, RETFIE або RETURN) в програмний лічильник вивантажується вміст стека. Регістр PCLATH (0Ah) не змінюється при операціях зі стеком.
а)
б)
Рис. 2.21. Варіанти завантаження старших бітів програмного лічильника:
а) випадок команд GOTO, CALL;
б) випадок команд, у яких результат розміщується в f2 (PCL).
Рис. 2.27. Загальний формат команди
Система команд PIC16С71 наведена в табл. 2.15 і включає в себе команди роботи з байтами, команди роботи з бітами, команди управління і операції з константами. Вона відрізняється від системи команд PIC16C5Х лише тим, що група команд передачі керування операцій з константами доповнена чотирма новими командами: ADDLW, RETFIE, RETURN, SUBLW.
Для команд роботи з байтами “f” позначає регістр, з яким виконується дія, а біт “d” визначає регістр призначення. Якщо “d” = 0 результат розміщується в W регістрі, при "d” = 1 результат розміщується в регістрі “f”, заданому в команді.
Режим пониженого споживання (SLEEP)
Робота PIC 16С84 в режимі SLEEP в основному повністю аналогічна PIC 16С71, за винятком виходу із цього режиму по перериванню. У даному МК передбачений вихід із режиму SLEEP по закінченню запису інформації в EEPROM даних-констант, оскільки переривання від АЦП відсутнє.
– Конец работы –
Используемые теги: році, фірма, GI, розробила, периферійний, контролер, Peripheral, Interface, Controller, або, PIC0.145
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: У 1975 році фірма GI розробила периферійний контролер Peripheral Interface Controller або PIC
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов