Układy czasowo-licznikowe w systemach mikroprocesorowych
Transkrypt
Układy czasowo-licznikowe w systemach mikroprocesorowych
2014-11-26 Układy czasowo-licznikowe w systemach mikroprocesorowych Semestr zimowy 2014/2015, WIEiK-PK 1 • W każdym systemie mikroprocesorowym znajduje zastosowanie układ czasowy lub układ licznikowy • Liczba liczników stosowanych w systemie i ich długość wyrażona w bitach, różnią się dla konkretnych typów mikrokontrolerów. Semestr zimowy 2014/2015, WIEiK-PK 2 1 2014-11-26 Podstawowe funkcje • Praca czasowa (funkcja Timer) – jeżeli zadaniem licznika jest odmierzaniu czasu. Częstotliwość sygnału zegarowego (wejściowego) dla licznika jest znana i dokładnie generowana (stabilna). Najczęściej, tym sygnałem zegarowym jest wielokrotność lub podwielokrotność głównego sygnału zegarowego sterującego systemem mikroprocesorowym • Praca licznikowa (funkcja counter) – jeżeli głównym zadaniem licznika jest zliczanie impulsów, głównie liczby impulsów zewnętrznych. Częstotliwość sygnału wejściowego dla licznika (i dla programisty) nie jest znana. Semestr zimowy 2014/2015, WIEiK-PK 3 Funkcje układów czasowo-licznikowych • Układy czasowo/licznikowe są stosowane do realizacji następujących funkcji: Funkcje związane z pracą w trybie czasowym (timer) – – – – – – – – – – – • odmierzania dokładnych jednostek czasowych i generowanie sygnału przerwania sprzętowego w ściśle określonych odstępach czasowych, odmierzania odstępów czasu między zdarzeniami zachodzącymi w systemie mikroprocesorowym, pomiaru czasu trwania impulsów zewnętrznych, (np. pomiar prędkości obrotowej), pomiar częstotliwości sygnału zewnętrznego, generowanie pojedynczych impulsów o ściśle określonych parametrach, generowanie impulsów (sekwencji impulsów) w odstępach czasu o zaprogramowanej wartości, generowanie przebiegu okresowego o zadanej częstotliwości, generowanie przebiegów impulsowych o określonym czasie trwania lub przebiegów o zadanym współczynniku wypełnienia – tzw. modulatory PWM (ang. PWM – Pulse Witdh Modulation), generowanie sygnału zegarowego dla interfejsu szeregowego, w trybie synchronicznym lub asynchronicznym (baud rate generator), odmierzanie czasu rzeczywistego, tzw. zegar czasu rzeczywistego, (ang. RTC – Real Time Clock), praca w trybie licznika nadzorcy (ang. watchdog), Funkcje związane z pracą w trybie licznikowym (counter) – – zliczanie liczby impulsów zewnętrznych i np. zgłoszenie przerwania po zliczeniu określonej liczby impulsów, zliczanie impulsów z enkoderów obrotowych lub liniowych w celu pomiaru prędkości obrotowej lub pomiaru przebytej drogi Semestr zimowy 2014/2015, WIEiK-PK 4 2 2014-11-26 Podstawowa budowa układu licznikowego • • Układ czasowy lub układ licznikowy zbudowany jest w oparciu o klasyczne cyfrowe układy licznikowe (synchroniczne), składające się z przerzutników typu D lub J-K i zliczające w naturalnym kodzie binarnym (BIN) Aby taki układ mógł pracować w systemie mikroprocesorowym musi być wyposażony w dodatkowe elementy (bramki logiczne) i układy logiczne (rejestry, komparatory), które umożliwiają programowalność licznika i realizację kilku funkcji. clk t D t Q t Symbol przerzutnika typu D D – wejście informacyjne CLK – wejście zegarowe /R – wejście asynchroniczne zerujące RESET /S – wejście asynchroniczne ustawiające SET Q – wyjście /Q – wyjście zanegowane Wejście asynchroniczne zerujące /R (w tym przypadku stan aktywny ‘0’) zeruje stan przerzutnika (na wyjściu Q stan ‘0’) bez względu na sygnały na wejściach clk i D. Wejście asynchroniczne ustawiające /S (w tym przypadku stan aktywny ‘0’) ustawia stan ‘1’ na wyjściu Q przerzutnika bez względu na sygnały na wejściach clk i D. UWAGA ! - Nie można w tym samym momencie podać sygnału /R i /S – jest to tzw. stan zabroniony. Przerzutnik typu D (data) (ang. Flip-flop) – jeden z podstawowych rodzajów przerzutników synchronicznych. Przerzutnik ten przepisuje stan wejścia informacyjnego D na wyjście Q. Przepisanie informacji następuje tylko przy odpowiednim stanie wejścia zegarowego, np. zbocza narastającego. Semestr zimowy 2014/2015, WIEiK-PK 5 Podstawowa budowa układu licznikowego stan aktualny licznika Generator zegarowy fclk Sterowanie zliczaniem Sterowanie kierunkiem zliczania, up/down Licznik binarny 2n Bit przepełnienia (carry) Bit pożyczki (borrow) Rejestr wartości początkowej Zerowanie Wpis, reset set wartość początkowa do zliczania Podstawowe parametry licznika: • pojemność licznika – w kodzie BIN 28, 210, 216, 232 , w kodzie BCD - 1xBCD, 2xBCD, stan licznika 3xBCD, 4xBCD • format zliczania, kod wyjścia licznika – kod binarny naturalny BIN i kod binarny Zliczanie w górę dziesiętny BCD, Max wartość • kierunek zliczania – tylko w górę, tylko w dół, albo możliwość wyboru - tryb rewersyjny, • max częstotliwość sygnału wejściowego, • wyjście bitu przepełnienia i bitu pożyczki, wartość „0” zerowanie • wejście zerujące i ustawiające, • możliwość automatycznego wpisania wartości początkowej Semestr zimowy 2014/2015, WIEiK-PK Zliczanie w dół t 6 3 2014-11-26 Podstawowa budowa układu licznikowego • W większości przypadków licznik w systemie jest licznikiem zliczającym w górę lub w dół z możliwością wpisywania wartości początkowej i odczytu aktualnego stanu licznika. Po przepełnieniu licznik ustawia bit przepełnienia i może generować przerwanie sprzętowe. • Liczniki przeważenie są: – w prostych mikrokontrolerach 8-10-bitowe (8-bit MCU) – 16-bitowe (8 lub 16-bit MCU), – 32-bitowe w rozbudowanych mikrokontrolerach (16 lub 32-bit MCU) Semestr zimowy 2014/2015, WIEiK-PK 7 Przykładowa struktura układu licznikowego w mikrokontrolerze Wartość do porównania Sterowanie zliczaniem sygnałem zewnętrznym Ext. Gate Sterowanie programowe zliczaniem Rejestr LSB Rejestr MSB komparator Zegar systemowy Aktualny stan licznika fclk fx fext Wybór źródła sygnału Bit równości Preskaler Wybór dzielnika wstępnego Licznik binarny Licznik binarny 2n 2n Rejestr LSB Rejestr MSB Bit przepełnienia IRQ Zerowanie bitu auto-przeładowanie wartość początkowa do zliczania Semestr zimowy 2014/2015, WIEiK-PK 8 4 2014-11-26 Podstawowe funkcje układu czasowego – odmierzanie jednostek czasowych Czas po którym nastąpi przepełnienie licznika T = (Nmax – Npo)/fclk Generowanie przerwania IRQ Sterowanie układem wew. fclk Licznik binarny 2n Start zliczania Bit przepełnienia Funkcja Zewnętrzna końcówka mikrokontrolera Rejestr auto-przeładowanie Npo - wartość początkowa do zliczania Wybór funkcji Zerowanie bitu programowe lub automatyczne Po wystąpieniu przepełnienia licznika może nastąpić: • wygenerowanie sygnału przerwania sprzętowego IRQ, • ustawienie stanu niskiego „0” (wyzerowanie) na końcówce (linii) wyjściowej, • ustawienie stanu wysokiego „1”(ustawienie) na końcówce wyjściowej, • zanegowanie stanu logicznego na końcówce wyjściowej, • wysłanie sygnału do urządzenia wewnętrznego mikrokontrolera (np. sygnał START dla wewnętrznego przetwornika A/C), • jeżeli licznik ma taką funkcję, może wystąpić automatyczne przeładowanie licznika wartością Semestr zimowy 2014/2015, WIEiK-PK 9 początkową Podstawowe funkcje układu czasowego – odmierzanie jednostek czasowych Przepełnienie (overflow) Stan licznika 0xFF Nmax - wartość max licznika START Npo - wartość początkowa 0x00 Czas [s] START zliczania od wartości 0 START zliczania od wartości 0xF0 Czas po którym nastąpi przepełnienie licznika T = (Nmax – Npo)/fclk Semestr zimowy 2014/2015, WIEiK-PK 10 5 2014-11-26 Podstawowe funkcje układu licznikowego – zliczanie impulsów zewnętrznych Aktualna wartość licznika Generowanie przerwania IRQ Zewnętrzna końcówka mikrokontrolera Bit przepełnienia Licznik binarny 2n Zbocze Rejestr Start zliczania Wybór zbocza do zliczania auto-przeładowanie Zerowanie bitu programowe lub automatyczne Npo - wartość początkowa do zliczania Semestr zimowy 2014/2015, WIEiK-PK 11 Podstawowe funkcje układu czasowego – generator sygnału Generowanie przerwania IRQ Okres sygnału wyjściowego T = 2 * (Nmax – Npo)/fclk Sterowanie układem wew. fclk Licznik binarny 2n Start zliczania Bit przepełnienia Rejestr auto-przeładowanie Npo - wartość początkowa do zliczania D Zewnętrzna końcówka mikrokontrolera Q Przerzutnik typu D clk /Q szerokość impulsu - 50% Po wystąpieniu przepełnienia licznika następuje: • wygenerowanie sygnału, którego narastające zbocze (sygnał zegarowy clk dla przerzutnika typu D) powoduje zmianę stanu wyjścia Q na przeciwny, • Sygnał wyjściowy z przerzutnika ma częstotliwość dwa razy mniejszą od częstotliwości przepełnienia licznika i współczynnik wypełnienia sygnału wynosi 50%. Semestr zimowy 2014/2015, WIEiK-PK T - Okres sygnału 12 6 2014-11-26 Podstawowe funkcje układu czasowego – przechwytywanie zdarzeń (capture unit) Wpis do rejestru stanu licznika Wykrywanie zbocza Rejestr 1 Stan rejestru 1 Zewnętrzna końcówka mikrokontrolera Wybór zbocza Sygnał Wybór zbocza przerwania IRQ sygnału Wpis do rejestru stanu licznika Wykrywanie zbocza Rejestr 2 Stan rejestru 2 Zewnętrzna końcówka mikrokontrolera Wybór zbocza Sygnał Wybór zbocza przerwania IRQ sygnału fclk Licznik binarny 2n Bit przepełnienia Generowanie przerwania IRQ Start zliczania Semestr zimowy 2014/2015, WIEiK-PK 13 Podstawowe funkcje układu czasowego – porównywanie (compare unit) Sygnał równości Rejestr stanu R 1 Komparator R=L L Bit równości Funkcja Zewnętrzna końcówka mikrokontrolera Sygnał Wybór funkcji przerwania IRQ Sygnał równości Rejestr stanu R 2 Komparator R=L L Bit równości Funkcja Zewnętrzna końcówka mikrokontrolera Sygnał Wybór funkcji przerwania IRQ fclk Licznik binarny 2n Bit przepełnienia Start zliczania Funkcje wyjścia: • zanegowanie wyjścia, • ustawienie wyjścia, • wyzerowanie wyjścia. Generowanie przerwania IRQ Semestr zimowy 2014/2015, WIEiK-PK 14 7 2014-11-26 Podstawowe funkcje układu czasowego – modulator PWM • Mikrokontrolery przewidziane do zastosowań sterowania i kontroli w szczególności w układach napędowych zawierają rozbudowane i czasami skomplikowane układy czasowo-licznikowe (modulatory PWM - modulator szerokości impulsu). • Mają one za zadanie generowanie precyzyjnych przebiegów PWM, które następnie sterują tranzystorami mocy np. w układzie falownika, zasilacza impulsowego, itp. Semestr zimowy 2014/2015, WIEiK-PK 15 Podstawy techniki modulacji PWM Szerokość impulsu toff ton Regulacja stanem niskim Uavg Umax T Okres sygnału T- okres sygnału PWM [s], T = toff + ton F = 1/T – częstotliwość sygnału PWM [Hz] toff - czas trwania stanu niskiego [s] ton - czas trwania stanu wysokiego [s] Uavg = Umax*ton/T – wartość średnia napięcia wyjściowego Regulacja stanem wysokim ton toff Regulacja stanem wysokim T Okres sygnału Wyjście PWM komplementarne OUT ton toff T /OUT toff Okres sygnału Regulacja stanem niskim od przodu i tyłu Semestr zimowy 2014/2015, WIEiK-PK Ustawiany tzw. czas martwy (dead time) 16 8 2014-11-26 Przykładowa struktura modulatora PWM Szerokość impulsu Rejestr szerokości impulsów Okres sygnały Komparator szerokości Wyjście z regulacją stanu „0” fclk Zerowanie = R Licznik binarny modulo Nt Przerzutnik Q Wyjście /PWM S Komparator okresu = Rejestr okresu sygnału Nt Semestr zimowy 2014/2015, WIEiK-PK 17 Podstawowe funkcje układu czasowego – modulator PWM • Rozbudowane struktury licznikowo-czasowe spotyka się w mikrokontrolerach stosowanych w urządzeniach napędowych do sterowania, np. silników trójfazowych asynchronicznych, popularnie zwanych falownikami. • Są to specjalizowane trójfazowe modulatory PWM, które generują falę trójfazową PWM (dwa przebiegi na jedną fazę - OUT i /OUT) i mają możliwość ustawiania jeszcze tzw. czasu martwego, potrzebnego do bezpiecznego sterowania tranzystorami mocy w układzie mostkowym falownikowym. • Do tego jeszcze, taki mikrokontroler zawiera kolejny tzw. szybki układ licznikowy do pomiaru prędkości obrotowej silnika i wykrywania kierunku wirowania silnika. • Takie układy licznikowe spotyka się, np. w procesorach sygnałowych zaprojektowanych pod kątem zastosowania w napędach falownikowych lub sterowania silnikami bezszczotkowymi. Semestr zimowy 2014/2015, WIEiK-PK 18 9 2014-11-26 Przykłady układów czasowo-licznikowych Układ 8051, timer T1, tryb 0 - 13-bitowy, tryb 1 - 16-bitowy Układ 8051, timer T1, tryb 2 – 8-bitowy z automatycznym przeładowaniem Semestr zimowy 2014/2015, WIEiK-PK 19 Przykłady układów czasowo-licznikowych Układ 8-bitowy, ATMEGA128, timer T3 – 16-bitowy Semestr zimowy 2014/2015, WIEiK-PK 20 10 2014-11-26 Przykład 6-kanałowego modulatora PWM w mikrokontrolerze typu ARM, LPC21XX Semestr zimowy 2014/2015, WIEiK-PK 21 Przykład 32-bitowego licznika w mikrokontrolerze typu ARM, LPC21XX Semestr zimowy 2014/2015, WIEiK-PK 22 11 2014-11-26 Przykład 16-bitowego licznika w mikrokontrolerze typu Cortex-M4 w STM32F4xx Parametry licznika: • pojemność 16 bitów, kod BIN, • licznik zlicza w górę, w dół lub góra/dół, automatyczne przeładowanie (up, down, up/down auto-reload counter), • Dodatkowy licznik powtórzeń (repetition counter), • dzielnik wstępny, prescaler 16 bitowy, • cztery kanały wyjściowe, komplementarne • cztery kanały wejściowe, wybór zbocza • cztery jednostki porównawcze, • kilka źródeł sygnału wejściowego, • max częstotliwość 168MHz , • Podstawowe tryby pracy: • tryb porównania (Output Compare), • tryb przechwytywania (Input Capture), • tryb pojedynczego impulsu wyjściowego (One-pulse mode output), • tryb pracy PWM (PWM generation (Edge and Center-aligned Mode)), • możliwość ustawiania czasu martwego, • współpraca z zewnętrznymi enkoderami kwadraturowymi i czujnika Halla, • szybkie wejście do zerowania stanu wyjść kanałów (Break input), • …… • ……. Schemat blokowy układu czasowo-licznikowgo TIM1 i TIM8 w STM32F407 Semestr zimowy 2014/2015, WIEiK-PK 23 Układy RTC – Real Time Clock • Zegar czasu rzeczywistego służy do odmierzania aktualnego czasu i daty. • Jest to specjalizowany układ czasowo-licznikowy z dodatkowymi funkcjami, np. alarmu, dodatkowej pamięci RAM. • W systemach mikroprocesorowych do tego celu stosuje się specjalizowane układy scalone, np. PCF8583, PCF8563, DS1307. • Układy RTC obecnie są stosowane w prawie każdym urządzeniu przenośnym - telefon komórkowy, tablet, odbiornik GPS. • W prostych mikrokontrolerach można zrealizować układ RTC w sposób sprzętowo-programowy, korzystając z typowego układu licznikowego. • Rozbudowane mikrokontrolery posiadają specjalizowane wewnętrzne układy RTC, które wymagają dołączenia zewnętrznego rezonatora kwarcowego (najczęściej jest to kwarc o częstotliwości 32768Hz) i zasilania awaryjnego w postaci baterii, akumulatora lub kondensatora o dużej pojemności. Semestr zimowy 2014/2015, WIEiK-PK 24 12 2014-11-26 Układy RTC – Real Time Clock Semestr zimowy 2014/2015, WIEiK-PK 25 Układy RTC – PCF8563, firmy NXP Schemat aplikacyjny Wewnętrzny schemat blokowy PCF8563 Podstawowe parametry układu: • Zliczanie lat, miesięcy, dni, weekendów, godzin, minut, sekund na podstawie rezonatora kwarcowe 32.768 kHz • Flaga wieku • Napięcie zasilania 1.8 to 5.5 V • Niski prąd zasilania, typowo 0.25 µA dla VDD = 3.0 V i Tamb = 25 °C • Magistrala 2-przewodowa typu I2C, 400 kHz • Programowalny sygnał wyjściowy (32.768 kHz, 1024 Hz, 32 Hz i 1 Hz) • Funkcje alarmu i timera • Wewnętrzny kondensator dla oscylatora • Wewnętrzny układ zerowania w momencie włączenia zasilania (power-on reset) • Adres dla I2C-bus: slave address: read A3H and write A2H • Wyjście przerwania typu otwarty Dren (Open-drain interrupt pin). Semestr zimowy 2014/2015, WIEiK-PK Wyprowadzenia układu 26 13 2014-11-26 Układ RTC w mikrokontrolerze STM32F4xx, firmy STM Podstawowe parametry układu: • zliczanie lat, miesięcy, dni, godzin, minut, sekund, ułamków sekund, • trzy źródła sygnału zegarowego, • napięcie zasilania 1.65 to 3.6 V, • automatyczne przełączanie zasilania, • funkcje alarmu, timera, znacznik czasu (Timestamp), • dwa wyjścia alarmowe, • wykrywanie tzw. sabotażu (Tamper detection), • generowanie przerwań sprzętowych na zdarzenia, • 80 bajtów pamięci z podtrzymaniem, Semestr zimowy 2014/2015, WIEiK-PK 27 14