background image

Wyższa Szkoła Gospodarki w Bydgoszczy

PRACOWNIA METROLOGII

ĆWICZENIE 8:

Komunikacja przyrządów wirtualnych z blokiem 

sprzętowym

Cel ćwiczenia:

Zapoznanie się ze sposobem komunikowania się przyrządu wirtualnego ze sprzętem.

Wykorzystywany sprzęt:

Multimetr METEX M3850D z termoparą, płytka prototypowa S.C. – 2075, USB 6008, 

elementy elektroniczne.

Wprowadzenie

Jedną z najczęściej spotykanych w elektronice sposobów komunikacji między komputerem 

a urządzeniem jest przesyłanie danych łączem szeregowym RS 232.

Opis standardu RS 232

Standard RS – 232C (Recommended Standard) został ustanowiony w 1969 r. przez Electronic

Industries Association. Definiuje on sposób nawiązania i przeprowadzenia łączności między 

dwoma urządzeniami tzw. DTE (  Data Terminal Equipment) za pośrednictwem modemów 

tzw. DCE (Data Communication  Equipment) lub bez nich. Jest to obecnie standard łącza 

szeregowego do połączenia komputera PC z urządzeniami zewnętrznymi.

Połączenia między urządzeniami (DTE – DCE lub DTE – DTE) dokonuje się za pomocą 

złączy 25 – stykowych lub 9 – stykowych.

Przygotował Grzegorz Śmigielski

1

background image

Najważniejsze linie magistrali RS– 232C podane są w tabeli poniżej

Nazwa

Sygnał

Opis

9-pin 25-pin

Kierunek  z

Data Carrier Detect

DCD

Gotowość łącza

1

8

DCE

Receive Data

RD

Dane odbierane

2

3

DCE

Transmit Data

TD

Dane wysyłane

3

2

DTE

Data Terminal 

Ready

DTR

Terminal gotowy do 

transmisji danych

4

20

DTE

Signal Ground

SG

Masa sygnałowa

5

7

-

Data Set Ready

DSR

Dane gotowe do 

transmisji

6

6

DCE

Request to Send

RTS

DTE gotowy do 

wysłania danych

7

4

DTE

Clear to Send

CTS

DCE gotowy do 

przyjęcia danych

8

5

DCE

Ring Indicator

RI

Sygnał dzwonienia

9

22

DCE

Frame Ground

FG

Masa obudowy

-

1

-

Opis linii

Linie Danych

TxD – dane nadawane.

RxD – dane odbierane

Linie sterujące

RTS – żądanie nadawania danych zgłaszane przez terminal DTE

CTS – gotowość do nadawania zgłaszana przez modem DCE (przesyła potwierdzenie 

odebrania sygnału RTS)

DSR – gotowość modemu DCE do dalszej współpracy z DTE (aktywny przez cały czas 

trwania połączenia)

DTR – gotowość DTE do dalszej współpracy z DCE (aktywny przez cały czas trwania

połączenia)

DCD – sygnał wykrycia przez modem fali nośnej (oznacza, że łączy się on z innym 

modemem)

Linie masy:

SG – masa sygnałowa

Przygotował Grzegorz Śmigielski

2

background image

PG – masa ochronna połączona z obudową urządzenia

Istnieje wiele sposobów wykorzystania różnych podzbiorów tych linii. W najprostszym

przypadku wykorzystuje się tylko 3 linie:

TxD – dane nadawane

RxD – dane odbierane

SG – masa sygnałowa

Proste połączenie dwóch urządzeń pracujących w standardzie RS-232 nie gwarantuje sukcesu. 

Bierze   się   to   stąd,   że   urządzenia   mogą   mieć   różne   wymagania   co   do  handshakingu 

(synchronizacji   transmisji).   Poza   tym   przy   łączeniu   urządzeń   tego   samego   typu   należy 

krzyżować przewody.

Jeżeli łączymy urządzenie typy DTE (komputer) z urządzeniem z DCE (modem) to styki 

łączymy wprost. Jeżeli komputer do komputera to używamy tzw. konfiguracji null modem

Na przykład dla wtyków 9-cio pinowych:

Łączenie urządzenia DTE z DCE

Synchronizacja transmisji

Linie DTR, DSR, RTS, CTS i DCD umożliwiają synchronizację transmisji tak, dane były 

wysyłane zawsze wtedy, gdy urządzenie po drugiej stronie połączenia jest gotowe do ich 

odbioru. Prosty przykład transmisji jednokierunkowej (simplex) może wyglądać następująco:

