(BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
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. mod. 11-2014 Zygmunt Kubiak 2
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. mod. 11-2014 Zygmunt Kubiak 3
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. mod. 11-2014 Zygmunt Kubiak 4
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. mod. 11-2014 Zygmunt Kubiak 5
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. mod. 11-2014 Zygmunt Kubiak 6
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. mod. 11-2014 Zygmunt Kubiak 7
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 mod. 11-2014 Zygmunt Kubiak 8
mod. 11-2014 Zygmunt Kubiak 9
mod. 11-2014 Zygmunt Kubiak 10
Szeregowe magistrale wbudowane w mikrokontrolery lub często wykorzystywane w aplikacjach z mikrokontrolerami: I 2 C (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. mod. 11-2014 Zygmunt Kubiak 11
Podział magistral szeregowych Synchroniczne (oddzielna linia zegara) I 2 C, 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 12
Zdefiniowane warstwy RS232, RS422, RS485 część warstwy fizycznej I 2 C, 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 13
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 14
Magistrala I 2 C (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 15
Magistrala I 2 C (IIC - Inter Integrated Circuit) Zygmunt Kubiak 16
Magistrala I 2 C (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 17
Magistrala I 2 C (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 18
Magistrala I 2 C (IIC - Inter Integrated Circuit) Transmisja bitów 0 jest sygnałem dominującym który wymusza stan linii Zygmunt Kubiak 19
Magistrala I 2 C (IIC - Inter Integrated Circuit) Warunki Start i Stop Zygmunt Kubiak 20
Magistrala I 2 C (IIC - Inter Integrated Circuit Bus) Potwierdzenie transmisji bajta potwierdza zawsze odbiorca (9-ty bit 0 - sygnał 0 ) Zygmunt Kubiak 21
Magistrala I 2 C (IIC - Inter Integrated Circuit Bus) Procedura arbitrażu dwóch Master ów Zygmunt Kubiak 22
Magistrala I 2 C (IIC - Inter Integrated Circuit Bus) Przykład kompletnego procesu transmisji danych Zygmunt Kubiak 23
Magistrala I 2 C (IIC - Inter Integrated Circuit Bus) Transmisja danych do modułu Slave Odczyt danych z modułu Slave Zygmunt Kubiak 24
Magistrala I 2 C (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 25
Magistrala I 2 C (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 26
Magistrala SMBus (System Management Bus ) Magistrala opracowana na podstawie I 2 C w 1995 roku przy współudziale wielu firm w tym Intel Różnice między SMBus i I 2 C (niewielkie) Różnice parametrów elektrycznych Użycie NACK Protokoły SMBus są podzbiorem formatów transmisji zdefiniowanych dla I 2 C Zygmunt Kubiak 27
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 28
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 29
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 30
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 31
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 32
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 33
Magistrala SPI (Serial Peripheral Interface) Kierunki sygnałów dla układów Master i Slave Linia Układ Master Układ Slave MOSI Określa użytkownik Wejście MISO Wejście SCK /SS Określa użytkownik Wejście Określa użytkownik Wejście Określa użytkownik Uwaga! Sygnał CLK generowany jest zawsze przez układ Master Mikrokontrolery mogą być konfigurowane zarówno do pracy w funkcji Master jak i Slave Zygmunt Kubiak 34
Magistrala SPI (Serial Peripheral Interface) Funkcje wyprowadzenia /SS 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 W przypadku stałej konfiguracji linie /SS ustawione są jako wejścia: dla układu Master /SS=1 a dla Slave /SS=0 Zygmunt Kubiak 35
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 36
Magistrala SPI (Serial Peripheral Interface) Magistrala SPI z jednym układem Master i wieloma układami Slave Zygmunt Kubiak 37
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 38
Magistrala SPI (Serial Peripheral Interface) Przebiegi SPI dla mikrokontrolerów ATmega dla parametru określającego fazę zegara CPHA = 0 Zygmunt Kubiak 39
Magistrala SPI (Serial Peripheral Interface) Blok SPI mikrokontrolera ATmega Zygmunt Kubiak 40
Magistrala SPI (Serial Peripheral Interface) Przykład kodu dla mikrokontrolerów ATmega Zygmunt Kubiak 41
Magistrala SPI (Serial Peripheral Interface) Przykład kodu dla mikrokontrolerów ATmega Zygmunt Kubiak 42
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 43
Magistrala Microwire Schemat bloku Microwire Zygmunt Kubiak 44
Magistrala Microwire Przykład obsługi pamięci EEPROM NMC93C06 (National Semiconductor) Zygmunt Kubiak 45
Magistrala Microwire Przykład konfiguracja (National Semiconductor) Zygmunt Kubiak 46
Magistrala Microwire Przykładowe przebiegi na magistrali Microwire (możliwość konfiguracji aktywnego zbocza i fazy sygnału zegarowego SK) Zygmunt Kubiak 47
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 48
Magistrala 1-Wire Przykład Zygmunt Kubiak 49
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 50
Magistrala 1-Wire Organizacja dostępu do magistrali: Master - Slave Opcja zasilania układu z zewnętrznego napięcia (V DD ) Zygmunt Kubiak 51
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 52
Magistrala 1-Wire Master wysyła sygnał RESET ( 0 min. 480 s) Wszystkie dołączone do magistrali układy Slave potwierdzają swoją obecność czynią to z opóźnieniem 15..60 s, generując 0 przez czas 60..240 s Zygmunt Kubiak 53
Magistrala 1-Wire Sygnały logiczne i obszary testowania linii Zygmunt Kubiak 54
Magistrala 1-Wire Każdy układ posiada unikatowy kod 64-bitowy, który składa się z 1-bajtowego CRC8 (dla g(x)=x 8 +x 5 +x 4 +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 55
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 56
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 57
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 58
Magistrala UNI/O przykład systemu Zygmunt Kubiak 59
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
DZIĘKUJĘ Zygmunt Kubiak 61