Komputery

Interface szeregowy ICSBUS

Dostępne rozwiązania sieci przemysłowych proponowane przez firmy specjalizujące się w tego typu systemach są zazwyczaj sieciami skomplikowanymi, obliczonymi na zastoso-wania przemysłowe wymagające szybkiego przesyłania dużych ilości danych, szybkiej reakcji systemu na sytuacje awaryjne i dużej odporności na zakłócenia zewnętrzne. W wielu wypadkach sieć nie musi spełniać tak ostrych wymagań i wtedy rozwiązania firmowe nie są w pełni wykorzystane. Przykładem może być problem połączenia w sieć liczników produkcji, których zadaniem jest przeprowadzanie prostych pomiarów (zliczanie zdarzeń) i przekazywanie wyników do komputera w celu ich przetwarzania i rejestracji. W takiej sytuacji nie ma na ogół potrzeby natychmiastowego przesyłania danych do stacji nadrzędnej, zatem zdalny odczyt danych może następować w odstępach rzędu minut, a nawet co godzinę. Zależy to przede wszystkim od częstotliwości występowania zliczanych zdarzeń, od rozwiązania części interfejsowej oraz od tego, jak “ważna” jest wielkość mierzona, to znaczy, jak długo utrzymuje się jej aktualność. Właśnie dla takich przypadków, w których zakłada się niewielką częstotliwość multipleksowania urządzeń systemu pomiarowego, opracowano prosty interfejs pomiarowy ICSBUS [9].

Konfiguracja systemu ICSBUS

W systemie pomiarowym opartym na interfejsie ICSBUS urządzenie sterujące (zazwyczaj komputer), urządzenia rejestrujące oraz przyrządy pomiarowe są przyłączone równolegle do magistrali cyfrowej, której zadaniem jest przesyłanie rozkazów i instrukcji organizujących pracę systemu, a także informacji o stanie urządzeń składowych i wyników pomiarów. Jakkolwiek struktura systemu pozwala na bezpośrednią współpracę między dowolną parą urządzeń dołączonych do magistrali, to w rzeczywistości jest ona możliwa tylko przez kontroler, który jako jedyny może wyznaczyć u rządzenie do nadawania, odebrać od niego informację i przesłać ją w r zie potrzeby do innego urządzenia. Konfiguracja magistratowa zapewnia proste dołączanie urządzeń do system u i nie narzuca specjalnych ograniczeń co do struktury układu pomiarowego, wymaga jedynie adresowania przesyłanych instrukcji i danych oraz zdolności odbiorców do samoidentyfikacji.

Struktura magistrali ICSBUS

Magistrala ICSBUS jest trójprzewodowym łączem szeregowym, w którym możliwa jest transmisja dwukierunkowa. Nadajnik linii jest przełączanym źródłem prądowym o wyjściu różnicowym, a odbiornik wzmacniaczem różnicowym z wyjściem o poziomie TTL. Za pośrednictwem sygnału TxE możliwe jest wyłączenie nadajnika, co pozwala na nadawanie przez inne urządzenia podłączone do sieci.

Organizacja urządzeń współpracujących z magistralę ICSBUS

Wszystkie przyrządy pomiarowe i inne urządzenia współpracujące z magistralą ICSBUS muszą zawierać cyfrowy układ pośredniczący w wymianie informacji między urządzeniem a magistralą (część interfejsową). Interfejs realizuje wszystkie funkcje związane z transmisji i odbiorem komunikatów oraz zapewnia wymagane warunki mechaniczne i elektryczne (złącza, poziomy logiczne, obciążalność itp.). Zasadniczą części urodzenia realizują funkcje użytkowe przyrządu jest “urządzenie właściwe. Przyjęło się mówić, że urządzenie właściwe wykonuje “funkcje urządzenia”, a część interfejsowa “funkcje interfejsu”. Urządzenia pomiarowe współpracujące z magistralą ICSBUS mają jednolitą organizacji Mogą one pracować zdalnie lub lokalnie. Podczas prany zdalnej urządzenie podłączone jest logicznie do kontrolera systemu, z którym może wymieniać informacje za pośrednictwem interfejsu. Sterowanie wymianą danych przy pracy zdalnej realizuje program w kontrolerce systemu. Podczas pracy lokalnej urządzenie wykonuje swoje funkcje autonomiczne. Programowanie przyrządu odbywa się z klawiatury umieszczonej na jego płycie czołowej a wyniki pomiarów wyprowadzane są na wyświetlacz cyfrowy. Urządzenie pracujące lokalnie można przełączyć na pracę zdalną wysyłając rozkaz REMOTE. W urządzeniach interfejsu ICSBUS wprowadzono ponadto pojęcie “stanu” urządzenia wyróżniając stan STOP i stan START. W stanie STOP blokowane są funkcje urządzeni (pomiary), odblokowana jest natomiast jego klawiatura służąca do zaprogramowania przyrządu. W stanie START odblokowane zostają funkcje urządzenia właściwego, blokowane są za to przyciski programujące urządzenie.