1. Aby transmisja była możliwa oba urządzenia muszą ustawić linie gotowości na „1”. 

Gotowość komputera (DTR) i modemu (DSR) musi być utrzymywana na „1” przez 

całą transmisję.

2. Komputer ustawia RTS (żądanie nadawania) na „1”

3. W odpowiedzi na RTS modem ustawia linię CTS (gotowość do nadawania) na „1”

4. Widząc to komputer rozpoczyna nadawanie

Przygotował Grzegorz Śmigielski

3

background image

symbol

stan linii

uwagi

DTR

komputer gotowy

DSR

modem gotowy

RTS

żądanie nadawania

CTS

gotowość do nadawania

TxD

transmisja danych do 

modemu

Transmisja liniami danych

Przesyłanie informacji następuje w sposób szeregowy bit po bicie. Stany logiczne 0 i 1

kodowane są stanami napięć (lub wartościami prądu). Najczęściej przesyłane są znaki danych

zapisane w kodzie ASCII. Każdy znak danych zawiera od 5 do 8 bitów i poprzedzony jest 

bitem START, a zakończony bitem kontroli parzystości (Pa) i 1 do 2 bitami STOP. Bity 

danych wraz z bitem kontrolnym i bitami synchronizacji (start, stop) tworzą tzw. jednostkę 

informacyjną SDU (Serial Data Unit).

Bit START uruchamia zegar zapewniający właściwą synchronizacje odczytu. Częstość pracy 

tego zegara (=1/tB) określa szybkość transmisji. Typowe prędkości transmisji wynoszą: 300, 

600, 1200, 2400, 4800, 9600, 19 200 b/s (bitów/sekundę).  

Ramka danych

Ze   względu   na   duże   prędkości   transmisji   i   związane   z   tym   zniekształcenia   sygnału, 

przetwarzanie szeregowego strumienia danych napływających do odbiornika musi odbywać 

się w sposób bardziej skomplikowany.

Odbiornik   pracuje   z   częstotliwością   16-krotnie   większą,   niż   wynikałoby   to   z   ustalonej 

szybkości   łącza,   a   każdy   bit   jest   próbkowany   16   razy.   Wynik   pobrania   16   próbek   jest 

Przygotował Grzegorz Śmigielski

4

background image

uśredniany i na podstawie tej operacji badanemu wycinkowi czasu jest przyporządkowany 

odpowiedni sygnał logiczny.

Bity danych są przesyłane w kolejności od najmniej znaczącego D0 (LSB), do najbardziej 

znaczącego (MSB).

Bit   kontroli   parzystości   jest   elementarnym   i   mało   efektywnym   sposobem   zabezpieczenia 

danych przed przekłamaniami. Może on oznaczać parzystą, nieparzystą liczbę ustawionych 

bitów w polu danych, może być ustawiony na stałe, na stałe wyzerowany lub pominięty.

W przykładzie powyżej zastosowano następujące parametry transmisji:

8 bitów danych

bit parzystości

2 bity stopu

i nadano liczbę: 01101001

b

 = 69

h

 = 105 

dec

 = „i”. Liczba zawiera parzystą ilość jedynek 

i dlatego bit parzystości Pa = 0. 

Do sterowania przebiegiem transmisji stosuje się często protokół transmisji  XON – XOFF

Wykorzystuje on dwa znaki (XON =11hex   i XOFF = 13hex) sterujące z zestawu ASCII 

przekazywane linią danych TxD – RxD. Odbiornik danych sygnalizuje za pomocą znaku 

XON gotowość przyjęcia dalszych znaków natomiast pojawienie się znaku XOFF wstrzymuje 

transmisją danych. 

 

Parametry elektryczne sygnałów

Napięcia na liniach danych:

od -15V do -3V : 1 logiczna

od   3V do 15 V:  0 logiczne

 

Napięcia na liniach sterujących:

od -15V do -3V : 0 logiczne

od   3V do 15 V:  1 logiczna

 

Czas przejścia przez obszar przejściowy < 3% czasu trwania bitu. Szybkość zmian sygnałów 

w liniach  > 30 V/

µ

s. 

Przygotował Grzegorz Śmigielski

5

background image

Tryby pracy łącza szeregowego:

Simpleksowy

Łącze skonfigurowane jest na stałe na jeden z możliwych kierunków transmisji: DTE> DCE 

lub DCE > DTE

Półdupleksowy

Zarówno DCE jak i DTE mogą być stroną nadającą oraz odbierającą, jednak do dyspozycji 

