Title: Komputeryzacja pomiarуw
1Komputeryzacja pomiarów
- Waldemar Tokarz
- tokarz_at_agh.edu.pl
- tel. 29-02
2Literatura
- LabView Manual www.ni.com.
- Jeffrey Travis, Jim Kring LabVIEW for Everyone
Graphical Programming Made Easy and Fun 2006. - Wieslaw Tlaczala Srodowisko LabView w
eksperymencie wspomaganym komputerowo WNT 2002.
3IEEE 488., GPIB (General Purpose Interface Bus)
1965r - HP-IB, 1MB/s. 1987 ANSI/IEEE 488.1.
1987 ANSI/IEEE 488.2 Standard Commands for
Programmable Instruments (SCPI ). 1993
Propozycja NI HS488, IEEE 488.3. (8 MB/s)
- Odwrotna logika TTL
- ?0.8V 1 logiczna
- ? 2V logiczne 0.
- 1MB/s.
- Maksymalna dlugosc kabli 20 M.
- Maksymalna dlugosc pomiedzy urzadzeniami 4m.
4(No Transcript)
5(No Transcript)
6(No Transcript)
7Handshake NRFD (not ready for data) Wskazuje
czy urzadzenie jest gotowe na przyjecie
danych. NDAC (not data accepted) Wskazuje czy
urzadzenie zaakceptowalo dane. DAV (data valid)
Wskazuje czy sygnal na przewodach danych sa
stabilne. Sygnalem tym steruje urzadzenie
przesylajace dane. Interface Management
Lines ATN (attention) - Kontroler ustawia 1 kiedy
uzywa linii danych do przeslania komendy, 0 do
przesylania danych. IFC (interface clear)
Kontroler ustawia 1 zeby zainicjowac magistrale.
REN (remote enable) Za pomoca tej linii
kontroler ustawia urzadzenia w modzie REMOTE lub
LOCAL. SRQ (service request) Kazde z urzadzen
moze zazadac od kontrolera ustawienia pracy w
modzie asynchronicznej. EOI (end or identify)
Talker uzywa jej do zaznaczenia konca przesylania
rozkazu. Kontroler uzywa tego sygnalu do
uzyskania odpowiedzi od urzadzenia na szynie
danych.
8 91 NRFD HIGH - Wszyscy odbiorcy gotowi do
czytania. 2 DAV LOW - Nadawca informuje, ze
dane sa gotowe. 3 NRFD LOW - ... odbiorcy
przelaczaja NRFD na stan 0. 4 NDAC HIGH -
Wszyscy odbiorcy informuja, ze przeczytali bajt
... 5 DAV HIGH - ... Nadawca ustawi ponownie na
1 DAV ... 6 NDAC LOW - ... Odbiorcy przelaczaja
na 0 NDAC. 1 NRFD HIGH - Wszyscy odbiorcy sa
gotowi do przyjecia kolejnego bajta.
10- ATN (ATtentioN) Sterowane przez kontroler
polecenie do wszystkich urzadzen aby w ciagu 200
ns byly gotowe na przyjecie komendy i adresu. - IFC (InterFace Clear) resetowanie HPIB. 100 ms
na odpowiedz od wszystkich urzadzen. - REN (Remote ENable) Jest uzywana przez kontroler
do ustawienia wszystkie odbierajace urzadzenia na
mod remote. - SRQ (Service ReQuest) Urzadzenie zada od
kontrolera dzialania. Kontroler odpytuje przez
magistrale które urzadzenie wyslalo rzadanie i
dlaczego. - EOI (End Or Identify) Kiedy ATN jest 0 EOI moze
byc uzywane przez nadawce do zaznaczenia konca
przesylania.
11Nalezy pamietac, ze kontroler ma swój adres
nadawcy i odbiorcy
Adres nadawcy 010 10101 64 21 Adres
odbiorcy 001 10101 32 21 010 11111
Untolk 001 11111 Unlisten
12(No Transcript)
13(No Transcript)
14(No Transcript)
15and easier to program.
Figure 13.3 Status register model in IEEE 488.2
16 gpibdemo.cpp console application using
Microsoft Visual C. Uses NI-488.2 direct
entry points to GPIB-32.dll driver from National
Instruments http//www.ni.com/gpib/win98_95cr.
htm For more info see files included in the
downloadable compat21.zip NI-488.2M Function
reference Manual for Win32 can be downloaded
from http//digital.ni.com/manuals.nsf/
Coded by Bengt.Lindgren_at_Fysik.uu.se Dec.2000/
include ltwindows.hgtinclude ltstdlib.hgtinclude
ltmath.hgtinclude ltstdio.hgtinclude
ltiostream.hgtinclude "decl-32.h" // type
declarations used in GPIB-32.DLL // NI-488.2
Function Prototypes used by this demo program
static void (__stdcall PSendIFC) (int
boardID)static void (__stdcall PEnableRemote)
(int boardID, Addr4882_t addrlist)static void
(__stdcall PSend) (int boardID,
Addr4882_t addr, PVOID databuf, LONG datacnt, int
eotMode)static void (__stdcall PReceive)
(int boardID, Addr4882_t addr, PVOID
buffer, LONG cnt, int Termination)static
HINSTANCE Gpib32Lib NULL // global handle to
DLLstatic int Pibsta
// global status variable static
int Piberr
// global error variablestatic long
Pibcntl //
global count variable
http//www.fysik.uu.se/kurser/fy660/compendium/GPI
B/default.htm
17void main(void) char buf80 LONG
buflenAddr4882_t addr27,17 // used GPIB
addressesfloat f,v // Call LoadLibrary to
load the 32-bit GPIB DLL. Gpib32Lib
LoadLibrary ("GPIB-32.DLL") if (!Gpib32Lib)
cout ltlt " The LoadLibrary call to
GPIB-32.DLL failed" ltlt endl
exit(1) // GPIB library is
loaded. Get pointers to the requested functions
and globals. Pibsta (int )
GetProcAddress(Gpib32Lib, (LPCSTR)"user_ibsta")
Piberr (int ) GetProcAddress(Gpib32Lib,
(LPCSTR)"user_iberr") Pibcntl (long
)GetProcAddress(Gpib32Lib, (LPCSTR)"user_ibcnt")
PSendIFC (void (__stdcall
)(int)) GetProcAddress(Gpib32Lib,
(LPCSTR)"SendIFC") PSend (void
(__stdcall )(int, Addr4882_t, PVOID, LONG,
int)) GetProcAddress(Gpib32Lib,
(LPCSTR)"Send") PReceive (void
(__stdcall )(int, Addr4882_t, PVOID, LONG,
int)) GetProcAddress(Gpib32Lib,
(LPCSTR)"Receive") PEnableRemote (void
(__stdcall )(int, Addr4882_t )) G
etProcAddress(Gpib32Lib, (LPCSTR)"EnableRemote")
18if(!Pibsta !Piberr !Pibcntl
!PSendIFC !PSend !PReceive
!PEnableRemote) cout ltlt "Unable to
access functions in GPIB-32.DLL" ltlt
endl FreeLibrary (Gpib32Lib) e
xit(1) / Ready to use
GPIB / (PSendIFC)(0) //
Initialize GPIB controller if ((Pibsta)
ERR) cout ltlt "SendIFC Error " ltlt Piberr ltlt
endl (PEnableRemote)(0, addr) // Set all
instruments in remote mode // Set frequency
on function generator (address 17) f1.23e3
buflensprintf(buf,"FRfHZ",f) //
HP3324// buflensprintf(buf,"FREQ f",f) //
PM5138 (PSend)(0, 17, buf, buflen, NLend)
// sends buflen characters in buf with \n
added and with EOI // Read Fluke 45 DMM
(address 7) (PSend)(0, 7, "val?", 4,
NLend) (PReceive)(0, 7, buf, 80,
STOPend) // Receive maximum 80
characters buf(Pibcntl)'\0' // Use the
null character to mark the end of the received
string cout ltlt buf ltlt endl vatof(buf)
cout ltlt v ltlt endl/
/ // Cleanup before
exit FreeLibrary (Gpib32Lib) //end
19(No Transcript)
20(No Transcript)
21FireWire IEEE 1394
22FireWire IEEE 1394
30 -8 V Do 60 W typowo 10 -20 W
Gdy jedna para transmituje dane (D 1V, D-
-1) druga pelni role zegara i zmienia swój stan w
przypadku nie zmieniania sie kolejnych bitów
pierwszej pary.
- Adresowanie 64 bitowe
- 10 bitów adres magistrali (1023-1(lokal))
- 6 bitów adres wezla (63)
- 48 bitów adres rejestrów i pamieci w wezle.
- 400 Mb/s na odleglosc 4.5m.
- 1394b 3.2 Gb/s na odl. 100m optycznie.
http//www.skipstone.com/compcon.html
23(No Transcript)
24(No Transcript)
25(No Transcript)
26Kolejka FIFO
27(No Transcript)
28Wpisywanie danych do rejestru Asynchronous/Isochr
onous Transmit Format ATF/ITF
- Rozmiar pamieci bufora musi byc ustalony przed
zapisem do niego danych! - Wpisanie pierwszego quadletu do 80h.
- Wpisz kolejne n-1 quadlety do 84h.
- Wpisz ostatni quadlet paczki do 8Ch. Teraz dane
sa gotowe do wyslania. - 80h (ATF_First) DATA1031
- 84h (AFF_Continue) DATA2031
-
-
- 84h (ATF_Continue) DATA(n-1)031
- 8Ch (ATF_ContinueUpdate) DATAn031
- Przeslanie danych bezposrednio do magistrali.
- A0h (ATF burst write) Data1031,,DATAn031
29Czytanie z bufora GRF paczki token
Bit 0- 6 rezerwa. Bit 7-10 Bit 11
informuje o tym, ze paczka jest kompletna. Bit
13-14 szybkosc transmisji 00 - 100 Mb/s 01 -
200 Mb/s 10 - 400 MB/s Bit 15-23 liczba
quadletów w buforze z wylaczeniem paczki
znacznikowej.
30Transmisja asynchroniczna z PC
Przeslanie pojedynczego quadletu
Rzadanie zapisania danych
spd okresla z jaka predkoscia ma byc wyslana
paczka (00 100 Mb/s, 01 200 Mb/s, 10 400
Mb/s). tLabel etykieta transakcji unikalna dla
kazdej transakcji. Kojarzenie paczki odpowiedzi z
paczka zadania. rt kod ponowienia paczki (00
nowa, 01 retry_X, 10 retryA, 11
retryB. tCode kod transakcji. priority
priorytet aktualnej paczki. destinationID 10
bitów to adres magistrali, 6 adres
wezla. destinationOffsetHigh, destinationOffsetLow
(mod 4 adres).
31Zadanie pobrania danych
spd okresla z jaka predkoscia ma byc wyslana
paczka (00 100 Mb/s, 01 200 Mb/s, 10 400
Mb/s). tLabel etykieta transakcji unikalna dla
kazdej transakcji. Kojarzenie paczki odpowiedzi z
paczka zadania. rt kod ponowienia paczki (00
nowa, 01 retry_X, 10 retryA, 11
retryB. tCode kod transakcji. priority
priorytet aktualnej paczki. destinationID 10
bitów to adres magistrali, 6 adres wezla.
32Przeslanie pakietu quadletów
33 Asynchroniczna czytaniez GRF
Zadanie przeslania jednego qbita.
34Zadanie zapisania n qb
35(No Transcript)
36(No Transcript)
37(No Transcript)
38Adresowanie wezlów sieci 04h
39Rejestr kontrolny 08h
Steruje podstawowymi operacjami kontrolera.
Mozliwe czytanie i zapisywanie. Wartosc startowa
0000_0000h
40(No Transcript)
41Przerwania i rejestr maski przerwan 0Ch i 10H
42(No Transcript)
43(No Transcript)
44Rejestr licznika 14h
45Rejestr izochronicznego portu odbiorczego 18h
46Rejestr kontrolny FIFO 1Ch
47Rejestr diagnostyczny 20h
48Rejestr stanu transmisji asynchronicznej (ATF) 30h
49(No Transcript)
50Rejestr stanu ITF 34h
51Rejestr stanu GRF 3Ch
52(No Transcript)
53(No Transcript)
54Fizyczne polaczenie do magistrali
55(No Transcript)
56SYSCLK 49,152 MHz CTL0-CTL1 dwukierunkowa
kontrola przeplywu informacji. D0-D7 kanal
przeplywu informacji kontrolne, o stanie
urzadzeni i dane.
57(No Transcript)
58Fig. 4. Bus reset timeline.
59(No Transcript)
60http//www.chumpchange.com/parkplace/Video/DVPaper
s/FireWire.htm
61(No Transcript)
62Universal Serial Bus
63USB Literatrura
- http//www.usb.org/
- http//www.semiconductors.philips.com/
- http//www.usbdeveloper.com/
- Don Anderson Architecture
- (USB 2.0) ADDISON-WESLEY DEVELOPERS PRESS,
2001.
64Universal Serial Bus (USB)
Do 127 urzadzen.
Predkosci transferu Low speed 1,5 Mb/s Full
speed 12 Mb/s High speed 480 Mb/s USB 3.0 -
4.8 Gb/s
5 V
0.5 W, max 2.5 W USB 2.0 1.1 4.5 W, max 7.5 W
USB 3.0
65UTP kompatybilne z USB 2.0
SPD (Super speed)
Zasilanie 4.5 W
SDP (Super speed)
Ground
66Do 5 Gb/s
67Mostek pólnocny
AGP
CPU
Pamiec
Szyna PCI
Kontroler USB
SCSI
LAN
Mostek poludniowy
68(No Transcript)
69(No Transcript)
70(No Transcript)
71(No Transcript)
72(No Transcript)
73High bandwidth -10 do 10 mV logiczne 0 360 do 460
mV logiczne 1
Low full-bandwidth 0 do 0.3 V logiczne 0 2.8 do
3.6 V logiczne 1
74Transakcje
- Deskryptor transakcji
- Adres urzadzenia USB.
- Rodzaj operacji (czytanie, wpisywanie).
- Rozmiar danych.
- Predkosc transferu.
- Miejsce w buforze pamieci.
- Rodzaje transferu
- Synchroniczny.
- Pakietowy.
- Przerwania.
- Sterujacy.
- Specjalne.
75(No Transcript)
76W jednej ramce 12 MHz 1 ms 1 200 taktów
77W jednej ramce 480 MHz 125 µs 60 000 taktów
78(No Transcript)
79Identyfikacja urzadzenia
- Standardowe Identyfikator producenta, klasa
urzadzenia, sposób zarzadzania moca.
80- Opis urzadzenia opis domyslnego kanalu
komunikacji do konfiguracji urzadzenia, ogólne
dane o urzadzeniu, ilosc mozliwych konfiguracji w
jakich moze pracowac dane urzadzenie - Opis konfiguracji-szczególy dotyczace pracy
urzadzenia w róznych konfiguracjach - Opis interfejsu- urzadzenie moze miec kilka
funkcji np. CD dane, muzyka, film. - Opis punktu koncowego rodzaj transmisji
(synchroniczne, asynchroniczne, maksymalna
predkosc itp.) - Opis interfejsu w formie tekstu
81(No Transcript)
82(No Transcript)
83- Sposób komunikacji w przypadku podlaczenia do
galezi o innej predkosci
84 85(No Transcript)
86 87(No Transcript)
88(No Transcript)
89Klasa urzadzenia
90Protokoly komunikacji USB
- Bity synchronizacji (SYNC) 8 dla low/full speed
(3KJ i 2K) i 32 dla High speed (15KJ i 2J
- Identyfikacja paczki danych (PID)
- Dodatkowe adresy punktu wezlowego.
91(No Transcript)
92(No Transcript)
93- Pole danych
- Synchroniczne do 1023 bitów dla low/full speed i
1024 dla high speed. - Asynchroniczne do 64 low/full speed i 512 dla
high speed.
- Cyclic Redundancy Checks.
- - Token Packet G(X) X5 X2 .. 1
- - Paczka z Danymi G(X) X16 X15 .. X2 1
94Paczki sterujace.
Poczatek ramki Start-of-Frame Packets, co 1ms ful
speed i 125 ms high-speed.
95Handshake Packets ACK NAK STALL NYET ERR
96(No Transcript)
97(No Transcript)
98(No Transcript)
99(No Transcript)
100Frame podstawa 1 ms. (Low/Full
speed). Microframe podstawa 125 ms
(High-speed).
101(No Transcript)
102(No Transcript)
103(No Transcript)
104(No Transcript)
105(No Transcript)
106(No Transcript)
107(No Transcript)
108(No Transcript)
109(No Transcript)
110(No Transcript)
111(No Transcript)
112- Bity przesylane sa w kolejnosci od najmniejszego
do najwiekszego. - Na poczatku paczki przesylany jest sygnal
synchronizacji SYNC 8 b dla Full/Low i 32 b dla
High. Dwa ostatnie bity tego sygnalu przeznaczone
sa na zaznaczenie poczatku PID.