Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Instrukcje maszynowe PIC

Architektura PIC

obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI
Podrozdziały

obrazek

Architektura PIC

Mikrokontrolery PIC (ang. Peripheral Interface Controller) są układami mikroprocesorowymi produkowanymi w olbrzymich ilościach przez firmę Microchip. Z powodu niskiej ceny oraz bogatej oferty i dostępności mikrokontrolery PIC stały się bardzo popularne wśród studentów, elektroników i hobbistów. 8-bitowe mikrokontrolery PIC można podzielić na cztery duże  rodziny:

Każda kolejna z tych rodzin cechuje się coraz większymi możliwościami mikrokontrolerów.  Mikrokontrolery PIC posiadają podobne funkcje wyprowadzeń w obrębie układów o tej samej liczbie nóżek, co często pozwala stosować je zamiennie między sobą. Dodatkowo architektura mikrokontrolerów PIC jest bardzo podobna, co ułatwia naukę i zastosowanie.

Procesor PIC jest procesorem RISC (ang. Reduced Instruction Set Computer – komputer o zredukowanej liście rozkazów). Dzięki temu procesor działa bardzo szybko, rozkazy są wykonywane co jeden takcie zegara – w rzeczywistości taktów jest więcej (pobranie, dekodowanie i wykonanie), lecz PIC stosuje nakładkowanie (ang. pipelining): polega to na tym, iż rozkazy są dekodowane i wykonywane w trakcie pobierania następnego rozkazu. Poniższy rysunek wyjaśnia ideę nakładkowania:

W efekcie program jest wykonywany szybciej (w mniejszej liczbie taktów) - w PIC jedna instrukcja co 1 takt zegara (w rzeczywistości 1 instrukcja wykonywana jest w 4 taktach zegara, lecz nakładkowanie przyspiesza ten proces). Architektura RISC wymusza małą liczbę rozkazów, które wykonuje mikroprocesor PIC. Rozkazy te są proste i łatwe do zapamiętania. Mała liczba rozkazów (około 35) upraszcza ich dekodowanie (rozpoznawanie przez mikroprocesor po pobraniu z pamięci), co również przekłada się na przyspieszenie działania. Możesz tutaj zadać pytanie: skoro to takie piękne, to dlaczego nie produkuje się wszystkich mikroprocesorów jako RISC? Otóż dlatego, iż zaletą RISC jest duża szybkość wykonywania rozkazów, jednak wadą może być to, iż rozkazy te są bardzo proste i przy bardziej skomplikowanym przetwarzaniu trzeba tych rozkazów wykonać dużo, co niweluje wtedy zalety RISC. Na szczęście takie sytuacje nie występują nader często.

Procesor PIC składa się ze standardowych modułów:

  1. Jednostka arytmetyczno/logiczna, JAL, (ang. Arithmetic/Logic Unit, ALU) wykonuje operacje arytmetyczne i logiczne na przetwarzanych danych.
  2. Moduł pamięci (ang. Memory Unit, MU) przechowuje pobrane instrukcje.
  3. Moduł sterujący (ang. Control Unit, CU) steruje zewnętrznymi i wewnętrznymi modułami peryferyjnymi, które są połączone z mikroprocesorem
  4. Rejestr roboczy, akumulator (ang. Working register, W) jest używany do przechowywania argumentu i wyniku niektórych operacji wykonywanych przez JAL.

Mikroprocesor PIC posiada architekturę harwardzką (ang. Harward Architecture), co oznacza rozdzielenie pamięci programu z instrukcjami dla mikroprocesora od pamięci danych. Takie rozwiązanie upraszcza budowę mikroprocesora, co dodatkowo przyspiesza jego działanie. W PIC pamięć składa się z pamięci RAM i ROM:

W pamięci RAM znajdują się trzy przestrzenie (obszary adresowe):

Rejestry SFR i GPR znajdują się we wspólnej przestrzeni danych, zwanej plikiem rejestrów (ang. Register File). Takie rozwiązanie pozwala na dostęp do SFR i GPR przy pomocy tych samych instrukcji mikroprocesora.

W pamięci ROM znajdują się dwie przestrzenie:

Mikrokontroler PIC posiada szereg modułów we/wy, które pełnią różne funkcje.

Porty umożliwiają przesyłanie danych pomiędzy PIC a różnymi urządzeniami zewnętrznymi. Porty są dwukierunkowe i mikroprocesor uzyskuje do nich dostęp poprzez odpowiednie rejestry SFR.

Timery umożliwiają odmierzanie czasu oraz generowanie różnych przebiegów czasowych, np. PWM.