jest   tylko   jeden   logiczny   kanał   danych,   który   można   naprzemiennie   wykorzystywać   w 

obydwu   kierunkach.   Wyjścia   TxD   każdego     z   urządzeń   połączone   są   z   wejściami   RxD 

partnera.   Wybór   kierunku   transmisji   dokonywany   jest   za   pomocą   sygnałów   RTS-CTS,   a 

prawo tego wyboru przysługuje w jednakowym stopniu obydwu stronom.

Dupleksowy

Dane mogą być przekazywane pomiędzy DTE i DCE jednocześnie w obydwu kierunkach. 

Nie   jest   wymagane   uzyskiwanie   przez   żadną   ze   stron   zezwolenia   na   nadawanie.   Kanał 

logiczny połączenia otwarty jest stale w obie strony, a sygnały RTS/CTS nie mają znaczenia; 

są one albo nie podłączone albo stale aktywne. Stale aktywna jest też linia DSR, chyba że 

sygnalizuje ona nawiązywanie połączenia z innym modemem. Sygnał DCD aktywowany jest 

w naturalny sposób jako odpowiedź na wykrycie fali nośnej, a linią DTR można sterować 

włączaniem i wyłączaniem modemu.

USB

1

Interfejs USB (ang. Universal Serial Bus), jako USB 1.0 pojawił się w styczniu 1996 roku, 

było to wynikiem współpracy takich firm jak: Intel, Compaq, Lucent, Hewlett-Packard, itd. 

Jednak posiadał wiele wad, które w większości zostały usunięte w wersji USB 1.1, która 

pojawiła się we wrześniu 1998 roku. Przełomowym rozwiązaniem było wprowadzone w 2000 

roku interfejsu USB 2.0. W obecnych komputerach możemy spotkać 2-6 portów USB 1.1 i 2 

porty   USB2.0

2

  Rozwiązanie   to     umożliwienia   szybkiego   przyłączania   urządzeń 

peryferyjnych bez konieczności restartowania komputera. Po zainstalowaniu interfejsu, co jest 

możliwe już od Windows OSR2,  istnieje możliwość dołączenia do magistrali 127 urządzeń, 

stosując drzewiasty sposób połączenia. Urządzenia pośredniczące muszą być wyposażone w 

koncentrator   USB,   posiadające   kilka   wyjść   umożliwiających   przyłączenie   kolejnego 

urządzenia   USB.   Asortyment   urządzeń   jest   bardzo   bogaty,   obok   typowych   urządzeń 

peryferyjnych   można   do   USB   podłączyć   aparat   cyfrowy,   kamerę   internetową,   kartę   TV, 

1

Opracował dr inż. Wiesław Urbaniak

2

 strona Universal Serial Bus - www.usb.org

Przygotował Grzegorz Śmigielski

6

background image

adapter IrDa, itp.  Można też w bardzo szybki sposób zbudować sieć komputerową w oparciu 

o to złącze. Każda magistrala szeregowa USB musi być wyposażona w kontroler USB (ang. 

Host Controller). Kontroler taki może stanowić osobną kartę rozszerzeń, jednak większość 

współczesnych   płyt   głównych   posiada   taki   kontroler   wbudowany   w   układ   sterujący   tzw. 

chipset. Działanie magistrali oparte jest o oprogramowanie składające się z:

sterownika USB - którego zadaniem jest zorganizowanie transmisji w oparciu o 

wymagania sprzętowe urządzeń podłączonych do magistrali;

sterowników urządzeń USB – odpowiadają one za komunikacje z urządzeniami USB;

sterownika głównego kontrolera USB – decyduje on o kolejności obsługiwanych 

urządzeń i nadzoruje transmisje między nimi.

Transmisja realizowana może być w następujących trybach:

przerwaniowy (ang. Interrupt Transfee) – obsługuje urządzenia sterowane 

przerwaniami;

blokowy (ang. Bulk Transfer) – obsługuje transmisje informacji w postaci bloków;

izosynchroniczny (ang. Isosynchronous Transfer) – obsługuje transmisje w czasie 

rzeczywistym.

Przesyłanie danych odbywa się poprzez parę przewodów D

+

 (zielony) i D

-

 (biały). W stanie 

spoczynku w przewodach tych panuje napięcie odpowiednio 3 i 0V, tabela poniżej. 

Pin

Kolor

Funkcja

Napięcie

1

Czerwony

V

Bus

+ 5 V

2

Biały

D

-

0 V

3

Zielony

D

+

+ 3 V 

4

Czarny

masa

0 V

