niedziela, 27 marca 2011

Rejestry specjalne MCS-51

Obszar pamięci o adresach od 0x80 do 0xFF nazywany jest obszarem rejestrów specjalnych (SFR – Special Function Registers). Rejestry te pozwalają na sterowanie różnymi funkcjami mikrokontrolera. Obszar ten nie jest ciągły (nie wszystkie adresy są zajęte) – umożliwia to ewentualne uzupełnienie obszaru o nowe funkcje.

Układ rejestrów w pamięci

* – adresowane bitowo (adresy podzielne przez 8)
AdresSymbolBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0xF0*B        
0xE0*ACC        
0xD0*PSWCYACF0RS1RS0OV-P
0xC0*IP---PSPT1PX1PT0PX0
0xB0*P3/RD/WRT1T0/INT1/INT0TxDRxD
0xA8*IEEA--ESET1EX1ET0EX0
0xA0*P2        
0x99SBUF        
0x98*SCONSM0SM1SM2RENTB8RB8TIRI
0x90*P1        
0x8DTH1        
0x8CTH0        
0x8BTL1        
0x8ATL0        
0x89TMODGATEC/TM1MOGATEC/TM1M0
0x88*TCONTF1TR1TF0TR0IE1IT1IE0IT0
0x87PCONSMOD---GF1GF0PDIDL
0x83DPH        
0x82DPL        
0x81SP        
0x80*P0        

Ważniejsze rejestry specjalne

  • ACC – akumulator, jeden z najczęściej wykorzystywanych rejestrów, gdyż obsługuje większość operacji arytmetycznych, logicznych, skoków warunkowych i wiele innych
  • B – dodatkowy rejestr, wykorzystywany w trakcie operacji mnożenia (MUL) i dzielenia (DIV)
  • PSW – rejestr stanu programu (Program Status Word), jest to zbiór różnych flag (wskaźników):
    • PSW.1=F1 – począwszy od 8052, flaga którą może zdefiniować użytkownik
    • PSW.2=OV (Overflow) – przepełnienie, przekroczenie zakresu liczb w kodzie uzupełnienia do 2 (U2)
    • PSW.3=RS0 (Register Bank Switch) młodszy bit numeru banku
    • PSW.4=RS1 (Register Bank Switch) starszy bit numeru banku
    • PSW.5=F0 – flaga ogólnego zastosowania
    • PSW.6=AC (Auxiliary Carry) – przeniesienie z młodszej do starszej tetrady (istotne w rozkazach arytmetycznych BCD)
    • PSW.7=CY (Carry) – przeniesienie z najstarszego bitu (oznacza np. przekroczenie zakresu przy sumowaniu NKB)
  • Porty P0-P3 – wykorzystywane są do komunikacji ze światem zewnętrznym (wszelkimi urządzeniami peryferyjnymi), niektóre mają jeszcze dodatkowe funkcje
    • P0 i P2 – mogą zostać wykorzystanie jako wyprowadzenia szyny systemowej mikrokontrolera
    • P1 – portu ogólnego zastosowania
    • P3 – port posiada wyspecjalizowane linie (w SFR przedstawiane jako bity)
      • RD – odczyt pamięci danych
      • WR – zapis pamięci danych
      • T0,T1 – wejścia timerów zewnętrznych (zliczanie impulsów trybie pracy timerów jako liczniki)
      • INT0,INT1 – wejścia zewnętrznych przerwań
      • TxD, RxD – wysyłanie (Transmit) i odbieranie (Receive) danych (Data) przy transmisji szeregowej
  • Sterowanie przerwań
    • IE – zezwolenia dla przerwań (Interrupt Enable)
      • EA – ogólne zezwolenie dla przerwań
      • ES – zezwolenie dla przerwań od transmisji szeregowej
      • ET0, ET1 – zezwolenie dla przerwań od timerów
      • EX0, EX1 – zezwolenie dla przerwań zewnętrznych
    • IP – priorytety przerwań (Interrupt Priority)
      • PS – priorytet dla przerwań od transmisji szeregowej
      • PT0, PT1 – priorytet dla przerwań od timerów
      • PX0, PX1 – priorytet dla przerwań zewnętrznych
    • TCON – tylko młodsze 4 bity
      • IE0, IE1 – flagi przerwań zewnętrznych (zgłoszenie zewnętrznego przerwania)
      • IT0, IT1 – sposób zewnętrznego przerwania (0 – poziom niski, 1 – opadające zbocze)
  • DPTR – 16-bitowy wskaźnik adresu danych
    • DPH – starszy bajt wskaźnika
    • DPL – młodszy bajt wskaźnika
  • SP – wskaźnik stosu (Stack Pointer)

