I 2 C BUS (1) 1 L.Łukasiak: Podstawy Techniki Mikroprocesorowej (materiały pomocnicze)

Podobne dokumenty
Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Magistrala LIN

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Hardware mikrokontrolera X51

Zastosowania mikrokontrolerów w przemyśle

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Na początku lat dziewięćdziesiątych międzynarodowy przemysł samochodowy stanął przed dwoma problemami dotyczącymi rozwoju samochodów: jak poprawić kom

Mikroprocesor Operacje wejścia / wyjścia

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Wykład 3. Interfejsy CAN, USB

Interfejsy systemów pomiarowych

Problematyka sieci miejscowej LIN

Komunikacja w mikrokontrolerach Laboratorium

Sieci komputerowe - warstwa fizyczna

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Przesyłania danych przez protokół TCP/IP

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Systemy wbudowane - wykład 7

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Architektura komputerów. Układy wejścia-wyjścia komputera

Paweł MOROZ Politechnika Śląska, Instytut Informatyki

Przemysłowe Sieci Informatyczne. Sieć CAN (Controller Area Network)

Układy transmisji przewodowej. na przykładzie USB

PRZEDSTAWIENIE WYNIKÓW ANALIZY STRUKTURY NAGŁÓWKA RAMKI CAN POD KĄTEM WPŁYWU POSZCZEGÓLNYCH PÓL NA LICZBĘ WSTAWEK BITOWYCH

Współpraca procesora z urządzeniami peryferyjnymi

Architektura komputerów

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura komputerów

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Interfejsy. w systemach pomiarowych. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

Standard transmisji równoległej LPT Centronics

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

MAGISTRALA CAN STRUKTURA RAMKI CAN

Sieci komputerowe. Wykład 2: Sieci LAN w technologii Ethernet. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Programowanie mikrokontrolerów 2.0

Warstwa łącza danych. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa. Sieciowa.

MIKROPROCESORY architektura i programowanie

dokument DOK wersja 1.0

TCP/IP. Warstwa łącza danych. mgr inż. Krzysztof Szałajko

5. Model komunikujących się procesów, komunikaty

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Magistrale szeregowe

Instrukcja MM-717 Tarnów 2010

Metody obsługi zdarzeń

MIKROPROCESORY architektura i programowanie

Protokół CAN-bus PKP.

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Instrukcja do ćwiczenia : Matryca komutacyjna

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Programowanie mikrokontrolerów. 8 listopada 2007

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

interfejs szeregowy wyświetlaczy do systemów PLC

Sieci komputerowe. Zadania warstwy łącza danych. Ramka Ethernet. Adresacja Ethernet

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

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

OPROGRAMOWANIE ODBIORNIKA / NADAJNIKA PODCZERWIENI UNIV

Komunikacja z urzadzeniami zewnętrznymi

Sieci komputerowe. Wykład 2: Sieci LAN w technologii Ethernet. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

TEMPERATURE CONTROL SYSTEM BY THE CAN BUS UKŁAD REGULACJI TEMPERATURY POPRZEZ MAGISTRALĘ CAN

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Sieci komputerowe. Zajęcia 2 Warstwa łącza, sprzęt i topologie sieci Ethernet

Standard sieci komputerowej Ethernet

Komunikacja w mikrokontrolerach Laboratorium

Rozproszone przewodowe systemy pomiarowe

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Programowany układ czasowy APSC

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Architektura mikrokontrolera MCS51

Wykład 14. Zagadnienia związane z systemem IO

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Architektura mikrokontrolera MCS51

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Oprogramowanie przekaźnika monostabilnego UNIV

Współpraca procesora z urządzeniami peryferyjnymi

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

2.1 Porównanie procesorów

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

ETHERNET. mgr inż. Krzysztof Szałajko

Protokół CAN-bus PKP.

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Pomoc dla użytkowników systemu asix 6. Strategia buforowa

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

TECHNIKA MIKROPROCESOROWA

Interfejs transmisji danych

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Sterowniki programowalne

Transkrypt:

I 2 C BUS (1) Protokół komunikacyjny I 2 C BUS został opracowany przez firmę Philips w celu umożliwienia komunikacji między układami scalonymi Magistrala (bus) składa się z dwóch linii dwukierunkowych: linii danych SDA linii zegara SCL 1

I 2 C BUS (2) Obie linie muszą być podłączone do dodatniego napięcia zasilania: V cc V cc SDA SCL 2

I 2 C BUS (3) Definicja protokołu komunikacji: 1) Przesył danych może nastąpić tylko wtedy, kiedy magistrala jest wolna 2) Podczas przesyłu danych linia danych nie może zmieniać stanu wtedy, kiedy linia sygnału zegarowego jest w stanie wysokim 3) Zmiana stanu linii danych podczas wysokiego stanu linii sygnału zegarowego oznacza sygnał sterujący 3

4) Stany magistrali: I 2 C BUS (4) a) magistrala wolna - obie linie w stanie wysokim b) początek przesyłu danych (START) - sygnał sterujący SCL SDA t BUF t HD_STA 4

I 2 C BUS (5) 4) Stany magistrali (c.d.): c) koniec przesyłu danych (STOP) - sygnał sterujący SCL SDA t SU_STOP 5

I 2 C BUS (6) 4) Stany magistrali (c.d.): d) przesył danych SCL SDA ważne dane ważne dane Na jeden bit danych przypada jeden takt sygnału zegarowego 6

I 2 C BUS (7) Nadajnik -urządzenie, które wysyła dane Odbiornik -urządzenie, które odbiera dane Urządzenie nadrzędne (master) - urządzenie, które generuje sygnał zegarowy Dane są przesyłane bajtami. Po przyjęciu bajtu odbiornik wysyła potwierdzenie (9-ty bit) 7

I 2 C BUS (8) Potwierdzenie: Master generuje dodatkowy takt sygnału zegarowego. Nadajnik wystawia na linię SDA stan wysoki. Odbiornik musi wymusić na linii SDA stan niski przez cały czas, kiedy SCL jest w stanie wysokim. 8

I 2 C BUS (9) Koniec danych (w przeciwieństwie do końca bajtu) jest sygnalizowany przez odbiornik typu master poprzez brak potwierdzenia. Nadajnik pozostawia linię SDA w stanie wysokim, aby master mógł wygenerować sekwencję STOP. 9

I 2 C BUS (10) Przykład: Master - 8051 (np. można użyć linii portu P1) Slave - PCF8582A - EEPROM 256B 1) Zapis danych S SLAVE ADDR. 0AWORD ADDRESSA BAJT DANYCH AP R/W 10

2) Odczyt danych: I 2 C BUS (11) Potwierdzenie od pamięci S SLAVE ADDR. 0 AWORD ADDRESSA S SLAVE ADDR. 1 A R/W BAJT DANYCH A BAJT DANYCH A BAJT DANYCH 1 P Potwierdzenie od 8051 Brak potwierdzenia 11

I 2 C BUS (12) Adresy: Adres urządzenia składa się z 7 bitów. Zwykle cztery z nich są ustalone i oznaczają grupę urządzeń (np. pamięci EEPROM) Pozostałe są programowane (wyprowadzenia podłączane do masy lub zasilania) Najmłodszy bit określa kierunek przepływu danych: 0 - zapis, 1 - odczyt 12

I 2 C BUS (13) Synchronizacja sygnału zegarowego 1) Wszystkie urządzenia typu master generują swój sygnał zegarowy na linii SCL. 2) Synchronizacja wynika ze sposobu podłączenia urządzeń do linii SCL (wired AND) - 0 jest stanem dominującym. 3) Kiedy na linii SCL pojawia się zbocze opadające, wszystkie układy typu master zaczynają odliczać swój niski stan sygnału zegarowego. 13

I 2 C BUS (14) Synchronizacja sygnału zegarowego (c.d.) 4) Stan niski pozostaje na linii SCL dotąd, aż urządzenie wymuszające stan niski najdłużej zakończy odliczanie. 5) Od momentu wykrycia zbocza narastającego na SCL wszystkie układy typu master zaczynają odliczać stan wysoki. 6) Układ, który odlicza stan wysoki najkrócej, wymusi na linii SCL stan niski, itd. 14