Organizacja komunikatów

Wszystkie rodzaje informacji przesyłane w systemie pomiarowym ICSBUS nazywaj się komunikatami. Komunikaty zdalne przesyłane są po magistrali, natomiast komunikaty lokalne przenoszą informacje w ramach urządzenia pomiędzy jego części interfejsową a części stanowiąc urządzenie właściwe. Komunikaty lokalne skierowane do części interfejsowej są wspólną dla wszystkich urządzeń w systemie, komunikaty lokalne skierowane do części urządzeni właściwego zależą od rodzaju urządzenia pomiarowego. Komunikaty zdalne można podzielić ze względu na spełniane funkcje. W interfejsie ICSBUS wyróżniono pięć grup komunikatów:

rozkazy uniwersalne (RU). W skład tej grupy wchodzą komunikaty działające na interfejsy wszystkich dołączonych do magistrali urządzeń. Przykładem rozkazu uniwersalnego może być rozkaz REMOTE, który powoduje przełączenie wszystkich urządzeń w systemie ICSBUS w tryb pracy w sieci pod kontrolą sterownika systemu;
adresy (AD). Są to komunikaty umożliwiające samoidentyfikację urządzeń dołączonych do magistrali. Adresy urządzeń w systemie ICSBUS muszą być indywidualne, czyli nie mogą się powtarzać. Urządzenie, które rozpoznało swój adres własny w odebranym komunikacie AD, przechodzi do stanu “zaadresowania”, w którym oczekuje na rozkazy adresowane;
rozkazy adresowane (RA). Są to komunikaty działające selektywnie, wyłącznie na te urządzenia, które uprzednio wyznaczono (przez zaadresowani e) do odbioru tych komunikatów. Przykładem może być rozkaz SENDBUFF, który jest żądaniem przesłania do kontrolera systemu zawartości bufora danych zaadresowanego wcześniej urządzenia;
statusy (ST). Są to komunikaty niosce informacje o stanie urządzenia. Za pośrednictwem statusu przesyła się zawartość rejestrów stanu urządzenia, które zawierają ważne flagi, takie jak na przykład: żądanie obsługi, flagi błędów itp.
dane pomiarowe lub programujące (D). Są to komunikaty zależne od urządzenia, a więc wszystkie wyniki pomiarów lub dane programujące urządzenia systemu.

Wszystkie komunikaty zajmują jeden bajt, przy czym trzy starsze bity określają grupowy komunikatu.

Tablica 2.1. Kody grupowe komunikatów zdalnych w interfejsie ICSBUS

Nazwa grupy komunikatów Stany bitów
7 6 5 4 3 2 1 0
RU 1 1 0 K K K K K
RA 1 1 1 K K K K K
AD 1 0 0 A A A A A
ST 1 0 1 X S S S S
D 0 D D D D D D D

K – bity kodu rozkazu

A – bity kodu adresu odbiorcy S – bity statusu

D – bity danych (znak w kodzie ASCII) X – bit niezdefiniowany

Bit D7=1 oznacza:

słowo sterujące, którym może być rozkaz lub adres, jeżeli transmisja odbywa się od mastera do urządzenia slave,
status urządzenia slave, gdy transmisja odbywa się od urządzenia slave do mastera.
D7=0 informuje, że na polu D6 – DO znajduje się dana w kodzie ASCII.

