Systemy wbudowane
description
Transcript of Systemy wbudowane
Systemy wbudowane
Wykład nr 6:
Komunikacja mikrokontrolerów ze światem zewnętrznym
Piotr Bilski
Bloki współpracy z otoczeniem• Wejścia i wyjścia cyfrowe (porty)
• Przetworniki A/C i C/A
• Bloki sterowania szynami i pamięciami zewnętrznymi
• Liczniki, układy pomiaru czasu
• Układy obsługi przerwań
• Bloki transmisji szeregowej i równoległej
Współpraca z pamięcią zewnętrzną
• Komunikacja poprzez szynę (cykl szyny)
• Sposoby adresowania i przesyłania danych (synchronizacja)
• Konieczność stabilizacji sygnałów na odpowiednich liniach
• W przypadku wolniejszych pamięci konieczne jest wprowadzenie stanów oczekiwania (z góry ustalona lub dynamiczna)
Przykład cyklu szyny
ADRES DANE
XTAL1
CLKOUT
ALE
READY
Szyna
RD
WR
Tryby pracy szyny pamięci
7 6 5 4 3 2 1 0
• Tryb pracy nominalny i obniżonej mocy, tryb ochrony pamięci i ograniczenie liczby stanów oczekiwania
• Rejestr konfiguracji (CCR):
• 0 – zezwolenie na tryb obniżonej mocy
• 1 – szerokość szyny (8/16b)• 2 – Wybór strobu zapisu• 3 – Wybór strobu ważnego
adresu
• 4 – IRC0 (Internal Ready Control Mode)
• 5 – IRC1• 6 – LOC0 (Program Lock
Mode)• 7 – LOC1
Sterowanie szynami
• Sygnały sterujące: ALE, WR, BHE
• Wyprowadzenia sygnałów pełnią dwie funkcje: w trybie ze strobowanym zapisem i ze strobowaniem ważnego adresu
• Możliwa kombinacja obu trybów
• Sposób sterowania zależy od szerokości szyny: 8 lub 16 bitów
Wstrzymanie dostępu do szyny
• Konieczne, gdy do tej samej szyny jest podłączonych wiele urządzeń
• Wymagane sygnały HOLD, HLDA, BREQ
• Sygnały mogą mieć własne wyprowadzenia lub być częścią portów
• Możliwe jest blokowanie żądania wstrzymania
Ilustracja wstrzymania dostępu do szyny (hold) – Intel 8xC196
ADRES DANE
CLKOUT
HOLD
HLDA
BREQ
dane/adresy
ALE
Obsługa asynchronicznego sygnału wstrzymania
CLKOUT
HOLD
HLDA
HOLD
HLDA
b)
a)
Podłączenie zewnętrznych pamięci ROM
• Sposób podłączenia zależy od liczby dostępnych pamięci
• Problem implementacji przestrzeni adresowych
• Wybór układu poprzez sygnał na wyjściu ADV mikrokontrolera podawanego na wejście CS układu pamięci
• W bardziej skomplikowanych przypadkach stosowane są wbudowane kodery adresów
Komunikacja z pamięciami EEPROM i Flash
• Jeśli pamięci zostały zaprogramowane wcześniej, współpracują tak, jak pamięci ROM
• Programowanie bez potrzeby wyjmowania z mikrokontrolera (in-circuit programming)
• Możliwość programowania oraz dostęp szeregowy wymusza dodatkowy interfejs
Pamięci z dostępem szeregowym• Są zasilane napięciem 3V lub 5V
• Mają małe rozmiary i niewielką pojemność (kilka kB)
• Wymagają wewnętrznego lub zewnętrznego napięcia programującego
• Główne rodzaje:– Pracujące z niestandardowym protokołem wymiany
danych– I2C EEPROM z protokołem transmisji szeregowej
firmy Philips
Podłączenie pamięci EEPROM do mikrokontrolera przez port
• Operacje wykonywanie przez procedury programowe (konwersja szeregowo-równoległa)
• Kody polecenia 3-bitowe (READ, ERASE, ERAL itp.)
OSC1 OSC2
RESET
IRQ/VPP
PA0PA1PA2
PA3
CSSK
DIDO
Vcc Vss
EEPROM
Vcc
Vcc
RESET
PA7
390 Ω
Vcc
• Tryb 8- i 16-bitowy
Podłączenie pamięci EEPROM do mikrokontrolera przez SPI
• Sprzętowa konwersja szeregowo-równoległa• Praca w trybie z przerwaniami
PA5SCK
MOSI
MISO
CSSK
DIDO
PA4 SS
Vcc
GND
Vcc
Vss
ORG/NC
4.7kΩ
Bezpośredni dostęp do pamięci (DMA)
• Transmisja danych między pamięciami i urządzeniami wejścia-wyjścia bez użycia jednostki centralnej
• Wykorzystuje mechanizm wstrzymania dostępu do szyny
• Wymagane kontrolery DMA
• Zwykle istnieje kilka kontrolerów w systemie
Budowa kontrolera DMAWbudowana pamięć ROM
Wbudowana pamięć RAM
Wbudowane układy
peryferyjne
Zewnętrzna pamięć ROM
Urządzenia zewnętrzne
Zewnętrzna pamięć RAM
Sterownik szyny
Interfejs szyny
SARn
SARn
SARn
CHCRn
DMAOR
Kontroler priorytetów
żądań dostępu
Kontroler startu DMA
Rejestr kontrolny
Sterowanie iteracjami
DREQ0, DREQ1ITU/SCI/ konwe. A/C, SCI
DEInDACK0, DACK1
System przerwań
• Obsługa urządzeń zewnętrznych– Programowe testowanie stanu urządzeń
(polling)– System przerwań (obsługa sprzętowo-
programowa)
• Wymagany rejestr kontrolny dla każdego urządzenia
• Możliwość obsługi priorytetowej
Obsługa przerwań
• Wykonywana tylko gdy przynajmniej jedno urządzenie zgłosiło przerwanie
• Identyfikacja urządzenia – Polling– Łańcuchowanie urządzeń (daisy chain)– Przerwania wektoryzowane
• Obsługa przerwania programowa (procedury)
Porty transmisji równoległej
• Zestawy linii jednocześnie przesyłających sygnały
• Najczęściej 8- lub 16-bitowe
• Rodzaje linii– Dwukierunkowe– Z otwartym obwodem drenu tranzystora– O zwiększonej obciążalności
• Zwykle istnieje wiele portów równoległych
Programowane układy wejścia-wyjścia (PIO)
• Uniwersalne scalone układy wejścia-wyjścia
• Służą do obsługi dużej liczby urządzeń
• Wykorzystanie rejestru sterującego:
D7 D6 D5 D4 D3 D2 D1 D0
D7 – dostęp do słowa trybówD6,D5 – wybór trybu: 0/1/2 (00/01/1X)D4 – port A (wejście/wyjście)D3 – port C - 4 starsze bity (wejście/wyjście)D2 – wybór trybu: 0/1D1 – port B (wejście/wyjście)D0 – port C – 4 młodsze bity (wejście/wyjście)
Interfejsy transmisji szeregowej
• Transmisja synchroniczna i asynchroniczna• Bajty przesyłane jako ciągi następujących
po sobie bitów, uzupełnione bitem parzystości
• Dupleks – możliwość jednoczesnego wysyłania danych w obie strony (potrzebne dwie linie danych)
• Możliwa programowa definicja trybu pracy
Porty uniwersalne
• Reprezentowane przez układy do pracy:– synchronicznej i asynchronicznej
(UART/USART)– synchronicznej (SPI)– Asynchronicznej (SCI)
• Z portem związany jest bufor na dane
• W zaawansowanych mikrokontrolerach istnieją bloki zawierające wiele portów
Standard UART• Podstawowy szeregowy moduł wejścia-
wyjścia w mikrokontrolerach
• Komunikacja dwustronna (full duplex) asynchroniczna, 8 lub 9 bitów
• Prosta konstrukcja bitów parzystości
• Pętla sprzężenia zwrotnego do celów diagnostycznych
• Przykłady interfejsów: RS-232C, RS-485, IrDA
• Prędkości w zakresie 15bps do 1 Mbps
Schemat UART
Rejestry UARTx (Microchip PIC24F)
• UxMODE – rejestr trybu pracy
• UxSTA – rejestr statusu i kontrolny
• UxRXREG – rejestr odbiorczy
• UxTXREG – rejestr nadawczy
• UxBRG – rejestr generatora baud rate
UARTEN UFRZ USIDL IREN RTSMD ALTIO UEN1 UEN0 WAKE LPBACK ABAUD RXINV BRGH
PDSEL1 PDSEL0 STSEL
UTXISE1 UTXINV UTXISE0 -- UTXBRK UTXEN UTXBF TRMT URXISE1URXISE0 ADDEN RIDLE PERR
FERR OERR URXDA
Interfejs I2C
• Standard w elektronice przemysłowej i ogólnego użytku
• Transmisja szeregowa, dupleksowa
• Taktowanie szyny do 100kHz
• Za transmisję odpowiadają specjalizowane kontrolery
• Tryb pracy master/slave
Liczniki• Służą do zliczania impulsów (z
wewnętrznego lub zewnętrznego zegara) oraz pomiaru czasu
• Wykorzystywane są do:– Odmierzania czasu między zewnętrznymi
zdarzeniami– Generowania impulsów o określonym czasie
trwania– Sterowania transmisją w portach
szeregowych– Wykonywania zadań licznika nadzorcy
Blok licznika – konfiguracja podstawowa
• Podstawowy układ – programowany dzielnik częstotliwości impulsów zegarowych (prescaler)
• Zajście zdarzenia może powodować generowanie przerwania do CPU
Zegar/prescaler
Rejestr zatrzaskowy rejestratora zdarzeń
Licznik n-bitowy
Układ wyboru zbocza
zerowanie
zezwolenieProgramowanie aktywnego zbocza
Szyna danych
zdarzenie
Blok licznika – generator impulsów z podwójnym kanałem
• Tzw. licznik z buforem (nie gubi impulsów zegara na wyjściu)
Rejestr kanału 1
Komparator kanału 1
Licznik modulo
Komparator kanału 2
Rejestr kanału 2
Układ selekcji kanału
=
=
Szyna danych
Zegar (prescaler)
Zerowanie
Bloki liczników ogólnego przeznaczenia
Blok rejestratora/komparatora
Licznik impulsów
Prescaler
Blok PWM
Interfejs szyny
IC1/PGP0
IC2/PGP1
IC3/PGP2
OC1/PGP3OC1-2/PGP4OC3-1/PGP5OC4-1/PGP6IC4/OC5-1/ PGP7
PAI
PCLK
PWMAPWMB
Szyna IMB
Przetworniki A/C
• Wykorzystują metody:– Sukcesywnej aproksymacji– Jednozboczowego ładowania pojemności
• Zawierają układ próbkująco-pamiętający (sample-and-hold), komparator, rejestr aproksymacyjny oraz układ sterujący
Charakterystyki przejściowe i dokładność przetwarzania A/C