Przetwornik A/C pozwala dokonywać pomiarów napięć analogowych.

Komparator analogowy umożliwia porównywanie ze sobą napięć doprowadzonych do dwóch końcówek mikrokontrolera. 

Moduły komunikacyjne UART, USART, SPI i I2C umożliwiają komunikację pomiędzy mikrokontrolerem PIC a zewnętrznymi modułami we/wy (np. zegarem RTC, pamięciami EEPROM, wyświetlaczami LCD/LED, klawiaturami, itp.).

Licznik zegarowy (ang. Watchdog Timer, WDT) służy głównie do zabezpieczania stabilnej pracy mikrokontrolera. Licznik zegarowy resetuje mikrokontroler po zliczeniu do maksymalnej wartości. Aby zapobiec resetowi, mikrokontroler zeruje ten licznik w wybranych punktach programu. Jeśli z jakiś powodów program się zablokuje i nie dokona na czas zerowania licznika zegarowego, to ten zresetuje mikrokontroler po zliczeniu do swojego maksimum. Dzięki temu mikrokontroler podejmie na nowo pracę. Oczywiście program musi być napisany z uwzględnieniem tej opcji, ale to już jest zmartwienie programisty.

Przerwania pozwalają mikrokontrolerowi reagować na różne zdarzenia bez ciągłego sprawdzania, czy dane zdarzenie wystąpiło. Jeśli takie zdarzenie się pojawi, mikroprocesor przerywa wykonywanie programu głównego i przechodzi do procedury obsługującej zdarzenia. Procedura ta rozpoznaje rodzaj zdarzenia i podejmuje odpowiednie działania, po czym następuje powrót do wykonywania programu głównego.

Oscylatory służą do generowania przebiegu zegarowego, który taktuje pracę mikrokontrolera. Oscylator zewnętrzny wymaga dołączenia zewnętrznych składników (np. kwarcu, kondensatorów, oporników). Oscylator wewnętrzny pracuje bez dodatkowych elementów, jednakże jego częstotliwość nie jest wysoko stabilna i dokładna.

Na początek:  podrozdziału   strony 

Porównanie architektur PIC

8-bitowe mikrokontrolery PIC można podzielić na cztery główne rodziny:
  Rodzina podstawowa Rodzina średnia Rodzina rozszerzona Rodzina wysokiej klasy
Liczba końcówek 6...40 8...64 8...64 18...100
Przerwania Brak Pojedyncze przerwanie Pojedyncze przerwanie z zapamiętaniem kontekstu sprzętowego Wielokrotne przerwania z zapamiętaniem kontekstu sprzętowego
Osiągi 5 MIPS 5 MIPS 8 MIPS Do 16 MIPS
Instrukcje 33 12-bitowe 35 14-bitowych 49 14-bitowych 83 16-bitowe
Pamięć programu Do 3 KB Do 14 KB Do 28 KB Do 128 KB
Pamięć danych Do 138 B Do 368 B Do 1,5 KB Do 4 KB
Stos sprzętowy 2 poziomy 8 poziomów 16 poziomów 32 poziomy
Własności - komparator
- 8-bitowy przetwornik A/C
- pamięć danych
- wewnętrzny oscylator
Dodatkowo do rodziny podstawowej:
- SPI/I2C
- UART
- Moduły PWM
- LCD
- 10-bitowy przetwornik A/C
- Wzmacniacz operacyjny
Dodatkowo do rodzimy średniej:
- wiele modułów komunikacyjnych
- liniowa przestrzeń programowa
- moduły PWM z niezależnymi podstawami czasu
Dodatkowo do rodziny rozszerzonej:
- sprzętowy układ mnożący 8 x 8 bitów
- CAN
- CTMU
- USB
- Ethernet
- 12-bitowy przetwornik A/C
Niski koszt, małe wymiary Optymalny koszt do osiągów Efektywny koszt przy większych osiągach i większej pamięci Wysokie osiągi, optymalizacja do programowania w C, zaawansowane moduły peryferyjne

Rodzina podstawowa
(ang. base-line PIC family)

PIC10F2xx
PIC12F5xx
PIC16F5x
PIC16F5xx

Rodzina średnia
(ang. mid-range PIC family)

PIC10F3xx
PIC12F6xx
PIC12F7xx
PIC16F6xx
PIC16F7xx
PIC16F8xx
PIC16F9xx

Rozszerzona rodzina średnia
(ang. enhanced mid-range PIC family)

PIC12F1xxx
PIC16F1xxx

Rodzina wysokiej klasy
(ang. high end PIC family)

PIC18Fxxx

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.