Timery 8051

Sterowanie timerów:
  • TMOD – młodsze 4 bity odpowiadają timerowi 0, starsze – timerowi 1
    • GATE – bramkowanie, zliczanie impulsów kiedy GATE=0
    • C/T – tryb pracy timera (0 – timer wewnętrzny, 1 – licznik impulsów zewnętrznych)
    • M0, M1 – ustalają trybu pracy licznika
M1M0Tryb
000licznik 13-bitowy
011licznik 16-bitowy
102licznik 8-bitowy z autoprzeładowaniem
113T0 i T1 jako osobne liczniki 8-bitowe

W trybie 3 działa de facto tylko TLx (młodsze 8 bitów licznika), w momencie wygenerowania sygnału przepełnienia, do TLx ładowana jest wartość THx który w tym trybie pełni funkcje rejestru stałej.
  • TCON – starsze 4 bity
    • TF0, TF1 – flaga przepełnienia timera
    • TR0, TR1 – flaga pracy timera (0 – stop, 1 – zliczanie)
Timery generują sygnał TFx przy przekroczeniu maksymalnej wartości – odpowiednio 2^13, 2^16, 2^8. Jako, ze są to liczniki zliczające w przód, oraz ich inkrementacja następuje co jeden cykl zegarowy w celu kontrolowania odmierzanego przez nie czasu Tx jako wartość początkowa do TH | TL należy wpisać wartość

Tx = (maksimum zakresu w danym trybie-X)*12 *Tsoc

gdzie: maksimum zakresu w trybie 16 bit = 65 536, 8-bitowym = 256, a Tosc = 1/Częstotliwość układu taktującego W trybie 2 należy ta samą wartość wpisać zarówno do rejestrów TH i TL

Treść skopiowana z wikipedii

środa, 23 marca 2011

Mikroprocesory z rodziny 51

Jednym z pierwszych dostępnych układów mikroprocesorowych są układy z rodziny MCS-51 (tzw pięćdziesiątka jedynka). Nie są one bardzo wydajne ani bardzo rozbudowane, a ich rozwój został zaprzestany. Mimo to są one dostępne na rynku i będą dostępne jeszcze dłuższy czas.

Co zawierają kości z rodziny 51?
- jednostka arytmetyczno logiczna - 8 bitowa
- cyforwe linie danych I/O - 4 porty 8 bitowe
- standard portu szeregowego TTL (z transmiją synchroniczną lub asynchroniczną)
- układ zegarowy, generator sygnału taktującego
- dwa czasomierze / liczniki cztero trybowe 8 bitowe czasem trzeci 16 bitowy
- pamięć ROM - 4kB + do 64kB zewnętrznej
- pamięć RAM - 128B/256B + do 64kB zewnętrznej
- 4 rejestry robocze przełączalne
- procesor funkcji logicznych (jednobitowy)
- przerwania z chierarchią priorytetów
- zbiór rejestrów specjalnych SFR
seria S zawiera również:
- kasowalną pamięć ROM (eeprom)
- możliwość programowania szeregowego

Dla kogo polecane.
Układy te można polecić osobom, które chcą pobawić się elektroniką, ale nie zamierzają robić większych projektów (choć i takie może obsłużyć rodzinka 51). Obsługa mikroprocesorów we wszystkich wydaniach wygląda podobnie, ale przejście z jednej rodziny na inną bywa kłopotliwe (różne kody, minimalnie inne sterowanie).

Czym jest mikroprocesor

W dzisiejszych czasach elektronika jest obecna dosłownie wszędzie, począwszy od zwykłego żelazka czy żarówkę, poprzez pralki, lodówki, a skończywszy na samochodach, samolotach i systemach inteligentnych. Wszystko to nie było by tak proste i tanie gdyby nie mikroprocesory.

