Model podsystemu TRIGger urządzenia SCPI




Model podsystemu TRIGger urządzenia SCPI.








Model podsystemu TRIGger urządzenia SCPI




Model
ARM-TRIGger.
Stany
podsystemu TRIGger - stan IDLE.
Stany
podsystemu TRIGger - stan INITiated.
Stany
podsystemu TRIGger - warstwy detekcji zdarzenia (ARM i TRIGger).
Wykorzystanie
generowanych zdarzeń sekwencji wyzwalania.
Przykładowe
rozwiązania podsystemów TRIGger.
Rozszerzone
modele systemu wyzwalania.


Podsystem służy do synchronizacji akcji urządzenia z
zdarzeniami zewnętrznymi lub wewnętrznymi urządzenia. Akcją urządzenia jest
najczęściej wykonanie pomiaru lub wytworzenie sygnału wymuszającego. Zdarzeniami
stosowanymi do wywołania akcji urządzenia mogą być : polecenie wyzwolenia *TRG,
rozkaz interfejsowy GET, zmiana stanu sygnału zewnętrznego, określony poziom
sygnału mierzonego, itp.
Podsystem TRIGger jest opisany modelem o rozszerzalnych
możliwościach, dostosowywanych do potrzeb konkretnego urządzenia.

Rys.1. Model ARM-TRIGger podsystemu wyzwalania.
Działanie podsystemu przedstawia diagram, w którym prostokąty
obrazują stany podsystemu nazywane warstwami. Pionowo połączone warstwy tworzą
tzw. "sekwencję" (sekwencję wyzwalania). Linie ciągłe obrazują przepływ
sterowania między warstwami. Wyjście sterowania z danej warstwy modelu generuje
zdarzenie nazywane "zdarzeniem sekwencji". Zdarzenia sekwencji mogą być
wykorzystane przez inne części modelu wyzwalania lub przyrządu jako zdarzenia
synchronizujące. Linie przerywane obrazują sposób propagacji "zdarzeń
sekwencji".


Model ARM
TRIGger.
Reprezentuje zestaw możliwości bardzo często implementowany w
urządzeniach. Zapewnia synchronizację akcji urządzenia z wykorzystaniem dwóch
niezależnych poziomów detekcji zdarzeń. Jedną dostarcza warstwa ARM, drugą
warstwa TRIGger. W konkretnej implementacji warstwa ARM może być opuszczona lub
powtórzona wielokrotnie (ARM:LAYer1, ARM:LAYer2 itd.).


Stany podsystemu TRIGger - stan IDLE.
Dopóki podsystem TRIGger jest w stanie spoczynkowym wszelkie
zdarzenia synchronizujące są ignorowane. Akcje urządzenia w sensie akwizycji
danych czy generacji nowego sygnału są całkowicie uzależnione od podsystemu
TRIGger. Można powiedzieć, że stan IDLE blokuje funkcje pomiarowe przyrządu.
Podsystem wyzwalania może wyjść ze stanu IDLE tylko na skutek polecenia:
INITate[:IMMediate ]
  lub  INITiate:CONTinous  ON
Polecenie INIT jest poleceniem nakładkowym. Wyjście ze stanu
IDLE ustawia flagę NOPF w stan FALSE, powrót ustawia tę flagę w stan TRUE
zaznaczając w ten sposób wykonanie polecenia.

Rys.2. Diagram działania warstwy IDLE.


Stany podsystemu TRIGger - stan INITiated.
Po zainicjowaniu systemu wyzwolenia sterowanie przechodzi
natychmiast przez stan INITiated do najwyższej warstwy ARM:LAYer. Odwrotne
przejście jest uzależnione od sposobu zainicjowania podsystemu TRIGger. W pracy
ciągłej (INIT:CONT ON) następuje powrót sterowania do najwyższej warstwy ARM.
Stan INITiated jest potrzebny, aby umożliwić ustawienie flagi NOPF w stan TRUE
po wykonaniu sekwencji wyzwalania w warunkach pracy ciągłej (INIT:CONT ON).

Rys.3. Diagram działania warstwy INITiated.
Wyjścia ze stanu INITiated generują dwa różne zdarzenia
sekwencji, które mogą być wykorzystane w procesie sterowania urządzenia:
"INITiate:SEQuence[1][:DOWN]"   oraz
  "INITiate:SEQuence[1]:UP"


Stany podsystemu TRIGger - warstwy detekcji zdarzenia (ARM i
TRIGger).
Warstwy ARM oraz TRIGger dostarczają możliwości wykrycia
określonego zdarzenia. Każda z nich realizuje jeden poziom detekcji. Warstwa
TRIGger jest zawsze pojedynczą warstwą danej sekwencji wyzwalania i jest
podporządkowana warstwie ARM.

Rys.4. Diagram działania warstwy ARM oraz
TRIGger.

