1 / 33

Systemy wbudowane

Systemy wbudowane. Wykład nr 5: Bloki funkcjonalne mikrokontrolerów Piotr Bilski. Budowa typowego mikrokontrolera. zegar. Potok instrukcji i dekoder. Sekwenser. Układ sterowania. Układ sterowania szynami. dane. Szyna sterowania. Układ wykonawczy. adresy. sygnały wyjściowe.

vaughn
Download Presentation

Systemy wbudowane

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy wbudowane Wykład nr 5: Bloki funkcjonalne mikrokontrolerów Piotr Bilski

  2. Budowa typowego mikrokontrolera zegar Potok instrukcji i dekoder Sekwenser Układ sterowania Układ sterowania szynami dane Szyna sterowania Układ wykonawczy adresy sygnały wyjściowe

  3. Linie sygnałowe mikrokontrolera • Linie adresowe • Linie danych • Wejścia przerwań IRQ • Wejścia dla przetwornika A/C • Linie portów równoległych • Linie transmisji szeregowej • Porty liczników

  4. Jednostka centralna • Jednostka arytmetyczno-logiczna • Banki rejestrów • Potoki instrukcji • Formaty instrukcji • Lista instrukcji

  5. Zestaw rejestrów 16 bitów 16 bitów Akumulator A Akumulator B Rejestr mnożnej Rejestr mnożnika Akumulator E Akumulator układu mnożącego Rejestr indeksowy X Akumulator układu mnożącego (c.d.) Rejestr indeksowy Y X MASK Y MASK Rejestr indeksowy Z EK XK YK ZK Wskaźnik stosu SK Licznik programu Słowo stanu (CCR)

  6. Słowo wskaźników (CCR) – 68HC16 Bit obsługi nadmiaru • Przerwania mają 8 poziomów priorytetów • S – zatrzymanie zegara / operacja NOP • MV, EV – sygnalizacja nadmiaru w układzie mnożącym • H – przeniesienie połówkowe S MH H EV N Z V C IP (3b) C PK (4b) Rozszerzenie licznika programu Rejestr stanu Priorytet przerwań

  7. Potok instrukcji • Mikrosekwenser steruje kolejnością pobierania instrukcji • Obecność pobierania instrukcji z wyprzedzeniem (pre-fetch) Mikrosekwenser Potok instrukcji Szyna danych A B C Układ wykonawczy

  8. Formaty instrukcji • 8-bitowy kod rozkazu, 8-bitowy argument • 8-bitowy kod rozkazu, 4-bitowe rozszerzenia adresów • 8-bitowy kod rozkazu, operand • 8-bitowy prefiks, 8-bitowy kod rozkazu • 8-bitowy prefiks, 8-bitowy kod rozkazu, argumenty

  9. Lista instrukcji • Instrukcje przesłań • Instrukcje arytmetyczne • Instrukcje logiczne • Instrukcje operacji na bitach • Instrukcje sterujące • Instrukcje obsługi indeksów • Instrukcje operacji na stosie • Instrukcje manipulacji na CCR • Instrukcje DSP • Instrukcje specjalne

  10. Instrukcje przesłań • Służą do transmisji zawartości między rejestrami, pamięcią i urządzeniami wejścia-wyjścia • Grupy: • Ładowania (LDAA, LDAB, LDBA) • Przesuwania (MOVB, MOVW) • Zapamietywania (STAA, STD, STED) • Transferu między rejestrami (TAB, TDE, TED) • Wymiany zawartości rejestrów (XGAB, XGDE)

  11. Instrukcje arytmetyczne • Służą do wykonywania operacji na liczbach całkowitych i rzeczywistych • Grupy: • Dodawania (ABA, ADDA) • Odejmowania (SBA, SDE, SUBA) • Porównania (CBA, CPD) • Testowania (TST, TSTA) • Dzielenia (EDIV, EDIVS, FDIV) • Mnożenia (EMUL, FMULS) • Inkrementacji i dekrementacji (DEC, INC) • Zerowania (CLR, CLRW) • Uzupełnienia (COM, NEG)

  12. Instrukcje logiczne i operacji na bitach • Służą do wykonywania operacji logicznych • Przykłady: ANDA, ANDD, ORAA, EORA • Operacje mogą być dokonywane na każdym bicie osobno • Używana jest maska, zawężająca efekt działania operacji • Przykłady: BITA, BITB, BCLR, BSET

  13. Instrukcje przesunięć bitowych • Przesunięcia logiczne, arytmetyczne i cykliczne (rotacje) • Przykłady: LSR, ASR, ROR, ASLD, RORD 0 b7 b0 C 0 C b7 b0 C C C

  14. Instrukcje sterujące • Wpływają na kolejność wykonywania instrukcji programu • Instrukcje skoków i przerwań • Skoki mogą być krótkie lub długie, bezwarunkowe lub warunkowe • Skoki krótkie: • względny tryb adresowania z PC (i rozszerzenia PK), 8-bitowy argument • Przykłady skoków krótkich: BRA, BRN, BHI, BGT, BCS, BMI

  15. Instrukcje sterujące (c.d.) • Skoki długie – argument 16-bitowy, dodawany do PC (i rozszerzenia PK) • Większy zakres pamięci w zasięgu skoku • Przykłady: LBLE rel JMP adres BRCLR M, #maska, rel • Wywoływania podprogramów (przed skokiem zapamiętanie adresu na stosie) • Przykłady: RTI (przerwania sprzętowe), SWI (przerwania programowe), JSR, BSR

  16. Instrukcje obsługi indeksów • Operują na zawartości rejestrów indeksowych • Operacje: dodawanie , porównywanie, ładowanie, wymianę zawartości rejestrów indeksowych • Przykłady: ADX, AIX, LDX, STX, TXY, XGDX

  17. Instrukcje operacji na stosie • Manipulacja szczytem stosu zawartym w rejestrach SK:SP, transfer danych do i ze stosu • Przykłady: AIS, PSHA, PSHB, PULA, PULB • Możliwe operacje wysyłania zawartości wielu rejestrów naraz na stos: PSHM, PULM. Potrzebna jest maska do określania, które rejestry kopiować: PSHM CCR K IZ IY IX E D PULM D E IX IY IZ K CCR

  18. Instrukcje manipulacji na CCR i specjalne • Służą do ustawiania i zerowania poszczególnych bitów oraz przesyłać zawartość akumulatorów • Przykłady: ANDP, ORP, TAP, TDP itp. • Możliwe również przesyłanie zawartości CCR do innych rejestrów • Instrukcje specjalne służą do zatrzymania procesora (LPSTOP), oczekiwania an przerwanie (WAI), uruchomienia debugera (BGND) oraz wykonania pustego cyklu (NOP)

  19. Instrukcje DSP • Zestaw operacji wykorzystywanych podczas przetwarzania sygnałów (filtracja, obliczanie transformaty Fouriera) • Wykorzystywane są rejestry HR i IR, wyniki przechowywane są w akumulatorze • Powtarzanie operacji w pętli umożliwia realizację podstawowych działań

  20. Pamięci • Metody alokacji pamięci: • Alokacja stała (obszary adresowe określone przez producenta) • Zmienne przypisania obszarów adresowych (obszary ustalane przez programistę) • Klasyfikacja: • RAM • ROM/OTP/EPROM • EEPROM/Flash

  21. Architektury mikrokontrolerów • Rejestrowa (rejestry są częścią pamięci RAM, jednolicie adresowanej) • Plik rejestrów roboczych • Obszar rejestrów specjalnych • Pamięć podręczna • Akumulatorowa (rejestry są wydzielone z pamięci RAM)

  22. Mapa rejestrów wewnętrznych (68HC916Y3) QSM 512 B ADC 64 B Sterowanie FLASH Sterowanie FLASH Sterowanie FLASH Sterowanie FLASH TPU GPT 64B SCIM 128B Sterowanie SRAM MCCI 64B TPU 512B FLASH 16kB FLASH 48 kB FLASH 32 kB FLASH TPU 4kB SRAM 2kB

  23. Mapa pamięci (68HC916Y3) – wspólna przestrzeń programu i danych • Wspólna przestrzeń pamięci programu i danych • Rozmiar: 1 MB • 16 sekcji 000000 Sekcja 0 Sekcja 8 QSM Sekcja 1 Sekcja 9 ADC Sekcja 2 Sekcja 10 Ster. FLASH Sekcja 3 Sekcja 11 GPT Sekcja 4 Sekcja 12 SCIM Sekcja 5 Sekcja 13 Ster. SRAM Sekcja 6 Sekcja 14 MCCI Sekcja 7 Sekcja 15 TPU FFFFFF

  24. Pamięć SRAM • Szybka pamięć, wykonana np. w technologii CHMOS • Możliwość przejście w stan oczekiwania (podczas zasilania bateryjnego) – zasilanie napięciem Vstby • Służy do realizacji stosu i przechowywania zmiennych

  25. Technologia CHMOS • Complementary High-Performance Metal-Oxide Semiconductor • Układy zdolne są do pracy przy niskim napięciu zasilającym z zachowaniem efektywności pracy • Wykorzystywana w mikrokontrolerach oraz kontrolerach dysków, interfejsach peryferyjnych itp. • Aktualna technologia: CHMOS III (litografia 1.5 mikrona)

  26. Obsługa pamięci SRAM • Rejestr RAMMC służy do ustawienia trybu pamięci (rozkazy i dane/rozkazy) i zarządza pracą przy zmniejszonym poborze mocy • Rejestr RAMTST służy do testowania pamięci • Rejestry RAMBAH i RAMBAL przechowują adresy bazowe (ustawiane tylko przy zmniejszonym poziomie mocy!)

  27. Mapa pamięci (68HC916Y3) – rozdzielone przestrzenie programu i danych Wektor adresów obsługi przerwań Obsługa wyjątków po RESET 000000 000000 Sekcja 1 Sekcja 1 Sekcja 2 Sekcja 2 512 kB 512 kB Nie używane Nie używane 512 kB 512 kB Sekcja 14 Sekcja 14 Sekcja 15 Blok rejestrów FFFFFF FFFFFF

  28. Pamięci ROM, OTP i EPROM • Wielkość rzędu kilkuset kB (np. 8, 32, 64 kB) • Bloki pamięci mogą być maskowalne (MRM) • Programowanie: • W specjalnych urządzeniach (programatorach) • W układzie (in-circut programming), mikrokontroler musi mieć wbudowany odpowiedni układ • Wymagane dodatkowe napięcie 12V (z zewnątrz lub z wbudowanej przetwornicy)

  29. Programowanie pamięci ROM • Konieczne dodatkowe wejścia do układu (np. EA) • Tryby programowania: • Automatyczny (wyjścia PACT i PVAL) – do programowania pojedynczych kości • Seryjny typu Slave (konfiguracja wejść PMODE i HSI) – do projektowania seryjnego • Seryjny typu Word Dump • Porty (np. P3 i P4) wykorzystywane są do podawania danych, adresów i instrukcji programujących

  30. Pamięci EEPROM i Flash • Pojemność rzędu setek kB • Wykorzystywane w kilku blokach • Do programowania wymagane podwyższone napięcie (11.5-13.5V) • Tryby pracy: • Normalny (odczyt) • Zapisu • Pracą pamięci steruje rejestr FCR

  31. Licznik nadzorcy • Dodatkowy układ w mikrokontrolerach pracujących autonomicznie • Odlicza czas i oczekuje sygnałów zerujących • Brak sygnałów zerujących powoduje reset mikrokontrolera • Po resecie przeprowadzana jest diagnostyka (wykrywanie przyczyny zawieszenia)

  32. Schemat licznika nadzorcy Układ wyboru okresu zegara Blok sterowania przerwaniami IRQ WDTOVF Sterowanie sygnałem RESET Wewn. RESET RSTCSR TCNT TCSR Szyna modułu Interfejs szyny Wewnętrzna szyna danych

  33. Rejestry licznika nadzorcy • TCSR – rejestr kontrolny i stanu bloku • TCNT – 8-bitowy licznik nadzorcy • RSTCSR – rejestr stanu i kontrolny układu generowania sygnału reset • Licznik nadzorcy zaczyna pracę po ustawieniu linii WT w stan wysoki (watchdog)

More Related