I 2 C BUS (15) Synchronizacja sygnału zegarowego (c.d.) wait state U1 Reset licznika U2 SCL 15

I 2 C BUS (16) Arbitraż: 1) Przeprowadzany na linii danych SDA 2) Wygrywa to urządzenie typu master, które pierwsze wyśle stan niski 3) Arbitraż obejmuje wiele bitów, aż do rozstrzygnięcia 4) Urządzenie typu master, które przegrało, może generować sygnał zegarowy do końca bajtu, w którym przegrało. 16

I 2 C BUS (17) 5) Jeżeli rozstrzygnięcie nastąpiło w trakcie przesyłu adresu, to urządzenie, które przegrało, przechodzi w tryb slave receive (bo istnieje możliwość, że ten, który wygrał, odwoływał się do tego, który przegrał. 6) Hand-shake - jeżeli odbiornik typu slave nie nadąża z odbiorem na poziomie bajtów, to po wygenerowaniu potwierdzenia przytrzymuje linię zegara w stanie niskim (urządzenie typu master przechodzi wtedy w stan oczekiwania) aż do czasu, kiedy będzie gotów. 17

CAN - Controller Area Network Sieć CAN opracowana w latach 80-tych przez firmę Bosch -miała być stosowana w systemach pracujących w czasie rzeczywistym Szybki przesył informacji ( do 1Mb/s), duża odporność na zakłócenia - dlatego często stosowana w motoryzacji W samochodach obecne są różnego typu funkcje sterowane elektronicznie, np. wtrysk paliwa, ABS czy ASC (acceleration skid control) 18

CAN - Controller Area Network ASC wymaga synchronizacji pracy silnika oraz wtrysku paliwa, aby można było zredukować obroty, jeżeli koło się ślizga. Jeżeli wykonanie jakiejś funkcji wymaga bieżącej informacji z kilku urządzeń, to urządzenia te należy połączyć w jakąś sieć. Aby ograniczyć liczbę kabli stosuje się transmisję szeregową. 19

CAN - Controller Area Network Węzeł 1 Węzeł 2 CPU CPU Terminator magistrali Sterownik CAN Sterownik CAN Terminator magistrali CAN_H CAN_L 20

CAN - Controller Area Network Przesył danych odbywa się na dwóch liniach: CAN_H oraz CAN_L. Logiczne 0 CAN_H > CAN_L (stan dominujący). Logiczna 1 CAN_H < CAN_L (stan recesywny). Różnicowy przesył danych zwiększa niezawodność!!! Transmisja danych musi być szybka i skuteczna, bo wymaga tego bezpieczeństwo użytkownika (samochód). Jak zatem zorganizować arbitraż??? 21

CAN - Controller Area Network Destination-oriented -każdy węzeł w sieci ma swój adres - tak było do tej pory. Data-oriented lub content-oriented (sieć CAN) - każdy rodzaj przesyłanej informacji ma swój identyfikator. 22

CAN - Controller Area Network Arbitraż przeprowadza się na 11-bitowym identyfikatorze informacji. Wygrywa ten węzeł, który wcześniej wysłał zero (stan dominujący) - węzły monitorują stan linii. Jeżeli wykryją, że na linii pojawił się stan inny, niż ten, który próbowały wystawić, przechodzą w tryb odbioru. Węzeł, który wygrał wysyła swoją informację do końca. Zaleta: przynajmniej jedna informacja została wysłana. 23

CAN - Controller Area Network Każdy rodzaj informacji (np. liczba obrotów silnika, poziom oleju, itd.) ma swój identyfikator. Identyfikator informacji jest tym niższy, im ważniejsza jest informacja. 24

CAN - Controller Area Network Arbitraż -przykład Węzeł nr 1 Węzeł nr 2 Węzeł nr 3 Stan linii przegrał nr 1 przegrał nr 3 25

CAN - Controller Area Network Skuteczny arbitraż to nie wszystko, potrzebne jest także wykrywanie błędów Format danych (standardowy): linia nieaktywna S O F Identyfikator informacji (11 bitów) arbitraż R T R I D E r 0 DLC (4 bity) sterowanie SOF - Start Of Frame - 1 bit dominujący ( 0 ) Identyfikator informacji - arbitraż RTR - Remote Transmission Request dominujący - przesył danych recesywny - prośba o dane 0-8 bajt d danyc 26