Przejście w dół przez warstwę jest uzależnione od wystąpienia
zdarzenia określonego za pomocą poleceń programujących daną warstwę. Za wykrycie
zdarzenia jest odpowiedzialny detektor zdarzeń 'event detector' znajdujący się w
torze przepływu sterowania w dół przez warstwę.
Programowanie warstwy dotyczy między innymi wyboru źródła
zdarzenia oraz dodatkowo charakterystyki sygnału w sytuacji, gdy do wyzwalania
jest wybrany sygnał analogowy lub cyfrowy (SLOPe
kierunek zmiany sygnału,
COUPling
rodzaj sprzężenia AC lub DC, FILTer
filtracja sygnału, HYSTeresis

histereza, LEVel
poziom sygnału itp.).
Przykładowe określenia źródeł zdarzenia synchronizującego :




BUS
-
magistrala interfejsu (rozkaz GET
lub polecenie *TRG);

EXT
-
sygnał zewnętrzny (analogowy,
cyfrowy) doprowadzony na port wyzwalania;

INT
-
zdarzenie pochodzące z funkcji
pomiarowych urządzenia lub bloku kondycjonowania sygnału;

LINE
-
sygnał napięcia zasilającego
AC;

LINK
-
wybrane zdarzenie wewnętrzne
określone poleceniem LINK (np. wybrane zdarzenie jednej z sekwencji
wyzwalania);

TIM
-
zdarzenie pochodzące z licznika
czasu.
Zwykle pierwsze wykryte zdarzenie wystarcza do wyjścia z danej
warstwy. Można jednak zadeklarować wystąpienie określonej liczby zdarzeń
(ECOunt), po których nastąpi wyjście, np. po 10 kolejnych narastających zboczach
sygnału wyzwalającego.
Wyjście z warstwy można opóźnić o określony odcinek czasu
(DELay). Istnieje też możliwość bocznikowania detektora zdarzeń, licznika
zdarzeń lub opóźnienia (bypass). Służą do tego polecenia :IMMediate oraz :SIGnal
obsługujące daną warstwę, np.:
ARM[:SEQ][:LAY][:IMM]  lub  
TRIG[:SEQ]:SIGN
Przejście powrotne przez warstwę jest uwarunkowane stanem
licznika powtórzeń akcji danej warstwy (COUnt). Blok 'event detector' znajdujący
się na trasie powrotnej dotyczy sprawdzenia wykonania akcji zainicjowanej
poprzedzającym wyjściem z tej warstwy. Wyjście w dół oraz wyjście w górę z
warstwy generuje odpowiednie zdarzenie sekwencji :





ARM:SEQ:LAY[:DOWN]
TRIG:SEQ[:DOWN]

ARM:SEQ:LAY:UP
TRIG:SEQ:UP
Działanie sekwencji warstw ARM oraz warstwy końcowej TRIGger
można porównać do działania zagnieżdżonych pętli FOR języka programowania.


Wykorzystanie generowanych zdarzeń sekwencji
wyzwalania.
W modelu ARM-TRIGger zdarzenie DOWN generowane przez warstwę
TRIGger jest wykorzystane do startowania akcji urządzenia. Typowo jest to
wykonanie pomiaru lub wygenerowanie sygnału stymulującego.
Zakończenie akcji urządzenia, na które czeka warstwa TRIGger,
może być określone jako kompletne wykonanie pewnej operacji (np. przemiatania
zadanego zakresu częstotliwościowego) lub jako zainicjowanie takiej operacji. W
konsekwencji przejścia powrotne poprzez kolejne warstwy (np. powrót do stanu
IDLE) wykonują się w różnych momentach czasowych w relacji do zleconej akcji.
Jak widać generowane zdarzenia UP takiej sekwencji są uzależnione od cech
urządzenia. Sposób sterowania urządzenia należy zatem dostosować do jego cech
indywidualnych.
Nazwa generowanego zdarzenia sekwencji wyzwalania odpowiada
miejscu jego wygenerowania:

"INITiate ( [:SEQuence[1] | :SEQuence<n> ) (
[:DOWN] | :UP )"
"ARM ( [:SEQuence[1] | :SEQuence<n> ) (
[LAYer[1]] | :LAYer<n> ) ( [:DOWN] | :UP )"
"TRIGer ( [:SEQuence[1] | :SEQuence<n> ) (
[:DOWN] | :UP )"
np.: zdarzenie DOWN warstwy TRIGger sekwencji 1 podsystemu
wyzwalania można określić nazwą:

"TRIG:SEQ1:DOWN""TRIG:DOWN""TRIG"
Uproszczenia pełnej nazwy określającej zdarzenie wynikają z
opuszczania domyślnych słów kluczowych. Określenie sekwencji
(:SEQuence<n>) można zastąpić zdefiniowaną przez użytkownika nazwą
(:<sequence_name>).
Generowane zdarzenia zaimplementowanej sekwencji wyzwalania
wykorzystuje się w urządzeniach do synchronizacji działania określonych jego
zasobów funkcjonalnych (np. skanowania kanałów wejściowych) lub synchronizacji
innych sekwencji wyzwalających w przypadku stosowania rozbudowanego podsystemu
TRIGger.


Przykładowe rozwiązania podsystemów TRIGger.
Najprostsze rozwiązanie podsystemu wyzwalania stosuje tylko
jedną sekwencję wyzwalającą z trzema warstwami: IDLE, INITiated oraz TRIGger i
wykorzystuje zdarzenie DOWN warstwy TRIGger do startowania pomiaru.

Rys.5. Podsystem wyzwalania multimetru HP34401.
Podsystem TRIGger multimetru HP34401 wykorzystuje tylko warstwę
INIT oraz TRIGger. Można zaprogramować przyrząd do wykonania zadanej liczby
<n> pojedynczych pomiarów :
TRIGger:COUNt <n>;SAMPle:COUNt 1
lub serii pomiarów <s> po każdym wyzwoleniu :
TRIGger:COUNt <n>;SAMPle:COUNt <s>
inicjalizowanych wybranym zdarzeniem synchronizującym (BUS,
IMM, EXT).
Multimetr ( 2001 Keithley ) posiadający
wewnętrzny moduł przełącznika kanałów pomiarowych wykorzystuje bardziej złożony
model systemu wyzwalania (rys.6). Stosuje jedną sekwencję wyzwalania ale z
dwiema warstwami ARM. Warstwa ARM:Layer1 jest wykorzystana do skanowania
kanałów wejściowych urządzenia, natomiast warstwa ARM:LAYer2 do
powtarzania cykli pomiarowych po zbiorze kanałów.
Zdarzenia DOWN kolejnych warstw są wykorzystane
następująco:





- warstwy ARM:LAYer2-
warstwy ARM:LAYer1- warstwy TRIGger
- do inicjalizacji procesu
skanowania kanałów.- do włączenia kolejnego kanału z podanej
listy;- do startu pomiaru w ustawionym kanale;


Rys.6. Model podsystemu TRIGger multimetru
2001 Keithley.
Odpowiednio programując system wyzwalania można zrealizować
sesję pomiarową wykonującą:

- n cykli pomiarowych w wybranych kanałach
pomiarowych;- w każdym cyklu uczestniczy k kanałów; - w wybranym
kanale pomiarowym wykonana jest każdorazowo seria i pomiarów.


Rozszerzone modele systemu wyzwalania.
Rozszerzonym systemem wyzwalania jest system, który
implementuje kilka warstw typu ARM oraz/lub kilka sekwencji wyzwalających
(rys.7).

rys.7. Rozszerzony model systemu wyzwalania.
Stosowanie takich modeli dotyczy bardziej specyficznych
przypadków synchronizowania akcji urządzenia. Większa liczba warstw typu ARM
dostarcza dodatkowe poziomy detekcji warunków synchronizacji akcji przyrządu
oraz daje większą liczbę zdarzeń danej sekwencji potrzebnych do synchronizacji
akcji wewnątrz lub na zewnątrz urządzenia.
Wielokrotne sekwencje wyzwalania mogą z kolei zapewnić
współbieżne wyzwalanie różnych akcji urządzenia, np. równoczesne pomiary różnych
wielkości sygnału. Sekwencje takie mogą być niezależne lub wzajemnie
synchronizowane przez generowane zdarzenia tych sekwencji. Użytkownik może sam
określić powiązania między poszczególnymi sekwencjami lub ich przeznaczenie jest
pre-definiowane w urządzeniu. Konfigurowanie powiązań polega na wyborze źródła
synchronizacji typu LINK (ARM:LAY<n>:SOUR  LINK lub
TRIG:SOUR  LINK) dla danej warstwy oraz podaniu nazwy zdarzenia, które
detektor warstwy ma wykryć . Np.:


ARM:SEQ2:LAY1:SOUR LINKARM:SEQ2:LAY1:LINK
"ARM:SEQ1:LAY3:DOWN"
Zdarzeniem oczekiwanym w warstwie ARM:LAY1 sekwencji drugiej
jest zdarzenie DOWN warstwy ARM:LAY3 z sekwencji pierwszej. Sekwencja druga
podejmuje dalsze działanie, gdy sekwencja pierwsza wyjdzie z warstwy
ARM:LAYer3.
Literarura.
[1] SCPI 1995 - Command Reference; vol.2, SCPI Consortium, 1995.





15 grudzień 1999
r.
opr. dr inż. Bogdan
Kasprzakrys. Lidia Stańczyk





Interfejsy systemów pomiarowych
Spis treści




Wyszukiwarka