Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Interfejsy synchroniczne

Podobne prezentacje


Prezentacja na temat: "Interfejsy synchroniczne"— Zapis prezentacji:

1 Interfejsy synchroniczne
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

2 Interfejsy synchroniczne
Interfejsy można podzielić na synchroniczne (oddzielna linia zegara), np. I2C, SPI oraz asynchroniczne, np. CAN W rozwiązaniach synchronicznych zmiana częstotliwości zegara w trakcie transmisji danych nie wpływa na jej jakość Zygmunt Kubiak

3 Interfejsy synchroniczne
Transmisja synchroniczna Zazwyczaj jeden z węzłów pełni funkcje master’a – zarządza transmisją (inicjuje) i generuje zegar Zygmunt Kubiak

4 Interfejsy synchroniczne
Zygmunt Kubiak

5 Interfejsy synchroniczne I²C
Magistrala I2C (ang. Inter IC) opracowana została na początku lat 80-tych w firmie Philips jako lokalny synchroniczny interfejs szeregowy (początkowo dla sprzętu audio-wizualnego), służący do wymiany danych pomiędzy układami scalonymi danego systemu. M Zygmunt Kubiak

6 Interfejsy synchroniczne I²C
Magistrala łączy układy programowalne Zygmunt Kubiak

7 Interfejsy synchroniczne I²C
Przykładowa sieć I²C (IIC - Inter Integrated Circuit) Zygmunt Kubiak

8 Interfejsy synchroniczne I²C
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