CAN - Controller Area Network Format danych (c.d.): linia nieaktywna S O F Identyfikator informacji (11 bitów) arbitraż R T R I D E r 0 DLC (4 bity) sterowanie 0-8 bajt d danyc IDE - IDentifier Extension dominujący - format standardowy (identyfikator 11-bitowy) recesywny - format rozszerzony (identyfikator 29-bitowy) r0 - bit zarezerwowany dla przyszłych zasto 27 sowań (zawsze dominujący)

CAN - Controller Area Network Format danych (c.d.): koniec CRC koniec ACK I D E r 0 DLC (4 bity) 0-8 bajtów danych CRC 15 bitów A C K EOF 3 bity sterowanie dane CRC ACK EOF DLC - Data Length Code (określa długość danych 0-8 bajtów) CRC - Cyclic Redundancy Check ( suma kontrolna) koniec CRC - zawsze recesywny ACK - potwierdzenie (nadajnik zwalnia linię, odbiornik musi wystawić stan dominujący) koniec ACK - zawsze recesywny 28

CAN - Controller Area Network Format danych (c.d.): koniec CRC koniec ACK 0-8 bajtów danych CRC 15 bitów A C K EOF 3 bity dane CRC ACK EOF I N T linia nieaktywna EOF - End Of Frame (3 bity recesywne) INT - INTermission Field - (3 bity recesywne - w tym czasie nie wolno nadawać) 29

CAN - Controller Area Network Format rozszerzony: linia nieaktywna S O F Identyfikator (11 bitów) S R R I D E Identyfikator (18 bitów) R T R r 1 r 0 SRR - Substitute Remote Request - część pola arbitrażu (zawsze recesywny - 1 ) Jeżeli pierwsza część identyfikatora jest taka sama, to wygrywa format standardowy 30

CAN - Controller Area Network Wykrywanie błędów: Suma kontrolna CRC odbiornik oblicza CRC i porównuje z otrzymaną wartością, brak zgodności oznacza błąd. Sprawdzanie formatu ramki Niektóre pola mają ustalone wartości np.: koniec CRC, koniec ACK, EOF, INT Jeżeli w tym polu zostanie odebrana inna wartość niż przewidziana, oznacza to błąd. 31

CAN - Controller Area Network Wykrywanie błędów (c.d.): Sprawdzanie potwierdzenia Odbiornik ma obowiązek wystawić stan dominujący w polu ACK. Jeżeli nadajnik nie wykryje potwierdzenia, zgłasza błąd Monitorowanie stanu linii Jeżeli nadajnik stwierdzi, że poza polem arbitrażu lub potwierdzenia nie udało mu się wystawić żądanej wartości, zgłasza błąd. 32

CAN - Controller Area Network Wykrywanie błędów (c.d.): Bit stuffing W trakcie poprawnej transmisji w pewnych polach ramki SOF, Arbitraż, Sterowanie, Dane, CRC nie może się pojawić więcej niż 5 bitów o tej samej wartości. Po każdych 5 bitach tej samej wartości nadajnik automatycznie wstawia dodatkowy bit o wartości przeciwnej. Odbiorniki automatycznie opuszczają ten bit. Jeżeli go jednak zabraknie, zgłaszają błąd. 33

CAN - Controller Area Network Wykrywanie błędów (c.d.): Komunikat o błędzie: Więcej niż 5 kolejnych bitów o tej samej wartości Wykrywanie awarii węzła: Każdy węzeł posiada dwa liczniki błędów TEC - Transmit Error Counter REC - Receive Error Counter 34

CAN - Controller Area Network Błąd W zależności od typu błędu liczniki są zwiększane o pewną wartość Poprawna transmisja lub odbiór Zawartość odpowiedniego licznika jest zmniejszana (pod warunkiem, że jest różna od zera). 35