Mikroprosecory są sercem układów cyfrowych. Strują one wszystkimi funkcjami podzespołów elektronicznych, a ich funkcjonalność zależy tylko i wyłącznie od osoby piszącej kod dla danego układu i mikroprocesora. W niewielkim procencie zależy również od rodzaju mikroprocesora, ponieważ nie do wszystkich zadań można żyć najtańszych urządzeń.

Definicja z wikipedii: "Mikroprocesor – układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji (LSI) zdolny do wykonywania operacji cyfrowych według dostarczonego ciągu instrukcji."

Czym jest mikroprocesor?
Dla większych układów stanowi on jedynie podzespół sterujący całością. Dla mniejszych może być nawet prawie całością układu.

Co jest w środku mikroprocesora?

Budowa Logiczna
· ALU - jednostka arytmetyczno-logiczna - wykonuje operacje logiczne na podstawie zapisanych lub wprowadzanych danych (algebra boolea)
· CU - układ sterowania (nazywany również dekoderem rozkazów), rozszyfrowuje rozkazy i steruje blokami mikroprocesora
· rejestr - wewnętrzna pamięć mikroprocesora podzielona na poszczególne komórki o nie wielkich rozmiarach. Odpowiadają za przechowywanie wyników nieskomplikowanych obliczeń  (rejestr danych - akumulator) oraz adresów lokacji w pamięci operacyjnej  (rejestry adresowe). W mikroprocesorach występują również rejestry specjalnego przeznaczenia takie jak:
a) PC - licznik rozkazów - adres następnej do wykonania instrukcji
b) IR - licznik instrukcji - przechowuje kod instrukcji aktualnie wykonywanej
c) SP - wskaźnik stosu - adres wierzchołka stosu

Budowa fizyczna
· jednostka arytmetyczno logiczna ALU - to tu odbywa się całe przeliczanie i sterowanie mikroprocesorem i dołączonymi do niego układami
· pamięć RAM - pamięć operacyjna
· pamięć ROM (często eeprom) - miejsce na program kostki
· dodatkowa pamięć flash - na zapisywanie danych
· układy wejścia / wyjścia
· przerwania
· układy zegarowe
· przetworniki analogowo cyfrowe i cyfrowo analogowe
· kilka standardowych interfejsów z zaimplementowaną obsługą wewnątrz układu (np. I2C, 1wire, itp.)

Podział ze względu na architekturę:
· CISC
· RISC
· VLIW

Trochę historii
·  1971 - Ted Hoff, Stan Mazor i Federico Faggin opracowują pierwszy mikroprocesor 4-bitowy Intel 4004 (108 kHz). Zajmował powierzchnię 12 mm2. Wykonywał 60 tys. operacji na sekundę. Składał się z 2300 tranzystorów. Kosztował 200 USD.

·  24 sierpnia 1972 - Intel wypuszcza mikroprocesor Intel 8008. Jest to 8-bitowy układ o częstotliwości zegara 200 kHz. Może wykonać 300 tyś instrukcji na sekundę i zaadresować 16 KB pamięci. Zawierał około 3500 tranzystorów

·  W czerwcu 1978 -  Intel wypuszcza na rynek pierwsze mikroprocesory 16-bitowe - Intel 8086 (o częstotliwości zegara 4,77 MHz, składający się z 29 tys. tranzystorów w technologii 3 mikronów, który potrafi zaadresować 1 MB pamięci) i Intel 8088 (zewnętrznie okrojony do 8 bitów).

·  We wrześniu 1979 - Motorola wprowadza 32-bitowy mikroprocesor MC68000, jeden z najbardziej wydajnych układów 32-bitowych, składający się z 68 tys. tranzystorów (stąd jego nazwa).

·  W październiku 1986 - Intel przedstawia 32-bitowy procesor 80386, 16 MHz; zbudowany jest z ok. 275.000 tranzystorów w technologii 1 mikrona.

Kolejne mikroprocesory głównie zastosowanie znalazły w komputerach typu PC i serwerowych.