SW 09b(full permission)


Systemy Wbudowane
Dr inż. Mariusz Fraś
 Mikroarchitektura systemów wbudowanych
" Układy we/wy
© maf 1
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy we/wy
" Układy we/wy w mikrokontrolerach
PIO  port we/wy
UART, USRT, USART
I2C, 1Wire
SPI, TWI Układy transmisji szeregowej
USB
CAN
A/C, C/A  przetworniki sygnału
Układy odmierzania czasu
" Liczniki
" PWM
" &
JTAG (ang. Joint Test Action Group)
" Do testowania i programowania układów
© maf 2
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy we/wy
" Porty
Układy doprowadzające sygnały binarne na zewnątrz i
odwrotnie
" Czytanie danych z portu: doprowadzenie chwilowego stanu portu
(wartości sygnału w momencie czytania) do szyny danych
" Zapis do portu: zapamiętanie chwilowego stanu szyny danych na
zewnętrznych wyprowadzeniach portu
Funkcjonalność wykorzystana przez pozostałe układy we/wy
" Wielofunkcyjność portów
zapis
ukł.
wyprowadzenie
pam.
portu
odczyt
Mikrokontroler
© maf 3
wew. szyna danych
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy we/wy
" Konfiguracja
Jedno i dwukierunkowe
Zwykle grupowane w 8/16/32 bitowe
Różne konstrukcje układów sterujących  różne rejestry konfig.
" Programowanie portów ATMega16/32
DDRx rejestry konfiguracji 8-bitowych portów (x=A,B,C,D)
PORTx  rejestry wyjścia portów A, B, C, D
PINx  rejestr wejścia portów A, B, C, D
// port A jako wyjście
DDRA = 0xFF;
// port B jako wejście
DDRB = 0x00;
if(PINB & 0x01 == 0x00)
PORTA = 0xF0;
else
PORTA = 0x0F;
© maf 4
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy we/wy
" Zakres zastosowań układów transmisji szeregowej
100 m
UART /
10 m
/ USRT
1 m
I2C
10 cm
SPI
1 cm
1 Mbps 10 Mbps 100 Mbps
1 kbps 10 kbps 100 kbps
© maf 5
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" Przesyłanie zawartości bufora w postaci szeregowej
Asynchronicznie i synchronicznie
" UART (ang. Universal Asynchronous Receiver/Transmitter)
" USRT (ang. Universal Synchronous Receiver/Transmitter)
Transmisja danych
" Rejestr przesuwny - konwerter szeregowo-równoległy (i odwrotnie)
" Przesyłany znak jako ciąg bitów (zwykle 7 lub 8 bitów)
" Wykrywane: bitu startu, stopu
 dla każdego znaku
