Opisz zasady sprzęgania mikroprocesora z urządzeniami zewnętrznymi.
Urządzenie we/wy połączone z magistralą danych poprzez rejestr FIFO.
Rejestr FIFO pośredniczący w komunikacji z urządzeniami we/wy jest połączony z dekoderem adresu połączonym z magistralą adresową.
Zezwolenie zapisu odbywa się za pomocą sygnału sterującego IOW
Odczyt z urządzenia wejściowego odbywa się przy spełnieniu warunku IOR /\ ADRES
Opisz ideę prostego (bezpośredniego) wejścia-wyjścia systemu mikrokomputerowego. Ideę zilustruj schematami ideowymi ilustrującymi dołączenie portu wejściowego i wyjściowego do magistrali systemowej systemu mikroprocesorowego.
zalety: prostota
wady: stwarza możliwość niepoprawnej pracy, przy różnicy prędkości działania np. systemu komputerowego i układów we/wy: gubienie danych, konieczna wielokrotna analiza tych samych danych. Urządzenia we/wy działają asynchronicznie w tempie dla nich właściwym
Opisz ideę przesyłania informacji między mikroprocesorem i urządzeniem zewnętrznym z potwierdzeniem.
slajdy: parallel output port, parallel input port lub digital port hadshake
zapis do urządzenia zewn. Najpierw wystawiany jest przez mikroprocesor adres urządzenia na szynie adresowej. Dekoder adresu docelowego urządzenia stwierdza równość swojego adresu z wystawionym na szynie i uaktywnia bit statusu urządzenia. Następnie mikroprocesor ustawia wysyłane dane na szynie danych oraz uaktywnia sygnał zapisu WR. Wówczas dane z szyny danych zostają wpisane do rejestru (bufora) i ustawiany jest status urządzenia mówiący, że urządzenia nie pobrało jeszcze danych z bufora. Kończy się sygnał WR a mikroprocesor czeka na wyzerowanie statusu (sprawdzany jest on po wysłaniu sygnału czytania RD lub po zadresowaniu). Gdy urządzenie odczyta już daną z rejestru zeruje bit statusu (potwierdzenie) co kończy procedurę zapisu.
odczyt z urządzenia zewn. Gdy urządzenie chce przesłać daną ustawia swój bit statusu i wpisuje daną do rejestru. Mikrokontroler wykrywa chęć przesłania przez urządzenie danej przez cykliczne sprawdzanie jej bitu statusu sygnałem RD. Po wykryciu tego statusu wystawia on adres urządzenia, a następnie sygnał odczytu RD przepisujący daną z rejestru na szynę danych i zerujący status urządzenia, co jest znakiem dla urządzenia, że wystawiona przez nie dana została odczytana.
Podaj schematy ideowe przykładowej realizacji sprzęgu systemu mikroprocesorowego z urządzeniami wejścia-wyjścia realizującego transmisję z potwierdzeniem.
slajdy: parallel output port, parallel input port
Podaj przykładowy algorytm działania nadajnika i odbiornika podczas realizacji wymiany danych z potwierdzeniem
Opisz sposoby synchronizacji wymiany informacji pomiędzy systemem mikroprocesorowym i urządzeniami wejścia - wyjścia z wykorzystaniem obsługi programowej, przerwaniowej oraz linii gotowości READY.
Realizacja programowa
IN A_Q
ANI MASKA_Q
JZ/JNZ
Zajmuje 3 - 5 rozkazów (oczekiwanie na gotowość urządzenia). Zajmuje prace μP (odpytywanie)
Realizacja przerwaniowa
Synchronizacja odbywa się nastąpi przerwanie od nadajnika. Trzeba wykonać kilka czynności związanych z przygotowaniem (identyfikacja INT, zapisanie śladu programu na stos)
Najbardziej efektywne ze względu na wykorzystanie zasobów procesora.
Nie można przewidzieć czasu oczekiwania na reakcją.
Realizacja poprzez linię gotowości READY.
READY - oczekiwanie na gotowość urządzenia zewnętrznego
Tylko czekanie.
Najgorsze rozwiązanie ze względu na wykorzystanie zasobów procesora.
Najszybsze rozwiązanie ze względu na czas reakcji.
Krótko scharakteryzuj problemy związane z obsługą przerwań systemu mikroprocesorowego oraz opisz typowe metody organizacji kontrolerów przerwań.
Problemy związane z obsługą przerwań polegają na:
identyfikacji źródła przerwania
obsłużenia przerwania w odpowiednim czasie
wykonaniu szeregu operacji związanych z przygotowaniem do obsługi przerwania (zapisanie śladu programu na stos, ewentualna blokada pozostałych przerwań na czas obsługi danego przerwania)
Wyróżniamy następujące metody organizacji kontrolerów przerwań:
ze względu na strukturę:
skupiony system przerwań
jest to zazwyczaj osobny układ scalony (np. 8259)
zawiera rej.: zgłoszeń, priorytetu, przerwań obsługiwanych, konfiguracyjne itp.
kontroler taki może działać w wielu trybach
możliwy system jedno lub wielopoziomowy
maskowanie przerwań
arbitraż priorytetów
przyjmowanie żądań obsługi
rozproszony system przerwań
realizowany np. za pomocą logiki
wadą jest duży czas propagacji do urządzeń w przypadku pokazanym na rysunku
prosty w realizacji
ze względu na zasadę działania:
system przerwań z przeglądaniem programowym (odpytywaniem):
polega na okresowym sprawdzaniu zawartości rejestru przerwań lub odpowiednich bitów (flag) przerwań
obsługa jest priorytetowa (przeglądanie zaczynamy od bitu o najwyższym priorytecie)
wadą jest długi czas oczekiwania na obsługę
źródło przerwania musi być identyfikowane
wektoryzowany system przerwań:
każde ze źródeł przerwań posiada w pamięci adres obsługi przerwania (wektor przerwania), pod którym znajduje się program obsługi przerwania napisany przez programistę, dzięki czemu nie trzeba identyfikować przerwania co znacznie przyspiesza jego obsługę
obsługa jest priorytetowa
możliwość zastosowania systemu przerwań wielopoziomowego
W praktyce spotykamy także mieszane systemy przerwań.
Podaj możliwe sposoby identyfikacji źródła przerwania przez jednostkę centralną systemu mikroprocesorowego
Identyfikacja przerwania może być realizowana za pomocą rejestrów i flag przerwań w systemach przerwań z przeglądaniem, bądź za pomocą wektorów przerwań w systemach wektoryzowanych przerwań (opis w poprzednim pytaniu).
Można też dokonywać identyfikacji na poziomie logiki realizującej arbitraż jak dla systemu rozproszonego z poprzedniego zadania.
Opisz typowe metody organizacji kontrolerów przerwań.
patrz 7.
Scharakteryzuj właściwości systemów przerwań jednopoziomowych i wielopoziomowych
System przerwań jednopoziomowy:
Każde z przerwań jest obsługiwane przez jednostkę centralną do końca, nie ma możliwości przerwania aktualnie obsługiwanego przerwania
Gdy podczas obsługi przerwania pojawią się zgłoszenia przerwań od dwóch urządzeń to po zakończeniu aktualnie obsługiwanego przerwania obsłużone zostanie urządzenie posiadające wyższy priorytet
System przerwań wielopoziomowy:
Obsługa przerwania może zostać przerwana przez zgłoszenie przerwania od urządzenia o wyższym priorytecie
W tym systemie nie jesteśmy w stanie określić w jakim czasie przerwanie o niskim priorytecie zostanie obsłużone
System ten nadaje się do konfiguracji gdzie ważniejszy jest priorytet niż czas obsługi urządzenia
Kryteria podziału systemów na wieloprocesorowe i wielokomputerowe:
Podstawowym kryterium jest możliwość rozciągnięcia systemu w przestrzeni, dla systemów wielokomputerowych odległości pomiędzy jednostkami centralnymi są duże i ograniczone jedynie doborem medium magistrali, systemy wieloprocesorowe są co do zasady systemami skupionymi
Kolejnym kryterium jest współdzielenie zasobów, w systemach wieloprocesorowych mamy do czynienia z współdzieleniem zasobów pomiędzy j.c., w systemie wielokomputerowym takie współdzielenie zasobów nie występuje (wspólna jest jedynie magistrala łącząca systemy)
Podaj przykłady architektury systemu wieloprocesorowego . Jaką rolę w systemie odgrywają magistrala wspólna i lokalna?
Magistrala lokalna łączy j.c. z zasobami lokalnymi dostępnymi tylko dla danej j.c., natomiast magistrala wspólna służy do wymiany informacji pomiędzy jednostkami centralnymi a zasobami globalnymi i innymi j.c.
Opisz zasadnicze problemy związane z organizacją systemu wieloprocesorowego:
Dostęp do magistrali wspólnej (sprzęgi, arbitraż)
Dostęp do zasobów (pamięć, urz. We/wy)
Arbitraż
Wykorzystanie czasu jednostek centralnych
Współdzielenie pamięci, rezerwowanie obszarów pamięci
Opisz ideę układu arbitrażu dostępu do wspólnych zasobów systemu wieloprocesorowego na przykładzie arbitra magistrali 8289 firmy Intel.
fBCLK > f clock
S0,S1,S2 - trzy bity statusu
RESB - aktywny oznacza że arbitrażowi podlegają zasoby pamięci.
IOB - aktywny oznacza że arbitrażowi podlegają zasoby I/O.
SYSB/RESB - mówi czy adres odwołuje się do zasobów lokalnych czy globalnych
AEN - sygnał decyzyjny (otwiera i zamyka magistralę zewnętrzną)
BPRQ - żądanie dostępu do magistrali
BPRN - przyznanie dostępu do magistrali
BPRO - sygnał przekazania dostępu do magistrali
Każdy mikroprocesor posiada swojego arbitra magistrali. Arbiter magistrali widząc jaki cykl maszynowy jest aktualnie wykonywany (poprzez znajomość trzech bitów statusu) wie czy mikroprocesor będzie potrzebował dostępu do magistrali. Jeżeli tak to zgłasza chęć otrzymania dostępu do magistrali sygnałem BPRQ. Zgłoszenia od wszystkich mikroprocesorów zbiera specjalny układ arbitrażowy który po dokonaniu arbitrażu, sygnałem BPRN zgłasza jednemu z arbitrów magistrali, że to właśnie jego mikroprocesorowi został przydzielony dostęp do magistrali.
Opisz sposoby realizacji arbitrażu dostępu do zasobów wspólnych systemu mikroprocesorowego z uwzględnieniem arbitrażu równoległego i łańcuchowego. Podaj przykłady algorytmów arbitrażu.
A) Arbitraż równoległy (scentralizowany)
Centralny układ arbitrażowy zbiera zgłoszenia chęci dostępu do magistrali od wszystkich arbitrów magistrali i na podstawie przyjętego algorytmu arbitrażu decyduje który mikroprocesor otrzyma dostęp do magistrali na czas trwania najbliższego cyklu.
Korzystając z sygnału LOCK dany mikroprocesor może otrzymać dostęp do magistrali na więcej niż jeden cykl.
B) Arbitraż łańcuchowy
Kolejne arbitry magistrali przekazują sobie dostęp do magistrali (bezpośrednio jeden drugiemu) korzystając w tym celu z sygnałów BPRN i BPRO.
Algorytmy arbitrażu - pytanie 16.
Podaj przykłady algorytmów arbitrażu dostępu do zasobów wspólnych systemu mikroprocesorowego.
W jaki sposób na układ arbitrażu wpływa istnienie magistrali (zasobów) lokalnej systemu mikroprocesorowego?
Istnienie magistrali lokalnej wpływa w taki sposób na układ arbitrażu, że gdy mikroprocesor w danym cyklu odwołuje się do zasobów lokalnych to jego arbiter magistrali nie musi wystawiać żądania przyznania dostępu do magistrali globalnej. Zdecydowanie przyspiesza to pracę całego systemu wieloprocesorowego. Arbiter magistrali wie do jakich zasobów chce się odwołać mikroprocesor gdyż:
a) mikroprocesor wystawia adres na magistralę który jednoznacznie określa czy chce się odwołać do zasobów lokalnych czy globalnych
b) adres trafia na dekoder adresów
c) dekoder adresu wystawia sygnał SYSB/RESB
d) sygnał SYSB/RESB mówi arbitrowi magistrali czy jego mikroprocesor chce się odwołać do zasobów lokalnych czy globalnych.
Opisz ideę współdziałania procesora głównego z koprocesorem na przykładzie mikroprocesorów Intel 8086 i 8087.
Procesor główny oraz koprocesor mają dwie rozłączne listy rozkazów. Gdy pobierany jest kolejny rozkaz do wykonania procesor główny bądź koprocesor rozpoznają rozkaz i zaczynają go wykonywać a ten który nie rozpozna rozkazu traktuje go jako rozkaz NOP.
Koprocesor i procesor główny mogą przekazywać sobie kontrolę nad magistralą przy pomocy specjalnych linii sterujących.
Testując linię BUSY procesor główny może sprawdzić czy koprocesor wykonał już określone działanie na wyniki którego właśnie czeka procesor.
Opisz warianty współpracy procesora głównego (Intel 8086) z procesorem peryferyjnym (Intel 8089).
Opisz ideę współpracy mikrokomputerów w systemie wielokomputerowym.
Mikrokomputery nie dzielą między sobą żadnych podstawowych zasobów (tak jak ma to miejsce w układach wieloprocesorowych) a więc każdy z mikroprocesorów jest samowystarczalny (ma własną pamięć i układy I/O). Zaletą rozwiązania wielokomputerowego jest to, że poszczególne mikroprocesory mogą być oddalone od siebie na dowolne odległości gdyż przesyłaniem informacji między nimi zajmują się specjalnie przystosowane do tego układy we/wy.
W porównaniu z systemami wieloprocesorowymi w rozwiązaniu wielokomputerowym mikroprocesory mają swobodniejszy dostęp do pamięci oraz układów I/O co przyspiesz pracę poszczególnych mikroprocesorów.
Zilustruj przykładem (schemat ideowy) organizację sprzęgu pomiędzy dwoma mikrokomputerami.
Scharakteryzuj problemy wymiany informacji z potwierdzeniem między urządzeniami odległymi.
Komunikacja z potwierdzeniam charakteryzuje się wysyłaniem przez odbiorcę powiadomienia pozytywnego (ACK) po każdorazowym poprawnym odebraniu oczekiwanej ramki. [potwierdzenie może być w formie specjalnej ramki lub może być zawarte w ramce standardowej np. jako specjalna wartość pola sterującego. Czasem stosowane jest dodatkowo negatywne potwierdzenie (nieotrzymania) (NAK).].
Problemy:
zachowanie kolejności odebranych ramek [jako, że ramki odebrane niepoprawnie (zła suma kontrolna, kod korekcyjny) lub nieodebrane muszą być transmitowane ponownie, konieczne jest zapewnienie właściwej kolejności. Wariant 1 (Stop-and-Wait): nadajnik czeka każdorazowo na potwierdzenie i dopiero wtedy wysyła kolejną ramkę. Wariant 2 (protokoly oienkowe): ramki są numerowane, wysyłane cały czas]
przeciwdziałanie zakleszczeniom (dead-lock) [Eliminowanie sytuacji gdy nadajnik nie otrzymał potwierdzenia, przez zastosowanie time-outów]
niska wydajność protokołu w Wariancie 1 [długie przestaoje spowodowane oczekiwaniem na potwierdzenie]
koniecznośc buforowania w Wariancie 2 [gdy nadajnik nie otrzymał jeszcze potwierdzenia odbioru, a już wysłał kolejne ramki, to musi nadal trzymać poprzednie, żeby móc je wysłać powtórnie jakby były błędy. Odbiornik powinien buforować ramki w sytuacji gdy wystąpił błąd, a nadajnik nie wysłał jeszcze brakującej, ale wysyłał ramki następne zanim dowiedział się o błędzie. W wersji uproszczonej odbiornik nie buforuje tylko olewa wszystko zanim nie dostanie ramki o oczekiwanym numerze.]
Ponadto [ale to chyba przesada]:
konieczność sprawdzania poprawności transmisji i generowania ramki potwierdzającej
Wariant 2 wymaga komunikacji full-duplex
Opisz przykład protokółu umożliwiającego wymianę informacji z potwierdzeniem między urządzeniami odległymi.
Najprostszy jest protokół Stop-and-Wait (lub czasem Send-and-Wait) (powyższy Wariant 1). Ilustracja poniżej. Nadajnik wysyła ramkę F(0) i czeka aż nadejdzie potwierdzenie ACK(0). Gdy to się stanie wysyła kolejną ramkę F(1), ale tu wystąpił błąd, więc brak potwierdzenia i time-out. Wysyła więc ponownie F(1) i czeka. Tym razem błąd przesłania potwierdzenia, więc znów leci F(1). Tym razem jest OK. i dostaje potwierdzenie ACK(1).
Widać, że wystarczą tu tylko dwa rodzaje oznaczeń (numery) ramek (0 i 1).
Zdefiniuj pojęcie i opisz istotę protokołu komunikacyjnego. Co to jest hierarchia protokołów komunikacyjnych?
Protokół komunikacyjny to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia komunikacyjne w celu nawiązania łączności i wymiany danych.
Istotą protokołu komunikacyjnego jest zapewnienie reguł umożliwiających wymianę informacji, komunikatów. Zazwyczaj połączenia z wykorzystaniem protokołów odbywają się automatycznie, przez co użytkownik nie musi nawet wiedzieć o ich działaniu.
Hierarchia protokołów komunikacyjnych, to struktura warstwowa, która dzieli proces komunikacji na kolejne funkcje. Dzięki takiej organizacji możliwe jest ograniczenie złożoności sieci i umożliwienie komunikacji różnorodnego sprzętu. W strukturze hierarchicznej warstwy niższe świadczą usługi warstwom wyższym. Proces wysyłania, to zrealizowanie kolejno funkcji od najwyższej do najniższej, a odbioru odwrotnie.
Najpopularniejszy jest model 7-mio warstwowy IOS-OSI, ale stosowane są również prostsze modele np. 4 warstwowy.
Na czym polega standaryzacja bloków funkcjonalnych systemów mikrokomputerowych? Podaj przykłady.
Standaryzacja bloków funkcjonalnych, to nałożenie pewnych reguł według, których takie bloki współpracują w obrębie jednego systemu mikrokomputerowego.
Warunki takiej współpracy można rozpatrywać na kilku płaszczyznach i tak np.:
wartości napięć odniesienia (technologia TTL)
posługiwanie się znanymi i dostępnymi sygnałami, komunikatami (np. linia BUSY, CLK, READY, INT)
Zdefiniuj pojęcie magistrali oraz wymień zadania bloków funkcjonalnych (powiązanych z warstwami protokołu komunikacyjnego) układu sprzęgającego wymiennik z magistralą.
Magistrala to wspólne łącze umożliwiające wymianę informacji pomiędzy sprzęgniętym z nim szeregiem urządzeń.
Zadania bloków funkcjonalnych:
---------- magistrala -----------
/\
\/
układ sprzęgający elektronicznie, mechanicznie (wartstwa fizyczna)
/\
\/
układ sterujący wymianą informacji (wartstwa sterowania łączem)
/\
\/
układ sprzęgający użytkownika (warstwa użytkownika)
|
|
urządzenie
Co nazywamy przekazaniem magistrali? Jakie problemy za sobą pociąga?
Przekazanie magistrali to udostępnienie jej konkretnemu nadajnikowi. W czasie gdy magistrala jest przekazana mogą pojawiać się na niej wyłącznie informacje na potrzeby komunikacji z wybranym nadajnikiem, a więc dla pozostałych urządzeń jest ona niedostępna.
Rozważane były dwa rodzaje przydziału magistrali:
przydział w funkcji czasu
Magistralę przydziela się kolejno każdemu urządzeniu niezależnie od tego czy chce ono z magistrali skorzystać czy też nie. Zaleta: proste reguły.
Problem: strata czasu gdy urządzenie, któremu przydzielono magistralę nic nie transmituje.
przydział w funkcji zapotrzebowania
Magistralę przekazuje się tym urządzeniom, które chcą z niej skorzystać. Rozwiązanie efektywniejsze, ale realizacja trudniejsza.
Problemy ogólnie:
konieczność informowania o tym, że magistrala została przekazana lub uniemożliwienie dostępu do niej urządzeniom niepożądanym
pozostałe urządzenia nie mogą się komunikować gdy magistrala jest przekazana
przekazanie magistrali musi odbywać się według jakiegoś klucza - arbiter magistrali
monopolizacja dostępu i arbitraż sprawiają, że konieczne jest zapewnienie poprawności danych (uniemożliwienie zaistnienia sytuacji, że coś odczyta nieaktulane dane, bo coś innego nie zakończyło jeszcze pisania) - dwa rozwiązania: sprzętowe (sygnał LOCK informuje, że trwa niepodzielna faza zapisu we wspólnej części); programowe - dane, które nie są jeszcze w pełni aktualne są odpowiednio oznaczone.
Opisz sposoby synchronizacji wymienników podczas realizacji transmisji synchronicznej i asynchronicznej.
synchronizacja globalna - podłączona jest wspólna linia synchronizująca do wszystkich urządzeń przyłączonych do magistrali;
synchronizacja globalna/lokalna - dekompozycja systemu na podsystemy synchronizowane z jednego źródła, poszczególne układy w danym podsystemie zaś są synchronizowane z oddzielnego wspólnego źródła
samosynchronizacja - wykonywanie operacji na sygnale, komunikat zawiera dane i sygnał synchronizujący np. kod Manchester.
Opisz metody zmierzające do zwiększenia niezawodności kanału transmisyjnego.
2 slajdy: increasing system reliability
stosowanie terminatorów, dopasowujących impedancję magistrali
stosowanie izolacji galwanicznej (pojemnościowej, magnetycznej, optycznej) - odseparowanie od zakłóceń ale nie jest przenoszona składowa stała (sygnał jest modyfikowany);
stosowanie pętli prądowych - większa odporność na zakłócenia
modulacja sygnału (amplitudy, częstotliwości, fazy, przesunięcia fazowego)
stosowanie przerzutników Schmitta do redukcji rozmycia impulsów
ekranowanie i uziemianie w celu redukcji przesłuchów
Opisz metody detekcji i korekcji błędów transmisji.
testowanie stanu - nadajnik po wystawieniu stanu na magistralę sprawdza czy zgadza się on z jego sygnałem oryginalnym tzn. czy jakieś inne urządzenie nie wymusiło innego stanu w tej samej chwili, przy wykryciu różnicy nadawanie zostaje wstrzymane. Takie rozwiązane jest niedopuszczalne gdy urządzenie wysyła alarm i nie może czekać.
metody software'owe: suma kontrolna, formatowanie danych i scrambling (slajd - increasing data exchange reliability):
bit parzystości (wierszy i/lub kolumn) - bity dopełniające do parzystej liczby jedynek w wierszu/kolumnie (z tym bitem powinna być parzysta liczba jedynek) lub określające parzystość (0 - nieparzysta liczba jedynek, 1 - parzysta); może wykryć tylko pojedyncze błędy.
suma kontrolna - na końcu danych przesyłana jest suma (w kodzie U2) wszystkich wysłanych bajtów, tworzona poprzez dodawanie cyfr, mnożenie przez różne wagi, dzielenie modulo itp. Najbardziej powszechnymi metodami obliczania sumy kontrolnej są:
Modulo 10 (MSI Plessey +CHK10)
Poniżej przedstawiony jest sposób obliczania sumy kontrolnej wraz z przykładem dla numeru 8052:
Utwórz nowy numer przez wybranie do niego tylko cyfr na parzystych pozycjach.
Dla naszego przykładu "8052" nowy numer będzie miał postać "02".
Liczbę, którą otrzymałeś w pierwszym kroku, przemnóż przez 2.
02 * 2 = 4
Dodaj do siebie cyfry z liczby otrzymanej w kroku drugim i dodaj do cyfr na pozycjach nieparzystych.
4 + 8 + 5 = 17
(Jeżeli wynik z kroku 2 byłby np. 123 to byśmy zsumowali: 1+2+3+8+5=19)
Należy wziąć liczbę otrzymaną w punkcie trzecim i obliczyć resztę z dzielenia przez 10
17 mod 10 = 7
Cyfrą kontrolną jest wartość, która dodana do wyniku z kroku czwartego da liczbę 10.
W naszym przypadku jest to wartość 3, gdyż 3 + 7 = 10.
Kod wraz z cyfrą kontrolną ma postać 80523.
Modulo 11 (MSI Plessey +CHK11)
Inną metodą używaną do obliczania sumy kontrolnej jest Modulo 11. Sposób ten znacząco różni się od sposobu dla metody Modulo 10. Suma kontrolna dla Modulo 11 jest obliczana w następujący sposób:
Przypisz wagę dla każdej cyfry z kodu, zaczynając z wagą 2 od skrajnie prawej pozycji. Następnie przesuwając się w lewo przypisuj wagi zwiększając wartość o jeden. Jeżeli dojdziesz do wagi o wartości 7, to następny znak będzie miał wagę 2 (wartości wagi są następujące: 2,3,4,5,6,7,2,3,4,5,6,7,2,3...)
Przemnóż wartość każdego znaku przez przypisaną mu wagę i zsumuj wszystkie iloczyny.
Oblicz resztę z dzielenia wartości otrzymanej w punkcie drugim przez 11.
Wartością sumy kontrolnej jest ta liczba, która po dodaniu do wyniku z punktu trzeciego da wartość 11.
Przykład obliczeń Modulo 11 dla kodu "80523"
Kod |
8 |
0 |
5 |
2 |
3 |
Waga |
6 |
5 |
4 |
3 |
2 |
Iloczyn |
48 |
0 |
20 |
6 |
6 |
W tabeli powyżej przemnożono cyfry przez przypisane im wagi. Wyniki zapisano w ostatnim wierszu. Następnie obliczamy sumę iloczynów: 48 + 0 + 20 + 6 + 6 = 80
Obliczamy resztę z dzielenia przez 11: 80 mod 11 = 3
Liczbą, którą musimy dodać do liczby 3, aby otrzymać 11, jest 8 i jest to właśnie suma kontrolna. Wstawiamy ją na koniec kodu.
Kod MSI Plessey +CHK11 dla liczby 80523 ma więc postać "805238".
kod Manchester - kod samosynchronizujący, wykonywane są operacje na sygnale, komunikat zawiera dane i sygnał synchronizujący (rysunek na slajdzie)
CRC - metoda dzielenia wielomianów:
potraktuj wiadomość jako ciąg bitów (od najmłodszego bitu pierwszego bajtu do najstarszego bitu ostatniego bajtu), zauważ, że poszczególne bity są współczynnikami wielomianu
podziel (modulo 2) ten wielomian przez wielomian wygenerowany np. x16+x12+x5+1
(1 00010000 00100001)
weź resztę z dzielenia jako sumę kontrolną kończącą wiadomość przy nadawaniu, przy odbieraniu zaś „dodaj” (wprowadź) ją (jeśli wynik różny od zera to wystąpił błąd);
Metoda ta wykrywa wszystkie błędy pojedyncze/seryjne o długości nie większej niż wielomian generacyjny.
Kody korekcyjne - eliminują zlokalizowane błędy, np. kod Hamminga (wykorzystuje bit parzystości)
Formatowanie danych
kody NRZ (none return zero) oraz RZ (return zero) zawierają sygnał zegara, występują problemy gdy przesyłanych jest kolejno dla NRZ więcej „1” a dla RZ więcej „0”
format bipolarny - 2,3 - fazowy, przejście ze stanu wysokiego do niskiego oznacza „1” odwrotnie - „0”, 2-fazowy ma zerową składową stałą i łatwo się go synchronizuje, w 3-fazowym stan spoczynku dodatkowo a w dłuższym przedziale czasu też składowa stała dąży do zera
Scrambling/bełtanie - generowany jest przebieg pseudolosowy: ai bi ⊕ ai-1 bi-1 ⊕ ... , nadajnik i odbiornik mają tą samą strukturę (rejestry przesuwne i sumy modulo) - zawierają ten sam generator i wartości początkowe
Jak wpływają na pracę magistrali rezystancja falowa linii oraz przesłuchy? Wymień przykładowe metody minimalizacji ich negatywnego wpływu na parametry łącza transmisyjnego.
Rezystancja falowa magistrali - przy jej niedopasowaniu będzie występować zjawisko odbicia sygnału zakłócające transmisję. Aby je zminimalizować stosuje się dopasowania impedancji - terminatory szeregowe (jeden koniec do zasilania) i/lub równoległe (jeden koniec do masy), pasywne lub aktywne.
Przesłuchy - zakłócają stany sąsiadujących linii, szczególnie przy zmianach ich stanów. Można je zminimalizować ekranując linie lub oddzielając sąsiednie linie uziemionymi liniami (co druga linia przenosi sygnał, pozostałe są uziemione).
Wymień stosowane najczęściej metody adresacji wymienników współpracujących przez wspólną magistralę.
adresowanie dla każdej przesyłanej danej
adresowanie, przesłanie danej o dowolnej długości, rozadresowanie
Podaj przykłady ilustrujące mechanizmy realizacji przeplotu (handshake'u) w transmisji asynchronicznej.
Do czego służą linie pomocnicze magistrali bitowo-równoległej?
Służą do:
doprowadzenia zasilania napięciowego
arbitrażu np. PCI
jako zapasowe linie danych
zerowania
zasilania taktem - taktowania
Porównaj cechy magistral elementowych oraz magistral stosowanych w lokalnych sieciach komputerowych.
magistrale elementowe: duża szybkość, niewielkie odległości, pakietowe przesyłanie pomiędzy blokami funkcjonalnymi (często na jednej płytce drukowanej);
magistrale sieci lokalnych: dość duża szybkość, duże odległości, środki dostępu do mediów nie gwarantują czasu (nie określony czas dostępu)
Opisz sposoby fizycznego sprzężenia wymiennika z magistralą. Uwzględnij następujące media transmisyjne: kabel koncentryczny, skrętka, światłowód.
Sposoby fizycznego sprzężenia wymiennika z magistralą:
skrętka ( para przewodów wzajemnie skręconych)
zaleta: łatwość dołączania do magistrali - możemy wciąć się w dowolnym miejscu skrętki
kabel koncentryczny - dołączany do magistrali za pomocą zaciskanej obejmy lub trójnika:
dopasowanie impedancji falowej
światłowód - zamieniamy sygnał optyczny na elektryczny i odwrotnie
Dlaczego w przypadku znacznych odległości pomiędzy wymiennikami często stosuje się transmisję z modulacją sygnału nośnego?
W sytuacji gdy między wymiennikami występują znaczne odległości stosuje się modulację sygnału nośnego, ponieważ zmniejsza ona w znacznym stopniu pasmo przesyłanego sygnału, co zaś zmniejsza jego podatność na zakłócenia i szumy. Stosując taką technikę mamy również możliwość przesyłania wielu sygnałów tym samym kanałem.
Co to jest i do czego służy formatowanie? Podaj przykłady.
Formatowanie są to operacje dokonywane na danych przed ich wysłaniem w celu wyeliminowania niezerowej składowej stałej sygnału.
Przykłady formatowania:
z użyciem kodów kanałowych:
not zero return
zero return
bipolarny
dwufazowy
operacja scramblingu (bełtania)
Ubocznym skutkiem formatowania zaszyfrowanie przesyłanego sygnału
Co to jest i do czego służy zestaw bełtacz-odbełtacz (scrambler-descrambler)?
W bełtaczu realizowana jest operacja scramblingu:
otrzymujemy ciąg: aibi ⊕ ai-1bi-1 ⊕.....
Ciąg ten wykorzystuje się przy generacji ciągu pseudolosowego. Jeśli sygnał ten zmieszamy z sygnałem użytecznym otrzymamy równomierny rozkład zer i jedynek. Efektem ubocznym takiej operacji jest zaszyfrowanie sygnału przesyłanego. W odbełtaczu realizowana jest operacja odwrotna. Warunkiem odtworzenia sygnału jest to aby algorytmy generacji sygnału pseudolosowego w części nadawczej i odbiorczej były identyczne. Dodatkowo musi być znana wartość początkowa zapisana w rejestrze SIPO.
Opisz budowę protokółu zorientowanego bitowo.
Protokół zorientowany bitowo ma postać:
Nagłówek |
Informacja użytkownika |
Stopka |
Nagłówek składa się z :
adresu odbiorcy
adresu nadawcy
rozkazu
Poszczególne części są wykrywane za pomocą pojawiających się odpowiednich sekwencji bitowych, np.: 01111110 - jest to typowy początek komunikatu. Utrudnia to przesyłanie danych, gdyż dana o takiej postaci nie może zostać wysłana w ten sposób, ponieważ zostałoby to zinterpretowane jako początek komunikatu.
Opisz budowę protokółu liczącego znaki.
Kod liczący znaki:
adres względny +0 znaków
adres odbiorcy + 2 znaki
Problem wykrywania początków jest identyczny jak w protokole zorientowanym bitowo.
Opisz budowę protokółu zorientowanego znakowo.
W protokole tym każde z pól jest objęte określonymi znakami sterującymi, które informują o początku i końcu nagłówka, inf. użytkownika i stopki.
|
Flaga |
|
|
Nagłówek |
PN
KN |
|
|
|
PT
KT |
|
|
Stopka |
PS
KS |
Opisz znaczenie transparencji (przezroczystości) kodów dla niezawodności transmisji danych. Podaj przykłady realizacji transparencji kodowej protokółów.
Opisz budowę i sposób realizacji przeplotu (handshake'u) w magistrali zgodnej ze standardem IEEE 488.
Sposób transmisji bajtu zdefiniowany w IEEE488.1 nosi nazwę trójprzewodowego cyklu współpracy. Jest on wykorzystywany do transferu rozkazów interfejsowych (ATN=1) oraz komunikatów urządzeniowych (ATN=0). Jest to sposób transferu wykorzystujący sygnały potwierdzeń, konkretnie potwierdzenia gotowości do odbioru bajtu oraz jego akceptacji. Jednocześnie zakłada on możliwość równoległego transferu bajtu do kilku odbiorców. Sygnały potwierdzeń dostarczane nadawcy liniami NRFD i NDAC są iloczynami logicznymi stanów gotowości i akceptacji aktywnych odbiorców. Stan wysoki linii NRFD oznacza gotowość do odbioru aktywnych odbiorców a stan wysoki linii NDAC zaakceptowanie przez odbiorców bajtu znajdującego się na liniach DIO. Sterowaniem tych linii zajmują się funkcje akceptorów współpracy (AH) urządzeń odbierających. Nadawca wykorzystuje linię DAV do powiadomienia odbiorców o ważności wystawionego bajtu. Linią DAV steruje funkcja źródła współpracy (SH) urządzenia nadającego.
Rys.1. Diagram czasowy trójprzewodowego cyklu współpracy.
Kontroler wyznacza nadawcę oraz jednego lub kilku odbiorów za pomocą procedury adresowania urządzeń. Linie sterujące transmisją bajtu ( DAV, NRFD i NDAC ) przyjmują stany wyjściowe takie jak pokazuje rys.1. Proces transferu bajtu przebiega następująco :
Gdy funkcja SH nadawcy ma nowy bajt do wysłania (nba=1) wystawia go na linie DIO.
Po upływie czasu T1 potrzebnego na uzyskanie stanu ustalonego na liniach DIO funkcja SH nadawcy ustawia stan niski linii DAV, powiadamiając w ten sposób funkcje AH odbiorców o ważności wystawionego bajtu.
W odpowiedzi na prawdziwy sygnał DAV akceptory aktywnych odbiorców ustawiają linię NRFD w stan niski.
Gdy urządzenie odbierające zaakceptuje bajt (wpisze do swojego bufora wejściowego) jego funkcja AH zwalnia linię NDAC, czyli przestaje zwierać ją do masy.
Gdy wszyscy odbiorcy zaakceptują bajt linia NDAC przechodzi do stanu wysokiego. Nadawca dostaje wiadomość DAC=1 oznaczającą akceptację bajtu przez wszystkich odbiorców.
Funkcja SH nadawcy ustawia linię DAV w stan wysoki i usuwa bajt z linii DIO.
W odpowiedzi na to funkcje AH odbiorców wysyłają komunikat DAC=0 przez ustawienie linii NDAC w stanie niskim.
Zaakceptowanie bajtu przez odbiorców nie oznacza, że są oni gotowi do odbioru następnego bajtu. Funkcje AH odbiorców zwierają linię NRFD do masy aż do momentu uzyskania przez urządzenie stanu gotowości do odbioru (rdy=1).
Gdy wszyscy odbiorcy uzyskają stan gotowości ich funkcje AH przestają zwierać linię NRFD do masy tak, że przechodzi ona do stanu wysokiego oznaczającego gotowość odbiorców.
Nadawca może teraz wysłać następny bajt. Cykl współpracy rozpoczyna się ponownie od punktu 1.
Celem zastosowania opisanego sposobu transferu było zapewnienie :
Możliwości transferu znaków jednocześnie do wielu odbiorców;
Poprawności transmisji w warunkach różnych własności urządzeń nadających i odbierających. W procesie transferu następuje ich automatyczne synchronizowanie.
Powoduje to złożoność protokółu transmisji, ale jednocześnie zapewnia poprawność transferu w różnorodnych warunkach. Potwierdza to zresztą długoletnia historia stosowania interfejsu IEEE488.1.
Podaj istotne różnice pomiędzy grupą rozkazów uniwersalnych i adresowanych w magistrali IEC 625.
Rozkazy adresowalne są to polecenia interfejsowe, które wywołują określoną reakcję wyłącznie w urządzeniach zaadresowanych ale pod warunkiem, że interfejs urządzenia implementuje funkcję interfejsową związaną z danym rozkazem. Służą do selektywnego oddziaływania na urządzenia dołączone do magistrali. Spośród 5 zdefiniowanych rozkazów adresowanych, cztery wymagają wskazania urządzenia przez zaadresowanie go do odbioru. Rozkazy te mogą zatem oddziaływać na pojedyncze urządzenie lub dowolnie wybraną grupę urządzeń. Tylko rozkaz TCT wymaga wskazania urządzenia przez zaadresowanie go do nadawania.
Rozkazy uniwersalne są poleceniami interfejsowymi, które wywołują określoną reakcję w każdym urządzeniu dołączonym do magistrali niezależnie od stanu jego zaadresowania ale pod warunkiem, że interfejs urządzenia implementuje funkcję interfejsową związaną z danym rozkazem. Przykładowo rozkaz DCL nie wywoła żadnego skutku w urządzeniach bez funkcji interfejsowej DC. Rozkazy uniwersalne służą do globalnego oddziaływania na urządzenia dołączone do magistrali
Opisz metody identyfikacji źródła żądania obsługi (SRQ) stosowane w magistrali GPIB. Jaką rolę spełniają w tym standardzie linie ATN oraz EOL?
Procedura odpytywania szeregowego przygotowuje na początku system do wydawania bajtów statusowych oraz kontroler do ich odbioru. Następnie według ustalonego algorytmu adresuje kolejno urządzenia do nadawania i odbiera ich bajty statusowe. Na podstawie bitu RQS odebranego bajtu następuje jego klasyfikacja. Najczęściej bajty statusowe urządzeń nie żądających aktualnie obsługi są pomijane. Proces adresowania kolejnych urządzeń i odbioru ich bajtów statusowych jest kontynuowany do momentu powrotu linii SRQ do stanu spoczynkowego oznaczającego, że nie ma już w systemie urządzeń zgłaszających SRQ. Procedura kończy się rozadresowaniem systemu i powrotem funkcji nadawców interfejsów wszystkich urządzeń do stanu SPIS (rozkaz SPD).
Rys. Procedura odpytywania szeregowego urządzeń systemu pomiarowego.
Podczas odpytywania szeregowego bardzo istotny jest algorytm kolejności odpytywania urządzeń, ponieważ decyduje on o szybkości rozpoznania stanu urządzeń. Rozwiązania są bardzo różne np. odpytywanie odbywa się na podstawie listy przekazanej do procedury lub automatycznym budowaniu takiej listy na podstawie częstotliwości zgłaszania żądań obsługi przez urządzenia. Także sposób dostarczenia wyniku odpytania może mieć różną postać w zależności od rozwiązania oprogramowania karty interfejsowej. Może to być tablica wartości całkowitych o pojemności odpowiadającej liczbie urządzeń systemu lub tablica struktur, której jedno pole zawiera numer urządzenia a drugie bajt statusowy,
Odpowiedzi jednobitowe mogą być wydawane tylko przez urządzenia wyposażone w funkcję interfejsową PP (Parallel Poll) i po uprawnieniu tych funkcji do wydawania odpowiedzi jednobitowych. Uprawnienie to polega na odpowiednim zaprogramowaniu funkcji PP urządzeń mających wydawać odpowiedzi jednobitowe. Bezpośrednio po zainicjowaniu pracy systemu funkcje PP urządzeń pozostają w stanie spoczynkowym i nie mogą wydawać odpowiedzi. Programowanie (konfigurowanie) funkcji PP realizuje się za pomocą rozkazów PPE, które określają numer linii DIO, na której będzie wydawana odpowiedź oraz ustalają logikę odpowiedzi. Funkcja PP, która odebrała rozkaz PPE uzyskuje prawo wydawania odpowiedzi na żądanie kontrolera systemu.
Urządzeniom systemu można odebrać prawo wydawania odpowiedzi w sposób selektywny za pomocą rozkazów PPD (zerują funkcję PP wybranego urządzenia) lub globalnie za pomocą rozkazu uniwersalnego PPU.
Rys.Układ wydawania odpowiedzi jednobitowej.
Odpytanie równoległe urządzeń inicjuje kontroler systemu ustawiając jednocześnie linię ATN i EOI w stanie L (ATN=1 i EOI=1). Urządzenia uprawnione do odpowiedzi muszą wystawić swoje odpowiedzi na przypisaną im linię DIO w czasie do 200 nsek od momentu zainicjalizowania odpytywania. Kontroler z opóźnieniem 2 usek odczytuje stan szyny DIO. Procedura jest więc bardzo szybka w realizacji i dostarcza informację o stanie całego zespołu urządzeń systemu.
Jej dodatkową zaletą jest także to, że może być wykonana w dowolnej chwili bez potrzeby zmiany stanu zaadresowania urządzeń, np. można chwilowo przerwać transfer danych, odpytać równolegle urządzenia i wrócić do kontynuacji przerwanego transferu.
Zgłaszanie sytuacji szczególnych za pomocą odpytywania równoległego może być szczególnie przydatne w sytuacjach, gdy zachodzi potrzeba bardzo szybkiej reakcji aplikacji na zaistniałe w urządzeniu zdarzenie. Wymaga to odpowiedniego rozwiązania systemu statusowego takiego urządzenia oraz aplikacji sterującej. Wybrany stan lub zdarzenie takiego urządzenia powinno ustawić komunikat ist oraz rsv, aby urządzenie wystawiło w tych warunkach żądanie obsługi. Z kolei aplikacja powinna wykorzystywać przerwanie do obsługi SRQ. Procedura przerwaniowa w pierwszej kolejności powinna wykonać odpytywanie równoległe systemu, aby szybko wykryć urządzenie zgłaszające krytyczną sytuację.
Prosty sposób wykorzystania odpytywania równoległego (rys.7) polega na przygotowaniu urządzeń do wydawania odpowiedzi bezpośrednio po starcie aplikacji przed rozpoczęciem właściwych operacji pomiarowych.
Rys. Przykład zastosowania odpytywania równoległego.
Potem w wybranych miejscach pętli realizującej pomiary występuje odpytanie równoległe pozwalające podjąć decyzje dotyczące realizacji sekwencji badań. Przykładowo, jeśli programowane źródło napięć pozwala zgłosić wystąpienie ograniczenia prądowego za pomocą ist, można po ustawieniu nowej wartości jego napięcia wyjściowego odpytać równolegle system i sprawdzić czy można dalej prowadzić test układu. W przypadku, gdy takie zdarzenie może wystąpić asynchronicznie, aplikacja powinna korzystać z procedury przerwaniowej obsługującej zgłoszenia SRQ a urządzenie powinno pozwolić powiązać wzajemnie komunikaty ist i rsv.
Wykorzystanie odpytywania równoległego jest stosunkowo proste, gdy każdemu urządzeniu systemu można przyporządkować osobną linię DIO. Przy większej liczbie urządzeń jedną linię można przypisać do kilku urządzeń. Odpowiedź z takiej linii może być sumą lub iloczynem logicznym odpowiedzi urządzeń przypisanych do tej linii w zależności od sposobu skonfigurowania ich funkcji PP. Poznanie stanu każdego z tych urządzeń wymaga później zmiany konfiguracji urządzeń wydających odpowiedź równoległą i wykonania ponownego odpytania. Operacje przekonfigurowania są jednak czasochłonne i traci się w wyniku tego podstawowe zalety odpytywania równoległego. Najlepszym rozwiązaniem w takiej sytuacji wydaje się wykorzystanie procedury odpytywania równoległego i szeregowego. Odpytanie równoległe pozwoli określić grupę urządzeń, które należy odpytać szeregowo w celu rozpoznania ich stanu.
Jaką rolę spełniają w standardzie IEEE 488 linie ATN oraz EOL?
Interface Management Lines
The five interface management lines (ATN, EOI, IFC, REN, SRQ) manage the flow of control and data bytes across the interface.
The ATN (Attention) signal is asserted by the Controller to indicate that it is placing an address or control byte on the data bus. ATN is released to allow the assigned Talker to place status or data on the data bus. The Controller regains control by reasserting ATN; this is normally done synchronously with the handshake to avoid confusion between control and data bytes.
The EOI (End or Identify) signal has two uses. A Talker may assert EOI simultaneously with the last byte of data to indicate end-of-data. The Controller may assert EOI along with ATN to initiate a parallel poll. Although many devices do not use parallel poll, all devices should use EOI to end transfers (many currently available ones do not).
Opisz krótko metody programowe wykorzystania łącza w standardzie RS232C w komputerach osobistych zgodnych ze standardem IBM PC/XT/AT.
Przedstaw w punktach różnice funkcjonalne oraz różnice w sposobie programowania sprzęgów szeregowych Intel 8250 i 8251.
Scharakteryzuj architekturę magistrali elementowej I2C.
Na szynę I2C składają się tylko dwie linie: linia danych (oznaczana jako SDA, ang. serial data) i linia zegara taktującego transmisję (oznaczana jako SCL, ang. serial clock). Tymi dwiema liniami przesyłane są wszystkie informacje: dane, adresy i sygnały sterujące. Obie linie szyny I2C - SDA i SCL - są liniami dwukierunkowymi i przez rezystor podciągający podłączone są do dodatniego napięcia zasilającego. Gdy na szynie nie odbywa się żadna transmisja to na obu liniach jest poziom wysoki. Obwody wyjściowe podłączonych układów muszą być typu otwarty-dren lub otwarty-kolektor, ze względu na konieczność realizacji funkcji galwaniczne-AND. Dane na szynie I2C mogą być przesyłane z prędkością do 100kb/s w trybie standardowym (ang. Standard-mode) lub do 400kb/s w trybie szybkim (ang. Fast-mode). Liczba układów podłączonych do szyny jest zależna od maksymalnej pojemności szyny wynoszącej 400pF.
Każdy układ podłączony do szyny I2C rozpoznawany jest przez swój adres i może pracować zarówno jako nadajnik, jak i odbiornik. Oczywiście sterownik wyświetlacza LCD jest tylko odbiornikiem, ale np. pamięć może być jednym i drugim. Dodatkowo podczas transmisji podłączone układy dzielą się na master i slave. Master jest to układ inicjujący transmisję i generujący sygnał zegarowy umożliwiający tą transmisję. W tym momencie każdy zaadresowany układ jest układem slave.
Transmisja na szynie I2C jest transmisją start-stopową, tzn. każdy transfer rozpoczyna się od bitu START, po którym przesyłane są informacje (w przeciwieństwie jednak do interfejsu RS-232C ich ilość nie jest ograniczona), i kończy się bitem STOP.
Szyna I2C jest szyną typu multi-master. To znaczy, że może być podłączonych wiele układów mogących kontrolować transmisję. Zwykle układami master są mikrokontrolery. Rozpatrzmy taką sytuację, gdy podłączone są dwa mikrokontrolery. Może to wyglądać np. tak:
1. Przypuśćmy, że mikrokontroler A chce wysłać informację do mikrokontrolera B:
ˇ mikrokontroler A (master) adresuje mikrokontroler B (slave)
ˇ mikrokontroler A (nadajnik-master) wysyła dane do mikrokontrolera B (odbiornik-slave)
ˇ mikrokontroler A kończy transmisję.
2. Jeśli mikrokontroler A chce odebrać informacje od mikrokontrolera B:
ˇ mikrokontroler A (master) adresuje mikrokontroler B (slave)
ˇ mikrokontroler A (odbiornik-master) odbiera dane od mikrokontrolera B (nadajnik-slave)
ˇ mikrokontroler A kończy transmisję.
W obu przypadkach master (mikrokontroler A) generuje przebieg zegarowy oraz kończy transmisję.
Możliwość podłączenia kilku mikrokontrolerów do szyny I2C powoduje, że może zaistnieć sytuacja, w której kilka układów master chce rozpocząć transmisję w tej samej chwili. Aby uniknąć zgubienia danych stosowana jest specjalna procedura, pozwalająca wyłonić, który master będzie nadawał. Procedura ta oparta jest na funkcji galwaniczne-AND, która to wynika ze sposobu podłączenia wszystkich układów do szyny I2C.
Jeżeli dwa lub więcej układów master rozpoczyna transmisję, to układ, który pierwszy wygeneruje bit o poziomie logicznym '1', gdy inne układy generują '0', traci arbitraż. Sygnał zegarowy na linii SCL podczas procedury arbitracyjnej jest funkcją galwaniczne-AND sygnałów zegarowych generowanych przez układy master, chcące zainicjować transmisję.
Generowanie sygnału zegarowego na szynie I2C jest zawsze zadaniem układu typu master. Każdy master generuje swój własny sygnał zegarowy podczas transmisji danych. Sygnał zegarowy z układu master może być zmieniony tylko, wtedy gdy zbyt wolny układ slave wymusi poziom niski lub podczas procedury arbitracyjnej.
Opisz protokół stosowany w magistrali I2C z uwzględnieniem mechanizmu potwierdzania danych przez odbiornik.
Transmisja z potwierdzeniem jest jedyną możliwą na szynie I2C. Impuls zegarowy dla bitu potwierdzenia jest generowany, tak jak zawsze, przez układ master. Na czas impulsu zegarowego dla bitu potwierdzenia nadajnik zwalnia linię SDA (poziom wysoki). Odbiornik musi wymusić niski poziom na linii SDA podczas tego impulsu zegarowego, tak aby poziom niski był stabilny podczas wysokiego poziomu na linii SCL.
Zwykle zaadresowany odbiornik musi wygenerować bit potwierdzenia, po każdym odebranym bajcie (jest jeden wyjątek, dla zachowania kompatybilności z szyną CBUS). Gdy odbiornik-slave nie może potwierdzić swojego zaadresowania (na przykład nie może odbierać, ponieważ wykonuje jakieś funkcje w czasie rzeczywistym), to musi pozostawić linię SDA w stanie wysokim. Master może wtedy wygenerować STOP, aby przerwać transmisję.
Gdy odbiornik-slave potwierdzi swoje zaadresowanie, ale potem podczas transmisji nie będzie mógł odbierać kolejnych danych, to master znowu będzie musiał przerwać transmisję. Sytuacja tak jest rozpoznawana, gdy slave nie wygeneruje bitu potwierdzenia po pierwszym kolejnym bajcie (zostawi linię SDA w stanie wysokim). Master wygeneruje wtedy sygnał STOP.
Gdy odbiornikiem jest układ master, to sygnalizuje on koniec danych nadajnikowi-slave nie generując bitu potwierdzenia po ostatnim bajcie wysłanym przez układ slave. Nadajnik-slave musi wtedy zwolnić linię danych, aby umożliwić układowi master wygenerowanie sygnału STOP.
18
Pobieranie rozkazów z pamięci to zadanie 8086. Dzięki liniom statusowym QS0 i QS1 wie, który rozkaz do kogo. Procesory pracują współbieżnie. Gdy arytmetyczny wykonuje swoje rozkazy, 8086 może wykonywać swoje, chyba ze następny rozkaz pobrany jest przeznaczony dla 8087 wtedy 8086 testuje linie BUSY i czeka aż tamten skończy.
Podstawowy format rozkazów dla procesora arytmetycznego są to rozkaz typu ESCAPE (to chyba nic konkretnie nie znaczy tylko taka nazwa własna), które dla 8086 oznaczają „nic nie rób”. Jeśli rozkazy te odwołują się do operacji na stosie procesora arytmetycznego to 8086 ignoruje go i pobiera następne rozkazy, a 8087 wykonuje operacje określoną rozkazem ESCAPE. Jeśli rozkaz ESCAPE wymaga pobrania argumentu z pamięci, to procesor 8086 wylicza adres fizyczny argumentu i odczytuje z pamięci jedno słowo (argument może być 32 lub 64 bitowy). Zarówno to słowo jak i jego fizyczny adres są zapamiętywane przez 8087. Jeżeli argument ma więcej niż 16 bitowe to procesor 8087 za pośrednictwem linii RQ/GT1 (request/grant) żąda przyznania mu magistrali (dotąd procesor arytmetyczny był tylko odbiornikiem sygnałów z magistrali ADS) po przydzieleniu mu magistrali procesor 8087 samodzielnie adresuje pamięć i odczytuje z niej dalsze słowa argumentu. Podobnie wygląda sytuacja, gdy rozkaz ESCAPE wymaga zapisu argumentu do pamięci. Wówczas 8086 wylicza adres efektywny argumentu i w trakcie pustego cyklu odczytu przesyła go magistrala adresowa. 8087 zapamiętuje ten adres i po uzyskaniu dostępu do mag zapisuje argument na ten adres.
19
Procesor we-wy 8089 jest mikroporckiem uniwersalnym w tym sensie ze ma licznik rozkazów, rejestry robocze itp., lecz jego organizacja i lista rozkazów jest przystosowana do obsługi urządzeń we wy. Realizuje tez funkcje DMA, lecz jest programowany przez użytkownika i ma większe możliwości funkcjonalne.
Dwa sposoby podłączenia:
- ze wspólną magistrala
Konflikty z dostępem do magistrali są rozstrzygane za pośrednictwem linii RQ/GT1, (ale należy zauważyć znaczna różnice od układu z pytania 18, bo układ 8089 sam pobiera rozkazy). Pamięć i moduł są wspólne dla obu procesorów.
- z arbitrem
Procesor ma swoja własną pamięć i moduł we-wy, a dostęp do magistrali uzyskuje się za pomocą zewnętrznego arbitra. Układ jest znacznie wydajniejszy od poprzedniego, gdyż konflikt miedzy 8086 i 8089 może wystąpić tylko w przypadku komunikacji ze wspólna pamięcią.
INT
IRQn
IRQ2
IRQ1
CPU
INTA
U1
IN/OUT
MEM
CPU
IN/OUT
MEM
CPU
IN/OUT
MEM
U2
U1
Dane
DV
ACK
SIPO
b1 .......bi
takt