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