Transmisja informacji po magistrali standardu IEC-625

Transkrypt

Transmisja informacji po magistrali standardu IEC-625
LABORATORIUM SYSTEMÓW POMIAROWYCH
KTP
IR
PW
MAGISTRALA SYSTEMU POMIAROWEGO
W STANDARDZIE IEC-625. 2 (IEEE-488.2)
(materiały pomocnicze do ćwiczenia nr 2)
Opracowali:
dr inż. W.Winiecki
Gerard Ciasnocha
Piotr Pawlak
Warszawa 1996
SPIS TREŚCI
1.
Cel ćwiczenia.................................................................................................................3
2.
Wstęp............................................................................................................................3
3.
Tester interfejsu IEC-625...............................................................................................5
4.
Opis multimetru HP 34401A..........................................................................................6
4.1
Płyta czołowa................................................................................................................6
4.2
Programowanie multimetru............................................................................................8
4.3
Format wyniku pomiaru multimetru.............................................................................12
4.4
Najczęściej sygnalizowane błędy przez multimetr.........................................................12
5.
Pytania kontrolne.........................................................................................................14
Dodatki:
D1
System statusu w standardzie SCPI..............................................................................15
D2
Kody ASCII.................................................................................................................18
D3
Handshake trójprzewodowy.........................................................................................19
2
1. CEL ĆWICZENIA
Celem ćwiczenia jest praktyczne zapoznanie się z metodami uruchamiania
nowoczesnych systemów pomiarowych w standardzie IEC-625.2.Wykonanie ćwiczenia polega
na realizacji prostego zadania pomiarowego w systemie składającym się z testera interfejsu
IEC-625 (pełniącego funkcję kontrolera) oraz multimetru firmy Hewlett-Packard.
Zastosowany sprzęt programuje się wykorzystując standard instrukcji SCPI, który jest
obecnie standardem w dziedzinie oprogramowania urządzeń pomiarowych.
2. WSTĘP
Jednym z najważniejszych etapów projektowania systemów pomiarowych jest ich
uruchamianie.
Uruchamianie systemu pomiarowego obejmuje uruchamianie sprzętu połączonego w
system oraz uruchamianie oprogramowania: procedur komunikacyjnych (zapewniających
poprawne sterowanie pracą wszystkich bloków funkcjonalnych i poprawną wymianę informacji
między nimi) oraz procedur przetwarzania danych (łącznie z prezentacją wyników).
Generalną zasadą przy uruchamianiu systemu pomiarowego jest: "uruchamiać kolejno i
stopniowo"; zaczynając od uruchomienia sprzętu pracującego w systemie, kończąc na
procedurach przetwarzania danych.Uruchomienie części sprzętowej systemu pomiarowego
polega na sprawdzeniu zdalnego sterowania poszczególnych bloków funkcjonalnych systemu
(przyrządów, modułów, kart pomiarowych, itp.). Sprawdzenie to najczęściej sprowadza się do
zaprogramowania pracy danego bloku i odebrania wyniku jego działania (w przypadku
przyrządu pomiarowego: wyniku pomiaru). Uruchamianie bloków funkcjonalnych można
podzielić na dwa etapy (rys.1):
- uruchomienie zdalnego sterowania poszczególnych bloków funkcjonalnych
dołączonych do kontrolera indywidualnie, z odłączeniem pozostałych bloków
(uruchamianie indywidualne),
- uruchomiania zdalnego sterowania poszczególnych bloków funkcjonalnych w
obecności wszystkich bloków dołączonych do kontrolera (uruchamianie w grupie).
Rolę kontrolera pełnić może tester magistrali lub komputer.
Uruchamianie bloku funkcjonalnego
indywidualne
statyczne
w grupie
dynamiczne
statyczne
dynamiczne
Rys.1. Etapy uruchamiania urządzeń systemu pomiarowego
3
Uruchamianie indywidualne bloku funkcjonalnego umożliwia sprawdzenie poprawności
kodów i formatów danych programujących oraz wyników pomiarów.
Uruchamianie w grupie pozwala na stwierdzenie nieprawidłowego zachowania
urządzenia w obecności innych bloków funkcjonalnych. Badania takie umożliwiają m.in.
wykrycie nadmiernego obciążenia magistrali systemowej wynikającego zwykle z uszkodzenia
buforów w interfejsie, czy też wykrycie niewykonania pewnych rozkazów przez urządzenie
(np. rozkazu UNL w systemie z interfejsem IEC-625), mogącego uniemożliwić poprawną
pracę projektowanego systemu.
Uruchamianie bloku funkcjonalnego indywidualne lub w grupie może być
przeprowadzone w sposób statyczny lub dynamiczny. Uruchamianie statyczne polega na
krokowym wykonaniu procedury zdalnego sterowania (najczęściej poprzez ręczne sterowanie
magistralą systemową z wykorzystaniem specjalnego testera) i obserwacji reakcji bloku na
poszczególne kroki sterowania oraz analizie komunikatów o błędach.
Niektóre kontrolery systemu wyposażone są w specjalny program interakcyjny, który
umożliwia użytkownikowi wykonanie pojedyńczych procedur zdalnego sterowania i kontrolę
na bieżąco ich wykonania. Przy pracy krokowej należy zawsze pamiętać o ustawieniu w
sterownikach programowych bloków funkcjonalnych i kontrolera odpowiednio długiego czasu
reakcji na sygnały sterujące magistrali tak, aby uniknąć błędu przekroczenia czasu reakcji
(ang.: timeout). Uruchamianie dynamiczne polega na wykonaniu serii wyzwoleń pracy bloku i
odczytów od niego wyników z maksymalną prędkością. Testowanie dynamiczne - często
zresztą pomijane - jest o tyle istotne, że niektóre urządzenia, mimo pozytywnego przejścia
testów statycznych, mogą nieprawidłowo pracować w ekstremalnych warunkach
dynamicznych. Niezauważenie tego faktu może znacznie utrudnić uruchamianie całego
systemu.
4
3. TESTER INTERFEJSU IEC-625
Tester interfejsu opracowany w Instytucie Radioelektroniki umożliwia obserwację i
ręczne sterowanie wszystkich linii magistrali IEC-625. Jest to urządzenie niezależne od
komputera, z własnym, niezależnym zasilaniem. Na płycie tylnej umieszczone jest gniazdo
interfejsu IEC-625, które umożliwia dołączenie testera do magistrali systemowej. Płyta
czołowa testera zawiera 16 przycisków odpowiadających poszczególnym liniom magistrali (8
linii danych, 5 linii sterujących, 3 linie synchronizacji) oraz skojarzonych z nimi 16 diod
świecących sygnalizujących stan magistrali (rys. 2). Wciśnięcie przycisku powoduje zapalenie
odpowiadającej mu diody i ustawienie stanu logicznego "1" na danej linii; zwolnienie - oznacza
powrót do stanu logicznego "0" wraz ze zgaszeniem diody.
TESTER INTERFEJSU IEC-625
9V
LINIE DANYCH
LINIE STERUJ¥CE
DIO8 DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1
DAV NRFD NDAC
ATN
SRQ
REN
EOI
IFC
INSTYTUT RADIOELEKTRONIKI PW
Rys.2. Rysunek płyty czołowej testera interfejsu IEC-625
Tester może pracować w 3 trybach: monitora biernego, monitora aktywnego i
kontrolera. Tryby te opisano w tablicy 1. W trybie kontrolera tester włączony jest do systemu
zamiast właściwego kontrolera systemu. W pozostałych trybach pracy tester jest dołączany do
systemu jako urządzenie dodatkowe, tzn. nie jest traktowany przez kontroler systemu jako
urządzenie wchodzące w skład systemu; jest dla niego "niewidoczne".
Przy pracy krokowej testera należy pamiętać o wyłączeniu czasu przeterminowania
(ang.: timeout) w urządzeniach biorących udział w transmisji.
Tab. 1. Tryby pracy testera interfejsu IEC-625
Tryb pracy
monitor bierny
monitor aktywny
(odbiorca)
kontroler
Funkcja testera
Wykorzystane klawisze
obserwacja stanu magistrali podczas pracy
systemu, bez możliwości zwolnienia transmisji
obserwacja stanu magistrali podczas pracy
systemu, z możliwością wymuszenia pracy
krokowej lub zatrzymania transmisji
krokowe sterowanie pracą systemu (wysyłanie
adresów, rozkazów, danych, odbiór danych) z
podglądem stanu magistrali
5
wszystkie przyciski
wyciśnięte
operowanie przyciskami
NRFD i NDAC
operowanie wszystkimi
klawiszami
4. OPIS MULTIMETRU HP 34401A
4.1 PŁYTA CZOŁOWA
Funkcje dostępne bezpośrednio z płyty czołowej pogrupowane są w cztery bloki:
1.FUNCTION
Pomiar napięcia oraz prądu stałego i zmiennego, rezystancji, okresu i częstotliwości a także
testowanie diody;
2.MENU
Włączenie i wyłączenie menu oraz wywołanie ostatnio używanej funkcji.
3.RANGE / DIGITS
Ustawienie zakresu pomiarowego oraz ilości cyfr znaczących;
4. MATH
Pomiar z uwzględnieniem wartości odniesienia, wyznaczenie wartości minimalnej i
maksymalnej w serii pomiarów, pomiary w dB i dBm;
Poza tym możliwy jest wybór rodzaju wyzwalania (ręczne lub automatyczne).
Struktura menu
Menu posiada strukturę 3-poziomową (menus, commands, parameters). Poruszanie
się pomiędzy poziomami: góra
∧
, dół
∨ . Każdy z trzech poziomów ma kilka
opcji, których wybór następuje przez naciśnięcie
<
lub
> .
.
Menus
Commands
Parameters
On/Off
- włączenie menu: naciśnięcie
shift
<
,
- wyłączenie: analogicznie lub naciśnięcie dowolnego przycisku z grupy function lub math w
górnym rzędzie płyty czołowej.
- wykonanie polecenia menu: naciśnięcie Auto/Man
ENTER
6
Przykładowe polecenia menu
A:MEASurement MENU
1: AC FILTER ⇒ 2: CONTINUITY ⇒ 3: INPUT R ⇒ 4: RATIO FUNC ⇒ 5: RESOLUTION
1: AC FILTER
2: CONTINUITY
3: INPUT R
4: RATIO FUNC
5: RESOLUTION
Selects the slow, medium, or fast ac filter;
Sets the continuity beeper threshold ( 1Ω to 1000Ω);
Sets the input resistance for dc voltage measurements,
Enables the dcv: dcv ratio function;
Selects the measurement resolution.
B: MATH MENU
1: MIN-MAX ⇒ 2: NULL VALUE ⇒ 3: dB REL ⇒ 4: dBm REF R ⇒ 5: LIMIT TEST ⇒
6: HIGH LIMIT ⇒ 7: LOW LIMIT
1: MIN-MAX
2: NULL VALUE
3: dB REL
4: dBm REF R
5: LIMIT TEST
6: HIGH LIMIT
7: LOW LIMIT
Recalls the stored minimum, maximum, average, and reading count;
Recalls or sets the null value stored in the null register;
Recalls or sets the dBm value stored in the dB relative register;
Selects the dBm reference resistance value;
Enables or disables limit testing;
Sets the upper limit for limit testing;
Sets the lower limit for limit testing.
C: TRIGer MENU
1: READ HOLD ⇒ 2: TRIG DELAY ⇒ 3: N SAMPLES
1: READ HOLD
2: TRIG DELAY
3: N SAMPLES
Sets the reading hold sensitivity band;
Specifies a time interval which is inserted before a measurement;
Sets the number of samples per trigger.
D: SYStem MENU
1: RDGS STORE ⇒ 2: SAVED RDGS ⇒ 3: ERROR ⇒ 4: TEST ⇒ 5: DISPLAY ⇒6: BEEP ⇒
7: COMMA ⇒ 8:REVISION
E: Input / Output MENU
1: HP-IB ADDR ⇒ 2: INTERFACE ⇒ 3: BAUD RATE ⇒ 4: PARITY ⇒ 5: LANGUAGE
F: CALibration MENU
1: SECURED ⇒ [ 1: UNSECURED ] ⇒ [ 2: CALIBRATE ] ⇒ 3: CAL COUNT ⇒ 4: MESSAGE
UWAGA: Dwie komendy ujęte w nawiasy kwadratowe ( [ ] ) są „ukryte” dopóki multimetr jest
zabezpieczony przed zmianą kalibracji.
7
Przykład użycia komendy z MENU:
Zmiana adresu multimetru
On/Off
- wejście do MENU, ( nacisnąć
shift , a następnie
<
, pojawia się napis:
A: MEAS MENU );
- naciskając
<
lub
>
dokonać właściwego wyboru menu ( tu:
E: I/O MENU );
- nacisnąć
∨
żeby przejść do podmenu commands, ( pojawia się napis:
1:HP-IB ADDR );
- dokonać wyboru komendy analogicznie jak wyboru menu, ( tu: 1:HP-IB ADDR );
- nacisnąć
∨
żeby przejść do podmenu parameters, ( pojawia się napis:
∧22
ADDR );
- naciskając
<
lub
>
dokonać wyboru cyfry która ma ulec zmianie;
- zmiany wartości dokonujemy naciskając
∧
lub
∨
;
- potwierdzenie zmiany, ( nacisnąć
Auto/Man
, w przeciwnym razie zmiany
nie zostaną zapamiętane ).
ENTER
4.2 PROGRAMOWANIE MULTIMETRU HP-34401A
Funkcje i zakresy pomiarowe multimetru HP-34401A przedstawiono w tabeli 2.
Tab.2. Funkcje i zakresy pomiarowe multimetru HP-34401A.
Funkcja
Zakresy pomiarowe
DC V, AC V
100mV, 1V, 10V, 100V, 1000V (750Vac)
Ω 2W, Ω 4W
100Ω, 1kΩ, 10kΩ, 100kΩ, 1MΩ, 10MΩ,
100MΩ
DC I, AC I
10mA (tylko dc), 100mA (tylko dc), 1A, 3A
Freq (period)
3Hz do 300kHz (0.33s do 3.3 µs)
Multimetr HP-34401A posiada rozbudowany system wyzwalania. System ten pozwala
na automatyczne generowanie wyzwolenia, wykonanie wielu pomiarów po jednym
wyzwoleniu i umieszczenie opóźnienia przed wykonaniem każdego pomiaru. Po włączeniu
zasilania lub po rozkazie *RST, system wyzwalania jest skonfigurowany na wykonanie jednego
pomiaru za każdym razem, kiedy odbierze wyzwolenie. System wyzwalania można
skonfigurować na wielokrotne wykonanie pomiaru po każdym wyzwoleniu (do 50000
pomiarów na jedno wyzwolenie). Po włączeniu zasilania lub po rozkazie *RST multimetr jest
skonfigurowany na wewnętrzne źródło wyzwalania i po wprowadzeniu go w stan oczekiwania
na wyzwolenie, zostanie wykonany jeden pomiar, po którym system wyzwalania wróci do
stanu spoczynkowego. System wyzwalania multimetru HP-34401A przedstawiono na rys. 3.
8
Initiate Triggering:
MEASure?
READ?
INITiate
Trigger Source:
TRIGger:SOURce IMMediate
TRIGger:SOURce EXTernal
TRIGger:SOURce BUS
Trigger Delay:
TRIGger:DELay
Sample (*)
Annunciator
Idle
State
Wait-for
Trigger
State
Dealy
Measurement
Sample
Sample Trigger
Count≠1 Count≠1
Rys.3. System wyzwalania multimetru HP-34401A.
Wyzwolenie multimetru dające w efekcie wynik pomiaru jest kilkuetapowym procesem,
na który składają się następujące czynności:
1. Konfiguracja multimetru do pomiaru, tzn. wybranie funkcji, zakresu, rozdzielczości etc;
2. Wybór źródła wyzwalania, z którego multimetr będzie akceptował wyzwalanie. Multimetr
akceptuje trzy źródła wyzwalania:
-bezpośrednie - z wewnętrznego generatora wyzwalającego, oznaczone skrótem IMM;
-programowe - poprzez magistralę (rozkaz *TRG), oznaczone BUS;
-wyzwalanie sprzętowe poprzez zewnętrzne wejście wyzwalające, oznaczone skrótem EXT
(nie używane w ćwiczeniu);
3. Wprowadzenie systemu wyzwalania w stan oczekiwania na wyzwolenie (wait-for-trigger
state). Wyzwolenie nie będzie zaakceptowane jeżeli multimetr nie jest w stanie oczekiwania na
wyzwolenie.
4. Wyzwolenie multimetru.
• Konfiguracja multimetru.
Do konfiguracji multimetru służy podsystem CONFigure.
UWAGA: zapis typu CONFigure oznacza, że można używać skrótu CONF zamiast całej
nazwy CONFIGURE.
9
Składnia wybranych rozkazów z podsystemu CONFigure:
-konfiguracja do pomiaru napięcia stałego (DC) albo zmiennego (AC);
CONFigure:VOLTage:DC {<range>|MIN|MAX|DEF},
{<resolution>|MIN|MAX|DEF}
CONFigure:VOLTage:AC {<range>|MIN|MAX|DEF},
{<resolution>|MIN|MAX|DEF}
-konfiguracja do pomiaru prądu stałego (DC) albo zmiennego (AC);
CONFigure:CURRent:DC {<range>|MIN|MAX|DEF},
{<resolution>|MIN|MAX|DEF}
CONFigure:CURRent:AC {<range>|MIN|MAX|DEF},
{<resolution>|MIN|MAX|DEF}
Przykłady:
-konfiguracja do pomiaru napięcia stałego, zakres 10V, rozdzielczość 0.003V:
CONF:VOLT:DC 10, 0.003
-konfiguracja do pomiaru prądu zmiennego, zakres 1A, rozdzielczość 0.1mA:
CONF:CURR:DC 1, 0.1M
• Wybór źródła wyzwalania.
Do wyboru źródła wyzwalania służą rozkazy z podsystemu TRIGger:
TRIGger:SOURce {BUS|IMMediate|EXTernal}
Przykład:
TRIG:SOUR BUS
Po włączeniu zasilania ustawiane jest bezpośrednie źródło wyzwalania (IMM). Rozkazy z
podsystemu CONFIGURE także automatycznie ustawiają źródło wyzwalania na bezpośrednie.
• Wprowadzenie systemu wyzwalania w stan oczekiwania na wyzwolenie.
Następujące rozkazy wprowadzają system wyzwalania w stan oczekiwania na
wyzwolenie:
READ?
INITiate
MEASure?
10
Rozkaz READ? działa tylko przy źródle wyzwalania ustawionym na IMM albo EXT,
nie działa przy źródle BUS. W przypadku źródła wewnętrznego (IMM) wykonanie rozkazu
READ? jest praktycznie równoważne z wyzwoleniem multimetru. Wynik pomiaru jest
umieszczany w buforze wyjściowym multimetru. Przykład:
CONF:VOLT:DC 10, 0.003
READ?
Rozkaz INIT działa ze wszystkimi źródłami wyzwalania. W odróżnieniu od rozkazu
READ? wynik jest umieszczany w pamięci wewnętrznej multimetru, skąd należy go pobrać do
bufora wyjściowego rozkazem FETCh?. Rozkaz READ? daje więc ten sam efekt co rozkaz
INIT z następującym po nim bezpośrednio rozkazem FETCh?. Zapamiętywanie wyników w
pamięci wewnętrznej jest szybsze niż przesyłanie ich do bufora wyjściowego. Multimetr może
zapamiętać do 512 wyników w pamięci wewnętrznej. Przykłady:
-wyzwolenie wewnętrzne:
CONF:VOLT:DC 10, 0.003
INIT
FETCh?
-wyzwolenie programowe z magistrali:
CONF:VOLT:DC 10, 0.003
TRIG:SOUR BUS
INIT
*TRG
FETCh?
Najprostszym sposobem zaprogramowania multimetru jest użycie rozkazu MEASure?.
Wysłanie rozkazu MEASure? jest równoważne wysłaniu rozkazu CONFigure z bezpośrednio
po nim następującym rozkazem READ?. Wykonanie rozkazu MEASure? powoduje, że
multimetr bezpośrednio wykonuje pomiar, co nie zawsze jest korzystne. Rozkaz CONFigure z
następującym po nim rozkazem INITiate lub READ? jest bardziej elastyczny. Składnia rozkazu
MEASure różni się tylko pierwszym słowem od podanej wcześniej składni rozkazu
CONFigure, tzn. zamiast słowa CONFigure należy użyć MEASure. Rozkaz MEASure
podobnie jak CONFigure automatycznie ustawia źródło wyzwalania na IMM.
Przykład:
MEAS:VOLT:DC? 10, 0.003
11
4.3 FORMAT WYNIKU POMIARU MULTIMETRU HP-34401A
Dla pojedynczego wyniku pomiaru przyjęto następujący format zgodny ze standardem
IEEE-488.2 :
SD.DDDDDDDDESDD<NL>
S
D
E
<nl>
Przykład:
(16 bajtów)
-znak wyniku;
-cyfry dziesiętne;
-eksponent;
-znak nowej linii.
+4.00000000E+00.
4.4 NAJCZĘŚCIEJ SYGNALIZOWANE BŁĘDY PRZEZ MULTIMETR HP-34401A
-101
Invalid character
Wykryto niewłaściwy znak w słowie programującym np.: CONF:VOLT#DC
-102
Syntax error
Nieprawidłowa składnia słowa programującego np. spacja przed lub po dwukropku
bądź przecinku np.: SAMP:COUN ,1
-103
Invalid separator
Nieprawidłowy znak przestankowy w słowie programującym np. przecinek zamiast
dwukropka
-105
GET not allowed
Niedozwolone wyzwolenie przyrządu: przyrząd nie został jeszcze poprawnie
zaprogramowany
-108
Parameter not allowed
Za dużo parametrów w tekście programującym lub parametr po słowie, które jego nie
wymaga np.: READ? 10
-109
Missing parameter
Zbyt mało parametrów np.: SAMP:COUN
-113
Undefined header
Nieznana komenda. Prawdopodobnie wystąpił błąd ortograficzny w tekście
programującym np.: TRIGG:COUN 3 (forma skrócona komendy musi składać się z 4
znaków)
-121
Invalid character in number
Nieprawidłowy znak w liczbie określającej wartość parametru np.:
12
STAT:QUES:ENAB #B01010102
-211
Trigger ignored
Zignorowane polecenie wyzwolenia przyrządu. Należy upewnić się, że multimetr
znajduje się w stanie oczekiwania na wyzwolenie „wait-for-trigger state” i wyzwolenie
przyrządu nastąpiło z odpowiedniego źródła
-213
Init ignored
Zignorowane polecenie INIT. Multimetr prawdopodobnie nie zakończył jeszcze
poprzedniego pomiaru
-222
Data out of range
Liczbowa wartość parametru spoza dozwolonego zakresu np.: TRIG:COUN -3
-410
Query INTERRUPTED
Przyrząd otrzymał komendę wysyłającą dane do bufora wyjściowego, lecz bufor ten
zawiera dane umieszczone w nim w wyniku działania poprzedniej komendy.
Należy usunąć dane z bufora np.: rozkazem *RST lub wyłączeniem zasilania
-532
Cannot achieve reqested resolution
Przyrząd nie może zaakceptować podanego tekstu programującego.
Prawdopodobnie wystąpił błąd w składni komendy CONFigure lub MEASure
5. PYTANIA KONTROLNE
1. Opisać typową sekwencję operacji, jaką należy wykonać za pomocą testera interfejsu IEC625 aby zaprogramować,wyzwolić i odebrać wynik z multimetru HP-34401A.
2. Omówić metodę transmisji stosowaną w standardzie IEC-625 tzw. handshake
trójprzewodowy.
13
D1. SYSTEM STATUSU W STANDARDZIE SCPI
Wszystkie urządzenia w standardzie SCPI mają tak samo zorganizowany system
statusu. System ten przedstawiono na rysunku 4.
Bufor wyjściowy
Bajt Statusu
Rejestr Sumaryczny
Zdarzenie Standardowe
Rejestr Zdarzeń
Zakończ. Operację
Nie Wykorzystany
Błąd Zapytania
Błąd Urządzenia
Błąd Wykonania
Błąd Rozkazu
Nie Wykorzystany
Zasilanie
*ESR?
Nie Wykorzystany
Rejestr Maski
Nie Wykorzystany
Nie Wykorzystany
0
1
2
3
4
5
6
7
Nie Wykorzystany
OR
Dostępny Komunikat
Zdarzenie Standard.
Żądanie Obsługi
Nie Wykorzystany
*ESE <wartość>
*ESE?
Odpyt. Szereg.
*STB?
Rejestr Maski
0
1
2
3
4
5
6
7
OR
*SRE <wartość>
*SRE?
Rys.4. System statusu.
System statusu składa się z rejestru zdarzeń standardowych i z rejestru bajtu statusu
(zwanego też sumarycznym rejestrem bajtu statusu). Są to rejestry przeznaczone tylko do
odczytu. Ponadto, każdemu z tych rejestrów przydzielono rejestr maski. Rejestry maski
umożliwiają maskowanie poszczególnych bitów rejestru bajtu statusu i rejestru zdarzeń
standardowych. Dowolny rejestr maski można zarówno odczytać, jak i zapisać.
Suma logiczna niezamaskowanych bitów rejestru zdarzeń standardowych daje w
rezultacie jeden bit, który jest następnie umieszczany w rejestrze bajtu statusu jako bit o
numerze 5. Jest to tzw. bit zdarzenia standardowego.
Niezamaskowane bity rejestru bajtu statusu także są sumowane logicznie. Wynik tego
sumowania jest umieszczany w rejestrze bajtu statusu jako bit o numerze 6. Jest to tzw. bit
żądania obsługi. Bit ten bezpośrednio steruje linią SRQ interfejsu. Ustawienie się tego bitu
jest więc równoważne ze zgłoszeniem przerwania. Bit ten nie jest sumowany logicznie z
innymi niezamaskowanymi bitami rejestru bajtu statusu, ponieważ odpowiadający mu bit w
rejestrze maski jest zawsze równy zeru (próba ustawienia tego bitu zostanie zignorowana).
Oprócz bitu żądania obsługi i bitu zdarzenia standardowego w rejestrze bajtu statusu
istotny jest bit, który sygnalizuje dostępność komunikatu (np. wyniku pomiaru) w buforze
wyjściowym. Jest to tzw. bit dostępności komunikatu. Komunikat w buforze wyjściowym
pojawia się w wyniku wykonania rozkazu typu zapytanie. Wykonanie np. rozkazu *STB?
spowoduje odczytanie bajtu statusu i umieszczenie go w buforze wyjściowym. Pojawienie się
komunikatu w buforze wyjściowym (w tym przypadku bajtu statusu) zostaje następnie
zasygnalizowane przez ustawienie bitu dostępności komunikatu w rejestrze bajtu statusu.
14
Pozostałe niewykorzystane bity rejestru bajtu statusu (zwanego też sumarycznym
rejestrem bajtu statusu) mogą być wykorzystane przez producentów urządzeń zgodnych z
SCPI. Przykładowo w multimetrze HP-34401A znajduje się dodatkowy rejestr zdarzeń, a
mianowicie rejestr służący do sygnalizacji niepewności danych pomiarowych (rys.5). Rejestr
ten jest 16-bitowy, z czego wykorzystano tylko 5 bitów. Stan tych bitów informuje między
innymi o przekroczeniu zakresu pomiarowego. Z rejestrem tym stowarzyszony jest rejestr
maski i sumator logiczny. Wynik sumowania umieszczany jest w sumarycznym rejestrze
statusu jako bit o numerze 3. Informację dostarczaną przez ten rejestr można wykorzystać np.
do programowej zmiany zakresu pomiarowego multimetru.
Niepewność Danych
Rejestr Zdarzeń
Rejestr Maski
0
1
Not Used
2
Not Used
3
Not Used
4
Not Used
5
Not Used
6
OR
Bit nr 3
Not Used
7
Rejestru
Not Used
8
Sumarycznego
Ohms Overload
9
Not Used
10
Limit Test Fail LO
11
Limit Test Fail HI
12
Not Used
13
Not Used
14
Not Used
15
STAT:QUES:EVEN? STAT:QUES:ENAB <wartość>
STAT:QUES:ENAB?
Voltage Overload
Current Overload
Rys.5. Dodatkowy rejestr zdarzeń zastosowany w multimetrze HP-34401.
Zastosowany system bajtu statusu jest więc bardzo elastyczny. Rejestry maski
umożliwiają np. zgłaszanie żądania obsługi spowodowane różnymi zdarzeniami.
Praktyczne uwagi dotyczące wykorzystania poszczególnych rejestrów systemu statusu
w programach aplikacyjnych:
• Rejestry zdarzeń.
Można je tylko czytać. Bity w rejestrach zdarzeń są zatrzaskiwane, tzn. raz ustawiony
bit jest pamiętany niezależnie od zmian zdarzenia. Bity te są automatycznie zerowane w
następujących przypadkach:
-poprzez odczytanie danego rejestru zdarzeń za pomocą rozkazu zapytania np. *ESR? (rejestr
zdarzeń standardowych) lub STAT:QUES:EVEN? (rejestr niepewności danych w multimetrze
HP-34401A);
-za pomocą rozkazu *CLS (clear status).
15
Reset (*RST) lub zerowanie urządzenia nie zerują bitów w rejestrach zdarzeń.
Odczytanie rejestru zdarzeń daje dziesiętną wartość odpowiadającą ważonej binarnie sumie
bitów ustawionych w rejestrze.
• Rejestry maski.
Można je czytać i zapisywać. Do czytania poszczególnych rejestrów maski służą
rozkazy typu zapytanie: *SRE?, *ESE?, STAT:QUES:ENAB?. Każdy z nich dotyczy jednego
rejestru maski zgodnie z rysunkami rys.2 i rys.3. Odczytanie dowolnego rejestru maski nie
zmienia jego zawartości. Rozkaz *CLS (clear status) także nie ma wpływu na zawartość
rejestrów maski. Do zapisywania rejestrów maski służą następujące rozkazy: *SRE <wartość>,
*ESE <wartość>, STAT:QUES:ENAB <wartość>.
• Sumaryczny rejestr statusu.
Zawiera sumaryczną informację zgłaszaną przez pozostałe grupy rejestrów. Bity w
sumarycznym rejestrze statusu nie są zatrzaskiwane. Wyzerowanie np. któregoś z rejestrów
zdarzeń spowoduje wyzerowanie odpowiadającego mu bitu w sumarycznym rejestrze statusu.
W szczególności:
-odczytanie rejestru standardowego zdarzenia lub rejestru niepewności danych zeruje
odpowiadające tym rejestrom bity w sumarycznym rejestrze bajtu statusu;
-odebranie (odczytanie) wszystkich komunikatów z bufora wyjściowego wyzeruje bit
dostępności komunikatu;
Wyzerowanie tych bitów może oznaczać zniknięcie przyczyny żądania obsługi, czyli
dodatkowo wyzerowanie bitu żądania obsługi, a to oznacza zmianę stanu linii SRQ z
aktywnego na nieaktywny. Przeprowadzenie odpytywania szeregowego także zeruje bit
żądania obsługi. Rozkaz *STB? zwraca ten sam rezultat (bajt statusu) co odpytywanie
szeregowe, nie zeruje jednak bitu żądania obsługi.
Wszystkie bity bajtu statusu można wyzerować rozkazem *CLS.
16

Podobne dokumenty