CAN - Controller Area Network 6 x 0 6 x 1 TEC lub REC > 127 Error Active TEC i REC < 128 Error Passive TEC > 255 128 x 11 bitów recesywnych Bus Off 36

CAN - Controller Area Network Skuteczność wykrywania błędów: prawdopodobieństwo nie wykrycia błędu danych: 4.7x10-11 Przykład: Sieć CAN pracuje codziennie przez 8 godzin z szybkością 1Mb/s, przy założeniu, że przesyłane komunikaty mają średnio długość 80 bitów, a sieć wykorzystana jest w 50% Jeden nie wykryty błąd pojawi się raz na 1000 lat 37

CAN - Controller Area Network Skuteczność wykrywania błędów: prawdopodobieństwo nie wykrycia błędu danych: 4.7x10-11 Przykład: Sieć CAN pracuje codziennie przez 8 godzin z szybkością 1Mb/s, średnia długość komunikatów 80 bitów, sieć wykorzystana w 50% Jeden nie wykryty błąd pojawi się raz na 1000 lat 38

83C152 83C152 - Universal Communications Controller (oparty na 8051BH) Zwykły port szeregowy (local serial channel - LSC) Maksymalna szybkość transmisji w trybie 0 to 1Mb/s (f osc = 11.059 MHz) Maksymalna szybkość transmisji w trybie 2 to 375 kb/s Ulepszony port szeregowy (Global Serial Channel - GSC), szybkość przesyłu do 2.4 Mb/s, realizuje kilka protokołów przesyłu danych. 39

83C152 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) Format danych: PREAMBUŁA BOF ADRES DANE CRC EOF Preambuła - na przemian zera i jedynki, długość programowalna: 0, 8, 16, 32, 64 bity umożliwia odbiornikom synchronizację informuje pozostałe nadajniki, że linia jest zajęta 40

83C152 CSMA/CD (c.d.) Format danych (c.d.) PREAMBUŁA BOF ADRES DANE CRC EOF BOF -początek ramki (dwie kolejne jedynki) informuje o końcu preambuły oraz o tym, że za chwilę będzie nadawany adres ADRES - adres odbiornika (8 lub 16 bitów), automatyczne rozpoznawanie adresów 41

83C152 CSMA/CD (c.d.) Format danych (c.d.) PREAMBUŁA BOF ADRES DANE CRC EOF DANE - długość dowolna, ale musi być wielokrotnością 8 bitów CRC - suma kontrolna generowana sprzętowo EOF - koniec ramki (wysoki stan linii przez 2 bity) 42

83C152 CSMA/CD (c.d.) Problemy: Jak wykryć błędy transmisji? Jak przeprowadzić arbitraż? 43

Kodowanie danych Błędy transmisji Najprostszym sposobem kodowania danych jest kodowanie poziomem, tj. Niski poziom - 0 Wysoki poziom - 1 Wady: Wysyłanie długich sekwencji może spowodować, że odbiornik się rozsynchronizuje. 44

Błędy transmisji Port szeregowy kontrolera 8051 przesyła dane w porcjach 10 lub 11-bitowych (bit startu, 8 lub 9 bitów danych, bit stopu), problem utraty synchronizacji nie jest więc krytyczny. Bywają jednak protokoły, które dopuszczają możliwość przesyłania danych o znaczącej długości - tutaj problem jest poważny Rozwiązania: Bit stuffing Zmiana sposobu kodowania 45

Błędy transmisji Kod Manchester - dane kodowane zboczem: Zbocze narastające 1 Zbocze opadające 0 sekwencja 110001 Manchester sekwencja 110001 kodowanie poziomem 46

Błędy transmisji Kod Manchester (c.d.) Zbocze powinno pojawić się dokładnie w połowie czasu trwania bitu. Zbocza występują nie częściej niż co 1/2 bitu i nie rzadziej niż co 1 bit Własność tę wykorzystuje się do wykrywania błędów transmisji (np. kolizja) 47

Błędy transmisji Kod Manchester (c.d.) Tolerancja wahań częstotliwości: Zbocze musi się pojawić w środku każdego bitu oraz może się pojawić na granicy bitów. W kontrolerze 83C152 linia odbioru danych jest próbkowana z częstotliwością 8x większą niż częstotliwość przesyłu danych 48

