Upload
vankhue
View
248
Download
2
Embed Size (px)
Citation preview
2018-01-28
1
Układy czasowo-licznikowe w systemach mikroprocesorowych
1 Semestr zimowy 2017/2018, WIEiK-PK
• 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.
2 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
2
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.
3 Semestr zimowy 2017/2018, WIEiK-PK
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
4 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
3
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.
5 Semestr zimowy 2017/2018, WIEiK-PK
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
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.
clk
D
Q
t
t
t
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.
Podstawowa budowa układu licznikowego
Licznik binarny 2n
wartość początkowa do zliczania
stan aktualny licznika
Bit pożyczki (borrow)
Bit przepełnienia (carry) Generator zegarowy
fclk
Sterowanie zliczaniem
Zerowanie reset
Wpis, set
Sterowanie kierunkiem zliczania, up/down
6 Semestr zimowy 2017/2018, WIEiK-PK
Podstawowe parametry licznika: • pojemność licznika – w kodzie BIN 28, 210, 216, 232 , w kodzie BCD - 1xBCD, 2xBCD,
3xBCD, 4xBCD • format zliczania, kod wyjścia licznika – kod binarny naturalny BIN i kod binarny
dziesiętny BCD, • 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, • wejście zerujące i ustawiające, • możliwość automatycznego wpisania wartości początkowej
Rejestr wartości początkowej
stan licznika
t
Max wartość
wartość „0” zerowanie
Zliczanie w górę
Zliczanie w dół
2018-01-28
4
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)
7 Semestr zimowy 2017/2018, WIEiK-PK
Przykładowa struktura układu licznikowego w mikrokontrolerze
Licznik binarny 2n
wartość początkowa do zliczania
Aktualny stan licznika
auto-przeładowanie
Preskaler
fclk
Zerowanie bitu
IRQ
Sterowanie programowe
zliczaniem
Licznik binarny 2n
Bit przepełnienia
Wybór dzielnika
wstępnego
Rejestr LSB
komparator
Rejestr MSB
Zegar systemowy
Wybór źródła sygnału
fx
Bit równości
fext
Wartość do porównania
Rejestr LSB Rejestr MSB
Sterowanie zliczaniem sygnałem
zewnętrznym
Ext. Gate
8 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
5
Podstawowe funkcje układu czasowego – odmierzanie jednostek czasowych
Licznik binarny 2n
Npo - wartość początkowa do zliczania
auto-przeładowanie
fclk
Zerowanie bitu programowe lub
automatyczne
Generowanie przerwania IRQ
Bit przepełnienia
Rejestr
Zewnętrzna końcówka
mikrokontrolera
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ą
początkową
Czas po którym nastąpi przepełnienie licznika T = (Nmax – Npo)/fclk
Start zliczania
Sterowanie układem wew.
Funkcja
Wybór funkcji
9 Semestr zimowy 2017/2018, WIEiK-PK
Podstawowe funkcje układu czasowego – odmierzanie jednostek czasowych
Semestr zimowy 2017/2018, WIEiK-PK 10
Czas [s]
Stan licznika
START
0x00
0xFF Nmax - wartość max licznika
Npo - wartość początkowa
Przepełnienie (overflow)
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
2018-01-28
6
Podstawowe funkcje układu licznikowego – zliczanie impulsów zewnętrznych
Licznik binarny 2n
Npo - wartość początkowa do zliczania
auto-przeładowanie
Zerowanie bitu programowe lub
automatyczne
Generowanie przerwania IRQ
Bit przepełnienia
Rejestr
Zewnętrzna końcówka
mikrokontrolera
Start zliczania
Zbocze
Wybór zbocza do zliczania
Aktualna wartość licznika
11 Semestr zimowy 2017/2018, WIEiK-PK
Licznik binarny 2n
Npo - wartość początkowa do zliczania
auto-przeładowanie
fclk
Generowanie przerwania IRQ
Bit przepełnienia
Rejestr
Zewnętrzna końcówka
mikrokontrolera
Start zliczania
Sterowanie układem wew.
Podstawowe funkcje układu czasowego – generator sygnału
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%.
Przerzutnik typu D
clk
D
/Q
Q
szerokość impulsu - 50%
T - Okres sygnału
Okres sygnału wyjściowego T = 2 * (Nmax – Npo)/fclk
12 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
7
Podstawowe funkcje układu czasowego – przechwytywanie zdarzeń (capture unit)
Licznik binarny 2n
Wpis do rejestru stanu licznika
fclk
Wybór zbocza sygnału
Sygnał przerwania IRQ
Wybór zbocza Rejestr 1
Start zliczania
Zewnętrzna końcówka
mikrokontrolera Stan rejestru 1
Wykrywanie zbocza
Wpis do rejestru stanu licznika
Wybór zbocza sygnału
Sygnał przerwania IRQ
Wybór zbocza
Zewnętrzna końcówka
mikrokontrolera Stan rejestru 2
Wykrywanie zbocza
Bit przepełnienia
Generowanie przerwania IRQ
Rejestr 2
13 Semestr zimowy 2017/2018, WIEiK-PK
Podstawowe funkcje układu czasowego – porównywanie (compare unit)
Licznik binarny 2n fclk
Sygnał przerwania IRQ
Rejestr stanu
1
Start zliczania
Bit równości
Bit przepełnienia
Generowanie przerwania IRQ
Komparator R Zewnętrzna końcówka
mikrokontrolera Funkcja
Wybór funkcji
R=L
L
Sygnał równości
Sygnał przerwania IRQ
Rejestr stanu
2
Bit równości Komparator R
Zewnętrzna końcówka
mikrokontrolera Funkcja
Wybór funkcji
R=L
L
Sygnał równości
Funkcje wyjścia: • zanegowanie wyjścia, • ustawienie wyjścia, • wyzerowanie wyjścia.
14 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
8
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.
15 Semestr zimowy 2017/2018, WIEiK-PK
Podstawy techniki modulacji PWM
Okres sygnału
Szerokość impulsu
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 niskim toff
T
ton
Umax
Uavg
Okres sygnału
toff
T
ton Regulacja stanem
wysokim
OUT
Regulacja stanem wysokim
/OUT
Ustawiany tzw. czas martwy (dead time)
Okres sygnału
toff
T Regulacja stanem niskim
od przodu i tyłu
toff
ton
Wyjście PWM komplementarne
16 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
9
Przerzutnik
Przykładowa struktura modulatora PWM
Licznik binarny modulo Nt
fclk R
Komparator szerokości
Rejestr szerokości impulsów
Komparator okresu
Rejestr okresu sygnału Nt
Wyjście /PWM
S
=
=
Q Zerowanie
Okres sygnały
Szerokość impulsu
Wyjście z regulacją stanu „0”
17 Semestr zimowy 2017/2018, WIEiK-PK
• 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.
Podstawowe funkcje układu czasowego – modulator PWM
18 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
10
Semestr zimowy 2017/2018, WIEiK-PK 19
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 2017/2018, WIEiK-PK 20
Przykłady układów czasowo-licznikowych
Układ 8-bitowy, ATMEGA128, timer T3 – 16-bitowy
2018-01-28
11
Przykład 6-kanałowego modulatora PWM w
mikrokontrolerze typu ARM, LPC21XX
21 Semestr zimowy 2017/2018, WIEiK-PK
Przykład 32-bitowego licznika w mikrokontrolerze typu
ARM, LPC21XX
22 Semestr zimowy 2017/2018, WIEiK-PK
2018-01-28
12
Przykład 16-bitowego licznika w mikrokontrolerze typu Cortex-M4 w STM32F4xx
Schemat blokowy układu czasowo-licznikowgo TIM1 i TIM8 w STM32F407
Semestr zimowy 2017/2018, WIEiK-PK 23
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), • …… • …….
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 2017/2018, WIEiK-PK 24
2018-01-28
13
Układy RTC – Real Time Clock
Semestr zimowy 2017/2018, WIEiK-PK 25
Układy RTC – PCF8563, firmy NXP
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 2017/2018, WIEiK-PK 26
Wewnętrzny schemat blokowy PCF8563
Schemat aplikacyjny
Wyprowadzenia układu
2018-01-28
14
Układ RTC w mikrokontrolerze STM32F4xx, firmy STM
Semestr zimowy 2017/2018, WIEiK-PK 27
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,
Układy RTC – DS3231, firmy Maxim Integrated
Układ zawiera:
• interfejs szeregowy I2C (400kHz),
• układ zegara RTC, czas i data (kalendarz do 2100 roku),
• układ alarmu,
• wewnętrzny rezonator kwarcowy 32768Hz,
• czujnik temperatury,
Semestr zimowy 2017/2018, WIEiK-PK 28
https://www.maximintegrated.com/en/products/digital/real-time-clocks/DS3231.html
Moduł z układem RTC DS3231 i pamięcią EEPROM 24C32