Bit D6 rozróżnia rozkazy (D6=1) od adresów (D6=0). Dla kodu rozkazu lub adresu zarezerwowano pięć młodszych bitów, co oznacza, że można zdefiniować 32 rozkazy zdalne oraz do systemu można podłączyć do 32 urządzeń.

W interfejsie ICSBUS zdefiniowano rozkazy uniwersalne, adresowane oraz wiele rozkazów posiadających zarówno wersję uniwersalną, jak i adresowaną. Poniżej podano zestaw rozkazów zdalnych dzieląc je na rozkazy uniwersalne, rozkazy adresowane oraz rozkazy zaimplementowane w dwóch wersjach: uniwersalnej i adresowanej. Wszystkie rozkazy, które wymagają przesyłu danych z urządzenia do kontrolera, posiadają oczywiście tylko wersję adresowaną.

Rozkazy uniwersalne

REMOTE – powoduje przełączenie urządzenia do pracy zdalnej. Po odebraniu tego rozkazu urządzenie zostaje “logicznie” podłączone do interfejsu.
START – otwiera okno czasowe w celu zgłoszenia żądania obsługi.
DISRQ – zamyka okno czasowe zgłaszania żądania obsługi.
Rozkazy zaimplementowane w wersji uniwersalnej oraz adresowanej

LOCAL – rozadresowuje urządzenie i przełącza je do pracy lokalnej. Przy pracy lokalnej komunikacja z urządzeniem możliwa jest tylko poprzez klawiaturę i wyświetlacz umieszczony na płycie czołowej urządzenia.
START – przełącza urządzenie do stanu START. Rozkaz ten należy wysłać po uprzednim zaprogramowaniu urządzenia (zdalnym lub lokalnym) w stanie STOP.
STOP – – przełącza urządzenie do stanu STOP.
CLEAR – zeruje wybrane rejestry urządzenia.
PROG – programuje rejestry sterujące urządzenia (rozkaz wielobajtowy , którego argumentami są komunikaty danych).
EFRCLR – zeruje flagi błędów w rejestrze statusu.
INITVAL – ustawia stany początkowe wybranych rejestrów urządzenia (rozkaz wielobajtowy, którego argumentami są komunikaty danych reprezentujące zapisywane wartości początkowe).
TRIG – wyzwala pomiar.
TEST – inicjuje procedurę autotestowania urządzeń.
Rozkazy adresowane

SENDBUFF – odczytuje bufor danych urządzenia. Ostatni bajt w buforze stanowi słowo kontrolne zabezpieczające przesyłaną informację.
STATUSRD – odczytuje rejestr stanu urządzenia.
SELFADR – żąda wysłania do kontrolera adresu własnego urządzenia
DTCRD – odczytuje bajt określający typ urządzenia.
DDC – ustawia urządzenie do odbioru rozkazów zależnych od urządzenia
COLTST- testuje kolizje (sprawdza, czy nie powtarzają się adresy selekcyjne urządzeń).
END – rozadresowuje urządzenie pozostawiając go w pracy zdalnej.

Oprócz wymienionych rozkazów istnieją jeszcze rozkazy zależne od urządzenia (dedykowane), to znaczy przeznaczone tylko dla określonego typu urządzeń. Przed ich wykorzystaniem należy ustawić urządzenie na odbiór rozkazów dedykowanych, odczytać rozkazem DTCRD bajt określający typ urządzenia i w zależności od niego dobrać właściwy zestaw rozkazów zależnych od urządzenia.

Protokół komunikacyjny

