PIC mikrovezérlő
A PIC mikrovezérlő a Microchip Technology cég által kifejlesztett Harvard architektúrájú programozható eszköz. Ez a mikrovezérlő csökkentett utasításkészletű (RISC architektúrájú), ennek köszönhetően az utasításai gyorsan elsajátíthatóak.
A PIC mikrokontroller architektúrája
[szerkesztés]A mikrovezérlők tervezésénél a minimális bonyolultságra törekedtek. A következők jellemzik:
- Kompakt kivitel. Ha csak áramot kap, már akkor is működik! Nincsen szükség bonyolult hardverelemekre, hogy ellássa a feladatát.
- A kód- és az adatmemória szétválasztása. (A Harvard architektúrából következik.)
- Kis számú és fix hosszúságú utasítás.
- A legtöbb utasítást 4 órajel alatt hajtja végre. Kivételek ez alól az ugró utasítások, mert azok kétszer annyi, vagyis 8 órajel alatt hajtódnak végre.
- A műveletekhez egyetlen általános célú regisztert, a munkaregisztert (Work, WREG vagy röviden W) használja.
- Minden adatmemória rekesz egyben regiszterként is használható. Egyes regiszterek speciális jelentéssel rendelkeznek a külső hardver elemek vezérlésében.
- Hardveres veremkezelés a szubrutinhívásokhoz.
- Mivel az utasításokban kódolva van, hogy melyik memória elemet címezzük, ezért nagyon kicsi a címezhető memóriaterület. Ezen segít a bankkezelési mód.
- Az utasításszámláló és más vezérlő regiszterek is a memóriába vannak vetítve.
- Modulszerű perifériakezelés, vagyis ugyanazok a perifériamodulok találhatóak a különböző típusú PIC-ekben feltéve, hogy rendelkeznek vele. A különböző PIC típusok leginkább a perifériák fajtáiban és a kivezetések számában térnek el.
A többi processzorral szemben a PIC mikrovezérlőnél nincs különbség adatmemória és regiszter között! RAM-ként szolgál minden általános célú regiszter.
PIC mikrovezérlők osztályozása
[szerkesztés]PIC mikrovezérlőket többféleképpen is besorolhatjuk. A Microchip cég megkülönbözteti őket architekturális módszerrel illetve felhasználási területtel. Architekturális besoroláshoz tartozik az adat- valamit utasításszélesség. Adatszélességből 8, 16, illetve újabban 32 bites változatokat különböztetünk meg, míg utasításszélesség szerint 12, 14 illetve 16 biteseket. Mivel a "bites" kifejezés az adat illetve utasítás értelmében is lehet használni, ezért a keveredés elkerülése érdekében a Microchip bevezette az, "alap", "közép" és "nagy teljesítményű" kifejezéseket (baseline, mid-range, high performance) rendre a 12, 14 illetve 16 utasításszélességek megjelölésére.
További besorolások közé tartozik a lábak ill. be/kimenetek száma. 12F vagy 12C család jellemzően 8 lábú, míg a 16F családban találhatunk 14, 18, 20 illetve 28 lábú vezérlőket. Felhasználói terület szerinti besorolásban néha úgy érezhetjük, hogy ez csak egy marketing fogás, mégis segít a feladatnak megfelelő eszköz kiválasztásában, ha alaposan áttanulmányozzuk mit javasol a gyártó cég. Tipikus alkalmazások a motorvezérlők, világítás, LED, LCD és egyéb meghajtások, tápegységek, akkumulátor töltők, háztartási készülékek stb vezérlése.
A 8 bites vezérlők közül a 12 bites utasításokkal rendelkező eszközöket egyszerűen alapkategóriaként (baseline), míg a 14 bites utasításúakat középkategóriaként (mid-range) emlegeti a gyártó cég. A 16 bites utasításszélességgel rendelkező, de még mindig 8 bites adatbusszal és adatfeldolgozóval rendelkező eszközöket már a nagy teljesítményű kategóriába (high performance) kell vennünk, hisz ezek az eszközök már nagy program- és adatmemóriával rendelkeznek, akár 12 MIPS-es feldolgozási sebességet is elérve. Ezeket a vezérlőket már kibővített utasítás készlet és intelligens bankkezelés is jellemzi, mely tovább fokozza a kódvégrehajtás hatékonyságát. Ha azonban ennél is nagyobb sebességre lenne szükségünk, akkor a 16 bites családból kell választanunk a mikrovezérlők illetve a digitális jelfeldolgozók kategóriáiból. Mindamellett az újabban megjelent 32 bites vezérlővel lehet elérni a legnagyobb számítási teljesítményt, amely már egy modern mikroprocesszor képességeivel vetekszik, mind architekturálisan, mind pedig képességeiben.
8 bites mikrovezérlők
[szerkesztés]A PIC mikrovezérlők eltérő adat és utasítás szóhosszal dolgoznak, amit a Harward architektúra alkalmazása tesz lehetővé. A 8 bites jelölés itt az adatszó hosszát jelöli. Az utasításszó hossza alapján a 8 bites PIC mikrokontrollerek a következő csoportokba sorolhatók:
Alap kategória (baseline)
[szerkesztés]Alap kategória főbb jellemzői(baseline) |
---|
|
- 12 bites utasítás szóhossz
- Megszakítási rendszere nincs.
- Hardveres verem: 2 szintű
- Teljesítmény: 5MIPS
- Maximum 3kB program memória
- Maximum 138 byte adat Ram
A lábszám senkit se tévesszen meg, hisz ebben a kategóriában is találhatunk 6-28 lábúig mindent. Számozás se legyen a kategória besorolásának mérvadója, hisz ugyan a teljes 10F sorozat ide tartozik, de találunk a 12F és a 16F jelzésűek között is alapkategóriás PIC-eket.
Kisméretű, felületszerelt tokozás elérhető:
- 6 láb, maximum 4 I/O
- DFN 2x3 vagy SOT23-6 tokozás
Kis lábszámú alap PIC-ek
- 8 láb, maximum 6 I/O
- PDIP vagy SOIC-8 tokozás
- 12F508, 12F109, 12F510
Közepes / nagy lábszámú változatok
- 18 láb, 12 I/O: 16F505, 16F506, 16F54
- 28 láb, 20 I/O: 16F57
- 40 láb, 32 I/O: 16F59
Középkategória (mid-range Archiválva 2016. szeptember 19-i dátummal a Wayback Machine-ben)
[szerkesztés]Középkategória főbb jellemzői |
---|
|
- 14 bites utasítás szóhossz
- Megszakítási rendszere: 1 szintű (prioritás nélküli)
- Hardveres verem: 8 szintű
- Teljesítmény: 5MIPS
- Maximum 14 kB program memória
- Maximum 368 Byte adat Ram
Talán az egyik legkedveltebb kategória a hobbi felhasználók körében, de az iparban is széles körben felfedezhető eszközcsalád, talán nem véletlenül. A rendelkezésre álló hardvermodulok egyszerűvé és kényelmessé teszik a fejlesztést, ugyanakkor kis mérete és jellemzően alacsony ára vonzó még a kis pénztárcájú, illetve a szűk költségvetéssel rendelkező projektek számára is.
Olyan különleges eszközöket is megtalálunk, mint pl az USB 1.1 modullal rendelkező 16C745 es 16C765, vagy a belső regulátorral rendelkező 12HV és 16HV típusok. Az összes típust nehéz lenne felsorolni, legegyszerűbb a Microchip oldalán a parametrikus kereséssel kiválasztani a megfelelőt. Néhány általánosan jól alkalmazható kedvenc típus: 12F629, 16F628A, 16F84
Továbbfejlesztett középkategória (Enhanced Mid-Range)
[szerkesztés]- 14 bites utasítás szóhossz
- Megszakítási rendszere: 1 szintű (prioritás nélküli)
- Hardveres verem: 16 szintű
- Teljesítmény: 8MIPS
- Maximum 28 kB program memória
- Maximum 1,5 kByte adat Ram
Felső kategória
[szerkesztés]A felső kategória megjelölés itt csak a 8 bites mikrokontrollerek csoportján belül értendő. Az ebbe a csoportba tartozó mikrokontrollerek típusjele 18F-el kezdődik.
- 16 bites utasítás szóhossz
- Megszakítási rendszere: 2 szintű prioritással
- Hardveres verem: 32 szintű
- Teljesítmény: Max. 16MIPS
- Maximum 128 kB program memória
- Maximum 4 kByte adat Ram
A kategórián belül két nagy csoportot különböztethetünk meg:
- "J" jelű változatok: 3,3V-os névleges feszültségű, gazdag perifériakészlettel rendelkező típusok
- "K" jelű változatok: Tágabb tápfeszültség tartományban működő (max. 5,5V), A "J" változatoknál nagyobb teljesítményű processzormagot tartalmazó típusok.
16 bites mikrovezérlők és jelfeldolgozó processzorok (DSP-k)
[szerkesztés]A kategória főbb jellemzői |
---|
|
Ebbe a csoportba a következő mikrokontroller családok tartoznak:
- PIC24FJ
- PIC24HJ
- dsPIC30F
- dsPIC33F
32 bites PIC mikrovezérlők
[szerkesztés]A 32 bites PIC mikrokontrollerek MIPS M4K processzormaggal készülnek. Ez a processzormag nem a Microchip saját fejlesztése.
Integrált perifériák
[szerkesztés]Időzítők
[szerkesztés]Timer0, Timer1, Timer2... Típustól függően több, 8 és 16 bites felbontású időzítő áramkör, melyeket felhasználhatunk megadott időközönként történő megszakítások generálására vagy különféle események számlálására.
CCP/PWM
[szerkesztés]Külső események bekövetkeztének idejét mérhetjük, vagy változtatható kitöltési tényezőjű négyszögjel generálását teszi lehetővé. (impulzusszélesség-moduláció)
EEPROM
[szerkesztés]Kikapcsolás után is megmaradó adatok tárolását lehetővé memória. Egyes PIC-ek külön EEPROM-ot tartalmaznak erre a célra, más típusok esetében a programtároló Flash memóriát használhatjuk fel erre a célra.
USART
[szerkesztés]Aszinkron soros kommunikációt lehetővé tevő periféria
USB
[szerkesztés]Léteznek USB interfésszel rendelkező PIC mikrokontrollerek. Ezek külön illesztőáramkör nélkül lehetővé teszik USB host-tal történő kommunikációt. A kommunikációs protokollt a mikrokontrollerben futó szoftverrel kell megvalósítani.
Fejlesztőeszközök
[szerkesztés]A PIC mikrovezérlők fejlesztését számos szoftveres és hardveres eszköz segíti. Szoftveres eszközök alatt főként a különböző programozási nyelveket, a hardver szoftveresen emulált munkakörnyezetét és egyéb fejlesztést segítő alkalmazásokat értjük. Hardveres eszközök között pedig programozók, demó áramkörök illetve nyomkövető hardver emulációs munkakörnyezetek széles választékát találjuk meg.
Szoftvereszközök
[szerkesztés]Fejlesztői környezetek
[szerkesztés]- MPLAB
- A Microchip cég ingyenes fejlesztői környezete, amely alkalmas különböző fordítóprogramok kezelésére, szoftverprojekt menedzselésre. Lehetővé teszi hardveres debuggerek és beépített szoftveres szimulátor valamint sok más segédeszköz (például programozók) használatát továbbá konfigurációs beállítások elvégzését. Sok más elektronikai szimulációs eszköz is közvetlenül kapcsolódik ehhez a környezethez, mint pl a Proteus VSM vagy a VirtualBreadboard.(MPLAB 8 magyar nyelvű leírása Archiválva 2018. január 7-i dátummal a Wayback Machine-ben Varga Lászlótól)
- Piklab
- Az MPLAB-hoz hasonló, de nyílt forrású projekt. Célja egy komplett fejlesztőkörnyezet létrehozása szabad szoftver formájában. Többféle fordítóprogramot és programozókészüléket támogat. Linux-on népszerű, de létezik windowsos változata is.
- Oshonsoft
- Basic fordító, IDE és PIC szimulátor. A szimulátorához néhány alapvető külső áramköri elem is kapcsolható, mint pl LCD vagy léptetőmotor
- Proteus VSM
- A Proteus szoftvert sokan csak áramkör rajzolóként illetve NYÁK tervezőként ismerik, azonban komplett spice szimulációval illetve MPLAB-hoz kapcsolható szimulációs képességekkel is bír – azaz a PIC egy virtuális áramkörbe építve szimulálható a segítségével
- VirtualBreadboard
- [1] Alapvető digitális áramköri szimulációs szoftver amely elsősorban a PIC és SX mikrokontrollerek és a hozzájuk kapcsolódó leggyakoribb áramköri elemek szimulálására szolgál
Fordítóprogramok különféle programnyelvekhez
[szerkesztés]Assembly fordítók, assemblerek
[szerkesztés]- MPASM
- Az MPLAB része: kiváló assembly fordító, makróképességekkel (ingyenes)(Assembler és a MPASM rövid, magyar nyelvű leírása[halott link] szintén Varga Lászlótól)
- miSim DE
- Fejlesztői környezet Javaban, így platformfüggetlen (ingyenes)
- djpasm
- Assembly fordító JavaScriptben megírva
- gputils
- GNU PIC segédeszközök. GPL licenccel rendelkező szabad szoftver. Tartalmaz assemblert, linkert és szimulátort.
- PicAsm
- Assembly fordító 12 és 14 bit PIC-ekre
- TDE Archiválva 2008. február 16-i dátummal a Wayback Machine-ben
- TechTools Design Environment
C fordítók
[szerkesztés]- C18, C30 Archiválva 2007. június 23-i dátummal a Wayback Machine-ben, C32 Archiválva 2007. június 23-i dátummal a Wayback Machine-ben
- A Microchip cég C fordító családja – ingyenes használatánál optimalizálási korlátozások lépnek életbe
- Bytecraft C
- Professzionális C fordító
- CCS
- CCSC fordító, amelynek korlátozott verziója megtalálható a Microchip MPLAB alap installációjában is
- CC5X
- A B Knudsen Data cég C fordítója 12, 14 ill. 16 bites PIC-ekre
- PICC
- A HI-TECH C az egyik legelterjedtebb C fordító PIC-ekhez. Gyári fordító, tekintve, hogy a HI-TECH a Microchip tulajdonába került. Korlátozott verzióját szintén tartalmazza a Microchip MPLAB alap installációja
- SDCC
- Ingyenes, nyílt forráskódú fordító mely egyre nagyobb népszerűségnek örvend
- Boost C/C++
- Népszerű C fordító valamint – talán elsőként – C++ nyelv PIC-re
- MikroC
- A mikroElektronika C fordítója
- Wiz-C
- Profi, Delphi-szerű fejlesztői rendszer PIC-re, beépített szimulátorral, ingyenes változata 2k program méretig fordít
Pascal fordítók
[szerkesztés]- JAL
- Just Another programming Language:Pascal-szerű nyelv (ingyenes)
- Pic Micro Pascal
- Ingyenes Pascal implementáció PIC-re (MPASM forrást állít elő)
- mikroPascal
- A mikroElektronika Pascal fejlesztői rendszere
- P2C
- Source Boost Pascal compiler – valójában assembly forrást készít
Basic fordítók
[szerkesztés]- BASIC87x
- Myke Predko Basic interpretere, a forráskódja is letölthető
- Basic Stamp
- A Parallax cég Basic Stamp interpreterének PIC klónja
- Great Cow Basic
- Ingyenes, nyílt forráskódú
- MBasic
- Professzionális Basic implementáció teljes fejlesztési környezettel
- mikroBASIC
- A mikroElektronika terméke
- PicBasic Pro
- Basic Stamp utasításkészlettel rendelkező fordító
- Swordfish
- Modern strukturált Basic fordító
- XCSB Archiválva 2008. február 9-i dátummal a Wayback Machine-ben
- Lite változata ingyenes
Egyéb
[szerkesztés]- Java Archiválva 2007. július 1-i dátummal a Wayback Machine-ben
- Java bájtkódból assembly kód generálása
- Java Virtual Machine
- Igen! PIC-eken!
- Forth
- RAM Technology Systems
- Mary Archiválva 2021. január 25-i dátummal a Wayback Machine-ben
- Mary Forth fordító
- PicForth
- A PIC és Forth szerelmeseinek
- Pyastra
- Python PIC-re
- ZMech Archiválva 2008. február 2-i dátummal a Wayback Machine-ben
- CASE tool PIC fejlesztésre
- Ladder logic
- Ladder logic fejlesztő eszköz és kód generátor
- Embedded Target for 16 bits PIC
- Simulink modellből PIC kód generálása
- QuantiPhi
- Simulink modellből PIC kód generálása
- CoreChart
- Folyamatábrából kód generálása
- Flowcode V3 for PIC
- Folyamatábrából kód generálása
Hardver eszközök
[szerkesztés]Programozók
[szerkesztés]Azok az eszközök tartoznak ide, amelyek lehetővé teszik a számítógépen lefordított programkód betöltését a mikrokontroller programmemóriájába.
- PICkit2 A Microchip cég egyszerű de annál nagyszerűbb ún. belépő szintű (entry level) programozója és egyben nyomkövetője. Alacsony ára, valamint a támogatott eszközök egyre bővülő listájának köszönhetően egyre népszerűbb nemcsak a hobbifelhasználók között, de a profi fejlesztők körében is. A Microchip a PICKit2 projektet nyílt forrásúvá tette. A teljes dokumentációja, beleértve a mikrokontroller programjának forrása és a PC-s kezelőprogram forrása, bárki számára elérhető és szabadon módosítható. Ennek eredményeként a projektet önkéntesek továbbfejlesztették, új funkciókkal egészítették ki, mint például logikai analizátor. Szintén a nyíltságnak köszönhető, hogy az eszközt már Linux alól is használhatjuk.
- OpenProgrammer Teljes egészében nyílt projekt. Házilag is elkészíthető USB portos programozókészülék, amelyhez Windows és Linux kezelőszoftver is tartozik nyílt forráskóddal.
- Usbpicprog Egy másik nyílt forrású programozókészülék.
- JDM Pic Egy nagyon egyszerű, mindössze néhány alkatrészből álló, programozott mikrokontrollert nem tartalmazó készülék. A soros portra csatlakozik, de azt nem a szabványos módon használja.
Nyomkövetők
[szerkesztés]Ezek az eszközök kibővített tudású programozók amelyek alkalmasak a mikrokontrollerben futó program nyomkövetésére is.
- ICD2 A Microchip cég alacsony árú nyomkövetője. Programozásra is alkalmas eszköz, azonban elsődleges felhasználási területe a programhibák felderítése a céláramkörben történő nyomkövetéssel. Használhatóságáról megoszlanak a vélemények, többek szerint a PICkit2 lassan átveszi ennek az eszköznek a szerepét.
- ICD3[halott link] Az ICD2-t leváltó programozó nyomkövető.
- PICkit3 A PICkit2-höz hasonló, újabb készülék. A PICkit2-vel ellentétben nem nyílt projekt, és azzal nem is kompatibilis. Jelenleg Linux alatt nem támogatott. (2010. augusztus 12.-i állapot szerint)
Jegyzetek
[szerkesztés]Források
[szerkesztés]További információk
[szerkesztés]- T&T / Közepes teljesítményű PIC mikrovezérlők / Felhasználói Kézikönyv
- - Mikrovezérlős Rendszerfejlesztés C/C++ nyelven I. - PIC Mikrovezérlők (ingyenes könyv) Archiválva 2013. május 15-i dátummal a Wayback Machine-ben
Kapcsolódó szócikkek
[szerkesztés]- gpsim – PIC mikrovezérlő-szimulátor