Błędy transmisji Kod Manchester (c.d.) Tolerancja wahań częstotliwości (c.d.) Wynik próbkowania sekwencji 001 powinien być następujący: 11110000:11110000:00001111 System próbkowania toleruje wahania częstotliwości rzędu: a) ± 1 próbka, gdy zbocza oddalone o 1/2 bitu b) ± 2 próbki, gdy zbocza oddalone o 1 bit 49

Błędy transmisji Kod Manchester (c.d.) Tolerancja wahań częstotliwości (c.d.) Badane są trzy przypadki: a) określony stan linii trwa zbyt krótko (wąski impuls) b) brakujące zbocze narastające c) nieoczekiwane zbocze opadające 50

Błędy transmisji Kod Manchester (c.d.) Tolerancja wahań częstotliwości (c.d.) a) Wykrywanie wąskich impulsów: Dany stan linii musi się utrzymywać przez co najmniej 3 próbki: 11110001111 OK 1111001111 źle!!! 51

Błędy transmisji Kod Manchester (c.d.) b) Brakujące zbocze narastające: Zbocze narastające jest zawsze oczekiwane w połowie każdego bitu zaczynającego się od zera Jeżeli poprzednie zbocze (opadające) pojawiło się na granicy bitów, to wahania częstotliwości są tolerowane na poziomie ± 1 próbki: 1111:00001111 idealnie 1111:00000111 OK 1111:00000011 źle!!! 52

Błędy transmisji Kod Manchester (c.d.) Tolerancja wahań częstotliwości (c.d.) b) Brakujące zbocze narastające (c.d.) ± Jeżeli poprzednie zbocze (opadające) pojawiło się w środku poprzedniego bitu, to wahania częstotliwości są tolerowane na poziomie ± 2 próbek: 11110000:00001111 idealnie 11100000:00000111 OK 11100000:00000011 źle!!! 53

Błędy transmisji Kod Manchester (c.d.) c) Nieoczekiwane zbocze opadające: Jeżeli bit rozpoczął się od poziomu wysokiego, to oczekuje się, że w połowie bitu pojawi się zbocze opadające. Jeżeli się nie pojawiło, to zakłada się, że transmitowany jest koniec ramki (linia w stanie wysokim przez 2 bity) Jeżeli w środku następnego bitu pojawiło się zbocze opadające, to znaczy, że nastąpił błąd transmisji. 54

CSMA/CD (c.d.) Po wykryciu kolizji: Arbitraż Węzły, które próbowały dokonać transmisji nadają sygnał blokujący (np. 16 lub 32 logiczne 0 ). Nadawanie sygnału blokującego (jam) umożliwia wszystkim węzłom w sieci zorientowanie się, że nastąpiła kolizja Po nadaniu sygnału blokującego wszystkie węzły wycofują się (tj. przestają obciążać linię) i czekają, aż linia przestanie być aktywna. 55

CSMA/CD (c.d.) INTERFRAME SPACE Arbitraż INTERFRAME SPACE to minimalny czas, który musi upłynąć między dwiema kolejnymi transmisjami, nawet jeżeli nie było żadnej kolizji. To, co dzieje się dalej, zależy od metody arbitrażu 1. Arbitraż losowy normalny (normal random) Jednocześnie z INTERFRAME SPACE odliczany jest czas określony przez rejestr BACKOFF. Decyduje dłuższy z obu czasów. 56

Arbitraż losowy licznik kolizji generator liczb losowych TCDCNT PRBS AND Załaduj BACKOFF ZEGAR BACKOFF BACKOFF=0 57

Arbitraż LICZNIK KOLIZJI TCDCNT - transmission collision detection counter - na początku jego wartość jest równa 0 Po wykryciu pierwszej kolizji z prawej strony wpisywana jest wartość 1, po każdej kolejnej kolizji wpisywane kolejne jedynki pierwsze podejście do nadawania 00000000 pierwsza kolizja 00000001 druga kolizja 00000011 trzecia kolizja 00000111...... ósma kolizja 11111111 58