9 Interfejsy synchroniczne I²C
Dzięki zastosowaniu tranzystorów z otwartym drenem w stopniu wyjściowym („suma 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

10 Interfejsy synchroniczne I²C
Transmisja bitów – „0” jest sygnałem dominującym który wymusza stan linii Zygmunt Kubiak

11 Interfejsy synchroniczne I²C
Warunki Start i Stop Zygmunt Kubiak

12 Interfejsy synchroniczne I²C
Potwierdzenie transmisji bajta – potwierdza zawsze odbiorca (9-ty bit 0 - sygnał „0”) Zygmunt Kubiak

13 Interfejsy synchroniczne I²C
Procedura arbitrażu dwóch Master’ów Zygmunt Kubiak

14 Interfejsy synchroniczne I²C
Przykład kompletnego procesu transmisji danych Zygmunt Kubiak

15 Interfejsy synchroniczne I²C
Transmisja danych do modułu Slave Odczyt danych z modułu Slave Zygmunt Kubiak

16 Interfejsy synchroniczne I²C
Kombinowany transfer z powtórzonym warunkiem Startu (kierunek transferu zależy od wartości bitów R/W) Zygmunt Kubiak

17 Interfejsy synchroniczne I²C
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

18 Interfejsy synchroniczne I²C
C8051F020 – SMBUS/I²C Zygmunt Kubiak

19 Interfejsy synchroniczne I²C
C8051F020 – SMBUS/I²C Master nadaje sekwencje danych Zygmunt Kubiak

20 Interfejsy synchroniczne I²C
C8051F020 – SMBUS/I²C Master odbiera sekwencje danych Zygmunt Kubiak

21 Interfejsy synchroniczne I²C
C8051F020 – SMBUS/I²C Slave nadaje dane Zygmunt Kubiak

22 Interfejsy synchroniczne I²C
C8051F020 – SMBUS/I²C Slave odbiera dane Zygmunt Kubiak

23 Interfejsy synchroniczne I²C
Przykład czujnik ciśnienia BMP180 Zygmunt Kubiak

24 Interfejsy synchroniczne I²C
Przykład czujnik ciśnienia BMP180 Zygmunt Kubiak

25 Interfejsy synchroniczne I²C
Przykład czujnik ciśnienia BMP180 Współczynniki kalibracyjne zapisane w EEPROM Zygmunt Kubiak

26 Interfejsy synchroniczne I²C
Przykład czujnik ciśnienia BMP180 Zygmunt Kubiak

27 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xAA + ACK - adres rejestru sterującego w BMP180 Starszy bajt rejestru 0xAA – parametr AC1 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x1D + ACK - MSB 0x08 + NACK - LSB Zygmunt Kubiak

28 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xAC + ACK - adres rejestru sterującego w BMP180 Starszy bajt rejestru 0xAC – parametr AC2 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0xFC + ACK - MSB 0x4F + NACK - LSB Zygmunt Kubiak

29 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xAE + ACK - adres rejestru sterującego w BMP180 Starszy bajt rejestru 0xAE – parametr AC3 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0xCF + ACK - MSB 0x03 + NACK - LSB Zygmunt Kubiak

30 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xB2 + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xB2 – parametr AC5 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x61 + ACK - MSB 0xFA + NACK - LSB Zygmunt Kubiak

31 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xB4 + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xB4 – parametr AC6 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x3D + ACK - MSB 0xC8 + NACK - LSB Zygmunt Kubiak

32 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xB6 + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xB6 – parametr B1 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x19 + ACK - MSB 0x73 + NACK - LSB Zygmunt Kubiak

33 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xB8 + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xB8 – parametr B2 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x00 + ACK - MSB 0x1B + NACK - LSB Zygmunt Kubiak

34 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xBA + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xBA – parametr MB 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x80 + ACK - MSB 0x00 + NACK - LSB Zygmunt Kubiak

35 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xBC + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xBC – parametr MC 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0xD1 + ACK - MSB 0xF6 + NACK - LSB Zygmunt Kubiak

36 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 0xEE (0x77 + bit R/W = 0 + ACK) – adres BMP180, zapis 0xBE + ACK - adres rejestru sterującego w BMP180 Starszy baj rejestru 0xBE – parametr MD 0xEF (0x77 + bit R/W = 0 + ACK) – adres BMP180, odczyt 0x0A + ACK - MSB 0xD2 + NACK – LSB Zygmunt Kubiak

37 Interfejsy synchroniczne I²C
Przykład transmisji I²C - konfiguracja BMP180 Przedstawiona powyżej korespondencja między mikrokontrolerem a sensorem BMP180 dotyczy odczytu współczynników kalibracyjnych (AC1, AC2, AC3, AC4, AC5, AC6, B1, MB, MC, MD), które są niezbędne dla obliczenia rzeczywistej wartości temperatury i ciśnienia Cała sekwencja podzielona jest na pakiety zaczynające się od adresu układu BMP180 i zakończone bitem NACK (wybór adresu BMP180, wybór adresu rejestru zawierającego współczynnik kalibracyjny, odczyt współczynnika kalibracyjnego) Każdy pakiet załączonej wyżej sekwencji, odczytuje jeden współczynnik kalibracyjny Zygmunt Kubiak

38 Interfejsy synchroniczne
SPI Zygmunt Kubiak

39 Interfejsy synchroniczne SPI
SPI (ang. 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

40 Interfejsy synchroniczne SPI
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

41 Interfejsy synchroniczne SPI
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 SCK /SS Zygmunt Kubiak

42 Interfejsy synchroniczne SPI
Funkcje wyprowadzenia /SS Uwaga! Sygnał CLK generowany jest zawsze przez układ Master Mikrokontrolery mogą być konfigurowane zarówno do pracy w funkcji Master jak i Slave Tryb Konfiguracja /SS Stan linii /SS Opis Slave Zawsze H Slave nieaktywny wejście L Slave aktywny Wejście Master aktywny Master Master nieaktywny Wyjście Zygmunt Kubiak

43 Interfejsy synchroniczne SPI
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

44 Interfejsy synchroniczne SPI
Magistrala SPI z jednym układem Master i wieloma układami Slave Zygmunt Kubiak

45 Interfejsy synchroniczne SPI
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

46 Interfejsy synchroniczne SPI
Przebiegi SPI dla mikrokontrolerów ATmega dla parametru określającego fazę zegara CPHA = 0 Zygmunt Kubiak

47 Interfejsy synchroniczne SPI
Przebiegi Blok SPI mikrokontrolera ATmega Zygmunt Kubiak

48 Interfejsy synchroniczne SPI
Przykład kodu dla mikrokontrolerów ATmega Zygmunt Kubiak

49 Interfejsy synchroniczne SPI
Przykład kodu dla mikrokontrolerów ATmega Zygmunt Kubiak

50 Interfejsy synchroniczne SPI
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

51 Interfejsy synchroniczne SPI
Magistrala Microwire Schemat bloku Microwire Zygmunt Kubiak

52 Interfejsy synchroniczne SPI
Magistrala Microwire Przykład obsługi pamięci EEPROM NMC93C06 (National Semiconductor) Zygmunt Kubiak

53 Interfejsy synchroniczne SPI
Magistrala Microwire Przykład konfiguracja (National Semiconductor) Zygmunt Kubiak

54 Interfejsy synchroniczne SPI
Magistrala Microwire Przykładowe przebiegi na magistrali Microwire (możliwość konfiguracji aktywnego zbocza i fazy sygnału zegarowego SK) Zygmunt Kubiak

55 Interfejsy synchroniczne SPI
Przykład C8051F020 Zygmunt Kubiak

56 Interfejsy synchroniczne SPI
Przykład C8051F020 Zygmunt Kubiak

57 Interfejsy synchroniczne SPI
Przykład C8051F020 Zygmunt Kubiak

58 Interfejsy synchroniczne SPI
Przykład C8051F020 Zygmunt Kubiak

59 Interfejsy synchroniczne SPI
Przykład – moduł radiowy nRF24L01P Zygmunt Kubiak

60 Interfejsy synchroniczne SPI
Przykład – moduł radiowy nRF24L01P Zygmunt Kubiak

61 Interfejsy synchroniczne SPI
Przykład – moduł radiowy nRF24L01P, Rej. 0x06 Zygmunt Kubiak

62 Interfejsy synchroniczne SPI
Przykład – moduł radiowy nRF24L01P Operacje odczytu i zapisu Zygmunt Kubiak

63 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x24, 0x4F MISO: 0x0E, 0x00 MOSI: 0x06, 0xFF MISO: 0x0E, 0x07 Zygmunt Kubiak

64 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x26, 0x07 MISO: 0x0E, 0x00 MOSI: 0x06, 0xFF MISO: 0x0E, 0x07 Zygmunt Kubiak

65 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x26, 0x27 MISO: 0x0E, 0x00 MOSI: 0x06, 0xFF MISO: 0x0E, 0x27 Zygmunt Kubiak

66 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x26, 0x27 MISO: 0x0E, 0x00 MOSI: 0x26, 0x07 Zygmunt Kubiak

67 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x06, 0xFF MISO: 0x0E, 0x07 MOSI: 0x00, 0xFF MISO: 0x0E, 0x0C Zygmunt Kubiak

68 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x20, 0x0C MISO: 0x0E, 0x00 MOSI: 0x3C, 0x00 Zygmunt Kubiak

69 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0x27, 0x70 MISO: 0x0E, 0x00 MOSI: 0x22, 0x4C Zygmunt Kubiak

70 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); MOSI: 0xE2 MISO: 0x0E MOSI: 0xE1 Zygmunt Kubiak

71 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); Sekwencja generowana przy wywołaniu funkcji radio.begin() dotyczy konfiguracji układu nRF24L01P MOSI: 0x24, 0x4F; 0x06, 0xFF; 0x26, 0x07; 0x06, 0xFF; x26, 0x27; 0x06, 0xFF; 0x26, 0x27; 0x26, 0x07; 0x06, 0xFF; x00, 0xFF; 0x20, 0x0C; 0x3C, 0x00; 0x27, 0x70; 0x22, 0x4C; xE2; 0xE1 Cała sekwencja z reguły podzielona jest na grupy 2-bajtowe Pierwszy bajt jest zawsze komendą, drugi to dana Zygmunt Kubiak

72 Interfejsy synchroniczne SPI
Przykład – nRF24L01P, radio.begin(); Sekwencja generowana przy wywołaniu funkcji radio.begin() dotyczy konfiguracji układu nRF24L01P MOSI: 0x24, 0x4F; 0x06, 0xFF; 0x26, 0x07; 0x06, 0xFF; x26, 0x27; 0x06, 0xFF; 0x26, 0x27; 0x26, 0x07; 0x06, 0xFF; x00, 0xFF; 0x20, 0x0C; 0x3C, 0x00; 0x27, 0x70; 0x22, 0x4C; xE2; 0xE1 Np. 0x24 (001A AAAA) – oznacza W_REGISTER, A – adr. Rejestru Adr. Rej. – SETUP_RETR (Setup of Autom.Retransmission) Dana 0x4F ( ) – bity 7:4 ARD (Auto Retransmit Delay) bity 3:0 ARC (Auto Retransmit Count) Opóźnienie automatycznej retransmisji 1250μs oraz do 15 retransmisji Zygmunt Kubiak

73 Dziękuję Zygmunt Kubiak


Pobierz ppt "Interfejsy synchroniczne"

Podobne prezentacje


Reklamy Google