Bufor
wyj.
(Tx)
Rejestr przesuwny port
wej.
(Rx)
Bufor
UART
CLK UART
UART
UART
© maf 6
wew. szyna danych
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" UART
Sygnały taktujące wytwarzane niezależnie (ta sama
częstotliwość)
" Częstotliwość  wielokrotność szybkości transmisji
Transmisja
LSB
MSB
st b1 b2 b3 b4 b5 b6 b7 bp stop
" Wykrywanie bitu startu, stopu
start: logiczne 1, stop: logiczne 0 (1 lub 2 bity)
" USRT
Dodatk. sygnał synchronizujący, określający chwile stanów linii
" USART
Zintegrowany układ synchr. i asynchr. transmisji szeregowej
" Dodatkowe układy konwertujące
Dostosowanie wartości sygnałów do różnych standardów
RS232, RS485
" 1-Wire
© maf 7
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" UART w ATMega16/32
UBRR  rejestr szybkości transmisji
" Dwa rejestry UBRRH i UBRRL
UBRR = fosc / (16 Å" BAUD)  1
BAUD = fosc / 16 Å" ( UBRR + 1)
" Dla fosc=1MHz i BAUD=2400b/s
UBRR H" 25,04 UBRR = 25 Err = 0,2%
" Stosowanie zewnętrznych oscylatorów
Dla fosc = n Å" 1,8432MHz : Err = 0%
UCSRA, UCSRB, UCSRC  rejestry kontroli statusu
UCSRB - rejestr B kontroli i statusu USART
RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8
Nazwy pól = nazwy mnemoniczne stałych:
" RXEN  włączenie odbiornika, zmiana funkcji nogi PD0 na RxD
" TXEN  włączenie nadajnika, zmiana funkcji nogi PD1 na TxD
" UCSZ2  liczba przesyłanych bitów (wraz z rejestrami z UCSRC)
© maf 8
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" UART w ATMega16/32
UCSRC - rejestr C kontroli i statusu USART
URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL
" URSEL  musi być ustawiony na 1 (0 to zapis do rejestru UBRRH)
" UMSEL  tryb pracy
0  asynchroniczny 1  synchroniczny
" UPM1:UPM0  tryb parzystości
00  bez bitu parzystości 01  wartość zarezerwowana
10  bit parzystości 11  bit nieparzystości
" USBS  liczba bitów stopu
0  jeden bit 1  dwa bity
" UCSZ1:0
Liczba bitów
void USART_Init( unsigned int ubrr ) {
// ustaw szybkość
UCSZ2 UCSZ1 UCSZ0 li. bitów
UBRRH = (unsigned char)(ubrr>>8);
0 0 0 5-bit
UBRRL = (unsigned char) ubrr;
0 0 1 6-bit
//ustaw odbiór i nadawanie
UCSRB = (1<0 1 0 7-bit
//ustaw format: 8b danych, 2b stopu
0 1 1 8-bit
UCSRC=(1<1 1 1 9-bit
}
© maf 9
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" UART w ATMega16/32
UCSRA - rejestr A kontroli i statusu USART
RXC TXC UDRE FE DOR PE U2X MPCM
" RXC  ustawiony gdy
void USART_Transmit( unsigned char dane )
sÄ… nie przeczytane
{
dane
//czekaj na busty bufor
" UDRE  ustawiony
while ( !( UCSRA & (1<gdy bufor nadawczy
;
jest pusty
//wstaw dane do bufora i wyślij
UDR = dane;
UDR rejestr danych
}
" współdzielone
unsigned char USART_Receive( void )
adresowo 2 bufory
{
(praca full-duplex):
//czekaj na odbiór
RXB  odczyt
while ( !(UCSRA & (1< TXB  zapis
/zwróć dane z bufora
return UDR;
}
© maf 10
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" SPI (ang. Serial Peripheral Interface)
Zastosowania magistrali SPI:
" wyświetlacze LCD
" karty pamięci SD/MMC, EEPROM
" komunik. między kontrolerami
Komunikacja sterowana zegarowo
Tryb synchroniczny komunikacji
(tryb full-duplex)
Linie komunikacyjne:
" MOSI - (ang. Master Output Slave Input)
" MISO - (ang. Master Input Slave Output)
" SCK / SCLK - (ang. Serial ClocK)
" CS / SS (ang. Chip Select)
MSB LSB
MOSI MOSI
MISO MISO
SCLK SCLK
CLK
CS CS
MASTER SLAVE
© maf 11
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" SPI (ang. Serial Peripheral Interface)
Charakterystyka
" Transmisja 1-70MHz
" Zmiana danych na zmianÄ™ zbocza
sygnału zegara
" W ATMega
Pojedynczy bufor nadawczy  zapis po wysłaniu ostatniego bitu
Podwójny bufor odbiorczy  dane muszą być odczytane przed odbiorem
następnych
Konfiguracje
© maf 12
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" SPI w ATMega16/32
SPDR  rejestr danych SPI
SPCR - rejestr kontroli SPI
SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0
" SPE - bit włączenia interfejsu SPI
" MSTR - wybór master/slave
" SPR1:0 - szybkość zegara SPI  kombinacje z SPI2X definiujÄ… fosc/2÷128
SPSR  rejestr statusowy SPI
SPIF WCOL SPI2X
" SPIF - flaga przerwania SPI ustawiana po zakończeniu transmisji
W Atmega 16/32: DDR_SPI=DDRB (port B), DD_MOSI=PB5 (pin 5),
DD_SCK=PB7 (pin 7)
void SPI_MasterInit(void) void SPI_MasterTransmit(char dane)
{ {
//ustaw MOSI i SCK jako wyj //start transmisji
//(pozostałe jako wej) SPDR = dane;
DDR_SPI = (1<//włącz SPI, Master i zegar = fck/16 while(!(SPSR & (1<SPCR = (1<} }
© maf 13
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" I2C (ang. akr. Inter-Integrated Circuit) / TWI
Przesyłanie danych pomiędzy układami w urz. Elektronicznych  np.:
" PCF8563/8583 - zegar, kalendarz, alarm, timer
" PCF8576, PCF8577 - sterowniki wyświetlaczy LCD
" PCF8591 - 8-bitowy, 4-kanałowy przetwornik
" & bardzo wiele innych
Dwuprzewodowy interfejs synchroniczny
Transmisja dwukierunkowa, typu master-slave (multi-master)
Identyfikacja układu za pomocą unikalnego adresu sprzętowego (7 lub
10 bit)
Mechanizmy arbitrażu umożliwiające uniknięcie kolizji i utraty danych
Cztery wersje I2C
" wersja podstawowa: do 100 kb/s, 7-mio bitowy adres
" wersja 1.0 (fast mode): do 400 kb/s, 10-cio bitowa przestrzeń adresowa
" wersja 2.0 (high speed mode): do 3,4 Mb/s
" wersja 2.1 (2000 r)
© maf 14
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" I2C / TWI
Szeregowa magistrala zorientowana bajtowo
" Dwie dwukierunkowe linie:
- - linia zegara SCL (ang. Serial Clock Line),
- - linia danych SDA (ang. Serial Data Line)
Cztery tryby pracy: MR, MT, SR i ST:
" master (M)  inicjuje komunikacje i generuje sygnał zegara,
" slave (S)  reaguje na dane pojawiajÄ…ce siÄ™ na szynie.
" nadawanie (T)  umieszczanie danych na szynie,
" odbieranie (R)  odczytywanie danych z szyny.
© maf 15
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" I2C / TWI
Transmisja
" Sygnał START
" Ramka adresowa: 9bit
7bit adres +
8-my bit READ/WRITE +
9-ty bit ACK/NACK (bit potwierdzenia - odbiór adresu przez slave)
" Ramka danych: 9bit
pewna liczba ramek z danymi
8 bitów danych
9-ty bit potwierdzenia ACK/NACK
" Sygnał STOP
© maf 16
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" TWI w ATMega16/32
Realizuje komunikacje po I2C
Zwalnia programistę z konieczności implementacji komunikacji
na poziomie sygnałów na liniach SCL i SDA
WÅ‚Ä…czenie TWI
" SCL na PC0
" SDA na PC1
" TWBR, TWPS  rejestry
określające szybkość transmisji
Szybkość transmisji:
freqSCL = CPU_Clk / ( 16 + 2 Å" (TWBR) Å" 4TWPS )
© maf 17
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" USB (ang. Universal Serial Bus)
Automatyczna detekcja dołączenia/odłączenia urządzenia
" Enumeracja  konfiguracja urządzeń przeprowadzana po
dołączeniu lub odłączeniu nowego urządzenia od magistrali
" Proces przeprowadzany przez urządzenie nadrzędne (Master)
Adres urzÄ…dzenia w przestrzeni USB
Rodzaj transferu
Kierunek transmisji danych (read, write, read-write)
Rozmiar przesyłanych pakietów
Szybkość transmisji
Adresy buforów używanych przez sterowniki urządzenia
PrÄ…d pobierany przez urzÄ…dzenie
Pojedyncze, ustandaryzowane złącze
Możliwość dołączenia do 127 urządzeń do magistrali
Automatyczna detekcja i korekcja błędów
Szybkość transmisji danych:
" LOW 1.5 Mb/s  USB 1.0
" FULL 12 Mb/s  USB 1.0
" HI 480 Mb/s  USB 2.0
" SuperSpeed 4,8 Gb/s  USB 3.0
© maf 18
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" USB (ang. Universal Serial Bus)
Asymetryczna architektura
" Host Controller (Master)
" USB Device
UrzÄ…dzenia logiczne
Każdemu urządzeniu (device function)
odpowiada jeden 7-bitowy adres
nadawany przez hosta
Kanały komunikacji (Logical pipes)
Komunikacja
" Stream pipe  jednokierunkowa transmisja
isochronous transfer  czas rzecz., stałe tempo, możliwość utraty
informacji (audio, wideo)
interrupt transfer  natychmiastowe potwierdzenie (urz. we-wy)
bulk transfer  zmienne tempo, maksymalna przepustowość (transfer
danych)
" Message pipe  dwukierunkowa transmisja
control transfer  krótkie proste komendy sterujące
© maf 19
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy transmisji szeregowej
" CAN (ang. Controller Area Network)
Komunikacja:
" Wspólna szyna szeregowej transmisji asynchronicznej
" Rozgłoszeniowa, zorientowana na wiadomości (8 bajtów)
" ID wiadomości
" Tryb multi-master  każdy węzeł może wysyłać/odbierać
wiadomości ale nie jednocześnie
" Priority based bus arbitration  mechanizm dominancji bitowej
(niższy ID zwycięża  więcej zer na początku)
" 1 Mbps do 40m (powyżej 40m mniejsza prędkość)
" Sprzętowe techniki zabezpieczeń przed błędami
Duża odporność na zakłócenia i niezawodność
" Powszechne zastosowanie w technice motoryzacyjnej
© maf 20
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy czasowo-licznikowe
" Timery
UrzÄ…dzenie peryferyjne procesora przeznaczone do odmierzania
określonych przedziałów czasu (zliczania elementarnych cykli
zegarowych)
Po odmierzeniu wymaganego okresu czasu timer zwykle
generuje przerwanie
Timery wykorzystywane sÄ… do odmierzania czasu systemowego,
przełączania wątków, generacji opóznień.
" Stosowanie układów służących do odmierzania czasu
Cykliczne generowanie sygnałów  PIT (ang. Periodic Interval
Timer, Programmable Interrupt Timer)
Generowania różnego rodzaju przebiegów na wyjściu  PWM
(ang. Pulse Width Modulation)
Zliczanie zdarzeń zewnętrznych  TC (ang. Timer Counter)
Odmierzania czasu miedzy pewnymi zdarzeniami
Odmierzanie czasu rzeczywistego  RTT (ang. Real-Time Timer)
© maf 21
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy czasowo-licznikowe
" Liczniki
Układy zliczające zmiany stanu w rejestrze przesuwnym
" Właściwe (timer)  taktowane wewn. sygnałem zegarowym (CPU)
Wzorce czasu
" Liczniki (counter)  taktowane zewn. sygnałami z portów we
Liczniki zmian poziomów sygnałów zewnętrznych
" Zastosowania: pomiar czasu, generowania impulsów, sterowanie
szybkością transmisji portów szeregowych, watchdog
zliczany sygn. zewn.
port
rejestr przesuwny
PDC
zegar zewn.
Mikrokontroler
© maf 22
wew. szyna danych
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy czasowo-licznikowe
" Liczniki
Zazwyczaj wiele trybów pracy
Różne rejestry o różnych
funkcjach
253
254
© maf 23
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy czasowo-licznikowe
" PWM (ATMega16/32)
© maf 24
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Układy czasowo-licznikowe
" PWM (ATMega16/32)
© maf 25
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" Przetworniki A/C i C/A (A/D i D/A lub ADC i DAC)
Układy realizujące przetwarzanie wartości analogowych
sygnałów na cyfrowe (i odwrotnie)
Podstawowe parametry:
" zakres przetwarzanych napięć wejściowych  minimalne U0
maksymalne Umax napięcie wejściowe,
" zwykle: U0 = 0 V lub U0 = -Umax, UREF = Umax  U0
" rozdzielczość bitowa  liczba bitów n wyznaczająca liczbę
poziomów kwantowania = 2n
" rozdzielczość napięciowa (czasem oznaczane LSB)  wielkość
kwantu
"U = UREF / 2n
" czas przetwarzania tc  czas potrzebny dla wykonania jednego
cyklu przetworzenia
" częstotliwość próbkowania  maksymalna częstotliwość z jaką
mogą być wykonywane kolejne przetworzenia
nie może przekroczyć odwrotności czasu przetwarzania
© maf 26
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" Próbkowanie
Zapamiętanie na pewien czas wartości chwilowej sygnału
analogowego (potencjalnie zmieniajÄ…cego siÄ™ w czasie)
Kwantyzacja
" porównanie wartości analogowej Ux z podzieloną na przedziały "U
wartości referencyjnej UREF
Ux = Uk = kÅ""U (jest to przybliżenie)
" Komparator
Ux 0 lub 1 logiczne
Uk
Kodowanie
" przyporządkowanie k określonej wartości binarnej
U
100
011
010
001
"U
000
t
tc © maf
27
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" Metody przetwarzania
Metoda bezpośrednia
" Napięcie wejściowe jest porównywane bezpośrednio przez 2n
komparatorów z 2n napięciami odniesienia
" Metoda bardzo szybka ale bardzo kosztowna
" Trudno jest osiągnąć dobrą liniowość
Metoda całkująca / ładowania pojemności
" Poprzez dokładny pomiar czasu
" Napięcie na kondensatorze:
" Gdy prąd jest stały:
" Metoda z pojedynczym całkowaniem
czas t = f(Ux, U0, Umax, RC)
" Matoda z podwójnym całkowaniem
czas t = f(Ux, UREF, 2n)
najdokładniejsza metoda przetwarzania
Metoda sukcesywnej aproksymacji - SAR (od ang. Successive
Approximation)
© maf 28
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" Metoda sukcesywnej aproksymacji - SAR (ang. Successive
Approximation)
Napięcie wejściowe jest porównywane za pomocą komparatora z
napięciem wyjściowym przetwornika cyfrowo-analogowego
W kolejnych krokach wyznacza się kolejną wartość rejestru
aproksymacyjnego
" Algorytm wyszukiwania binarnego  zmiany napięcia od MSB do LSB
Dokładność przetwarzania zależy od liniowości i dokładności C/A
Mniejsza rozdzielczość
rejestr
C/A
aproksymacyjny
wejście
sterowanie
analogowe
algoryt. SAR UPP
komparator
zegar
© maf 29
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" BÅ‚Ä…d kwantyzacji
Maksymalna możliwa różnica pomiÄ™dzy Ux i Uk=kÅ""U
W ukÅ‚adach stosuje siÄ™ przesuniÄ™cie i wtedy bÅ‚Ä…d = Ä… ½ LSB
(Ä… ½ "U)
k k
błąd kwantyzacji błąd kwantyzacji
przesunięcie
½ LSB
UREF Ux UREF Ux
© maf 30
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" BÅ‚Ä…d wzmocnienia
gdy Us `" LSB
k
błąd
wzmoc-
nienia
Us
UREF
Ux
© maf 31
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika
Przetworniki AC/CA
" Błędy przetwarzania A/C
Nieliniowość różniczkowa w
k
i-tym kanale:
LD(i) = ("Ui-Un)/Un
Un  wartość nominalna
(ew. średnia Ui)
Nieliniowość różniczkowa
LD(i) = max LD(i)
Nieliniowość całkowa:
LI = ("Ui)max/UREF
"U3
"
"
"
lub
i
LI (i) =
"U1
"
"
"
"L ( j)
D
j=0
Monotoniczność gdy
UREF
0 LSB < Ui < 2 LSB
© maf 32
Å›
awska
Å‚
Fra
Wroc
Informatyki
Mariusz
Instytut
Politechnika


Wyszukiwarka

Podobne podstrony:
SWb(full permission)
SWch(full permission)
SWeh(full permission)
SWch(full permission)
SWah(full permission)
SWc(full permission)
SWch(full permission)
SWf(full permission)
SWeh(full permission)
SWeh(full permission)
SWd(full permission)
SWah(full permission)
SWah(full permission)
wyklada ekosystem ziemi(full permission)
7 Prezentacje(full permission)
10 Konstrukcja blachowa(full permission)
5 Dokumentacja płaska(full permission)
wyklada cykl c n s(full permission)
12 Generator ram(full permission)

więcej podobnych podstron