W interfejsie ICSBUS zaimplementowano prosty protokół komunikacyjny typu master-slave. W protokole tym urządzenia pomiarowe odpowiadają jedynie na polecenia zda wysyłane przez kontroler systemu. Bezpośrednio po włączeniu napięcia zasilania wszystkie urządzenia znajdują się w trybie pracy lokalnej. Ich część interfejsowa odbiera przy tym komunikaty sprawdzając, czy nie jest to rozkaz REMOTE. Po rozpoznaniu rozkazu REMOTE urządzenia przechodzą do trybu pracy zdalnej i oczekują na zaadresowanie. Są teraz “odbiorcami pasywnymi”, co oznacza, że mogą reagować tylko na rozkazy uniwersalne, a rozkazy adresowane ignoruj, dopóki nie zostaną zaadresowane. Każdy komunikat adresowy jest przez nie sprawdzany, a jego pięć młodszych bitów porównuje się z adresem własnym urządzenia. W przypadku zgodności adresów (odebranego i własnego) urządzenie staje się “odbiorcą aktywnym”, co oznacza jego zaadresowanie. Od tej chwili urządzenie wykonuje zarówno rozkazy uniwersalne, jak i adresowane Rozadresowanie urządzenia (czyli przejście do odbioru pasywnego) następuje po odebraniu:

rozkazu END (naturalne zakończenie wymiany informacji z urządzeniem),
“innego adresu”, którym jest adres różny od własnego.

Wysłanie rozkazu LOCAL również rozadresowuje urządzenie, co połączone jest jednak z przejściem do pracy lokalnej.

Zgłaszanie żądania obsługi

CW interfejsie ICSBUS urządzenia mogą zgłosić żądanie obsługi (SRQ) w celu poinformowania kontrolera o wystąpieniu jakiegoś ważnego zdarzenia, jak na przykład zakończenie pomiaru, awaria itp. Po odebraniu komunikatu SRQ kontroler realizuje procedurę identyfikacji urządzenia żądającego obsługi, po czym przechodzi do programu jego obsługi. Ponieważ interfejs ICSBUS jest typu master – slave, co oznacza, że dostępem do magistrali zarządza kontroler, a urządzenia odpowiadają jedynie na rozkazy zdalne, wysyłanie komunikatu SRQ nie może odbywać się asynchronicznie. Przyjęto zatem, że komunikat SRQ wysyłany jest przez urządzenie jako odpowiedź na zdalny rozkaz ENRQ przy spełnieniu dwóch warunków: urządzenie żąda obsługi oraz łącze transmisyjne jest wolne. Odebranie rozkazu ENRQ można traktować jako otwarcie przez kontroler okna czasowego w celu przesłania komunikatu SRQ. Kontroler przez czas trwania dwóch jednostek informacyjnych zapewnia wolne łącze, to znaczy sam powstrzymuje się od jakiegokolwiek nadawania. Urządzenie, które żąda obsługi, lecz stwierdzi zajętość łącza, rezygnuje z wysłania wysyła właśnie komunikat SRQ. Okno czasowe zamykane jest rozkazem DISRQ. Protokół komunikacyjny zabezpiecza przed blokadą łącza przez urządzenia zgłaszające żądanie obsługi. Sprawdzenie zajętości łącza przed wysłaniem komunikatu SRQ odbywa się dwukrotnie z odstępem zależnym od adresu urządzenia i równym 1ms x (adres urządzenia). Pozwala to na uniknięcie kolizji oraz umożliwia kontrolerowi dostęp do łącza w celu zablokowania zgłaszania żądania obsługi.

Przedstawiony sposób zgłaszania żądania obsługi informuje kontroler tylko o tym, że urządzenie wysłało komunikat SRQ. Kontroler samodzielnie musi zidentyfikować mszenie żądające obsługi, co czyni poprzez sekwencyjne odczytywanie rejestru statusowego kolejnych urządzeń i testowanie bitu SRQ (jest to “kontrola szeregowa”). Procedura kontroli szeregowej może trwać długo, w najgorszym przypadku przez czas równy ilości urządzeń w systemie pomnożonej przez czas realizacji rozkazu STATUSRD. Dlatego też w nowej wersji interfejsu (oznaczonej ICSBUS+) wprowadzono zmodyfikowany sposób identyfikacji urządzenia żądającego obsługi. Po otwarciu okna czasowego, urządzenia wymagające obsługi wysyłają do kontrolera kolejne bity swojego adresu selekcyjnego (rozpoczynając od najbardziej znaczącego bitu). W trakcie wyprowadzania bitu sprawdzają stan magistrali, czy jest on identyczny z wartością wyprowadzanego bitu. Jeżeli nie, to rezygnują z dalszego wyprowadzania adresu. Magistrala realizuje funkcję logiczną “iloczynu na drucie”, co oznacza dominację poziomu niskiego nad wysokim. Kontroler odbierze zatem adres tego spośród urządzeń zgłaszających żądanie obsługi, które posiada adres o najmniejszej wartości binarnej. Po obsłudze urządzenia, kontroler ponownie otwiera okno czasowe, aby sprawdzić, czy nie pozostały jeszcze jakieś urządzenia żądające obsługi.

