Choď na obsah Choď na menu
 

PIC2

Škola programování PIC 2

Nyní se podíváme na to, co je to vlastně procesor a co umí.

Předně bych chtěl uvést, že procesor není žádná zázračná součástka a že toho prakticky mnoho neumí. V podstatě umí jen přesun dat (například mezi pamětí a výstupy) a základní matematické operace. Ale má jednu velkou výhodu: Umí pracovat samostatně, nezávisle na okolí. A to už běžné číslicové obvody neumějí (vyjma časovačů). Co to znamená? Například to, že na jeden povel umí vykonat spoustu různých operací a na další jich vykoná jinou spoustu, což by se s běžnými klopnými obvody dělalo dost těžko.

Tak se na procesor podíváme trochu podrobněji.
Všechny procesory PIC jsou typu RISC, tedy procesory s omezenou instrukční sadou. To znamená, že je k dispozici pouze několik málo příkazů (35), jejichž zpracování trvá pouze jeden (maximálně dva) strojové takty a v paměti zabírají vždy po jednom slově.
Jeden strojový takt je rychlost, se kterou procesor zpracovává příkazy a odvíjí se od kmitočtu oscilátoru jeho vydělením 4. Je-li například použit krystal 4MHz, můžete si lehce spočíst, že jeden takt trvá 1us (jednu mikrosekundu). Během tohoto jednoho taktu procesor provede jednu instrukci a zároveň si připraví tu následující. Většina instrukcí proto trvá přesně jeden takt. Pouze instrukce, které naruší plynulý běh programu (skokové instrukce) trvají dva takty, protože procesor nevyužije připravenou instrukci a musí načítat další.

Rozložení vývodů procesoru a základní technická data
Vlastní rozložení vývodů na procesoru je patrné z tohoto obrázku:

A teď s popisem:
RA0 - RA4 - vývody portu A (5)
RB0 - RB7 - vývody portu A (8)
MCLR - reset, stačí připojit přímo na +Ucc (procesor se resetuje sám)
Vss - zem napájecího napětí
Vdd - plus napájecího napětí (2 - 6 V)
OSC1, OSC2 - vývody na připojení oscilátoru

 

Počet instrukcí 35
Velikost programové paměti 1024 slov
Velikost datové paměti RAM 68 bytů
Velikost paměti EEPROM 64 bytů
Počet I/O vývodů 13
Počet časovačů 1
Velikost zásobníku 8 úrovní
Typy oscilátorů

RC, XT, HS, LP

Napájecí napětí 2 až 6 V
Odebíraný proud < 1uA – 2V standby
15uA – 2V, 32 kHz
< 2mA – 5V, 4 MHz
Zatížitelnost portů 20mA
Další vybavení Power-on Reset
Power-up Timer
Oscilator Start-up Timer
Watchdog Timer
Code-protection
SLEEP mode

Co obsahuje uvnitř
To je nejlépe vidět na obrázku jeho blokového zapojení. Není na první pohled moc přehledné a tak nejdůležitější části raději popíšu:

ALU
[Aritmeticko Logická Jednotka]
Je to hlavní část každého procesoru. Zde se vykonávají všechny příkazy a matematické operace.

W reg
Další neméně důležitou částí procesoru je registr W. Je to taková malá mezipaměť, přes kterou se provádí většina operací. Například, nemůžeme z paměti přesunout nějakou hodnotu přímo na výstupy. Nejprve si ji uložíme do tohoto registru a až dalším příkazem ji přesuneme dál (na výstupní registr).

Program Memory
Jak už název napovídá, je to paměť ve které je uložen vlastní program. U tohoto procesoru, jakož i u ostatních které mají v názvu písmeno "F", je typu FLASH. To znamená, že je možné do ní program nahrát a vždy ho jedním povelem smazat a nahrát jiný. U levnějších procesorů je tato paměť typu EPROM, takže ji lze smazat pouze UV zářením, nebo u verzí bez mazacího okénka Rentgenovým zářením.
Tato paměť má kapacitu 1024 slov (1 slovo = 14 bitů) a jeden příkaz v ní uložený zabírá pouze jedno slovo.

RAM
Druhou pamětí v procesoru je paměť RAM se 68 byty. Ta je rozdělena do dvou tzv. BANK (jakoby na dvě paměti) a celkem obsahuje 68 registrů (bajtů). Z toho v první bance (adresy 00h - 4Fh) je prvních 12 registrů systémových (do adresy 0Bh) a zbytek jsou uživatelské registry. V druhé bance (adresy 80h - CFh) je opět na začátku 12 registrů systémových (do 8Bh)a zbytek uživatelských. Ovšem tyto uživatelské registry již nejsou fyzické. Je to jen kopie registrů z první banky.
Takže ze začátku paměti jsou vždy uloženy různá nastavení a informace o běhu procesoru a zbytek paměti je plně k dispozici programátorovi na odkládání různých mezivýsledků. Registrům a rozdělení paměti se ještě budeme podrobně věnovat později.

EEPROM
Je to poslední větší paměť v procesoru (64 bytů). Komunikace s ní není tak jednoduchá jako s předchozí pamětí a při zápisu je relativně pomalá (desítky ms). Zato si svůj obsah uchová i po odpojení napájecího napětí, proto se hlavně hodí k ukládání různých nastavení, hesel a podobně.
Výrobce udává její životnost minimálně 10.000.000 zápisů a svůj obsah si bez napájení uchová více než 40 let.

I/O Ports
Další částí procesoru jsou vstupně-výstupní porty. Tento procesor jich obsahuje celkem 13 a jelikož se pracuje s byty, má je rozděleny do dvou portů. Celý port B (RB0 - RB7) a zbytek port A (RA0 - RA4).
Každý z těchto vývodů se dá zvlášť nastavit buď jako vstupní, nebo výstupní a to i kdykoliv při běhu procesoru.

TMR
Tento procesor také obsahuje jeden 8 bitový čítač / časovač.
A další obvody, ty ale pro nás v tuto chvíli nejsou podstatné.