Arbitraż GENERATOR LICZB LOSOWYCH PRBS - pseudo-random bit sequence BACKOFF - iloczyn logiczny licznika kolizji oraz generatora liczb losowych pierwsza kolizja: druga kolizja: i tak dalej... 00000000 lub 00000001 00000000 lub 00000001 lub 00000010 lub 00000011 59

BACKOFF zlicza w dół. Arbitraż Częstotliwość zliczania (tzw. SLOT TIME) jest programowalną wielokrotnością czasu trwania jednego bitu: SLOT TIME = liczba bitów x czas trwania 1 bitu liczba bitów zapisana w rejestrze specjalnym SLOTTM INTERFRAME SPACE również jest wielokrotnością czasu trwania jednego bitu (zapisaną w rejestrze specjalnym IFS i na ogół różną od SLOTTM) 60

Arbitraż losowy normalny W arbitrażu losowym normalnym zliczanie BACKOFF rozpoczyna się w momencie wykrycia, że linia jest wolna, tzn. równocześnie z rozpoczęciem odliczania czasu INTERFRAME SPACE. Jeżeli BACKOFF=0 i upłynął czas INTERFRAME SPACE, można zacząć nadawać. Co będzie, jeżeli SLOT TIME < INTEFRAME SPACE??? (SLOTTM < IFS) 61

Arbitraż losowy normalny SLOT TIME < INTEFRAME SPACE Załóżmy, że dwa węzły: rozpoczęły nadawanie, wykryły kolizję (pierwszą), przesłały sygnał blokujący, odczekały, aż linia będzie wolna rozpoczęły odliczanie czasu INTERFRAME SPACE i BACKOFF 62

Arbitraż losowy normalny SLOT TIME < INTEFRAME SPACE Po wykryciu pierwszej kolizji zawartość BACKOFF może wynosić albo 00000000, albo 00000001, czyli czas, po którym BACKOFF osiągnie wartość zero, będzie nie większy niż SLOT TIME Oznacza to, że: BACKOFF < INTERFRAME SPACE W rezultacie oba węzły odliczają ten sam czas INTERFRAME SPACE, ponownie przystępują do transmisji i ponownie wykrywają kolizję. 63

Arbitraż losowy normalny SLOT TIME < INTEFRAME SPACE Wartość licznika kolizji się zwiększa, ale BACKOFF nadal może mieć niską wartość (wszystko zależy od zawartości generatora liczb losowych), co oznacza kolejne kolizje. Jeżeli licznik kolizji się przepełni, oprogramowanie może go wyzerować, ale kolizje nadal będą się zdarzać. Arbitraż losowy normalny jest mało skuteczny Jak go poprawić??? 64

Arbitraż losowy 2. Arbitraż losowy alternatywny Odliczanie BACKOFF rozpoczyna się dopiero po odliczeniu INTERFRAME SPACE 3. Arbitraż deterministyczny Stosowany przy dużym obciążeniu sieci. Podobnie jak w arbitrażu losowym alternatywnym odliczanie BACKOFF rozpoczyna się dopiero po odliczeniu INTERFRAME SPACE 65

Arbitraż deterministyczny 3. Arbitraż deterministyczny (c.d.) Odliczanie BACKOFF rozpoczyna się dopiero po odliczeniu INTERFRAME SPACE Każdemu węzłowi przypisuje się pewien numer (zapisany w rejestrze MYSLOT) Im wyższy numer, tym wyższy priorytet Najwyższy numer w sieci wpisywany jest do rejestru TCDCNT każdego węzła sieci. Do rejestru PRBS wpisywana jest wartość 0FFH 66

Arbitraż deterministyczny 3. Arbitraż deterministyczny (c.d.) Podobnie jak poprzednio: BACKOFF = TCDCNT and PRBS czyli jest taki sam dla każdego węzła sieci. BACKOFF zlicza w dół. Jeżeli jego wartość zrówna się z MYSLOT (priorytet węzła), to węzeł może przystąpić do nadawania. Najszybciej przystąpi do nadawania węzeł, który ma najwyższą zawartość MYSLOT. 67

