PIC: erinevus redaktsioonide vahel
Eemaldatud sisu Lisatud sisu
P Positsioonist sõltumatu koodi täpsustus |
PResümee puudub |
||
2. rida:
{{See artikkel|räägib mikrokontrollerite perekonnast; kompileerimise meetodi kohta vaata [[Positsioonist sõltumatu kood]]}}
[[Image:Microchip PIC24HJ32GP202.jpg|thumb|16-bitine PIC24 mikrokontroller joonlaua kõrval]]
'''PIC''' on RISC tüüpi käsustikuga mikrokontroller, mida arendab firma Microchip Technology. Tänapäeval mõistetakse lühendi all tavaliselt ingliskeelset
PIC on tänapäeval laialt kasutuses nii tööstustoodetes kui ka hobi korras mikrokontrolleritega tegelevate inimeste poolt. Põhjuseks on madal hind, suur kasutaja arv ja palju arendustööriistu, millega lihtsalt PIC arhitektuurile tarkvara saab luua.
10. rida:
PIC on Harvardi arhitektuuriga mikrokontroller, mis tähendab, et kood ja andmed on eraldatud erinevatesse mäludesse. Ainsaks erandiks on 32-bitised PIC mikrokontrollerid, kus kood ja andmed on samas mälus ning mis kasutavad Von Neumanni arhitektuuri. Kuna PIC on RISC tüüpi käsustikuga, siis üksikud käsud teevad korraga vähe muutusi. Seetõttu on sellel kõikide käskude suurus baitides alati sama ning suurema osa käskude täitmiseks kulub enamasti üks tsükkel, välja arvatud käskude puhul, mis muudavad järgmise tõlgendatava käsu asukohta, näiteks hüppekäskude puhul.
PIC kasutab ühte vaheregistrit W0, mis osaleb väga paljudes erinevates käskudes automaatselt ning mida ei saa asendada käsus teise registriga. Kõik RAM piirkonnad on tegelikult nagu registrid, mida saab kasutada käskudes nii sisendi kui väljundi jaoks. Isegi riistvara kontrollimise registrid on paigutatud andmemälu piirkonda. Varasematel PIC
PIC
Kõik PIC mikrokontollerid käsitlevad ja adresseerivad andmeid 8-bitiste tükkidena. Koodimälus ei pruugi aga sama olukord olla, kuna erinevatel seeriatel on ühe käsu suurus bittides erinev, näiteks leidub 12-bitiste ja 14-bitiste käskudega mudeleid. PIC18 seerias on ühe käsu suurus 16 bitti.
PIC-del on riistvaraline pinu, milles hoitakse tagasipöördumisaadresse. Riistvaraline pinu ei ole varasematel PIC seadmetel tarkvaraliselt kättesaadav, kui 18 seeria seadmetel on selle jaoks võimalused olemas.
===Andmemälu===
Andmemälu ja registrite mälu on PIC
Isegi erinevate mälupiirkondade kasutamisel oli mälu hulk väga piiratud. PIC16 seeria puhul oli staatuse registris piirkonna määramiseks vaid 2 bitti, mis tähendab, et see toetas ainult kuni nelja piirkonda, mis tähendas, et maksimaalselt sai kasutada ainult 1 kilobaiti mälu.
30. rida:
===Koodimälu===
Koodimälu on tavaliselt realiseeritud kui ROM-, EPROM-, EEPROM- või flash
8-bitistel PIC mikrokontrolleritel on koodimälu võimalik otse adresseerida ainult PIC17 ja mõnedel PIC18 mudelitel. Hilisematel on see juba võimalik ning 32-bitistel asub koodimälu juba andmemäluga koos.
36. rida:
===Käsustik===
PIC-de käsustiku suurus varieerub sõltuvalt PIC mudelist 35 käsust 80 käsuni. Käsustik sisaldab käske registrite peal operatsioonide tegemiseks, vaheregistrite (ingl. k
Mõnda käsku, näiteks bittide muutmist ja testimist, saab teha suvalise adresseeritava registri peal, kuid mitme parameetriga käsud kasutavad alati vaheregistrit W, kus W on alati kas sisendiks, väljundiks või mõlemaks. W (mõnel seerial on mitu W registrit) on ainus register, mis ei asu seadme põhimälus. W registrisse peab näiteks sisestama kõik konstandid, enne kui neid saab teistesse registritesse ümber tõsta.
61. rida:
1992. aastaks oli müügil juba kuus PIC varianti. Neli neist olid 12-bitiste käskudega, seeriast PIC16C5x. Müügil oli ka üks 14-bitiste käskudega mikrokontroller PIC16C71. See oli esimene mudel, mis sisaldas analoog-digitaalmuundurit ja võimalust kasutada katkestusi. Veel oli neil müügil üks 16-bitiste käskudega PIC17 seeria mudel PIC17C42, kuid kuna PIC17 seeria erines oluliselt varasematest, siis väga paljud ei läinudki PIC16 pealt üle PIC17 peale.
Põhiliselt müüdi küll ühekordselt kirjutatavaid PIC mudeleid, kuid müügiedu kasvatas väga oluliselt just see, et Microchip tõi müügile EEPROM
Kuna tekkis vajadus 16-bitiste käskudega seeria järele ning PIC17 ei olnud eriti edukas, arendas Microchip välja uue seeria PIC18, mida nad tutvustasid aastal 2001. PIC18 seeria oli üles ehitatud nii, et PIC16 pealt üleminek oleks võimalikult lihtne ning see seeria osutus selle võrra edukamaks.
67. rida:
Varsti hakkas Microchip välja arendama ka reaalselt 16-bitiseid mikrokontrollereid. Sellised seeriad olid PIC24 ja dsPIC, kus tegelikult käskude pikkus oli 24 bitti. Kuigi erinevus eelmistest seeriatest oli väga suur, kuna 8-bitistelt mikrokontrolleritelt mindi üle 16-bitistele, üritas Microchip teha uued seeriad väliselt sarnase ehitusega.
2007. aastal tuli Microchip välja ka 32-bitiste PIC mikrokontrolleritega, mis suurendasid oluliselt taktsagedust, maksimaalset mälu suurust ning mille peal oli võimalik jooksutada koodi RAM
==Arendustarkvara==
73. rida:
Microchip Technology pakub vabavaralist tarkvarakomplekti MPLAB, mis sisaldab tööriistu PIC peale tarkvara arendamiseks. Komplekt sisaldab assemblerit, linkerit, emulaatorit ja silurit. C kompilaator, mida Microchip PIC seadmetele pakub ning mis sobib kasutamiseks MPLAB komplektiga, on aga tasuline, kuigi on olemas katseversioon, mis töötab 60 päeva samamoodi kui tasuline, seejärel aga keeratakse kinni mõned koodi optimeerimised. Microchip pakub MPLAB kaubamärgi all kompilaatoreid seeriatele PIC18, PIC24, PIC32 ja dsPIC.
C kompilaatoreid PIC
Praegu ainus täielikult vabavaraline C kompilaator PIC mikrokontrollerite jaoks on SDCC, mis toetab mitut PIC seeriat. SDCC kasutab GPL litsentsi, seega on avatud lähtekoodiga.
93. rida:
==Eelised ja puudused==
PIC arhitektuuri on tihti väga mugav kasutusele võtta selle lihtsuse tõttu. Seesama omadus aga tekitab piiranguid, mis mõneks otstarbeks PIC
* Käsustik on suhteliselt väike ja koosneb lihtsatest käskudest (RISC arhitektuur).
101. rida:
* On loodud palju liideseid, mille kaudu saab mikrokontrolleriga suhelda.
Kõige olulisemad piirangud PIC
* Paljudel seeriatel on ainult üks vaheregister.
* Erinevate mälupiirkondade kasutamiseks tuleb nende vahel vahetada spetsiaalse registri väärtuse muutmise kaudu.
* Paljud käsud töötavad ainult kindlat tüüpi sisendi ja väljundiga. Mõned töötavad ainult
PIC18 seeria on mõningate varasematel seeriatel leiduvate piirangutega seoses teinud muutusi. Näiteks on riistvaraline pinu adresseeritav. Samuti on PIC18 seeria mikrokontrolleritel lihtsam luua ka tarkvaraline pinu, mis annab arendajale veelgi suurema kontrolli seadme üle. Seega on selle seeria peal juba teoreetiliselt võimalik vahetada mitme tegumi vahel.
|