§8.3. Що таке pic.
PIC16CXX - це 8-розрядні мікроконтролери з RISC архітектурою, вироблені фірмою Microchip Technology. Це сімейство мікроконтролерів відрізняється низькою ціною, низьким енергоспоживанням та високою швидкістю. мікроконтролери мають вбудоване ЕППЗУ програми, ОЗУ даних і випускаються в 18 та 28 вивідних корпусах.
PIC OTP - це одноразово програмовані користувачем контролери, призначені для повністю відтестованих та закінчених виробів, у яких не відбуватиметься подальших змін коду. Ці контролери випускаються в дешевих пластикових корпусах із попередньо заданим типом зовнішнього генератора - кварцовим або RC.
Для налагодження програм та макетування випускається варіант контролерів з ультрафіолетовим стиранням. Ці контролери допускають велику кількість циклів запису/стирання і мають дуже малий час стирання - зазвичай 1-2 хвилини. Однак ціна таких контролерів суттєво вища, ніж програмованих, тому їх невигідно встановлювати в серійну продукцію. Для виробів, програма яких може змінюватися, або містить будь-які змінні частини, таблиці, параметри калібрування, ключі і т.д., випускається контролер PIC16C84, що електрично стирається і перепрограмується. Він також містить електрично перепрограмоване ПЗП даних. Саме такий контролер ми і використовуватимемо для експериментів.
Щоб отримати максимальну користь від цієї статті, вам знадобиться персональний комп'ютер, сумісний з IBM PC, програматор, що підключається до паралельного порту комп'ютера, мікросхема PIC16C84, макетна плата, 8 світлодіодів з резисторами, джерело живлення +5 і панелька для мікросхеми. Ми будемо набирати маленькі шматочки програми для PIC, асемблювати їх, записувати в мікросхему і потім спостерігатирезультати на світлодіодах. Ми будемо використовувати основні мнемоніки MICROCHIP у цій статті, щоб Ви могли легше користуватися іншими прикладами застосування та лістингами, поміщеними в книзі "Embedded Control Handbook".
Ми почнемо детальний опис мікросхем сімейства PIC з тих особливостей та переваг, які виділяють ці мікроконтролери серед інших. Для застосувань, пов'язаних із захистом інформації, кожен PIC має біт секретності, який може бути запрограмований для заборони зчитування програмного коду та ПЗП даних. при програмуванні спочатку записується програмний код, перевіряється на правильність запису, та був встановлюється біт секретності. Якщо спробувати прочитати мікросхему з встановленим бітом секретності, то для PIC16C5X старші 8 розрядів коду будуть зчитуватися як 0, а молодші 4 розряди будуть скрембльовані 12 розрядів команди. Для PIC16C84 аналогічно 7 старших розрядів зчитуватимуться нулями, а 7 молодших розрядів представлятимуть скрембльовані 14 розрядів команди. електрично перепрограмований ПЗУ даних PIC16C84 при установці біта захисту не може бути раховано. На малюнку 1 представлені всі мікроконтролери, що випускаються в даний час, і дано їх короткі характеристики. (Рис на стор 2-1).
Мікроконтролери сімейства PIC мають дуже ефективну систему команд, що складається всього з 35 інструкцій. Всі інструкції виконуються за один цикл, за винятком умовних переходів та команд, що змінюють програмний лічильник, які виконуються за 2 цикли. Один цикл виконання інструкції складається із 4 періодів тактової частоти. Таким чином, при частоті 4 МГц час виконання інструкції становить 1 мосек. Кожна інструкція складається з 14 біт, що поділяються на код операції та операнд (можлива маніпуляція.з регістрами, осередками пам'яті та безпосередніми даними).
Пам'ять даних (ОЗУ) для PIC16CXX має розрядність 8 біт, пам'ять програм (ППЗУ) має розрядність 12 біт для PIC16C5X та 14 біт для PIC16CXX. Використання гарвардської архітектури дозволяє досягти високої швидкості виконання бітових, байтових та регістрових операцій. крім того, Гаpвадська архітектура допускає конвеєрне виконання інструкцій, коли одночасно виконується поточна інструкція та зчитується наступна. У традиційній же Фон-Нейманівській архітектурі команди і дані передаються через одну шину, що розділяється або мультиплексується, тим самим обмежуючи можливості конвеєризації.
Як Ви можете бачити, внутрішні фізичні та логічні компоненти, з яких складається PIC16CXX аналогічні до будь-якого іншого мікроконтролера, з яким Ви могли працювати досі. Тому писати програми для PIC не складніше, ніж будь-якого іншого процесора. Логіка, і лише логіка. Звичайно, гарвардська архітектура і велика розрядність команди дозволяють зробити код для PIC значно компактнішим, ніж для інших мікроконтролерів і істотно підвищити швидкість виконання програм.