komputeryzacja pomiar w l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Komputeryzacja pomiarów PowerPoint Presentation
Download Presentation
Komputeryzacja pomiarów

Loading in 2 Seconds...

play fullscreen
1 / 112

Komputeryzacja pomiarów - PowerPoint PPT Presentation


  • 155 Views
  • Uploaded on

Komputeryzacja pomiarów. Waldemar Tokarz tokarz@agh.edu.pl tel. 29-02. Literatura. LabView Manual www.ni.com . Jeffrey Travis, Jim Kring „LabVIEW for Everyone: Graphical Programming Made Easy and Fun” 2006.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Komputeryzacja pomiarów' - artie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
komputeryzacja pomiar w

Komputeryzacja pomiarów

Waldemar Tokarz

tokarz@agh.edu.pl

tel. 29-02

literatura
Literatura
  • LabView Manual www.ni.com.
  • Jeffrey Travis, Jim Kring „LabVIEW for Everyone: Graphical Programming Made Easy and Fun” 2006.
  • Wiesław Tłaczała „Środowisko LabView w eksperymencie wspomaganym komputerowo” WNT 2002”.
slide3

IEEE 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 długość kabli 20 M.
  • Maksymalna długość pomiędzy urządzeniami 4m.
slide7

Handshake

NRFD (not ready for data) – Wskazuje czy urządzenie jest gotowe na przyjęcie danych.

NDAC (not data accepted) – Wskazuje czy urządzenie zaakceptowało dane.

DAV (data valid) – Wskazuje czy sygnał na przewodach danych są stabilne. Sygnałem tym steruje urządzenie przesyłające dane.

Interface Management Lines

ATN (attention) - Kontroler ustawia 1 kiedy używa linii danych do przesłania komendy, 0 do przesyłania danych.

IFC (interface clear) – Kontroler ustawia 1 żeby zainicjować magistralę.

REN (remote enable) – Za pomocą tej linii kontroler ustawia urządzenia w modzie REMOTE lub LOCAL.

SRQ (service request) – Każde z urządzeń może zażądać od kontrolera ustawienia pracy w modzie asynchronicznej.

EOI (end or identify) – Talker używa jej do zaznaczenia końca przesyłania rozkazu. Kontroler używa tego sygnału do uzyskania odpowiedzi od urządzenia na szynie danych.

slide8

DIO1

DIO2

DIO3

DIO4

EOI

DAV

NRFD

NDAC

IFC

SRQ

ATN

SHIELD

DIO5

DIO6

DIO7

DIO8

REN

GND DAV

GND NRFD

GND NDAC

GND IFC

GNDSRQ

GND ATN

SIGNAL GND

slide9

Bajt

DAV

NRFD

NDAC

1

2

3

4

5

6

1

2

3

1: NRFD HIGH -Wszyscy odbiorcy gotowi do czytania.

2: DAV LOW - Nadawca informuje, że dane są gotowe.

3: NRFD LOW - ... odbiorcy przełączają NRFD na stan 0.

4: NDAC HIGH - Wszyscy odbiorcy informują, że przeczytali bajt ...

5: DAV HIGH - ... Nadawca ustawi ponownie na 1 DAV ...

6: NDAC LOW - ... Odbiorcy przełączają na 0 NDAC.

1: NRFD HIGH - Wszyscy odbiorcy są gotowi do przyjęcia kolejnego bajta.

slide10

ATN (ATtentioN): Sterowane przez kontroler polecenie do wszystkich urządzeń aby w ciągu 200 ns były gotowe na przyjęcie komendy i adresu.

  • IFC (InterFace Clear): resetowanie HPIB. 100 ms na odpowiedź od wszystkich urządzeń.
  • REN (Remote ENable): Jest używana przez kontroler do ustawienia wszystkie odbierające urządzenia na mod remote.
  • SRQ (Service ReQuest): Urządzenie żąda od kontrolera działania. Kontroler odpytuje przez magistrale które urządzenie wysłało rządanie i dlaczego.
  • EOI (End Or Identify): Kiedy ATN jest 0 EOI może być używane przez nadawcę do zaznaczenia końca przesyłania.