Wykrywanie kolizji

Kolizją nazywamy sytuację, gdy jednocześnie nadaje więcej niż jedno urządzenie. Protokół komunikacyjny realizowany w interfejsie ICSBUS zabezpiecza przed kolizją pod warunkiem, że nie jest ona skutkiem powtarzających się adresów selekcyjnych w urządzeniach pomiarowych. Dwa lub więcej zaadresowanych jednocześnie urządzeń będzie odpowiadało mniej więcej w tym samym czasie na rozkazy zdalne wymagające przesyłania danych z urządzenia do kontrolera, co spowoduje kolizję. Wykrywanie kolizji w interfejsie ICSBUS zrealizowano sprzętowo przy wykorzystaniu zjawiska zmiany poziomu sygnału w linii transmisyjnej w sytuacji, gdy nadaje kilka urządzeń. Do testowania kolizji służy rozkaz COLTST, na który zaadresowane urządzenie odpowiada wysłaniem znaku 00h. Jeżeli nadaje więcej niż jedno urządzenie, poziom sygnału wzrasta w stosunku do wartości nominalnej, co jest wykrywane przez komparator napięciowy w układzie detektora kolizji. Sprawdzenie, czy nie powtarzaj się adresy selekcyjne, wymaga zatem kolejnego adresowania urządzeń i wysyłania za każdym razem rozkazu COLTST. Jedyną sytuacja w której dopuszcza się kolizję jest wysyłanie komunikatu SRQ. Wyjście detektora kolizji nie jest w tym przypadku sprawdzane.

Zabezpieczenie przed permanentnym nadawaniem

CW celu zabezpieczenia przed permanentną transmisją układy nadawcze urządzeń interfejsu ICSBUS wyposażono w układ ograniczenia czasu nadawanie. Jest nim prosty uniwibrator nastawiony na czas równy 20 x (czas trwania jednostki informacyjnej) blokujący nadajnik przy przekroczeniu czasu nadawania.

Format jednostki informacyjnej w interfejsie ICSBUS

Jednostka informacyjna w interfejsie ICSBUS odpowiada dokładnie formatowi stosowanemu w standardzie RS-232C przy asynchronicznej transmisji znakowej.

Szybkość transmisji w urządzeniach systemu ICSBUS można ustawić za pośrednictwem rnikroprzełączników na jednej z wartości 1.2kbd, 2.4kbd, 4.8kbd, 9.6kbd lub 19.2kbd.

Charakterystyka elektryczna i mechaniczna interfejsu ICSB US

Na magistrali ICSBUS zastosowano nadajniki i odbiorniki linii serii 75110 i 75107. Nadajnik 75110 jest przełączaną siłą prądomotoryczną o wartości 12 mA.

Gdy na wejściu nadajnika znajduje się logiczna “1”, to zamknięty jest klucz K1, a otwarty K2. Przeciwnie, gdy na wejściu nadajnika jest “0”, to zamknięty jest klucz K2, a otwarty K1. Przełączanie kluczy K1, KZ powoduje powstanie na wyjściu różnicowym nadajnika napięcia UZ:U,=O.SIR reprezentującego logiczną “1” i napięcia -O.SIR odpowiadającego logicznemu “0”. Rezystory R należy dobrać tak, aby 2R= Zf (Zf – impedancja falowa pary przewodów skręcanych). Dla R = 50 S2 n apięcie w linii wynosi ą 300 mV. Ponieważ w elemencie 75110 dostępne są dwa identyczne nadajniki linii, możliwe jest ich równoległe połączenie, co podwaja prąd w torze transmisyjnym i w konsekwencji podnosi poziom sygnału do ą 600 mV. Dla długości toru transmisyjnego większej od 100 m zaleca się podniesienie poziomu sygnału nadawanego.

