PIC processzor és környezete
Bevezetés PIC: Mikrovezérlő Programmable Intelligent Computer Mikrovezérlők főleg egyszerűbb eszközök működtetésére
Felépítés(hardware) Harvard architektúrájú mikrovezérlő Harvard architektúra: külön program- és adatmemória, külön sín Egy kártyán memória, cache, regiszterek egyben Eszközbe beépített
Felépítés(folyt) Analóg jel -> digitális -> feldolgozás -> analóg jel Időzítés lehetősége Memória: indirekt címzés lehetősége Szóhossz megegyezik alap és középkategóriás PIC-nél adat és programmemóriára(12-14 bit) Szóhossz felsőkategóriás PIC-nél: 8 bit program, 16 bit adatmemória
Felépítés(folyt) Hardveres verem, csak a 18-asoknál szoftveres kezelés -> C Konstant megszakítás késleltetés
Processzor külön programkód és adattár (Harvard architektúra) kevés fix hosszúságú művelet a legtöbb művelet 1 műveleti ciklus (4 órajel) alatt hajtódik végre, elágazásnál és ugrásnál 1 plusz késleletetési ciklus hajtódik végre egy akkumulátor (W) a műveletek végzéséhez a RAM cacheként és regiszterként is funkcionál – szokták egyszerűen regisztereknek hívni az adatokat hardware-es verem visszatérési címekkel (szubrutinok meghívása után legyen hova visszatérni) kevés címezhető memória, melyet ki lehet bővíteni blokkok használatával a program számláló is a RAM-ban található (írásával lehet különböző programszerkezeteket létrehozni)
Felépítés(software) Alacsony->felső kategória: 35 -> 80 utasítás Ciklus: programvezérlő írása Elágazás: felt. Skippel W akkumulátorral műveletek, leszámítva bit teszt/írás Megszakítás esetén adatok nem menthetők Programozás: újabb verzióknál C, régebbieknél assembly
Felépítés(folyt) Program írása „programozó” segítségével Programozó: Intelligens Szimpla: közvetlen írás Újabb PIC-ek tudják a saját programkóduk írni
Felépítés(folyt) 5 féle fő művelet: műveletek W-n literállal műveletek W-n indexelt regiszterrel, eredmény vagy W-be vagy a regiszterbe kerül bit operációk: beállítás/törlés és ezeken belül tesztelés/ugrás vezérlés átadások (goto, call, skip-ek) 0 operandusú műveletek (szubrutinból visszatérés, sleep)
Korlátozottság 1 akkumulátor kis utasításkészlet közvetlen referencia szükségeltetik a memóriára aritmetikai és logikai utasításoknál RAM blokk-kezelés szükségeltetik, emiatt a kód elveszti hatékonyságát és bonyolulttá válik kis hardveres verem, így nem enged nagy mélységet a programoknak, szoftveres verem pedig nem hatékony program memóriát közvetlen nem lehet címezni (kivéve új modellek) régi modellek esetében közvetlen parancsok elágazásra hiányoznak, így skip-pel kell megoldani