Układy zegarowe w systemie mikroprocesorowym 1 Przykładowa struktura systemu mikroprocesorowego IRQ AcDMA ReDMA Generator zegarowy fx fcpu fio fm System przerwań sprzętowych IRQ Bezpośredni dostęp do pamięci DMA Jednostka centralna CPU Reset Pamięć programu ROM Pamięć danych RAM Układ monitorowania Układ zerowania Pamięć danych EEPROM Układy wejścia/wyjścia I/O Układy licznikowo/czasowe Napięcie zasilania Vcc Zewnętrzny Reset Vcpu Vio Układ zasilania Interfejs programującotestujący Vin Szyna sterująca Szyna danych Szyna adresowa IRQ Porty równoległe Porty szeregowe Semestr zimowy 2014/2015, WIEiK, PK Sygnały wejścia/wyjścia Interfejsy szeregowe 2 1
Sygnał zegarowy, sygnał taktujący W każdym systemie mikroprocesorowym jest wymagane źródło sygnałów zegarowych. Jednostka sterująca systemem mikroprocesorowym jest układem sekwencyjnym synchronicznym wymaga sygnału zegarowego (taktującego). Wszystkie operacje wewnątrz jednostki centralnej jak i operacje w całym systemie mikroprocesorowym odbywają się w takt sygnału zegarowego. Sygnał zegarowy może być doprowadzony do wszystkich elementów systemu lub po wstępnym podzieleniu do poszczególnych elementów systemu. Częstotliwość sygnału zegarowego ma bezpośredni wpływ na szybkość wykonywanych operacji przez CPU, szybkość działania układów pamięci ROM, RAM i urządzeń wejścia/wyjścia. Częstotliwość sygnału zegarowego ma decydujący wpływ na pobór prądu (pobór mocy) przez system. 3 Przykładowy schemat blokowy mikrokontrolera IRQ AcDMA ReDMA Generator zegarowy fx fcpu fio fm System przerwań sprzętowych IRQ Bezpośredni dostęp do pamięci DMA Wew. szyna sterująca Wew. szyna danych Wew. szyna adresowa Interfejs programującotestujący Jednostka centralna CPU IRQ Reset Pamięć programu Flash (ROM) Pamięć danych RAM Układ monitorowania Układ zerowania Pamięć danych EEPROM Układy wejścia/wyjścia Układy licznikowo/czasowe Przetwornik A/C i C/A Porty równoległe Porty szeregowe Zewnętrzny Reset Vcpu Układ zasilania Napięcie zasilania Vcc Semestr zimowy 2014/2015, WIEiK, PK Interfejsy szeregowe 4 Vio Sygnały wejścia/wyjścia 2
Cykl zegarowy, cykl maszynowy, cykl rozkazowy Cykl zegarowy (takt zegara) - to okres sygnału zegarowego. Można go obliczyć jako odwrotność częstotliwości generatora zegarowego. cykl zegarowy = 1/fgen [s] Cykl maszynowy - to cykl (czas w [s]), podczas którego następuje wymiana danych między procesorem a pamięcią lub układem wejścia/wyjścia (odczyt albo zapis). Wykonanie cyklu maszynowego wymaga jednego lub kilku cykli zegarowych, zależy to od budowy CPU. Cykl rozkazowy - składa się z jednego lub kilku cykli maszynowych i określa czas niezbędny do wykonania rozkazu. Każdy rozkaz w zależności od trybu adresowania ma określony cykl rozkazowy. Dla uproszczenia porównań różnych procesorów wprowadzono pojęcie mocy obliczeniowej, dla której zwykło się używać jednostki zwanej MIPS. 1 MIPS oznacza 1 milion operacji na sekundę. W związku z tym, że w np. mikrokontrolerze AVR cykl maszynowy jest równy cyklowi zegarowemu, AVR taktowany sygnałem o częstotliwości 8 MHz ma moc obliczeniową w przybliżeniu równą 8 MIPS. Standardowy 8051 ma przy takich samych parametrach sygnału zegarowego, moc obliczeniową około 0,667 MIPS. 5 Parametry źródła sygnału zegarowego Częstotliwość sygnału Stabilność częstotliwości od czasu, temperatury i napięcia zasilania Kształt sygnału zegarowego (prostokątny 50% wypełnienia) Czas trwania stanu 1 - t1 i stanu 0 t0 (zmienność od temperatury, czasu i napięcia zasilania) Szybkość narastania tr i opadania zboczy tf (ps, ns) Stabilność zboczy tzw. jitter (fluktuacja, wahania zboczy) (ps) Opóźnienie sygnału w różnych punktach systemu (tzw. skew) w odniesieniu do przebiegu referencyjnego (ps) Obciążalność wyjścia. Czas zadziałania (ustalenia stabilnej częstotliwości) po włączeniu napięcia zasilania. Możliwość programowania częstotliwości sygnału. Okres t=t1+t0 t1 t0 Sygnał referencyjny z generatora 90% 10% tr tf Opóźnienie sygnału T jitter Sygnał przy odbiorniku Okres przebiegu t=1/f [s], częstotliwość f=1/t w [Hz] t=1s -> f=1hz t=0.1s -> f=10hz t=0.001s=1ms -> f=1000hz t=0.000 001s=1us -> f=1 000 000Hz=1MHz t=0.000 000 1s=100ns -> f=1 000 000Hz=10MHz t=10ns -> f=100mhz t=1ns -> f=1000mhz=1ghz t=0.3125ns =312.5ps-> f=3.2ghz 6 3
Podstawowe źródła sygnału zegarowego Generator RC na tranzystorach - obecnie raczej nie używane Generator RC na bramkach logicznych - tanie rozwiązanie Generatory na bramkach logicznych ze stabilizacją na rezonatorze kwarcowym duża stabilność częstotliwości, Generatory na bramkach logicznych ze stabilizacją na rezonatorze ceramicznym tańsze rozwiązanie od rezonatora kwarcowego, Generatory na bramkach logicznych ze stabilizacją na rezonatorze kwarcowym wraz powielaczem częstotliwości typu PLL (ang. Phase Lock Loop pętla synchronizacji fazowej) możliwość programowania częstotliwości sygnału 7 System dystrybucji sygnału zegarowego Zadaniem systemu dystrybucji sygnału zegarowego jest programowalny podział częstotliwości głównego sygnału zegarowego i doprowadzenie sygnałów do poszczególnych elementów systemu. System dystrybucji sygnału może zawierać programowalne dzielniki częstotliwości (prescalery) i powielacze do zwiększania częstotliwości głównego sygnału zegarowego () rejestr Prescaler 1 fmem Generator zegarowy fclk rejestr Prescaler 2 fcounter do CPU 8 4
Generatory zegarowe Obecnie wszystkie mikrokontrolery mają własny wewnętrzny generator (oscylator), który po dołączeniu zewnętrznego rezonatora kwarcowego zapewnia stabilną częstotliwość sygnału zegarowego. Główny generator zegarowy dostarcza sygnału o jednej częstotliwości, ale poprzez zastosowanie programowalnych dzielników częstotliwości (prescalerów) lub powielaczy częstotliwości (syntezer), można uzyskać inne wartości sygnały zegarowego. Dla częstotliwości taktowania powyżej ok. 20MHz - 30MHz stosuje się już generatory oparte o pętle synchronizacji fazowej (PLL - phase-locked loop lub phase lock loop ). Układy mikroprocesorowe wymagają zewnętrznych układów do generowania podstawowego sygnału zegarowego 9 Podłączenie elementów zewnętrznych do generatora Zewnętrzny rezonator kwarcowy lub ceramiczny Zewnętrzne elementy RC podłączone do wewnętrznego generatora Zewnętrzny sygnał zegarowy 10 5
Rozwiązania generatorów zegarowych Schemat szczegółowy generatora Rozwiązanie układowe generatora zegarowego w typowym mikrokontrolerze 8051 11 System dystrybucji sygnału zegarowego W każdym systemie sygnał zegarowy ze źródła należy doprowadzić do poszczególnych elementów składowych systemu mikroprocesorowego. Częstotliwość taktowania poszczególnych elementów składowych może być różna i niekonieczne taka sama jak jednostki centralnej. W szczególności układy wejścia/wyjścia, np. liczniki lub przetworniki A/C mogą być taktowane dużo mniejszą częstotliwością. 12 6
System dystrybucji sygnału zegarowego Ważne jest aby sygnał zegarowy trafiał do poszczególnych elementów z takim samym opóźnieniem (przesunięciem fazowym). Jest to szczególnie ważne w systemach gdzie częstotliwość taktowania wynosi ok. 100MHz lub więcej. 13 Rozwiązania układowe systemów dystrybucji sygnału zegarowego Rozwiązanie generatora zegarowego i rozprowadzenie sygnału zegarowego w typowym mikrokontrolerze 8051 14 7
Rozwiązania układowe systemów dystrybucji sygnału zegarowego Generator zegarowy wraz systemem dystrybucji sygnału zegarowego w mikrokontrolerze AT89C51RD2, z rodziny 8051, firmy Atmel 15 Generator zegarowy wraz systemem dystrybucji sygnału zegarowego w mikrokontrolerze C8051F120, z rodziny 8051, firmy Silicon Labs 16 8
Rozwiązania układowe Systemem dystrybucji sygnału zegarowego w mikrokontrolerze ATMEGA128 z rodziny AVR, firmy Atmel 17 Rozwiązania układowe systemów dystrybucji sygnału zegarowego - układy z rodziny PIC18 10 trybów pracy generatora zegarowego w mikrokontrolerze PIC18F 18 9
Rozwiązania układowe systemów dystrybucji sygnału zegarowego Systemem dystrybucji sygnału zegarowego w mikrokontrolerze PIC18F4680 z rodziny PIC18, firmy Microchip 19 System dystrybucji sygnału zegarowego w STM32F1xx Cortex-M3 W układach typu STM32 aby uruchomić jakiekolwiek urządzenie wewnętrzne należy do niego doprowadzić sygnał zegarowy. Nawet GPIO (General Purpose Input Output Port) wymagają taktowania sygnałem zegarowym 20 10
Generator zegarowy dla 16-bitowych mikroprocesorów 8088/8086, firmy Intel pierwsze komputery klasy IBM PC 21 Generator zegarowy 82C84 i 82C284 Układ zegarowy 82C84 dla mikroprocesorów 8088/8086 (IBM PC XT) Układ zegarowy 82C284 dla mikroprocesorów 80286 (IBM PC AT) 22 11
System dystrybucji sygnału zegarowego W najprostszych mikrokontrolerach sygnał zegarowy jest już na stałe podłączony do CPU, ROM, RAM i układów I/O, np. w typowym 8051/8052. Bardziej rozbudowane mikrokontrolery mają większe możliwości i doprowadzenie sygnału zegarowego do poszczególnych elementów systemu wymaga ustawienia przez programistę. Większość zaawansowanych mikrokontrolerów wyposażonych jest w układ do monitorowania działania, głównego generatora zegarowego. Po wykryciu błędu działania, np. z powodu uszkodzenia zewnętrznego rezonatora kwarcowego, automatycznie przełączają się na wewnętrzny generator RC. 23 Pobór mocy przez układy mikroprocesorowe Wraz z rosnącym zapotrzebowaniem na sprzęt przenośny oraz rosnąca liczba urządzeń wyposażonych w układy mikroprocesorowe, problem poboru prądu przez te urządzenie staje się coraz bardziej krytyczny. Kluczowym problemem z jakim borykają się konstruktorzy jest znalezienie złotego środka, tak by możliwie obniżyć zużycie prądu pobieranego przez urządzenie bez ograniczania jego funkcjonalności i szybkości działania. Z drugiej strony urządzenia mikroprocesorowe mają coraz więcej funkcji i możliwości a to wymaga coraz większej mocy obliczeniowej. Mniejszy pobór mocy oznacza mniejsze zużycie energii elektrycznej, mniejsze koszty, mniejszą emisję zanieczyszczeń przez elektrownie. Urządzenia, które pobierają mniejszą moc są też gabarytowo mniejsze, lżejsze i nie wymagają dodatkowych układów chłodzących. 24 12
Pobór mocy przez układy mikroprocesorowe Istotnym czynnikiem z punktu widzenia poboru mocy jest częstotliwość pracy mikrokontrolera, której wartość wiąże się z architekturą układu, a także z jego listą rozkazów. Należy pamiętać, że zwiększając częstotliwość pracy, zwiększamy pobór prądu. Inny niekorzystnym czynnikiem zwiększającym zużycie prądu jest temperatura, której wpływ także należy uwzględnić. niższe napięcie zasilania (a więc niższy koszt źródeł zasilania), mniejsze nagrzewanie się urządzeń, jak również możliwość zasilania z linii sygnałowej, to także korzystnie wpływa na koszt produktu końcowego. 25 Prąd pobierany przez układy logiczne jest proporcjonalny do częstotliwości przełączania Pobór prądu przez bramkę logiczną NAND typu 74AHC00 Przykładowe przebiegi prądu zasilające bramkę typu CMOS bez obciążenia i z obciążeniem pojemnościowym 26 13
Pobór prądu a częstotliwość pracy Wykres poboru prądu mikrokontrolera typu AT89S8252 z rodziny 8051 w funkcji częstotliwości 27 Pobór prądu a częstotliwość pracy Wykres poboru prądu mikrokontrolera typu ARM, LPC2138 w funkcji częstotliwości 28 14
Tryby obniżonego poboru mocy w mikrokontrolerze ATMEGA8, firmy Atmel Bramkowane sygnały zegarowe Aktywne sygnały zegarowe Idle ADC Noise Reduction CPU, FLASH I/O, ADC, ASY I/O, ADC, ASY Układy peryferyjne aktywne CPU, FLASH, I/O ADC, ASY Układy peryferyjne zatrzymane oprócz ADC Power-down CPU, FLASH, I/O, ADC, ASY Zewnętrzny oscylator zatrzymany Power-save CPU, FLASH, I/O,ADC ASY TC2 może pracować asynchronicznie Standby CPU, FLASH, I/O, ADC, ASY Oscylator pracuje W bardzo wielu zastosowaniach mikrokontroler nie pracuje aktywnie przez cały czas, dlatego z punktu widzenia poboru mocy zasadne stało sie wprowadzenie rozmaitych sposobów na uśpienie urządzenia. Mikrokontrolery ATMEL posiadają przynajmniej jeden (a często więcej niż jeden) tryb pracy z obniżonym poborem mocy. Przykładowo znany i popularny ATMEGA8 oferuje takich trybów aż pięć. Pobór prądu przy częstotliwości 4MHz, w temperaturze 25 C i napięciu zasilania 3V przedstawia się następująco. Stan aktywny 3.6 ma Tryb bezczynności (Idle Mode) 1.0 ma Urządzenie wyłączone (Power-down Mode) 0.5 µa Aby przełączyć mikrokontroler którykolwiek tryb należy wykonać instrukcję SLEEP, a wybór trybu wybierany jest przez ustawienie odpowiednich bitów rejestrze kontrolnym MCUCR. 29 Metody ograniczania mocy pobieranej przez układy mikroprocesorowe Oszczędności wewnątrz układów scalonych Oszczędności mocy przy transmisji sygnałów Oszczędności w układach pamięci Zmiany dynamiczne podczas pracy Oszczędności przy oczekiwaniu na dostęp do pamięci Niezależnie taktowane obszary Architektura adaptacyjna Większa liczba rdzeni procesora Stosowanie układów o obniżonym poborze mocy Stosowanie układów o niskim napięciu zasilania Stosowanie układów z wewnętrzną pamięcią Minimalizacja zewnętrznych układów logicznych i analogowych Stosowanie układów wyłączanych albo z możliwością ograniczenia mocy pobieranej Dostosowanie częstotliwości taktowania poszczególnych fragmentów systemu mikroprocesorowego do zapotrzebowania na moc obliczeniową ograniczanie prądu rozruchu urządzenia (tzw. miękki start soft start) 30 15
Tryby pracy mikrokontrolerów pod względem mocy pobieranej Wybór właściwego trybu pracy mikrokontrolera, adekwatnego do aktualnie wykonywanego zadania, jest kluczową rzeczą dla programisty i może być uznany za ważny czynnik determinujący pracę aplikacji od strony energetycznej. Prawie każdy mikrokontroler dysponuje trzema trybami pracy: Tryb aktywny (active) Tryb bezczynności (Idle Mode) Urządzenie wyłączone (Power-down Mode) Niektóre układy mogą mieć dodatkowe tryby obniżające pobór mocy: Tryb Power-save Tryb stanby W poszczególnych trybach są wyłączane wybrane fragmenty systemu mikroprocesorowego 31 16