한국   대만   중국   일본 
Mikrokontroler PIC ? Wikipedie P?esko?it na obsah

Mikrokontroler PIC

Z Wikipedie, otev?ene encyklopedie
Mikrokontrolery PIC v pouzdrech DIP a QFN

Mikrokontrolery PIC jsou programovatelne polovodi?ove sou?astky - jedno?ipove mikropo?ita?e (mikro?adi?e, mikrokontrolery) vyrab?ne firmou Microchip Technology sidlici v USA . Jsou zalo?eny na harvardske architektu?e , tj. pam?ti pro data a pro program jsou navzajem odd?lene. Programova pam?? a datova pam?? nemaji stejn? dlouhe datove slovo.

Tyto programovatelne sou?astky jsou ur?eny pro nejr?zn?j?i kontrolni a ?idici ulohy v pr?myslovych oborech, pro realizaci m??icich a ?idicich system? atd. Diky sve univerzalnosti, male velikosti, nizke cen? a spot?eb? nachazeji sve uplatn?ni ve velkem mno?stvi aplikaci. Lze je nalezt v mnoha sou?asnych elektronickych za?izenich.

Kli?ova specifika mikrokontroler? PIC [ editovat | editovat zdroj ]

  • odd?lene pam?ti programu a dat ( Harvardska architektura )
  • mala mno?stvi strojovych instrukci pevne delky ( RISC )
  • vykonani v?t?iny instrukci v jedinem cyklu (4hodinove takty)
  • jediny kli?ovy registr (W), p?es ktery jsou realizovany v?echny aritmeticke a logicke operace
  • rozsahla banka datovych registr?
  • hardwarovy zasobnik
  • pam??ov? mapovane periferie a konfigura?ni registry
  • voln? p?istupny programovy ?ita? mapovany do datove pam?ti
  • p?isn? ortogonalni instruk?ni sada - neni t?eba p?esun? dat, mikro?adi?e PIC nejsou typu load-store (krom? PIC32 architektury MIPS , ktera typu load-store je).

Na rozdil od mnoha jinych procesor?, u mikrokontroler? PIC neni rozdil mezi ?pam?ti“ a vnit?nimi registry , proto?e jako RAM slou?i oba druhy teto pam?ti. V?t?inou je na RAM odkazovano jednodu?e jako na registry.

?ady mikrokontroler? [ editovat | editovat zdroj ]

Mikrokontrolery PIC jsou vyrab?ny ve 3 zakladnich provedenich:

  • Jednorazov? programovatelne ( OTP ) sou?astky - pismeno C v nazvu typu
  • Vicenasobn? programovatelne s EPROM pam?ti
  • Vicenasobn? programovatelne s FLASH pam?ti - pismeno F v nazvu typu

Podle ?i?ky datoveho slova rozli?ujeme 8bitove a 16bitove mikroprocesory PIC. Dale PIC d?lime podle ?i?ky programoveho slova (10, 12, 14 bit?, …). Z kombinace t?chto zakladnich kli?? vychazi tyto ?ady procesor? PIC:

8bitove Mikrokontrolery [ editovat | editovat zdroj ]

16bitove Mikrokontrolery [ editovat | editovat zdroj ]

  • PIC24

16bitove Digitalni Signalove Mikrokontrolery [ editovat | editovat zdroj ]

  • dsPIC30
  • dsPIC33F

32bitove Mikrokontrolery [ editovat | editovat zdroj ]

  • PIC32 (MIPS)

Instruk?ni soubor [ editovat | editovat zdroj ]

Instruk?ni soubor mikro?adi?? PIC je typu RISC a obsahuje 35 strojovych instrukci u zakladnich model? a asi 70 u vy??ich modelovych ?ad. Tyto instrukce se podle p?istupu k pam?ti d?li na:

  • bajtov? orientovane,
  • bitov? orientovane,
  • pro praci s konstantami, a
  • ?idici instrukce

Instruk?ni soubor je ortogonalni neboli symetricky, to znamena, ?e jakakoliv instrukce se da provad?t na jakemkoliv registru.

Pam?? (RAM) [ editovat | editovat zdroj ]

PIC kontrolery implementuji mno?inu registr? , ktere slou?i jako do?asna pam?? pro data, maji tedy charakter RAM pam?ti. Dale obsahuji registry, ktere konfiguruji a ?idi r?zne specialni funkce, parametry nebo periferie mikrokontroleru. Adresace pam?ti zavisi na rodin? zvoleneho kontroleru, ale v zasad? ka?da serie PIC? implementuje system bank, ktery umo??uje roz?i?it adresovatelny prostor. Nov?j?i verze procesor? jsou schopny adresovat cely prostor registr? v jednom okam?iku (nezavisle na zvolene bance), star?i a zakladni verze umo??uji p?istup ke v?em registr?m jen p?es registr zvany akumulator .