slide11

1 2 4 8 16

1

0

A1 A2 A3 A4 A5

Należy pamiętać, że 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

slide15

and easier to program.

Figure 13.3: Status register model in IEEE 488.2

slide16

* 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@Fysik.uu.se  Dec.2000*/#include <windows.h>#include <stdlib.h>#include <math.h>#include <stdio.h>#include <iostream.h>#include "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/GPIB/default.htm

slide17

void main(void) {char buf[80];      LONG buflen;Addr4882_t addr[2]={7,17};  // used GPIB addressesfloat f,v;   //  Call LoadLibrary to load the 32-bit GPIB DLL.   Gpib32Lib = LoadLibrary ("GPIB-32.DLL");   if (!Gpib32Lib) {         cout << " The LoadLibrary call to GPIB-32.DLL failed" << 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 *))               GetProcAddress(Gpib32Lib, (LPCSTR)"EnableRemote");

slide18

if(!Pibsta   || !Piberr || !Pibcntl    ||        !PSendIFC || !PSend  || !PReceive || !PEnableRemote) {         cout << "Unable to access functions in GPIB-32.DLL" << endl;         FreeLibrary (Gpib32Lib);         exit(1);         }/*************** Ready to use GPIB *********************/   (*PSendIFC)(0);  // Initialize GPIB controller   if ((*Pibsta) & ERR) cout << "SendIFC Error " << *Piberr << endl;   (*PEnableRemote)(0, addr);  // Set all instruments in remote mode   // Set frequency on function generator (address 17)   f=1.23e3;   buflen=sprintf(buf,"FR%fHZ",f);   // HP3324// buflen=sprintf(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 << buf << endl;   v=atof(buf);   cout << v << endl;/*******************************************************/   // Cleanup before exit   FreeLibrary (Gpib32Lib);} //end

firewire ieee 1394
FireWire IEEE 1394

30 -8 V

Do 60 W typowo 10 -20 W

Gdy jedna para transmituje dane (D+ = 1V, D- = -1)

druga pełni rolę zegara i zmienia swój stan w przypadku nie zmieniania się kolejnych bitów pierwszej pary.

  • Adresowanie 64 bitowe
  • 10 bitów – adres magistrali (1023-1(lokal))
  • 6 bitów – adres węzła (63)
  • 48 bitów – adres rejestrów i pamięci w węźle.
  • 400 Mb/s na odległość 4.5m.
  • 1394b 3.2 Gb/s na odl. 100m optycznie.

http://www.skipstone.com/compcon.html

wpisywanie danych do rejestru asynchronous isochronous transmit format atf itf
Wpisywanie danych do rejestru Asynchronous/Isochronous Transmit Format ATF/ITF
  • Rozmiar pamięci bufora musi być 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 są gotowe do wysłania.
  • 80h (ATF_First) DATA1[0:31]
  • 84h (AFF_Continue) DATA2[0:31]
  • * *
  • * *
  • 84h (ATF_Continue) DATA(n-1)[0:31]
  • 8Ch (ATF_Continue&Update) DATAn[0:31]
  • Przesłanie danych bezpośrednio do magistrali.
  • A0h (ATF burst write) Data1[0:31],…,DATAn[0:31]
czytanie z bufora grf paczki token
Czytanie z bufora GRF paczki „token”

Bit 0- 6 – rezerwa.

Bit 7-10 –

Bit 11 – informuje o tym, że paczka jest kompletna.

Bit 13-14 – szybkość transmisji

00 - 100 Mb/s

01 - 200 Mb/s

10 - 400 MB/s

Bit 15-23 – liczba quadletów w buforze z wyłączeniem paczki znacznikowej.

transmisja asynchroniczna z pc
Transmisja asynchroniczna z PC

Przesłanie pojedynczego quadletu

Rządanie zapisania danych

spd – określa z jaką prędkością ma być wysłana paczka (00 – 100 Mb/s, 01 – 200 Mb/s, 10 – 400 Mb/s).

tLabel – etykieta transakcji unikalna dla każdej transakcji. Kojarzenie paczki odpowiedzi z paczką żądania.

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 węzła.

destinationOffsetHigh, destinationOffsetLow (mod 4 adres).

slide31

Żądanie pobrania danych

spd – określa z jaką prędkością ma być wysłana paczka (00 – 100 Mb/s, 01 – 200 Mb/s, 10 – 400 Mb/s).

tLabel – etykieta transakcji unikalna dla każdej transakcji. Kojarzenie paczki odpowiedzi z paczką żądania.

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 węzła.

asynchroniczna czytanie z grf
Asynchroniczna czytaniez GRF

Żądanie przesłania jednego qbita.

rejestr kontrolny 08h
Rejestr kontrolny 08h

Steruje podstawowymi operacjami kontrolera. Możliwe czytanie i zapisywanie. Wartość startowa 0000_0000h

slide56

SYSCLK – 49,152 MHz

CTL0-CTL1 – dwukierunkowa kontrola przepływu informacji.

D0-D7 – kanał przepływu informacji kontrolne, o stanie urządzeni i dane.

slide60

http://www.chumpchange.com/parkplace/Video/DVPapers/FireWire.htmhttp://www.chumpchange.com/parkplace/Video/DVPapers/FireWire.htm

usb literatrura
USB Literatrura
  • http://www.usb.org/
  • http://www.semiconductors.philips.com/
  • http://www.usbdeveloper.com/
  • Don Anderson „Architecture

(USB 2.0)” ADDISON-WESLEY DEVELOPER’S PRESS, 2001.

universal serial bus usb
Universal Serial Bus (USB)
  • Do 127 urządzeń.

Prędkości 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

slide65

UTP kompatybilne z USB 2.0

SPD (Super speed)

Zasilanie

4.5 W

SDP (Super speed)

Ground

slide67

Mostek północny

AGP

CPU

Pamięć

Szyna PCI

Kontroler

USB

SCSI

LAN

Mostek południowy

slide73

High 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

transakcje
Transakcje
  • Deskryptor transakcji
  • Adres urządzenia USB.
  • Rodzaj operacji (czytanie, wpisywanie).
  • Rozmiar danych.
  • Prędkość transferu.
  • Miejsce w buforze pamięci.
  • Rodzaje transferu
  • Synchroniczny.
  • Pakietowy.
  • Przerwania.
  • Sterujący.
  • Specjalne.
identyfikacja urz dzenia
Identyfikacja urządzenia
  • Standardowe: Identyfikator producenta, klasa urządzenia, sposób zarządzania mocą.
slide80

Opis urządzenia – opis domyślnego kanału komunikacji do konfiguracji urządzenia, ogólne dane o urządzeniu, ilość możliwych konfiguracji w jakich może pracować dane urządzenie

  • Opis konfiguracji-szczegóły dotyczące pracy urządzenia w różnych konfiguracjach
  • Opis interfejsu- urządzenie może mieć kilka funkcji np. CD: dane, muzyka, film.
  • Opis punktu końcowego: rodzaj transmisji (synchroniczne, asynchroniczne, maksymalna prędkość itp.)
  • Opis interfejsu w formie tekstu
protoko y komunikacji usb
Protokoły 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)
  • Pole adresu
  • Dodatkowe adresy punktu węzłowego.
slide93

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
slide94

Paczki sterujące.

Początek ramki Start-of-Frame Packets, co 1ms ful speed i 125 ms high-speed.

slide95

Handshake Packets

ACK

NAK

STALL

NYET

ERR

slide100

Frame – podstawa 1 ms. (Low/Full speed).

Microframe – podstawa 125 ms (High-speed).

slide112

Bity przesyłane są w kolejności od najmniejszego do największego.

  • Na początku paczki przesyłany jest sygnał synchronizacji SYNC 8 b dla Full/Low i 32 b dla High. Dwa ostatnie bity tego sygnału przeznaczone są na zaznaczenie początku PID.