Architektury Komputerów

Transkrypt

Architektury Komputerów
Architektury Komputerów - Laboratorium
Informatyka III rok studia dzienne
Ćwiczenie nr 4: Komunikacja równoległa w systemach mikroprocesorowych
i kontrolno-pomiarowych
Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z równoległym systemem transmisji danych na przykładzie
standardu interfejsu IEC625.
Wymagane wiadomości
•
•
•
•
•
Budowa mikrokontrolera BasicStamp2
Zestaw edukacyjny StampInClass – budowa i obsługa
Język PBASIC.
Transmisja szeregowa i jej cechy charakterystyczne.
Warstwa fizyczna interfejsu IEC625.
Wykorzystywany sprzęt
Komputer PC z oprogramowaniem do obsługi zestawu BasicStamp.
Zestaw edukacyjny StampInClass firmy Parallax Inc. wraz z niezbędnym wyposaŜeniem dodatkowym.
Literatura
www.parallaxinc.com
www.stampsinclass.com
W. Nowakowski i inni, Systemy interfejsu w miernictwie, WKŁ, Warszawa 1987
Nowakowski: Interfejsy IEC-625 Radioelektronik nr 4-5/87
Polska Norma PN-83/T-06536
1
Wprowadzenie
Interfejs IEC-625 (IEEE488,GPIB) jest standardowym interfejsem równoległym szeroko
stosowanym w automatycznych systemach pomiarowych. SłuŜy do sterowania przyrządami i
zbierania danych pomiarowych.
PoniŜej zostanie podany minimalny zestaw wiadomości niezbędnych do realizacji ćwiczenia.
Więcej szczegółów znaleźć moŜna w odpowiedniej literaturze.
Interfejs składa się z 16 linii sygnałowych: 8 dwukierunkowych linii danych DIO1-DIO8, 8
jednokierunkowych linii sterujących:
DAV- aktywny poziom stwierdza waŜność danych na liniach danych. Sygnał sterowany przez
nadawcę;
NRFD – sygnał informujący o niegotowości do przyjmowania danych, sterowany przez
odbiorcę,
NDAC – sygnał potwierdzenia odebrania danej. wystawiany przez odbiorcę,
ATN – Sygnał aktywny wskazuje, ze na liniach danych znajduje się rozkaz, tory musi zostać
odebrany i potwierdzony przez kaŜde urządzenie podłączone do magistrali,
EOI – W zaleŜności oda stanu linii ATN słuŜy do sygnalizacji końca transmisji(ATN=0) lub
uruchamia procedurę kontroli równoległej ( ATN=1),
REN – linia słuŜy do przełączania przyrządów podłączonych do magistrali w tryb zdalnego
sterowania poprzez magistrale IEC625,
IFC – Sygnał zerowania interfejsów Wprowadza wszystkie interfejsy podłączone do magistrali
w określony stan początkowy,
SRQ – Linia słuŜąca do sygnalizowania kontrolerowi konieczność wykonania procedury obsługi
jednego lub kilku urządzeń podłączonych do magistrali.
Stanem aktywnym na liniach sterujących jest stan niski.
W ćwiczeniu zajmować będziemy się wyłącznie niepełną warstwą fizyczną interfejsu IEC625.
Wystarcza ona do zilustrowania zasady równoległego przesyłania danych z potwierdzeniem.
W zakresie obejmującym ćwiczenie interfejs składał się będzie z 13 linii: wspólnej linii masy,8
linii D1÷D8 słuŜące do równoległego przesyłu 1 bajtu danych, oraz 4 linii słuŜących do kontroli
przepływu danych (ATN,NRFD, DAV, NDAC).
Transmisja danych przez magistrale IEC625
2
Na rysunku przedstawiono transmisję danych przez magistrale IEC625.
Jak łatwo moŜna zauwaŜyć przepływ danych jest sterowany za pomocą 3 sygnałów. Warunkiem
rozpoczęcia transmisji jest zgłoszenie gotowości do przyjmowania danych przez wszystkich
odbiorców. Gdy to nastąpi linia NRFD (Not Ready For Data) staje się nieaktywna i nadajnik
moŜe wystawić na linie DIO0-DIO8 dane, oraz potwierdzić ich waŜność aktywnym sygnałem
DAV (Data VAlid))=0. Jest to sygnał dla obwodów odbiorczych, ze dane na liniach DIO1÷8 są
stabilne i moŜna je wykorzystać. Poprawny odbiór danych jest potwierdzany przez pojawienie
się nieaktywnego stanu na linii NDAC (Not Data ACcepted) oznaczającego, ze wszystkie
odbiorniki poprawnie odebrały dane. Kończy to przesłanie pojedynczego bajtu i nadajnik moŜe
rozpoczynać przesył następnego bajtu.
Realizacja ćwiczenia
Do wykonania niezbędna jest współpraca 2 zespołów. Transmisja będzie realizowana pomiędzy
dwoma zestawami Basic Stamp. Jeden zespół przygotowuje oprogramowanie realizujące funkcję
nadajnika-kontrolera, a drugi funkcję odbiornika.
Wykonanie niezbędnych połączeń:
Za pomocą przewodów zrealizować połączenia:
a) połączyć masy obu modułów ( wyprowadzenia VSS)
b) połączyć ze sobą port P8÷P15 w obu zestawach. Połączenie to będzie stanowiło 8-bitową
dwukierunkową magistralę danych..
c) Połączyć ze sobą port P4 w obu zestawach. Będzie on liną ATN.
d) Połączyć ze sobą port P5 w obu zestawach. Będzie on liną NRFD.
e) Połączyć ze sobą port P6 w obu zestawach. Będzie on liną DAV.
f) Połączyć ze sobą port P7 w obu zestawach. Będzie on liną NDAC.
UWAGA! Nazwa symboliczna ATN jest zastrzeŜona w języku Pbasic i nie jest to w Ŝaden
sposób związane z interfejsem IEC625.
UWAGA! Instrukcje IN i OUT nie przyjmują parametru w postaci symbolicznej. NaleŜy
podawać numer portu w postaci liczby.
Polecenie DIRH bajt konfiguruje kierunek portów P8-P15. Jeśli na danej pozycji zmiennej lub
stałej bajt jest 1 odpowiedni pin jest ustawiany jako wyjście. Jeśli 0 jest ustawiany jako wejście.
Bit najmłodszy zmiennej lub stałej bajt odpowiada za kierunek linii P8 a najstarszy za kierunek
linii P15.
Składnia i znaczenie komend INPUT, OUTPUT, IN, OUT omówione były w opracowaniu
ćwiczenia nr 2. Szczegóły moŜna znaleźć w BASIC_Stamp_Manual_v2_0c.pdf
Konfiguracja portów dla nadajnika-kontrolera:
Ustawić poleceniem DIRH linie danych jako wyjścia.
Ustawić poleceniem OUTPUTn linie ATN i DAV jako wyjścia.
Ustawić poleceniem INPUTn linie NRFD i NDAC jako wejścia.
Poleceniem OUTdav i OUTatn ustawić stan nieaktywny (H) na liniach ATN i DAV.
Konfiguracja portów dla odbiornika:
Ustawić poleceniem DIRH linie danych jako wejścia.
Ustawić poleceniem INPUTn linie ATN i DAV jako wejścia.
Ustawić poleceniem OUTPUTn linie NRFD i NDAC jako wyjścia.
Poleceniem OUTnrfd i OUTndac ustawić stan aktywny (L) na liniach NRFD i NDAC.
3
Napisać procedurę przesłania jednego bajtu sterującego od kontrolera-nadajnika do odbiornika:
Po stronie nadajnika:
Ustawić linie ATN w stan niski.
Oczekiwać na sygnał gotowości odbiornika do przyjmowania danych (gdy odbiornik jest gotowy
ustawia linie NRFD w stan wysoki).
Rozkazem OUTH wystawić bajt danych przeznaczony do przesłania na linie P8-P15.
Ustawić linie DAV w stan niski.
Oczekiwać na potwierdzenie odebrania danej przez odbiornik poprzez wykrycie stanu
wysokiego na linii NDAC.
Ustawić stan nieaktywny na linii DAV.
Ustawić w stan nieaktywny (wysoki) linie ATN.
Wyświetlić na ekranie poleceniem DEBUG informacje o zakończeniu przesłania.
Polecenie OUTH bajt wyprowadza na linie P8÷P15 wartość parametru bajt. Wymaga
odpowiedniego skonfigurowania linii poleceniem DIRH lub innym.
Po stronie odbiornika:
Oczekiwać na pojawienie się stanu aktywnego (niskiego) na linii ATN
Poleceniem OUTnrfd ustawić stan nieaktywny na linii NRFD informując nadajnik o gotowości
do odebrania danych.
Oczekiwać na pojawienie się aktywnego stanu na linii DAV.
Rozkazem INH odczytać wartość przesyłanego bajtu.
Potwierdzić nadajnikowi odebranie danej ustawiając linie NDAC w stan wysoki.
Oczekiwać na zmianę stanu na linii DAV na wysoki.
Ustawić linie NDAC w stan niski.
Ustawić linie NRFD w stan niski.
Wyprowadzić wartość odebranego bajtu poleceniem DEBUG.
Funkcja INH przypisuje zmiennej typu byte wartość odpowiadającą stanowi linii
P8÷P15. Wymaga odpowiedniego skonfigurowania linii poleceniem DIRH lub innym.
W drugiej części napisane wcześniej procedury będą modyfikowane, aby uzyskać moŜliwość
przesyłania danych w obu kierunkach.
Jak moŜna zauwaŜyć w interfejsie nie ma linii definiującej kierunek transmisji.
O kierunku transmisji decyzja przesyłana jest w wyŜszych warstwach interfejsu. W duŜym
uproszczeniu kontroler przesyła specjalny bajt informujący o tym ze urządzenie staje się
nadajnikiem. Przyjmijmy zatem, ze otrzymanie przez odbiornik bajtu o wartości 11000001 b
oznaczać będzie ze odbiornik ma się stać nadajnikiem.
Wystarczy zatem wykorzystać odpowiednie fragmenty wcześniej napisanego programu by
odbiornik posiadł funkcje nadajnika i kontroler-nadajnik funkcje odbiornika.
Powrót do sytuacji początkowej powinien nastąpić po przesłaniu bajtu EOT o wartości 13d.
Kolejnym krokiem moŜe być rozbudowa procedur o moŜliwość przesyłu danych
wielobajtowych.
4