Pro implementaci nep?imeho adresovani se pou?ivaji registry file select register (FSR) a indirect data file (INDF). System nep?imeho adresovani obecn? funguje tak, ?e pro zapis nebo ?teni do registru INDF pou?ivame registr FSR, ktery obsahuje adresu na registr INDF. Nov?j?i verze procesor? zavad?ji system p?ed/po inkrementaci a dekrementaci registru FSR pro lep?i efektivitu zapisovani a ?teni sekven?nich dat(nap?. poli a ?et?zc?). Toto umo??uje zachazet s FSR registrem jako s ukazatelem na zasobnik.

Vn?j?i pam?ti (externi EEPROM , Flash …) nejsou obecn? p?imo adresovatelne, co? je dano zejmena nizkym po?tem signalovych vyvod? (krom? high-end ?ip? z rodiny PIC18 v pouzdrech s velkym mno?stvim vyvod?).

Delka slova (instrukce) [ editovat | editovat zdroj ]

Delka slova u PIC mikrokontroleru m??e byt ?asto matouci. V?echny PICy (a? do PIC18 v?etn?) pracuji a adresuji data po 8bitovych balicich, i kdy? adresovaci prostor procesoru neni obecn? stejn? velky jako prostor pro data. Nap?iklad PICy v zakladnich ( baseline : PIC12, PIC14) a st?ednich ?adach ( mid-range : PIC16) maji programovou pam?? adresovatelnou stejnym 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 programova pam?? adresovana 8 bity, co? se li?i od velikosti instrukce, ktera je 16bitova. Pro dopln?ni, kapacita programove pam?ti je ?asto udavana v po?tu ( jednoslovnych ) instrukci, ktere se do ni vejdou.

Odezva p?eru?eni [ editovat | editovat zdroj ]

P?eru?eni je okam?ity vstup do probihajiciho programu a vyvolani obslu?neho programu. Po dokon?eni tohoto podprogramu je proveden navrat do stejneho mista p?vodniho programu, kde byl p?eru?en.

Velmi u?ite?na a unikatni vlastnost PIC? je, ?e jejich odezva na p?eru?eni je konstantni (a p?irozen? take rychla), konkretn? t?i instruk?ni cykly. Je konstantni i navzdory instrukcim s r?znym po?tem instruk?nich cykl?, v p?ipad? kratkych instrukci se vklada prazdny instruk?ni cyklus, ktery zaru?i, ?e bude dosa?eno op?t konstantni prodlevy po vyvolani p?eru?eni. Externi p?eru?eni museji byt synchronizovany s instrukcemi, ktere zaberou ?ty?i instruk?ni cykly, jinak m??e dochazet k ne?adoucimu posunu o jeden instruk?ni cyklus.

Varianty procesor? a periferie [ editovat | editovat zdroj ]

Varianty periferii, ktere mohou jednotlive PICy implementovat:

  • Binarni vstupy a vystupy (I/O), konfigurovatelne podle pot?eby
  • Vnit?ni zabudovane oscilatory, nap?. pou?itelne pro RS232 komunikaci
  • 8 a? 16bitove ?asova?e
  • Vnit?ni EEPROM pam??, pro ukladani dat
  • Synchronni a asynchronni seriove rozhrani ( USART )
  • MSSP periferie pro realizaci I^2C a SPI ?seriovou“ komunikaci
  • A/D p?evodniky (a? do 50 kHz)
  • USB, Ethernet, rozhrani CAN
  • Rozhrani pro p?ipojeni externich pam?ti
  • Integrovane rozhrani pro radiove p?enosy (PIC16F639, and rfPIC)
  • periferie KEELOQ pro ?ifrovani kodu (?ifrovani/de?ifrovani)

Vyvojove nastroje a programovaci jazyky [ editovat | editovat zdroj ]

Microchip nabizi voln? sta?itelne IDE (Integrated Development Environment) nazvane MPLAB . Tento balik obsahuje assembler , linker , softwarovy simulator a debugger . Dale je prodavan i kompilator od teto firmy (C18, C30), ktery je pln? kompatibilni a lehce integrovatelny do MPLAB IDE. Je nabizena i studentska verze kompilatoru, ktera je zdarma, ale jen pro nekomer?ni vyu?iti a s vypnutymi optimalizacemi (pro 95% aplikaci v?ak pln? funk?ni).