Parametry łącza USB

Dołączanie i  odłączanie urządzeń USB jest możliwe podczas pracy komputera dzięki 

automatycznemu rozpoznawaniu i adresowaniu. Sterowniki urządzeń uruchamiane są 

automatycznie z chwilą ich włączenia bez udziału użytkownika.

Przygotował Grzegorz Śmigielski

7

background image

Zadania do wykonania:

I. Program komunikujący się z multimetrem cyfrowym poprzez port RS-232.

Multimetr   METEX   jak   sama   nazwa   wskazuje   przystosowany   jest   do   standardowych 

pomiarów napięć, prądów, rezystancji, częstotliwości, pojemności itd. Pomiary wykonywane 

są z dużą dokładnością. Multimetr umożliwia przesyłanie wyników pomiarów do komputera 

przez port szeregowy RS232C.

 Parametry komunikacji: 

prędkość danych: 1200 bit/s 

kontrola parzystości: brak 

ilość bitów danych: 7 

ilość bitów stopu: 2 

brak kontroli przepływu

Dane przesyłane z miernika, a także rozkazy wydawane przez komputer są w postaci kodów 

ASCII. Instrukcją rozkazującą miernikowi rozpocząć nadawanie jest  D.  Po otrzymaniu tej 

instrukcji miernik wysyła do komputera pojedynczy wynik w postaci 14 bajtowej paczki. 

W paczce   tej   dane   przesyłane   są   w   takim   formacie   w   jakim   wyświetlane   są   na 

ciekłokrystalicznym wyświetlaczu miernika, a więc (przykładowe dane): 

bajt  1  2  3  4  5  6  7  8  9 10 11 12 13 14
znak D C - 1 . 0 0 1 1   V     CR

Co oznacza napięcie stałe DC, wartość 1,0011 V, CR jest znakiem końca transmisji (tzw. 

powrotem karetki).

Celem   ćwiczenia   jest   nauka   pisania   programu   komunikującego   się   z   zewnętrznym 

urządzeniem poprzez port RS 232C. 

Do obsługi interfejsów (nie tylko RS232C) w LabView służą komponenty VISA dostępne 

z palety Instrument I/O.   Dla interfejsu RS232C są one zgrupowane dodatkowo w palecie 

Serial. 

Przygotował Grzegorz Śmigielski

8

background image

Do zbudowania programu umożliwiającego prostą obsługę portu wykorzystuję się  ikonki:

Configure Port  – służy do inicjalizacji komunikacji z portem szeregowym. Konieczne jest 

podanie   nazwy   urządzeń  Visa   Resource   Name  i   określenie   parametrów   transmisji.

Write – wysłanie danych w postaci łańcucha znaków na port szeregowy

Read – odczyt danych z portu szeregowego, liczba odczytanych znaków jest ustalana: byte 

count

Close – zamknięcie portu szeregowego

Przygotował Grzegorz Śmigielski

9

background image

Zadanie a

Program obsługujący miernik przedstawiono na rysunku:

1. W pierwszym kroku ustawiane są parametry transmisji. 

2. Transmisja   odbywa   się   przy   wyzerowanym   sygnale   RTS   (żądania   nadawania), 

wyzerowanie   odbywa   się   przy   pomocy   procedury  serial_line_ctrl.vi  dostępnej 

w bibliotece  _sersup.llb  (po   kliknięciu   prawym   przyciskiem   myszy   na   diagramie 

wybieramy Select A VI…i znajdujemy procedurę  zgodnie z podaną ścieżką dostępu 

C:\Program Files\National Instruments\LabView\vi.lib\Inst\sersup.llb). Po kliknięciu 

prawego przycisku myszy na wejściu function tej procedury udostępnia się ikonę stałej 

umożliwiającej wybór żądanej opcji. W odróżnieniu od komponentów VISA nie ma 

możliwości wybrania nazwy interfejsu, konieczne jest określenie numeru portu COM 

odpowiednio COM1 = 0, COM2 = 1 itd.

3. Następnie na port wysyłany jest rozkaz odczytu „D”

4. Kolejna instrukcja to odczyt z portu danych, należy pamiętać o ustawieniu wartości 14 

bajtów oraz utworzeniu na wyjściu  read buffer  wskaźnika, który będzie wyświetlał 

informację odczytaną z portu.

5. Wyjścia błędów z poszczególnych ikon error out należy połączyć do wejść błędów 

error in zgodnie ze schematem na rysunku.

6. Ostatnia ikona reprezentuje zamknięcie portu i na jej wyjściu należy umieścić 