Komunikacja szeregowa Udoskonalenia portu szeregowego kontrola poprawności bitu stopu automatyczne rozpoznawanie adresów sprzętowa suma kontrolna kilka równorzędnych nadajników sposoby wykrywania kolizji i błędów arbitraż Czy można dodać coś jeszcze??? 68

UPI-452 UPI - Universal Peripheral Interface interfejs do procesora zewnętrznego FIFO 8051 DMA 69

UPI-452 FIFO = 128 komórek o długości 9 bitów FIFO jest strukturą o dostępie szeregowym (w przeciwieństwie do dostępu swobodnego) Komunikacja szeregowa jest przeciwieństwem komunikacji równoległej Komunikacja między UPI-452 a procesorem zewnętrznym zachodzi w obu kierunkach, toteż FIFO można podzielić na dwa kanały: kanał wejściowy (μp zewnętrzny do UPI-452) kanał wyjściowy (UPI-452 do μp zewnętrznego) 70

UPI-452 Co jest istotne przy obsłudze dużych bloków danych? 1. Jak uniknąć przesuwania danych do wyjścia? odczyt zapis 71

UPI-452 Co jest istotne przy obsłudze dużych bloków danych? Zamiast przesuwania danych stosuje się wskaźniki zapisu i odczytu. Oba wskaźniki zmieniają się niezależnie, w miarę jak dane napływają do FIFO i są zeń odczytywane. 2. Jak uniknąć przepełnienia FIFO? Sprawa jest prosta: blokujemy zapis, jeżeli FIFO jest pełne. 72

UPI-452 Co jest istotne przy obsłudze dużych bloków danych? 3. Kiedy zezwalać na zapis do FIFO? Zezwalanie na zapis tylko wtedy, kiedy FIFO jest puste, nie ma sensu, zwłaszcza jeżeli bloki danych przesyłanych do FIFO są znacznie krótsze od samego FIFO Zezwalanie na zapis jeżeli wolna jest chociaż jedna komórka FIFO też nie ma sensu, bo procesor na ogół wysyła jakieś paczki danych. Najlepiej wprowadzić progową liczbę bajtów, które 73 muszą być wolne, aby zezwolić na zapis.

UPI-452 Co jest istotne przy obsłudze dużych bloków danych? 4. Zablokować odczyt z pustego FIFO Można poinformować procesor zewnętrzny za pomocą przerwania. Jak funkcjonują wskaźniki odczytu i zapisu? FIFO pracuje jako tzw. bufor cyrkulacyjny: jeżeli wartość wskaźnika przekroczyła długość FIFO, to wskaźnik jest zerowany. 74

Kolejka FIFO Jak funkcjonują wskaźniki odczytu i zapisu? FIFO pracuje jako tzw. bufor cyrkulacyjny: jeżeli wartość wskaźnika przekroczyła długość FIFO, to wskaźnik jest zerowany. Wskaźnik zapisu przechowuje adres komórki, do której będzie zapisany następny bajt. Jest automatycznie inkrementowany po każdym zapisie. Wskaźnik odczytu przechowuje adres następnej komórki do odczytu. Jest automatycznie inkrementowany po każdej operacji odczytu. 75

Kolejka FIFO Przykład 1 a) 0 b) 0 FIFO puste 1 zapis 2B 1 WO=WZ=0 2 WO=0 2 3 WZ=2 3 c) 0 odczyt 2B 1 WYNIK: WO=WZ=2 2 FIFO puste 3 WO=WZ=2 76

Kolejka FIFO Przykład 2 a) 0 b) 0 FIFO pełne 1 odczyt 2B 1 WO=WZ=0 2 WO=2 2 3 WZ=0 3 c) 0 zapis 2B 1 WYNIK: WO=WZ=2 2 FIFO pełne 3 WO=WZ=2 77

Kolejka FIFO Jak odróżnić sytuacje, kiedy kolejka FIFO jest pełna lub pusta, jeżeli w obu przypadkach wskaźniki odczytu i zapisu są sobie równe??? 78

Kolejka FIFO Jeżeli WZ i WO zrównały się w wyniku odczytu, kolejka FIFO jest pusta. Jeżeli WZ i WO zrównały się w wyniku zapisu, to kolejka FIFO jest pełna. 79