Połączenia w interfejsie ICSBUS

Dla interfejsu ICSBUS przyjęto złącze szufladowe 9-stykowe typu 871 (wtyk). Na płycie tylnej obudowy przyrządu montuje się wtyk i gniazdo połączone ze sobą równolegle. System pomiarowy łączy się segmentami kabla zakończonymi z jednej strony wtykiem i z drugiej gniazdem wymienionego wyżej złącza. Oba końce toru transmisyjnego należy zamknąć terminatorem.

Zastosowania interfejsu ICSBUS

Interfejs ICSBUS jest prostym interfejsem pomiarowym możliwym do bezpośredniej implementacji na łączu RS-232C po wyposażeniu go w trójstanowe nadajniki linii przesyłanie danych można oprzeć na nadajnikach i odbiornikach prądowych lub na nadajnikach i odbiornikach interfejsu RS-485. System ICSBUS zapewnia niezawodną wymianę danych pomiędzy urządzeniami slave a kontrolerem, z możliwości zgłaszania żądania obsługi, wykrywaniem kolizji i ograniczeniem czasu nadawania. Zastosowanie symetrycznej transmisji prądowej zapewnia łącze odporne na zakłócenia i pozwalające przesyłać dane na odległość do 300 m. Interfejs ICSBUS posiada pewne cechy charakterystyczne dla standardu IEC-625 , jak tryby pracy urządzenia lokalny i zdalny, sposób adresowania i rozadresowania urządzeń, podział komunikatów na rozkazy (adresowane i uniwersalne), adresy, dane i statusy, czy sposób identyfikacji urządzenia zgłaszającego udanie obsługi. Interfejs ICSBUS przeznaczony jest w zasadzie do zastosowań laboratoryjnych. Ze względu na ograniczone zabezpieczenie przesyłanych danych przed błędami (tylko na poziomie znaku bitem parzystości) oraz brak potwierdzania realizacji rozkazów przez urządzenia slave, jego zastosowanie w warunkach przemysłowych może napotykać na trudności. Protokół komunikacyjny opracowany dla interfejsu ICSBUS nadaje się do implementacji w mikroprocesorowych urządzeniach pomiarowych. Jeżeli mikroprocesor wykonujący funkcje urządzenia nie jest przeciążony, jak to ma miejsce w wielu prostych urządzeniach pomiarowych, to można go r ównież wykorzystać do realizacji procedur protokołu komunikacyjnego. Otrzymuje się w takim przypadku jednoprocesorowe urządzenie wyposażone w interfejs ICSBUS. Jeżeli natomiast realizacja funkcji interfejsowych w mikroprocesorze wykonującym funkcje urządzenia jest trudna lub niemożliwa ze względu na konflikt pomiędzy zadaniami związanymi z pomiarami a zadaniami związanymi z obsługą interfejsu, to konieczne jest wykonanie sterownika komunikacyjnego realizującego funkcje interfejsu. Powstaje wtedy dwuprocesorowe urządzenie, w którym trzeba określić zasady współpracy systemów mikroprocesorowych realizujących funkcje urządzenia i funkcje interfejsu. Interfejs ICSBUS został uruchomiony i sprawdzony w Instytucie Informatyki Politechniki Śląskiej, gdzie połączył komputer klasy IBM PC (kontroler systemu) z mikroprocesorowymi urządzeniami pomiarowymi (slave) wykonanymi na mikrokontrolerach rodzin MCS48 i MCS51. Wszystkie urodzenia slave posiadały tylko jeden mikrokontroler, który wyko-nywał funkcje urządzenia i interfejsowe. W przypadku urodzeń z mikrokontrolerem rodziny MCS48, jako sterownik łącza szeregowego wykorzystano układ Intel 8251. W urządzeniach opartych na mikrokontrolerach rodziny MCS51, łączem szeregowym sterował wewnętrzny kontroler znajdujący się w mikroprocesorze.