wskaźnik błędu.

Przygotował Grzegorz Śmigielski

10

background image

7. W pętli umieścić Time Delay Functions->Timing->Time Delay i ustawić wartość 

opóźnienia na 2 sekundy.

Przetestować działanie programu wykonując pomiary rezystancji, napięcia i pojemności. 

Sprawdzić działanie programu dla różnych wartości opóźnienia Time Delay.  Dla jakiej 

wartości opóźnienia transmisja nie zachodzi poprawnie?

Zadanie b

Zrealizować   program,   który   będzie   umożliwiał   prostą   komunikację   między   dwoma 

komputerami   przy   pomocy   łącza   szeregowego   –   wysyłanie   i   odczyt   znaków.   Do 

odczytywania ilości danych w buforze  odbiorczym wykorzystać funkcję  Bytes At Serial 

Port. 

Najpierw   sprawdzić   poprawność   komunikacji   przy   pomocy   programu  Hyper   Terminal 

(Programy->Akcesoria->Komunikacja).   O   ile   jest   to   wymagane   wpisać   dowolne   numery 

kierunkowe (np. 0). Pozostałe ustawienia programu jak poniżej.

Poeksperymentować z różnymi ustawieniami prędkości transmisji, liczby bitów stopu itd. 

takimi   samymi   na   obydwu   komputerach.   Sprawdzić   poprawność   komunikacji   między 

komputerami dla różniących się ustawień.

Przygotował Grzegorz Śmigielski

11

background image

II. Program komunikujący się z zewnętrznym urządzeniem poprzez port USB.

Do   komunikacji   poprzez   port   USB   przewidziany   jest   specjalny   moduł   NI   USB   6008, 

zawierający kontroler USB,   2 wyjścia analogowe, 8 wejść analogowych, 12 wejść/wyjść 

cyfrowych.

Parametr
Maksymalna szybkość próbkowania wejścia 
analogowego 1 wejścia (pojedynczy kanał)

10 tysięcy próbek na sekundę

Maksymalna szybkość próbkowania wejścia 
analogowego 1 wejścia (wszystkie kanały)

10 tysięcy próbek na sekundę

Przygotował Grzegorz Śmigielski

12

background image

Budowa wejścia analogowego

MUX – multiplekser sygnałów wejściowych

PGA – wzmacniacz o programowalnym wzmocnieniu

 

Sposób podłączenia źródła sygnału analogowego do wejścia 

a) wejście różnicowe (differential) : pary AI0-AI4, AI1-AI5, AI3-AI7 

dla źródeł typu generator

b) wejście masowe (RSE) dla źródeł o wspólnej masie

Budowa wyjścia analogowego

Przygotował Grzegorz Śmigielski

13

background image

Sposób podłączenia obciążenia do wyjścia analogowego

Urządzenie   USB   6008   należy   zainstalować   w   systemie.   Po   zainstalowaniu   będzie   ono 

widziane   w   programie   konfiguracyjnym  Measurement   And   Automation   Explorer.   Po 

każdorazowym   podłączeniu  urządzenia   pojawia   się   okno  startowe   z   możliwością   wyboru 

opcji testowania – Run Test Panels lub konfiguracji Configure This Device.

Zadanie a

Najprostszy program wykorzystujący urządzenie USB został przedstawiony na rysunku. Na 

wyjściu AO1 ustawiana jest  wartość napięcia  zgodnie z  wartością ustaloną przy pomocy 

pokrętła typu Knob. Sprawdzić działanie programu mierząc wartość wyjściową napięcia przy 

pomocy multimetru.

     

Przygotował Grzegorz Śmigielski

14

background image

Zadanie b

Napisać   program,   który   będzie   generował   przebiegi   na   płytce   testowej   S.C.   –   2075   – 

wykorzystać wyjście analogowe AO0. Wykorzystać funkcje ekspresowe LabView. Wyjście 

analogowe z płytki S.C. – 2075 podłączyć do wejścia analogowego USB 6008 (AI0 i GND). 

–   typ   wejścia  RSE  (ustawienie   w  DAQ   Assistant  –   opcja  Terminal   Configuration). 

Zarejestrować generowany przebieg przy pomocy USB 6008 – napisać odpowiedni program. 

Uzyskane dane zapisać do pliku – zaimportować je do arkusza kalkulacyjnego i utworzyć 

wykres z uzyskanych danych.

W sprawozdaniu umieścić kody programów oraz  wykresy uzyskanych przebiegów.

Przygotował Grzegorz Śmigielski

15