From Wikipedia, the free encyclopedia
Mikrokontroléry PIC jsou programovatelné polovodičové součástky - jednočipové mikropočítače (mikrořadiče, mikrokontroléry) vyráběné firmou Microchip Technology sídlící v USA. Jsou založeny na harvardské architektuře, tj. paměti pro data a pro program jsou navzájem oddělené. Programová paměť a datová paměť nemají stejně dlouhé datové slovo.
Tyto programovatelné součástky jsou určeny pro nejrůznější kontrolní a řídící úlohy v průmyslových oborech, pro realizaci měřicích a řídicích systémů atd. Díky své univerzálnosti, malé velikosti, nízké ceně a spotřebě nacházejí své uplatnění ve velkém množství aplikací. Lze je nalézt v mnoha současných elektronických zařízeních.
Na rozdíl od mnoha jiných procesorů, u mikrokontrolérů PIC není rozdíl mezi „pamětí“ a vnitřními registry, protože jako RAM slouží oba druhy této paměti. Většinou je na RAM odkazováno jednoduše jako na registry.
Mikrokontroléry PIC jsou vyráběny ve 3 základních provedeních:
Podle šířky datového slova rozlišujeme 8bitové a 16bitové mikroprocesory PIC. Dále PIC dělíme podle šířky programového slova (10, 12, 14 bitů, …). Z kombinace těchto základních klíčů vychází tyto řady procesorů PIC:
Instrukční soubor mikrořadičů PIC je typu RISC a obsahuje 35 strojových instrukcí u základních modelů a asi 70 u vyšších modelových řad. Tyto instrukce se podle přístupu k paměti dělí na:
Instrukční soubor je ortogonální neboli symetrický, to znamená, že jakákoliv instrukce se dá provádět na jakémkoliv registru.
PIC kontroléry implementují množinu registrů, které slouží jako dočasná paměť pro data, mají tedy charakter RAM paměti. Dále obsahují registry, které konfigurují a řídí různé speciální funkce, parametry nebo periférie mikrokontroléru. Adresace paměti závisí na rodině zvoleného kontroléru, ale v zásadě každá série PICů implementuje systém bank, který umožňuje rozšířit adresovatelný prostor. Novější verze procesorů jsou schopny adresovat celý prostor registrů v jednom okamžiku (nezávisle na zvolené bance), starší a základní verze umožňují přístup ke všem registrům jen přes registr zvaný akumulátor.
Pro implementaci nepřímého adresování se používají registry file select register (FSR) a indirect data file (INDF). Systém nepřímého adresování obecně funguje tak, že pro zápis nebo čtení do registru INDF používáme registr FSR, který obsahuje adresu na registr INDF. Novější verze procesorů zavádějí systém před/po inkrementaci a dekrementaci registru FSR pro lepší efektivitu zapisování a čtení sekvenčních dat(např. polí a řetězců). Toto umožňuje zacházet s FSR registrem jako s ukazatelem na zásobník.
Vnější paměti (externí EEPROM, Flash…) nejsou obecně přímo adresovatelné, což je dáno zejména nízkým počtem signálových vývodů (kromě high-end čipů z rodiny PIC18 v pouzdrech s velkým množstvím vývodů).
Délka slova u PIC mikrokontroléru může být často matoucí. Všechny PICy (až do PIC18 včetně) pracují a adresují data po 8bitových balících, i když adresovací prostor procesoru není obecně stejně velký jako prostor pro data. Například PICy v základních (baseline: PIC12, PIC14) a středních řadách (mid-range: PIC16) mají programovou paměť adresovatelnou stejným počtem bitů jako je velikost instrukce, tedy 12 bitů pro baselines a 14 bitů pro mid-range procesory. Naproti tomu u procesorů v řadě 18 (PIC18) je programová paměť adresována 8 bity, což se liší od velikosti instrukce, která je 16bitová. Pro doplnění, kapacita programové paměti je často udávána v počtu (jednoslovných) instrukcí, které se do ní vejdou.
Přerušení je okamžitý vstup do probíhajícího programu a vyvolání obslužného programu. Po dokončení tohoto podprogramu je proveden návrat do stejného místa původního programu, kde byl přerušen.
Velmi užitečná a unikátní vlastnost PICů je, že jejich odezva na přerušení je konstantní (a přirozeně také rychlá), konkrétně tři instrukční cykly. Je konstantní i navzdory instrukcím s různým počtem instrukčních cyklů, v případě krátkých instrukcí se vkládá prázdný instrukční cyklus, který zaručí, že bude dosaženo opět konstantní prodlevy po vyvolání přerušení. Externí přerušení musejí být synchronizovány s instrukcemi, které zaberou čtyři instrukční cykly, jinak může docházet k nežádoucímu posunu o jeden instrukční cyklus.
Varianty periférií, které mohou jednotlivé PICy implementovat:
Microchip nabízí volně stažitelné IDE (Integrated Development Environment) nazvané MPLAB. Tento balík obsahuje assembler, linker, softwarový simulátor a debugger. Dále je prodáván i kompilátor od této firmy (C18, C30), který je plně kompatibilní a lehce integrovatelný do MPLAB IDE. Je nabízena i studentská verze kompilátoru, která je zdarma, ale jen pro nekomerční využití a s vypnutými optimalizacemi (pro 95% aplikací však plně funkční).
mikroElektronika je výrobce a dodavatel podpůrných nástrojů pro PICy. Produkují, jak IDE a kompilátory, tak i různé vývojové desky, programovačky a debuggery.
Následující vývojové nástroje pro PICy jsou dostupné pod GPL nebo jinou Open source licencí.
Tyto zařízení jsou tradičně použity k nahrání („vypálení“) programu do programové paměti cílového PICu. Většina dnes dostupných PICů má implementovanou funkci ICSP (In Circuit Serial Programming - programování součástky přímo v obvodě) a LVP (Low Voltage Programming - programování „nízkým“ napětím, např. 3,3 V). ICSP programování vyžaduje obsazení tří pinů procesoru. Dva piny pro komunikaci, tedy pro hodiny a data, klasicky se obsazují piny B6 a B7 u 8bitových procesorů a jeden pin (Vpp/MCLR) pro programovací napětí 12 V. LVP se obejde bez vysokého napětí na Vpp/MCLR, ale zase vyžaduje další extra pin, takže se v některých aplikacích nehodí.
Mnoho PICů z vyšších sérií a s flash pamětí jsou schopny se samy reprogramovat, tedy zapisovat do své vlastní programové paměti.
Demonstrační desky (Demo Boards) jsou většinou dodávány s více bootloadery, které umožňují nahrát program do PICu přes RS-232 nebo USB a tím odpadá nutnost mít programovačku. Výhoda proč používat ICSP je asi nejvyšší rychlost oproti ostatním metodám (vyjmutí procesoru z desky a vložení do soketu programátoru…), možnost ihned po programování aplikaci spustit a také možnost debugovat a programovat kontrolér užitím stejných kabelů.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.