61
MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Prezentacja programu PowerPoint - fc.put.poznan.plfc.put.poznan.pl/materials/84-zkubiak-magistrale-uc-bss.pdf · MAGISTRALE MIKROKONTROLERÓW ... przez które przepływa ... Linie

  • Upload
    vohanh

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

MAGISTRALE MIKROKONTROLERÓW (BSS)

Zygmunt Kubiak

Instytut Informatyki

Politechnika Poznańska

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 9

mod. 11-2014

MAGISTRALE MIKROKONTROLERÓW

Zygmunt Kubiak 10

mod. 11-2014

MAGISTRALE MIKROKONTROLERÓW

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 44

09-2006

MAGISTRALE MIKROKONTROLERÓW

Magistrala Microwire Schemat bloku Microwire

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 49

09-2006

MAGISTRALE MIKROKONTROLERÓW

Magistrala 1-Wire Przykład

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 59

09-2006

MAGISTRALE MIKROKONTROLERÓW

Magistrala UNI/O przykład systemu

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)

Zygmunt Kubiak 61

09-2006

DZIĘKUJĘ