mikroElektronika je vyrobce a dodavatel podp?rnych nastroj? pro PICy. Produkuji, jak IDE a kompilatory, tak i r?zne vyvojove desky, programova?ky a debuggery.

Open Source nastroje [ editovat | editovat zdroj ]

Nasledujici vyvojove nastroje pro PICy jsou dostupne pod GPL nebo jinou Open source licenci.

  • FreeRTOS - implementace real-time jadra opera?niho systemu pro mikrokontrolery (nejen pro PICy), podporovane verze PIC? jsou * PIC18, PIC24, dsPIC a PIC32
  • GPSIM - je "open source" simulator pro PICy, ktery umo??uje simulovat periferie (za?izeni) a tak umo??uje otestovat aplikaci bez nutnosti fyzicke p?itomnosti dane periferie (nap?. LCD).
  • Ktechlab - voln? ?i?itelne IDE pro programovani PIC mikrokontroler?. Podporuje programy napsane jak v C, assembleru, tak i v * Microbe (jazyk odvozeny z BASICu). Dale podporuje tvorbu vyvojoveho diagramu aplikace.
  • Free software tools - Obsahuje mnoho zdarma nabizenych C, C++, Pascal, Basic kompilator? pro PICy.
  • FlashForth - opera?ni system pro PICy z 18. ?ady. Tento software d?la z PICu samostatn? funk?ni po?ita? s interpretrem p?ikaz?, kompilatorem, assemblerem a multitasking re?imem.

Programatory (programova?ky, bootloadery) mikrokontroler? [ editovat | editovat zdroj ]

Tyto za?izeni jsou tradi?n? pou?ity k nahrani (?vypaleni“) programu do programove pam?ti ciloveho PICu. V?t?ina dnes dostupnych PIC? ma implementovanou funkci ICSP ( In Circuit Serial Programming - programovani sou?astky p?imo v obvod?) a LVP ( Low Voltage Programming - programovani ?nizkym“ nap?tim, nap?. 3,3 V). ICSP programovani vy?aduje obsazeni t?i pin? procesoru. Dva piny pro komunikaci, tedy pro hodiny a data, klasicky se obsazuji piny B6 a B7 u 8bitovych procesor? a jeden pin (Vpp/MCLR) pro programovaci nap?ti 12 V. LVP se obejde bez vysokeho nap?ti na Vpp/MCLR, ale zase vy?aduje dal?i extra pin, tak?e se v n?kterych aplikacich nehodi.

Mnoho PIC? z vy??ich serii a s flash pam?ti jsou schopny se samy reprogramovat, tedy zapisovat do sve vlastni programove pam?ti.

Demonstra?ni desky (Demo Boards) jsou v?t?inou dodavany s vice bootloadery, ktere umo??uji nahrat program do PICu p?es RS-232 nebo USB a tim odpada nutnost mit programova?ku. Vyhoda pro? pou?ivat ICSP je asi nejvy??i rychlost oproti ostatnim metodam (vyjmuti procesoru z desky a vlo?eni do soketu programatoru…), mo?nost ihned po programovani aplikaci spustit a take mo?nost debugovat a programovat kontroler u?itim stejnych kabel?.

Microchip programatory [ editovat | editovat zdroj ]

  • PICStart 16B1 (rozhrani RS232): programovani v socketu
  • PICStart Plus (rozhrani RS232): programovani ICSP i v socketu
  • PRO MATE II (rozhrani RS232): programovani ICSP i v socketu
  • MPLAB PM3 (rozhrani RS232 i USB): programovani ICSP i v socketu
  • MPLAB ICD2 (rozhrani RS232 a USB 1.0): pouze programovani ICSP
  • MPLAB REAL ICE (rozhrani USB 2.0): jen programovani ICSP
  • PICKit 2 (rozhrani USB): programovani i debuggovani ICSP
  • PICKit 3 (rozhrani USB): programovani i debuggovani ICSP
  • MPLAB ICD3 (rozhrani USB): programovani a komfortni debuggovani ICSP

Dal?i programatory [ editovat | editovat zdroj ]

  • Asix PRESTO (rozhrani USB): programovani ICSP, 3V3 MCU s dopl?kem (p?ipravkem)
  • Asix FORTE (rozhrani USB): programovani ICSP v?etn? 3V3 MCU

Opensource / openhardware programatory [ editovat | editovat zdroj ]

  • usbpicprog (rozhrani USB): programovani ICSP
  • Open Programmer (rozhrani USB): programovani ICSP, mo?nost p?idat socket

Literatura [ editovat | editovat zdroj ]

Souvisejici ?lanky [ editovat | editovat zdroj ]

Externi odkazy [ editovat | editovat zdroj ]