Upload
vohanh
View
219
Download
0
Embed Size (px)
Citation preview
Zygmunt Kubiak 2
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Odległości pomiędzy źródłem a odbiorcą informacji mogą być bardzo zróżnicowane, przykładowo zaczynając od pojedynczych milimetrów w przypadku połączenia sensora z mikrokontrolerem, do setek czy tysięcy kilometrów między układami pomiarowymi a stacją nadzorczą w rozproszonym systemie monitorowania środowiska, np. węzły komunikujące się poprzez Internet.
Zygmunt Kubiak 3
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Połączenie między elementami systemu, przez które przepływa informacja nazywane jest interfejsem.
Pojęcie interfejsu nie ogranicza się wyłącznie do fizycznej realizacji połączenia ale obejmuje również zasady wymiany informacji, opisane w dokumentacji standardu komunikacyjnego.
Często, zamiennie stosuje się pojęcie magistrali.
Wymiana danych między elementami systemu odbywa się przez kanał transmisyjny, rozumiany jako warstwa sprzętowa interfejsu. Jego specyficzne właściwości zależą od fizycznej formy tego medium (np. przewód, światłowód, fale radiowe).
Większość standardów komunikacyjnych umożliwia realizację połączenia między więcej niż dwoma punktami systemu – wprowadza się wtedy pojęcie sieci.
Zygmunt Kubiak 4
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Połączenie między elementami systemu, przez które przepływa informacja nazywane jest interfejsem.
Pojęcie interfejsu nie ogranicza się wyłącznie do fizycznej realizacji połączenia ale obejmuje również zasady wymiany informacji, opisane w dokumentacji standardu komunikacyjnego.
Często, zamiennie stosuje się pojęcie magistrali.
Wymiana danych między elementami systemu odbywa się przez kanał transmisyjny, rozumiany jako warstwa sprzętowa interfejsu. Jego specyficzne właściwości zależą od fizycznej formy tego medium (np. przewód, światłowód, fale radiowe).
Większość standardów komunikacyjnych umożliwia realizację połączenia między więcej niż dwoma punktami systemu – wprowadza się wtedy pojęcie sieci.
Zygmunt Kubiak 5
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Połączenie między elementami systemu, przez które przepływa informacja nazywane jest interfejsem.
Pojęcie interfejsu nie ogranicza się wyłącznie do fizycznej realizacji połączenia ale obejmuje również zasady wymiany informacji, opisane w dokumentacji standardu komunikacyjnego.
Często, zamiennie z interfejsem stosuje się pojęcie magistrali.
Wymiana danych między elementami systemu odbywa się przez kanał transmisyjny, rozumiany jako warstwa sprzętowa interfejsu. Jego specyficzne właściwości zależą od fizycznej formy tego medium (np. przewód, światłowód, fale radiowe).
Większość standardów komunikacyjnych umożliwia realizację połączenia między więcej niż dwoma punktami systemu – wprowadza się wtedy pojęcie sieci.
Zygmunt Kubiak 6
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Połączenie między elementami systemu, przez które przepływa informacja nazywane jest interfejsem.
Pojęcie interfejsu nie ogranicza się wyłącznie do fizycznej realizacji połączenia ale obejmuje również zasady wymiany informacji, opisane w dokumentacji standardu komunikacyjnego.
Często, zamiennie stosuje się pojęcie magistrali.
Wymiana danych między elementami systemu odbywa się przez kanał transmisyjny, rozumiany jako warstwa sprzętowa interfejsu. Jego specyficzne właściwości zależą od fizycznej formy tego medium (np. przewód, światłowód, fale radiowe).
Większość standardów komunikacyjnych umożliwia realizację połączenia między więcej niż dwoma punktami systemu – wprowadza się wtedy pojęcie sieci.
Zygmunt Kubiak 7
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Połączenie między elementami systemu, przez które przepływa informacja nazywane jest interfejsem.
Pojęcie interfejsu nie ogranicza się wyłącznie do fizycznej realizacji połączenia ale obejmuje również zasady wymiany informacji, opisane w dokumentacji standardu komunikacyjnego.
Często, zamiennie stosuje się pojęcie magistrali.
Wymiana danych między elementami systemu odbywa się przez kanał transmisyjny, rozumiany jako warstwa sprzętowa interfejsu. Jego specyficzne właściwości zależą od fizycznej formy tego medium (np. przewód, światłowód, fale radiowe).
Większość standardów komunikacyjnych umożliwia realizację połączenia między więcej niż dwoma punktami systemu – wprowadza się wtedy pojęcie sieci.
Zygmunt Kubiak 8
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Podział interfejsów ze względu na typ sygnału będącego nośnikiem informacji
Interfejsy analogowe
Interfejsy cyfrowe Interfejsy przewodowe
Szeregowe magistrale wbudowane w mikrokontrolery
Sieci przemysłowe
Interfejsy bezprzewodowe
Zygmunt Kubiak 11
mod. 11-2014
MAGISTRALE MIKROKONTROLERÓW
Szeregowe magistrale wbudowane w mikrokontrolery lub często wykorzystywane w aplikacjach z mikro-kontrolerami:
I2C (ang. Inter IC), SMBus (ang. System Management Bus),
SPI (ang. Serial Peripheral Interface), Microware,
UNI/O (One I/O),
UART (RS232, RS422, RS485),
USB,
1-Wire,
CAN,
LIN,
Modbus.
Zygmunt Kubiak 12
09-2006
MAGISTRALE MIKROKONTROLERÓW
Podział magistral szeregowych Synchroniczne (oddzielna linia zegara)
I2C, SPI
Zmiana częstotliwości zegara w trakcie transmisji danych nie ma wpływu na jej jakość
Asynchroniczne Synchronizowane przez podział ramki na znaki (np. Modbus)
Synchronizowane – specjalne reguły, np. CAN „szpikowanie” bitami, częściowa synchronizacja przy każdym przejściu z sygnału dominującego do recesywny
Zygmunt Kubiak 13
09-2006
MAGISTRALE MIKROKONTROLERÓW
Zdefiniowane warstwy RS232, RS422, RS485 – część warstwy fizycznej
I2C, SPI – warstwa fizyczna
CAN, LIN, USB – warstwa fizyczna i warstwa łącza danych
1-Wire, Modbus - warstwa fizyczna i warstwa łącza danych, warstwa aplikacyjna
Zygmunt Kubiak 14
09-2006
MAGISTRALE MIKROKONTROLERÓW
W interfejsach asynchronicznych nie występuje linia zegara i w związku z tym powstaje do rozwiązania problem synchronizacji bitowej.
Dla zapewnienia w tym przypadku poprawnej transmisji, w węzłach nadawczych i odbiorczych wymagane są stabilne generatory zegarowe (rezonatory kwarcowe, MEMS lub SAW).
Zygmunt Kubiak 15
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit) Opracowana na początku lat 80-tych przez firmę Philips jako lokalna magistrala szeregowa (początkowo dla sprzętu audio-wizualnego), służąca do wymiany danych pomiędzy układami scalonymi danego systemu
Zygmunt Kubiak 16
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit)
Zygmunt Kubiak 17
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit) Magistrala I2C składa się z dwóch linii sygnałowych : SDA (serial data) - do przesyłania danych i SCL (serial clock) - do przesyłania sygnału taktującego, oraz linii masy. Obydwie linie magistrali I2C są liniami dwukierunkowymi. Dzięki przemyślanej konstrukcji
magistrali I2C może być do niej podłączonych wiele układów.
Zygmunt Kubiak 18
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit) Dzięki zastosowaniu tranzystorów z otwartym drenem w stopniu wyjściowym („iloczyn na drucie”) możliwe jest podłączenie do magistrali kilku i więcej układów komunikujących się ze sobą po szynie I2C. Obwody sterujące liniami SCL i SDA maja taka samą budowę i są przystosowane do pracy dwukierunkowej. Rezystory Rp są niezbędne.
Zygmunt Kubiak 19
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit) Transmisja bitów – „0” jest sygnałem dominującym który wymusza stan linii
Zygmunt Kubiak 20
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit) Warunki Start i Stop
Zygmunt Kubiak 21
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit Bus) Potwierdzenie transmisji bajta – potwierdza zawsze odbiorca (9-ty bit 0 - sygnał „0”)
Zygmunt Kubiak 22
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit Bus) Procedura arbitrażu dwóch Master’ów
Zygmunt Kubiak 23
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit Bus) Przykład kompletnego procesu transmisji danych
Zygmunt Kubiak 24
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit Bus) Transmisja danych do modułu Slave
Odczyt danych z modułu Slave
Zygmunt Kubiak 25
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit Bus) Kombinowany transfer z powtórzonym warunkiem Startu (kierunek transferu zależy od wartości bitów R/W)
Zygmunt Kubiak 26
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala I2C (IIC - Inter Integrated Circuit Bus) Transfer kombinowany. Master przesyła dane do dwóch węzłów Slave, jednego z 7-bitowym adresem i drugiego z adresem 10-bitowym. Pierwszy bajt 10-bitowego adresu rozpoczyna się od charakterystycznego ciągu 11110.
Zygmunt Kubiak 27
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SMBus (System Management Bus ) Magistrala opracowana na podstawie I2C w 1995 roku przy współudziale wielu firm w tym Intel
Różnice między SMBus i I2C (niewielkie) Różnice parametrów elektrycznych
Użycie NACK
Protokoły SMBus są podzbiorem formatów transmisji zdefiniowanych dla I2C
Zygmunt Kubiak 28
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SMBus (System Management Bus ) Typowe sekwencje Master pracującego w trybie nadawania danych (przykład dla mikrokontrolerów C8051Fxxx firmy Silicon Laboratories)
Zygmunt Kubiak 29
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SMBus (System Management Bus ) Typowe sekwencje Master pracującego w trybie odbioru danych (przykład dla mikrokontrolerów C8051Fxxx firmy Silicon Laboratories)
Zygmunt Kubiak 30
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SMBus (System Management Bus ) Typowe sekwencje Slave pracującego w trybie odbioru danych (przykład dla mikrokontrolerów C8051Fxxx firmy Silicon Laboratories)
Zygmunt Kubiak 31
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SMBus (System Management Bus ) Typowe przebiegi Slave pracującego w trybie nadawania danych (przykład dla mikrokontrolerów C8051Fxxx firmy Silicon Laboratories)
Zygmunt Kubiak 32
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Opracowana w firmie Motorola
Interfejs SPI umożliwia szybkie synchroniczne przesyłanie danych pomiędzy mikrokontrolerami, a także układami zewnętrznymi
Transmisja odbywa się w trybie Master-Slave
Zygmunt Kubiak 33
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Sygnały sterujące
MISO (Master In Slave Out) – linia wejściowa danych dla układu Master MOSI (Master Out Slave In) - linia wejściowa danych dla układu Slave SS (Slave Select) – linia wyboru trybu pracy układu, odpowiednik sygnału CS (Chip Select) SCK (Serial Data Clock) – linia zegara
Uwaga! czasem spotyka się inne oznaczenia sygnałów linii danych – inna interpretacja
SDI albo DIN – niezależnie od układu, wejście danych SDO lub DOUT – niezależnie od układu, wyjście danych
Zygmunt Kubiak 34
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Kierunki sygnałów dla układów Master i Slave Uwaga! Sygnał CLK generowany jest zawsze przez układ Master Mikrokontrolery mogą być konfigurowane zarówno do pracy w funkcji Master jak i Slave
Linia Układ Master Układ Slave
MOSI Określa użytkownik Wejście
MISO Wejście Określa użytkownik
SCK Określa użytkownik Wejście
/SS Określa użytkownik Wejście
Zygmunt Kubiak 35
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Funkcje wyprowadzenia /SS W przypadku stałej konfiguracji linie /SS ustawione są jako wejścia: dla układu Master /SS=1 a dla Slave /SS=0
Tryb Konfiguracja /SS
Stan linii /SS
Opis
Slave Zawsze H Slave nieaktywny
wejście L Slave aktywny
Wejście H Master aktywny
Master L Master nieaktywny
Wyjście H Slave nieaktywny
L Slave aktywny
Zygmunt Kubiak 36
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Transakcja wymiany danych inicjowana jest zawsze przez układ Master, który również jest źródłem sygnału CLK
Linie wyjścia danych muszą być w programie ustawione ręcznie
W układzie Slave gdy sygnał /SS=1, wszystkie linie SPI są wejściami
Zygmunt Kubiak 37
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Magistrala SPI z jednym układem Master i wieloma układami Slave
Zygmunt Kubiak 38
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Aby transmisja pomiędzy mikrokontrolerem, a urządzeniem peryferyjnym przebiegała prawidłowo muszą być spełnione następujące warunki:
zachowanie jednakowej długość danej (najczęściej 8 bitów lub wielokrotność tej liczby),
taka sama kolejność wysyłania bitów (najczęściej od MSB do LSB, niektóre mikrokontrolery mają możliwość programowej zmiany tej kolejności),
zgodna polaryzacja i faza sygnału zegarowego (w SPI dane wpisywane są jednym zboczem a przesuwane drugim)
Zygmunt Kubiak 39
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Przebiegi SPI dla mikrokontrolerów ATmega dla parametru określającego fazę zegara CPHA = 0
Zygmunt Kubiak 40
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface)
Blok SPI mikrokontrolera
ATmega
Zygmunt Kubiak 41
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Przykład kodu dla mikrokontrolerów ATmega
Zygmunt Kubiak 42
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala SPI (Serial Peripheral Interface) Przykład kodu dla mikrokontrolerów ATmega
Zygmunt Kubiak 43
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala Microwire Magistrala synchroniczna podobna do SPI, firmowana przez National Semiconductor
Sygnały SI (Serial Input Line) – wejście rejestru przesuwającego
SO (Serial Output Line) – wyjście rejestru przesuwającego
SK (Serial Clock) - zegar
/CS (Chip Select) – linia wyboru układu
Zygmunt Kubiak 45
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala Microwire Przykład obsługi pamięci EEPROM NMC93C06 (National Semiconductor)
Zygmunt Kubiak 46
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala Microwire Przykład konfiguracja (National Semiconductor)
Zygmunt Kubiak 47
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala Microwire Przykładowe przebiegi na magistrali Microwire (możliwość konfiguracji aktywnego zbocza i fazy sygnału zegarowego SK)
Zygmunt Kubiak 48
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Magistrala 1-Wire została opracowana w firmie Dallas Semiconductor (obecnie MAXIM).
Magistrala może być implementowana na dwa sposoby:
Z dwoma przewodami – linia DQ oraz masy. Rozwiązanie nazywane 1-Wire
Z trzema przewodami – dodatkowa linia Vdd (zasilanie +5V)
Zygmunt Kubiak 50
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Cechy
Dwukierunkowa szyna danych
Linia sygnałowa jednocześnie pełni rolę obwodu zasilania
Do jednej linii może być dołączonych wiele układów (teoretycznie setki)
Zygmunt Kubiak 51
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Organizacja dostępu do magistrali: Master - Slave
Opcja zasilania układu z zewnętrznego napięcia (VDD)
Zygmunt Kubiak 52
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Gdy magistrala jest wolna, na linii występuje napięcie +5V, co powoduje ładowanie wewnętrznego kondensatora dołączonego układu. Ładunek ten wystarcza do realizacji transmisji
Zygmunt Kubiak 53
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Master wysyła sygnał RESET („0” min. 480s)
Wszystkie dołączone do magistrali układy Slave potwierdzają swoją obecność – czynią to z opóźnieniem 15..60s, generując „0” przez czas 60..240s
Zygmunt Kubiak 54
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Sygnały logiczne i obszary testowania linii
Zygmunt Kubiak 55
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Każdy układ posiada unikatowy kod 64-bitowy, który składa się z 1-bajtowego CRC8 (dla g(x)=x8+x5+x4+1), 48-bitowego, unikatowego numeru elementu oraz 8-bitowego kodu rodziny elementu (np. dla DS1822 bajt ten ma wartość 22h). Ten unikatowy kod 64-bitowy stanowi adres układu Slave. Pozwala on rozpoznać dowolny układ dołączony do magistrali.
Zygmunt Kubiak 56
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire Standardowo jedna sesja łączności na magistrali 1-Wire składa się z trzech faz:
Master wysyła RESET, a wszystkie układy Slave potwierdzają obecność.
Master adresuje jeden lub więcej układów Slave.
Master wysyła polecenie „funkcyjne” i ewentualnie nadaje lub odbiera dane.
Zygmunt Kubiak 57
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala 1-Wire
Przykładowe polecenia: SEARCH ROM (F0h) – polecenie przeznaczone do znajdowania adresów układów Slave dołączonych do magistrali.
SKIP ROM (CCh) – gdy Master współpracuje tylko z jednym układem adres nie jest potrzebny; wtedy należy użyć polecenia SKIP ROM; dalsze polecenia nie wymagają wtedy adresu.
READ ROM (33h) – polecenie używane gdy do magistrali dołączony jest tylko jeden Slave; READ ROM odczytuje 8-bajtowy adres układu.
MATCH ROM (55h) – wybranie elementu Slave o znanym adresie; Master wysyła polecenie MATCH ROM oraz unikatowy, 8-bajtowy adres układu; wszystkie układy o innych adresach wyłączają się aż do ponownego sygnału RESET.
Zygmunt Kubiak 58
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala UNI/O
Magistrala asynchroniczna UNI/O została opracowana w firmie Microchip w 2008 r.
Składa się z jednej, dwukierunkowej linii danych SCIO (ang. Single Connection I/O)
Zygmunt Kubiak 60
09-2006
MAGISTRALE MIKROKONTROLERÓW
Magistrala UNI/O
Magistrala asynchroniczna UNI/O została opracowana w firmie Microchip w 2008 r.
Składa się z jednej, dwukierunkowej linii danych SCIO (ang. Single Connection I/O)