praca dyplomowa tcp ip

background image

Spis treści

Wstęp..........................................................................................................5

1. Przegląd stosowanych systemów sterowania i kontroli
na dużych odległościach......................................................................6
1.1. Systemy wykorzystujące sieć internetową do sterowania i
kontroli urządzeń........................................................................7
1.2. Systemy wykorzystujące sieć energetyczną do sterowania i

kontroli urządzeń.......................................................................15


2. Charakterystyka rozległej sieci TCP/IP pod kątem możliwości

jej

wykorzystania w systemach sterowania i kontroli.....................18

2.1. Warstwowy model sieci TCP/IP..............................................19
2.2. Protokół TCP............................................................................22

2.3. Protokół UDP...........................................................................25

2.4. Protokół IP................................................................................26

2.5. Protokół ICMP.........................................................................29


3. Propozycje sposobów przyłączania nadzorowanych urządzeń
do sieci TCP/IP ...................................................................................32

3.1. Sterownik jako konwerter między siecią TCP/IP

a urządzeniem.........................................................................33

4. Projekt sterownika mikroprocesorowego umożliwiającego
zadawanie i odczyt stanów urządzeń poprzez sieć TCP/IP.............34
4.1. Wybór mikrokontrolera...........................................................35

4.2. Projekt schematu blokowego...................................................41

4.3. Blok mikrokontrolera..............................................................43

4.4. Blok pamięci............................................................................44

4.5. Blok PHY................................................................................46

4.6. Blok RTC i adresu MAC........................................................49

4.7. Blok zasilania..........................................................................50

4.8. Blok interfejsu.........................................................................51

4.9. Przystawka do odczytu temperatury oraz

włączania diody LED..............................................................53
4.10. Wykaz elementów..................................................................54

5. Wykonanie i uruchomienie zaprojektowanego sterownika.............56

5.1. Projekt płytki drukowanej.........................................................57

5.2. Wykonanie sterownika..............................................................60

background image

4

5.3. Zainstalowanie środowiska wykonawczego do sterowania.....62
5.4. Uruchomienie przykładowych aplikacji...................................65

6. Przeprowadzeni badań wykonanego sterownika w warunkach
przyłączenia go do wybranych sieci TCP/IP....................................68

6.1. Analiza przepływu danych sterownika podłączonego
do sieci LAN przy wykorzystaniu programu IRIS..................69

Podsumowanie.....................................................................................71

Literatura.............................................................................................72

Załączniki:
Płyta CD


background image

5

Wstęp

Etap mikroprocesorowej rewolucji, która dokonała się w minionym 20-

leciu w obszarze urządzeń powszechnego użytku, na trwałe skomputeryzował

sprzęt gospodarstwa domowego,

sprzęt audio-video czy też branżę

motoryzacyjną. Obsługa tych urządzeń wcale nie musi się odbywać bezpośrednio

przez użytkownika, już dziś mamy wiele systemów sterujących czy też

kontrolujących stan tych urządzeń na odległość. Technologie do centralnego

zarządzania sprzętem powszechnego użytku są rozwijane przez większość

liczących się producentów podzespołów elektronicznych. Sieci internetowe,

które dotąd były wykorzystywane przeważnie do świadczenia usług WWW

(World Wide Web), mogą być wykorzystywane teraz do sterowania i kontroli

innych urządzeń. Wiele urządzeń domowego użytku w przyszłości może być

wyposażone w charakterystyczne gniazdo RJ – 45, np. piekarnik, który może

otrzymywać przepisy kulinarne z internetowej bazy, telewizor kontrolowany

zdalnie przez komputer PC lub magnetowid programowany za pomocą

sieciowego interfejsu.

Celem niniejszej pracy jest charakterystyka sieci TCP/IP pod względem

zastosowania do sterowania i kontroli urządzeń oraz projekt sterownika

umożliwiającego zadawanie i odczyt stanów urządzeń poprzez sieć TCP/IP.

background image

6

1. Przegląd stosowanych systemów

sterowania i kontroli na dużych

odległościach

W rozdziale pierwszym pracy przedstawiono systemy

wykorzystujące sieci internetowe oraz sieci energetyczne do sterowania i

kontroli urządzeń.











background image

7

1.1. Systemy wykorzystujące sieć internetową do

sterowania i kontroli urządzeń

Obecnie jest wiele firm produkujących systemy sterowania i kontroli

urządzeń przez sieć typu Ethernet/Internet. Systemy te charakteryzują się szeroką

gamą urządzeń z nimi współpracujących. Prekursorem zasługującym na uwagę

była firma Dallas Semiconductor a obecnie Maxim/Dallas [1], która

zaproponowała w 1998 roku miniaturowe moduły programowalne w języku

Java, służące do kontroli domowych urządzeń elektrycznych. Medium

komunikacyjne stanowiła w tym przypadku domowa sieć energetyczna . Jednak,

proponowane od roku 1999 rozwiązania bazują na sieci Ethernet i protokołach

standardu TCP/IP. Są to mikroserwery TINI oparte na 8-bitowym

mikrokontrolerze z zaimplementowanym w pamięci stosem TCP/IP. Powszechny

w większości krajów rozwiniętych dostęp do sieci LAN/WAN i jej globalny

zasięg oferuje duże możliwości dla obszaru urządzeń powszechnego użytku

współpracujących z mikroserwerami TINI ( rys. 1.1).


Rys. 1.1. Obszar zastosowań mikroserwerów TINI do sterowania i kontroli

urządzeń (na podstawie materiałów firmy Maxim/Dallas).

Wbudowane w moduł mikroserwera TINI środowisko uruchomieniowe

JVM (Java Virtual Machine), w tym biblioteka java.net do obsługi warstwy

background image

8

gniazd protokołu TCP/IP, pozwoliły na realizację następujących protokołów

warstwy aplikacyjnej: HTTP (Hypertext Transfer Protocol), DNS (Domain

Name System), DHCP (Dynamic Host Configuration Protocol) , Telnet oraz FTP

(File Transfer Protocol). Schemat blokowy modułu TINI został przedstawiony

na rysunku 1.2.[2]

Rys.1.2. Schemat blokowy modułu TINI firmy Maxim/Dallas

W pamięci modułu oprócz stosu TCP/IP i JVM zaimplementowany jest też

prosty system operacyjny RTOS zarządzający obsługę stosu i uruchamiania

aplikacji. Aplikacje są pisane w języku java i wykonywane na mikroserwerze

przez JVM po wcześniejszym skompilowaniu i odpowiednim przygotowaniu

plików. Pomiędzy warstwą aplikacyjną a warstwą protokołów pośredniczy

interfejs gniazd odwzorowujący zunifikowane żądania aplikacji na działania

specyficzne dla implementacji protokołów transportowych (TCP, UDP). Poniżej

warstwy sieci (IP) znajdują się programy komunikujące się z urządzeniami

sieciowymi - kontrolerem Ethernet lub z modemem - za pośrednictwem łącza

szeregowego i protokołu PPP (Point-to-Point Protocol). Urządzeniem sieciowym

wbudowanym w moduł mikroserwera jest kontroler Ethernet obsługujący

standard 10Base-T i 100Base-TX pozwalający na bezpośrednie podłączenie

background image

9

modułu do sieci LAN (Local Area Network). Mikroserver TINI charakteryzuje

się szerokim zestawem interfejsów z urządzeniami zewnętrznymi. Jest on

wyposażony w rozszerzony port I/O, dwa porty szeregowe, interfejs 1-Wire,

magistralę CAN oraz złącze dla układów iButton [3] firmy Maxim/Dallas.

Mikroserver wyposażony jest też w układ RTC (Real Time Clock) mierzący czas,

który może być używany przez użytkownika w niektórych aplikacjach. Cały

mikroserver występuje w postaci dwóch oddzielnych płytek tzn. modułu o

oznaczeniu TINI390 zawierającego mikrokontroler, pamięć i kontroler

Ethernetu oraz z płytki o symbolu E10 wyposażonej we wszystkie niezbędne

interfejsy mikroserwera do komunikacji z urządzeniami zewnętrznymi i

pozostałe układy do jego pracy. Obie płytki łączą się za pomocą gniazda 72 Pin

SIMM. Na rysunku 1.3. przedstawiony jest wygląd modułu TINI390 bazującego

na mikrokontrolerze DS80C390. [3]






Rys.1.3. Widok modułu TINI390 firmy Maxim/Dallas

Na rysunku 1.4. przedstawiony jest widok kompletnego mikroserwera

(płyta E10 z modułem TINI390). [3]

background image

10









Rys.1.4. Widok kompletnego mikroserwera TINI firmy Maxim/Dallas

Zainstalowany w module system operacyjny RTOS umożliwia

nawiązanie połączeń FTP z innymi stacjami w sieci, skonfigurowanie połączenia

sieciowego lub ustawianie czasu mierzonego przez układ RTC. W zależności od

aplikacji wykonywanej przez JVM mikroserwera TINI możliwe jest sterowanie

lub kontrola urządzeń dołączonych do odpowiedniego interfejsu mikroserwera

poprzez sieć TCP/IP. Producent udostępnia wiele przykładowych aplikacji

wykorzystujących sieć TCP/IP do obsługi innych urządzeń dołączonych do

modułu TINI. Interfejs graficzny użytkownika między stanem urządzeń może

stanowić przeglądarka internetowa.

Innym przykładem systemów do sterowania i kontroli urządzeń na

dużych odległościach mogą być konwertery RS-232 – Ethernet . Obecnie jest

dużo firm produkujących takie konwertery, można spotkać również firmy

krajowe produkujące te urządzenia. Jedną z takich firm jest firma

ESP Sp. z o.o.

background image

11

produkująca konwerter RS232-ETHERNET [4], wygląd tego konwertera jest

przedstawiony na rysunku 1.5.







Rys. 1.5. Konwerter RS-232 / ETHERNET firmy ESP

Konwerter RS232/ETHERNET zbudowany jest w oparciu o

mikrokontroler 8-bitowy, obsługuje standard 10Base-T Ethernetu oraz umożliwia

współpracę za pośrednictwem sieci Ethernet z dowolnym urządzeniem

wyposażonym w łącze szeregowe RS232 (lub RS485). Urządzenie z łączem

szeregowym widziane jest jako lokalne urządzenie posiadające unikalny adres.

Dostęp do niego uzyskiwany jest za pośrednictwem protokołu TCP. Dzięki temu

w prosty sposób można monitorować, sterować lub konfigurować urządzenia

rozproszone praktycznie po całym świecie. Oczywiście jeśli nie zachodzi taka

potrzeba, to można ograniczyć się do sieci lokalnej i przy jej wykorzystaniu

zbierać oraz gromadzić na jednym komputerze np. dane pomiarowe z całego

budynku czy kompleksu budynków. Przykład zastosowania konwertera RS-232 /

ETHERNET przedstawiono na rysunku 1.6. Konwerter pozwala na jednoczesne

otwarcie do czterech kanałów komunikacyjnych typu RS232 lub RS485.

Ponieważ konwerter pracuje w oparciu o protokół TCP/IP musi mieć przypisany

unikalny adres sieciowy w postaci xxx.xxx.xxx.xxx (np.: 10.0.0.1). Dostęp do

background image

12

poszczególnych portów szeregowych uzyskuje się poprzez dodanie do adresu

sieciowego odpowiedniego numeru portu TCP. Kompletny adres wygląda

następująco xxx.xxx.xxx.xxx:nn gdzie nn to numer portu TCP (np.: 10.0.0.1:51).




Rys. 1.6. Przykład zastosowania konwertera RS232/Ethernet

(na podstawie materiałów firmy ESP)

Przedstawiony konwerter posiada zestaw diód LED informujący między

innymi: stan połączenia z siecią ethernet, transmisję danych, numer aktywnego

portu szeregowego oraz napięcie zasilania. Przed rozpoczęciem pracy konwerter

RS-ETH powinien zostać skonfigurowany. Parametry konwertera takie jak adres

IP, prędkości kanałów szeregowych konfiguruje się za pomocą łącza

serwisowego i dowolnego terminala znakowego (np. HyperTeminal, Telix lub

Norton Commander Terminal). W celu sprawdzenia komunikacji urządzenia

podłączonego do konwertera można uruchomić usługę Telnet na komputerze PC

poprzez wpisanie w programie Telnet adresu IP konwertera wraz z

przyporządkowanym dla danego numeru portu szeregowego numeru portu TCP.

Zastosowanie dwóch konwerterów RS-232/Ethernet umożliwia prace w trybie

background image

13

wirtualnego kanału RS-232. Tryb kanału wirtualnego dla łącza szeregowego

został przedstawiony na rysunku 1.7.

Rys.1.7. Tryb kanału wirtualnego dla łącza szeregowego z wykorzystaniem

dwóch konwerterów RS232/Ethernet
(na podstawie materiałów firmy ESP)

Zestawienie takiego połączenia umożliwia przesyłanie danych w obu

kierunkach przez sieć Ethernet/Internet. Sieć ethernet „traktowana” jest w tym

wypadku jak kabel RS232 .

Następnym przykładem urządzenia sterującego poprzez sieć internetową

jest miniserwer WebEmbed firmy NETICA [5]. Na rysunku 1.8. został

przedstawiony wygląd miniserwera WebEmbed. Jest on samodzielnym,

maksymalnie zminiaturyzowanym kompletnym serwerem sieci web (serwer

HTTP i FTP), dostosowanym do pracy w warunkach przemysłowych. Jest on

przeznaczony - jako gotowy "front-end" do sieci z protokołem TCP/IP - dla

zarówno już istniejących jak i nowo powstających systemów elektroniki,

automatyki i pomiarów, które takiego interfejsu nie posiadają. Szybka i łatwa

integracja WebEmbed z systemami użytkownika zwiększa ich globalny zasięg,

atrakcyjność i obszar zastosowań. Możliwości zastosowań WebEmbed są

niemalże nieograniczone. Faktycznym ograniczeniem może być wymagana moc

obliczeniowa procesora, pojemność krytycznych zasobów (np. pamięci systemu),

background image

14

czy wymagany czas reakcji systemu na zdarzenia zewnętrzne (np. jeśli musiałby

on być krótszy niż 100 milisekund). Generalnie, potencjalne obszary zastosowań

WebEmbed mogą dla przykładu obejmować:

Przemysłowe systemy zdalnego sterowania i monitoringu,

Teleserwis, telemetria,

Systemy alarmowe,

Inteligentne budynki,

Systemy grzewcze i klimatyzacyjne, oczyszczalnie ścieków

Windy,

Telekomunikacja,

Parkingi,

Stacje pogodowe i monitoring środowiska,

Automaty biletowe, z napojami, z papierosami, bankomaty, itp.

Medycyna i laboratoria,

Kontrola dostępu,

Rejestracja danych,

E-banking,

Monitoring ruchu drogowego,

Automatyzacja gospodarstwa domowego i wiele, wiele innych.






Rys. 1.8. Widok miniserwera WebEmbed firmy NETICA

background image

15

1.2. Systemy wykorzystujące sieć energetyczną do

sterowania i kontroli urządzeń

Sterowanie i kontrola urządzeń na dużych odległościach może odbywać

przy wykorzystaniu linii energetycznych. Systemy takie wykorzystują

technologię PLC (Power Line Comunication) jest to metoda transmisji danych w

oparciu o dostępną sieć elektryczną. W chwili obecnej zgodnie z regulacjami

istniejącymi w Unii Europejskiej istnieje kanał transmisji w sieci elektrycznej o

określonej częstotliwości dostępny dla odbiorcy bez specjalnych zezwoleń o

zakresie: 3...148.5kHz. Do połączenia urządzenia z siecią energetyczną

wykorzystywane są modemy PLC. Na rysunku 1.9. przedstawiony jest schemat

blokowy modemu PLC [6].

Rys. 1.9. Schemat blokowy modemu PLC

Podstawową zasadą działania komunikacji PLC jest modulacja i

demodulacja. Modulowany sygnał wysokiej częstotliwości jest dodawany do

przebiegu napięcia zasilania w linii zasilającej. Sygnał ten rozchodzi się po

background image

16

przewodach zasilających. Moduł odbiorczy oddziela ten sygnał w paśmie

nadawczym z napięcia zasilającego. Wyizolowanie sygnału użytecznego z pasma

nadawczego odbywa się za pomocą filtrów wąskopasmowych o ostrych

zboczach oraz szybkiej transformacji Fouriera. Demodulacja sygnału pozwala na

odtworzenie oryginalnych danych. Jako, że sygnał przesyłany linią zasilającą

podlega różnym interferencjom niezbędne jest dokonanie weryfikacji

poprawności. Weryfikacja poprawności odebranych danych jest dokonywana za

pomocą sumy kontrolnej CRC. W innych słowach wartość sumy kontrolnej musi

się zgadzać z wartością sumy kontrolnej obliczonej podczas nadawania i

przesyłanej wraz z danymi. Aby zwiększyć bezpieczeństwo transmitowanych

danych, zastosowano dodatkowe procedury, jak automatyczne powtarzanie,

potwierdzanie odbioru danych lub 100% redundancja wysyłanych informacji, ich

przeplot podczas wysyłania i odbioru.

Jednym z systemów wykorzystujących technologie PLC są moduły

TransTherm oferowane przez firmę TEST-THERM Sp. z o.o [6] . Na rysunku

1.10. przedstawiony jest wygląd modułów TransTherm .

Rys.1.10. Moduły TransTherm firmy TEST-THERM wykorzystujące

technologię PLC do sterowania i kontroli urządzeń

background image

17

Moduły TransTherm są kompleksowym systemem zorientowanym na

pomiary, sterowanie, i odczyt wielkości pomiarowych - temperatury,

wilgotności, ciepła itp. System może być sterowany i wszystkie jego funkcje

dostępne z jednego punktu centralnego, np. komputera podłączonego do

firmowej sieci komputerowej. Komunikacja pomiędzy indywidualnymi

modułami jest utrzymywana z wykorzystaniem technologii PLC. Technologia ta

zapewnia niezawodną komunikację poprzez sieć zasilającą na odległość do 3 km.

Oprogramowanie producenta modułów TransTherm umożliwia gromadzenia

danych pomiarowych, ich archiwizację i przetwarzanie. Ze względu na

modułowość można je łatwo przystosować do szczegółowych wymagań klienta.

System może pracować na pojedynczym komputerze albo na serwerze, skąd

może być dostępny dla całej sieci intranetowej.







background image

18


2. Charakterystyka rozległej sieci

TCP/IP pod kątem możliwości
jej wykorzystania w systemach
sterowania i kontroli urządzeń


Sterowanie i kontrola urządzeń w sieciach internetowych wymaga

wymiany danych między jednostką sterującą/kontrolującą a urządzeniem

sterowanym lub kontrolowanym. Wymiana tych danych musi spełniać

zasady, reguły jakie panują w obszarach połączeń internetowych, gdyż w

przeciwnym razie, może dojść do nieprawidłowego zarządzania czy też

działania wspomnianych urządzeń.

W rozdziale drugim pracy został przedstawiony czterowarstwowy

model TCP/IP służący do wymiany danych między aplikacjami urządzeń

pracujących w sieci internetowej.






background image

19

2.1. Warstwowy model sieci TCP/IP


W teorii sieci internetowej bardzo ważne miejsce zajmuje tzw.

warstwowy model sieci. Najczęściej opisuje się go korzystając z modelu OSI

(Open Systems Interconnection), który wyróżnia 7 warstw. Model OSI opisuje

sposób przepływu informacji między aplikacjami w jednej stacji sieciowej a

aplikacjami w innej stacji sieciowej przy użyciu medium transmisyjnego. W

modelu tym warstwy są to oddzielne części oprogramowania sieciowego

(realizującego funkcje komunikacyjne, organizującego sieć). Jedna warstwa

odpowiada za pewną część funkcji i "kompetencji". Dostarcza usług warstwie

wyższej i korzysta z usług warstwy niższej. Sposób komunikacji między stacjami

sieciowymi można również opisać czterowarstwowym modelem TCP/IP. Na

rysunku 2.1. przedstawione jest porównanie modelu ISO/OSI z modelem

TCP/IP.[7]




Rys. 2.1. Porównanie modelu ISO/OSI i modelu TCP/IP

Warstwa dostępu do sieci odpowiada za dostarczanie danych do innych

urządzeń bezpośrednio dołączonych do sieci. Współpracuje ona bezpośrednio ze

sprzętem i sterownikami odpowiedzialnymi za współpracę z siecią. W sieci

background image

20

lokalnej mogą to być Ethernet lub Token-Ring (różne rozwiązania sieci

lokalnych). W przypadku innych sieci mogą to być protokoły PPP, SLIP lub

inne. Warstwa ta współpracuje więc z interfejsem sieciowym (kartą sieciową),

modemem lub innym urządzeniem pozwalającym na bezpośrednie połączenie

dwóch lub więcej stacji sieciowych i separuje resztę warstw od zastosowanych

rozwiązań fizycznych (niskopoziomowych). Świadczy ona usługę warstwie

wyższej polegającą na wysyłaniu i odbieraniu porcji danych (zwanych ramkami)

z stacjami w danej sieci fizycznej.

Warstwa internet (IP) odpowiada za dostarczanie danych do urządzeń

nie tylko w danej sieci fizycznej. Organizuje ona ruch tzw. pakietów IP między

poszczególnymi sieciami fizycznymi połączonymi w intersieć. Korzysta z usług

warstwy dostępu do sieci, sama zaś świadczy usługi dostarczania pakietu do

dowolnego komputera w Internecie.

Warstwa transportowa odpowiedzialna jest za niezawodną wymianę

danych z dowolnym komputerem w Internecie. Organizuje też i utrzymuje tzw.

sesje, czyli wirtualne połączenia między komputerami. Korzysta z warstwy IP,

sama zaś dostarcza usług niezawodnego transportu danych.

Warstwa aplikacji jest najwyżej położona. Tej warstwie odpowiadają

wszelkie programy (aplikacje) internetowe korzystające z warstwy

transportowej. Tu znajdują się wszelkie konkretne zastosowania Internetu -

przesyłanie plików (FTP), poczty (SMTP) i inne.

Współpraca między warstwami polega na świadczeniu usług przez

warstwy niższe warstwom wyższym (Rys.2.2.) Związane to jest także z

przepływem danych w dół sterty warstw (przy wysyłaniu danych) i w górę (przy

odbieraniu). Moduł warstwy aplikacji w stacji A (najczęściej program

użytkownika) wysyła dane do warstwy transportowej. Ta odpowiednio formatuje

je (dzieli lub łączy, dodaje nagłówek) i wysyła do warstwy IP. Ta z kolei dodaje

swój nagłówek i wysyła do warstwy dostępu do sieci. Warstwa również dołącza

swój nagłówek (związany ze sprzętowym rozwiązaniem komunikacji, np. tzw.

background image

21

nagłówek MAC) i wysyła pakiet fizycznie do sieci. Podobna droga, ale w drugą

stronę, czeka dane w stacji je odbierającej (stacja B). Pakiet wędruje ku górze i

jest pozbawiany odpowiednich nagłówków, by wreszcie dotrzeć do warstwy

aplikacji w formie identycznej porcji danych jaką wysłała warstwa aplikacji w

stacji wysyłającej.

























Rys. 2.2

Współpraca międzywarstwowa w modelu TCP/IP

W koncepcji warstw istnieje jeszcze coś takiego jak wirtualny (logiczny)

obieg danych. Występuje on pomiędzy odpowiadającymi sobie warstwami w

odległych systemach. Warstwy dostępu do sieci wymieniają między sobą ramki -

tu jeszcze wspomniana wirtualność jest mało widoczna. Warstwy IP wysyłają do

siebie pakiety IP - choć w rzeczywistości muszą się ze sobą komunikować

poprzez swoje niższe warstwy, to z logicznego punktu widzenia istnieje między

background image

22

nimi wirtualne połączenie, które pozwala na wymianę pakietów. Podobnie jest z

warstwami transportowymi, które wysyłają między sobą poprzez swój wirtualny

kanał pakiety danych (segmenty TCP) i inne komunikaty zapewniające

utrzymanie sesji i niezawodne dostarczenia danych (potwierdzanie).


2.2 Protokół TCP

Protokół TCP (Transmission Control Protocol) jest to protokół

zorientowany połączeniowo, czyli umożliwia zestawienie połączenia w którym

efektywnie i niezawodnie przesyłane są dane. Połączenie to charakteryzuje się

możliwością sterowania przepływem, potwierdzania odbioru, zachowania

kolejności danych, kontroli błędów i przeprowadzania retransmisji. Blok danych

wymieniany między współpracującymi komputerami nosi nazwę segmentu

(nagłówek + dane) . Na rysunku 2.3. przedstawiony jest format segmentu TCP .

Rys. 2.3. Format segmentu TCP

background image

23

Pole port źródłowy (16 bitów) i pole port docelowy (16 bitów)

zawierają numery portów procesów aplikacyjnych korzystających z usług TCP.

Kombinacja tych numerów z adresami sieciowymi określa parę gniazd

tworzących połączenie protokołu TCP. Pole numer sekwencyjny (32 bity)

zawiera numer sekwencyjny pierwszego bajtu danych w segmencie. Ta wartość

określa pozycję segmentu w strumieniu bajtów. Podczas ustanawiania

połączenia, i jeśli bit syn w polu znaczniki jest ustawiony na 1, to w tym polu

zawarty jest inicjujący numer sekwencyjny isn, od którego rozpoczyna się

numerację bajtów w połączeniu. Zatem pierwszy wysłany bajt ma numer isn + 1.

Pole numer potwierdzenia (32 bity) zawiera numer sekwencyjny następnego

oczekiwanego bajtu po stronie odbiorczej. Jednocześnie jest to potwierdzenie

poprawnego odbioru bajtów o numerach sekwencyjnych mniejszych od

zawartego w tym polu. Potwierdzenia mówią nadawcy ile bajtów danych zostało

już poprawnie odebranych. Pole długość nagłówka (4 bity) określa liczbę 32 -

bitowych słów w nagłówku segmentu TCP. Tym samym określone zostaje

miejsce, w którym rozpoczynają się dane. Pole to ma tak określone znaczenie

tylko wtedy, gdy bit ack równy jest 1. Pole rezerwa (6 bitów) jest przeznaczone

dla przyszłych zastosowań. Zawiera same zera. Pole znaczniki składa się z

sześciu bitów sterujących, które ustawione na 1 mają następujące znaczenie :

a) UGR wskazuje na ważność pola wskaźnik pilności,

b) ACK wskazuje na ważność pola numer potwierdzania,

c) PSH wskazuje na działanie funkcji wymuszającej wysyłanie

segmentu,

d) RST wyzerowanie połączenia,

e) SYN wskazuje, że w polu numer sekwencyjny umieszczony jest inicjujący

numer sekwencyjny INS. Jest on przeznaczony do synchronizacji numerów

sekwencyjnych w fazie ustanowienia połączenia.

f) FIN wskazuje, że nadawca nie ma nic więcej do nadania - sygnał końca

danych.

background image

24

Pole okno (16 bitów) określa liczbę bajtów jaką może jeszcze

zaakceptować odbiorczy moduł TCP. Pole suma kontrolna jest 16 - bitowym

jedynkowym uzupełnieniem jedynkowo uzupełnionej sumy wszystkich 16 -

bitowych słów w segmencie. Ta suma obejmuje zarówno nagłówek jak i dane

segmentu. Pole wskaźnik pilności (16 bitów) jest interpretowane tylko wtedy,

gdy bit UGR jest równy 1. Pole to zawiera numer sekwencyjny bajtu

następującego po pilnych danych. Pole opcje ma długość zmienną będącą

wielokrotnością 8 bitów. Zawiera ono numery opcji - każdy numer zapisany w

jednym bajcie. Dla protokołu TCP zdefiniowano trzy opcje.

0 - koniec listy opcji,

1 - brak działania,

2 - maksymalna długość segmentu.

Pole wypełnienie uzupełnia nagłówek do wielokrotności 32 bitów.

Ponieważ

TCP jest protokołem zorientowanym połączeniowo, więc w celu przesłania

danych między dwoma modułami TCP, zainstalowanymi w różnych stacjach

sieciowych , konieczne jest ustanowienie, utrzymanie i rozłączenie połączenia

wirtualnego. Ustanowienie połączenia odbywa się w następujących etapach :

-nadawczy moduł TCP wysyła do odbiorczego modułu TCP segment z

bitem SYN=1 i z proponowanym numerem ISN w polu numer sekwencyjny,

-odbiorczy moduł TCP, jeśli zgadza się na ustanowienie połączenia, to

przesyła zwrotnie segment z bitami SYN=1 i ACK=1, a w polu numer

sekwencyjny podaje numer INS, z którym rozpocznie działanie,

-nadawczy moduł TCP wysyła segment z potwierdzeniem otrzymania

zgody (ACK=1) na ustanowienie połączenia i równocześnie zawierający dane.

W ten sposób zostaje ustanowione połączenie wirtualne między dwoma

modułami TCP i mogą zostać przesyłane segmenty z danymi. Segmenty te mogą

background image

25

być przesyłane tym połączeniem w obu kierunkach, ponieważ TCP umożliwia

transfer danych między dwoma modułami w trybie dupleksowym.

Dla zapewnienia niezawodnej transmisji TCP wykorzystuje sekwencyjną

numerację bajtów oraz mechanizm pozytywnych potwierdzeń z retransmisją.

Numer sekwencyjny przypisany do każdego przesyłanego bajtu danych pozwala

na jego jednoznaczną identyfikację, a także jest używany w mechanizmie

przesyłania potwierdzeń. Ponieważ kolejne bajty są numerowane począwszy od

ISN, a zatem numer pierwszego bajtu wysłanego w połączeniu wirtualnym

wynosi ISN+1 ( zazwyczaj ISN=0).

Nadawczy moduł TCP dokonuje retransmisji danych do czasu, aż

otrzyma potwierdzenie poprawnego ich przyjęcia przez odbiorczy moduł TCP.

Rozpoczęcie retransmisji uwarunkowane jest przekroczeniem wcześniej

ustalonego czasu oczekiwania na nadejście potwierdzenia. Po stronie odbiorczej

poprawność odbioru danych sprawdzana jest przy użyciu pola suma kontrolna

znajdującego się w nagłówku segmentu. Jeżeli dane są akceptowane to moduł

TCP wysyła zwrotnie pozytywne potwierdzenie. Jest ono zawarte w polu numer

potwierdzenia. Wszystkie bajty danych o numerach sekwencyjnych mniejszych

od wartości zawarte w tym polu zostały odebrane poprawnie. W sytuacji, gdy

dane zostały odebrane poprawnie, a nadawczy moduł TCP retransmitował je np.

z powodu zaginięcia segmentu z pozytywnym potwierdzeniem, odbiorczy moduł

TCP ma możliwość odrzucenia nadmiarowych danych (duplikatów).



2.3 Protokół UDP

Protokół UDP (User Datagram Protocol) jest protokołem

bezpołączeniowym, nie posiadającym mechanizmów sprawdzających

poprawność dostarczenia danych. Protokół UDP został opracowany w celu

stworzenia aplikacjom możliwości bezpośredniego korzystania z usług IP.

background image

26

Pozwala on aplikacjom na dołączanie do datagramów IP adresów portów

komunikujących się aplikacji. Strukturę pakietu protokołu UDP

przedstawiono na rysunku 2.4.

Rys. 2.4. Struktura pakietu protokołu UDP

Pole port źródłowy (16 bitów) określa numer portu nadawczego procesu

aplikacji. Jeśli pole to nie jest wykorzystane, to zawiera same zera. Pole port

docelowy (16 bitów) zawiera numer procesu aplikacji na komputerze

docelowym. Pole długość (16 bitów) zawiera całkowitą długość pakietu

(nagłówek i dane) w bajtach. Pole suma kontrolna jest szesnastobitowym

jedynkowym uzupełnieniem jedynkowo uzupełnionej sumy słów nagłówka i

danych pakietu. Protokół UDP jest wykorzystywany w sytuacjach, gdy

przesyłamy niewielką liczbę danych. Również protokół ten mogą używać

aplikacje działające według modelu zapytanie-odpowiedź. Ogólnie możemy

powiedzieć, że protokół UDP może być z powodzeniem używany tam gdzie nie

są wymagane usługi protokołu TCP.

2.4 Protokół IP

Protokół IP (Internet Protocol) jest przeznaczony do sieci z komutacją pakietów.

Pakiet jest nazywany przez IP datagramem. Każdy datagram jest podstawową,

samodzielną jednostką przesyłaną w sieci na poziomie warstwy Internet.

background image

27

Datagramy mogą być adresowane do pojedynczych węzłów lub do wielu

węzłów. W przesyłaniu datagramów poprzez sieci uczestniczą routery (węzły

sieci), które określają dla każdego datagramu trasę od węzła źródłowego do

węzła docelowego. W różnych sieciach mogą być ustalone różne maksymalne

długości datagramów, więc w zależności od potrzeb, datagram może być

podzielony na kilka mniejszych części, tzn. na kilka datagramów. Tę operacją

nazywamy fragmentacją datagramów. Format każdego fragmentu jest taki sam

jak format każdego innego niepodzielnego datagramu. Konieczność fragmentacji

datagramu może być również następstwem przesyłania datagramów przez sieci

rozległe dopuszczające inne protokoły i inne długości pakietów, np. sieci X.25 z

pakietami o maksymalnej długości 128 bajtów. Kompletowanie pierwotnego

datagramu z fragmentów dokonuje się w komputerze docelowym. Z chwilą

nadejścia pierwszego fragmentu ustala się czas oczekiwania na skompletowanie

datagramu. Jeśli w tym okresie czasu nie nadejdą pozostałe fragmenty to

następuje przerwanie oczekiwania i skasowanie już otrzymanych fragmentów.

Na rysunku 2.5. została przedstawiona struktura datagramu IP.

Rys. 2.5. Struktura datagramu IP

Pole wersja (4 bity) określa numer użytej wersji protokołu IP. Jest ono

konieczne, ponieważ routery lub komputery w sieci mogą używać różnych wersji

IP. Pole długość nagłówka (4 bity) określa liczbę słów 32 bitowych

background image

28

składających się na nagłówek datagramu. Typowa (minimalna) długość

nagłówka wynosi 5. Pole typ usług (8 bitów) określa jakość usług jakiej wymaga

się od sieci. Znaczenie poszczególnych bitów tego pola jest następujące:

1. Pierwsze trzy pola określają tzw. pierwszeństwo, np. 000 - oznacza datagram

zwykły, 001 - priorytetowy, 010 - natychmiastowy, 011 błyskawiczny, a 100 -

datagram super błyskawiczny.

2. Bit czwarty to bit D określający opóźnienie w sieci (D=0 oznacza normalne,

D=1 małe opóźnienie).

3. Kolejny bit to bit T związany z przepustowością (T=0 oznacza normalną, a

T=1 dużą przepustowość).

4. Bit szósty R pozwala wybrać niezawodność w dostarczeniu datagramu (R=0

normalna, R=1 duża niezawodność).

5. Ostatnie dwa bity mają wartości równe zeru i są zarezerwowane dla

przyszłych zastosowań.

Pole całkowita długość pakietu (16 bitów)definiuje długość datagramu

IP w bajtach (oktetach). Maksymalna długość datagramu wynosi 65535 bajtów.

Kolejne trzy pola w nagłówku są wykorzystywane przez protokół IP do

fragmentacji datagramów i do operacji odwrotnej, tzn. do składnia z krótkich

fragmentów pierwotnego datagramu. Te pole to identyfikacja, flaga i przesunięci

fragmentu. Pole identyfikacja (16 bitów) jest używane do jednoznacznego

oznaczenia każdego fragmentu pierwotnego datagramu. Identyfikator

zamieszczony w tym polu jest powtarzany we wszystkich fragmentach

składających się na pierwotny datagram. Pole flagi zawiera 3 bity. (pierwszy -

zawsze zero, drugi określa czy można (1) czy nie można (0) fragmentować

datagram, trzeci - identyfikacja ostatniego fragmentu składającego się na

pierwotny datagram (wartość 0 określa ostatni, 1 oznacza kolejny fragment).

Pole przesunięcie fragmentu (13 bitów) wskazuje, którą częścią całości

pierwotnego datagramu jest dany fragment.

background image

29

Poszczególne fragmenty mają pola danych o długości będącej wielkością

8 bitów. Wyjątkiem jest ostatni fragment, którego długość wynika z długości

pierwotnego datagramu. W polu tym podaje się o ile zawartość fragmentu jest

przesunięta w stosunku do początku pola danych pierwotnego datagramu.

Pole

czas życia (8 bitów) jest parametrem określającym ile czasu datagram może

przebywać w sieci. Czas życia datagramu ustala nadawca umieszczając w tym

polu liczbę naturalną. Przy przejściu przez kolejny router liczba ta jest

zmniejszana o 1. Zmniejszenie do zera powoduje odrzucenie datagramu. Pole

protokół (8 bitów) określa numer protokołu warstwy transportowej, do którego

należy przesłać dane z datagramu; np. numer 6 oznacza protokół TCP, a numer 1

protokół ICMP. Pole suma kontrolna nagłówka (16 bitów) służy do

sprawdzania poprawności odbioru wyłącznie nagłówka datagramu. Jest to

szesnastobitowe jedynkowe uzupełnienie jedynkowo uzupełnionej sumy

wszystkich szesnastobitowych słów nagłówka i danych pakietu. Przy obliczaniu

sumy kontrolnej przyjmuje się, że pole to zawiera same zera. Suma ta podlega

weryfikacji i modyfikacji np. w trakcie zmian pola czas życia w każdym węźle

sieci. Pola adres źródła i adres docelowy (po 32 bity) zawierają adresy IP

odpowiednio komputera źródłowego i docelowego. Pole opcje, zmiennej

długości będącej wielokrotnością 8 bitów, jest wykorzystywane do określenia

dodatkowych wymagań dotyczących sposobu przesyłania datagramu, np. do

rejestrowania przebytej trasy lub do zapamiętania trasy zdefiniowanej w węźle

źródłowym. Pole to nie musi występować w nagłówku datagramu. Pole

wypełnienie jest ewentualnym dopełnieniem pola opcje do wielokrotności 32

bitów .

2.5. Protokół ICMP

Protokół IP jako protokół bezpołączeniowy nie posiada mechanizmów

informowania o błędach. Do tego celu przeznaczony jest protokół ICMP(Internet

background image

30

Control Message Protocol). Umożliwia on przesyłanie między komputerami lub

routerami informacji o błędach występujących w funkcjonowaniu sieci IP np.:

a) brak możliwości dostarczenia datagramu do miejsca przeznaczenia,

b) zmiana wcześniej wyznaczonej trasy przez jeden z pośredniczących routerów,

c) brak wolnej pamięci buforowej dla zapamiętania datagramu.

Informacje o tych zaburzeniach w działaniu sieci noszą nazwę

komunikatów. Komunikaty protokołu ICMP są przesyłane wewnątrz

datagramów IP. Każdy komunikat ma własny format. Jednak wszystkie

rozpoczynają się takimi samymi polami: typ, kod oraz suma kontrolna. Dalsze

pola zależą od typu komunikatu ICMP. Przykład formatu komunikatu o

kłopotach z parametrami datagramu IP jest przedstawiony na rysunku 2.6.

Rys. 2.6. Format komunikatu o ICMP

Pole typ określa rodzaj komunikatu, a pole kod opisuje kod błędu. W

polu suma kontrolna zawarte jest szesnastobitowe jedynkowe uzupełnienie

jedynkowo uzupełnionej sumy szesnastobitowych słów komunikatu ICMP. Pole

wskaźnik określa bajt, w którym wystąpił błąd, natomiast pole informacja

zawiera nagłówek oraz pierwsze 64 bity datagramu IP, w którym wykryto błąd .

Protokół ICMP posługuje się 12 komunikatami, które są wymieniane między

routerami i / lub komputerami. Komunikaty te dotyczą przede wszystkim:

background image

31

a) przekroczenie czasu życia datagramu. Komunikat jest wysyłany jeśli po

wykonaniu odpowiednich obliczeń, wartość pola czas życia datagramu IP

osiągnie zero,

b) wystąpienia niezrozumiałego parametru. Komunikat ten sygnalizuje

wystąpienie niedopuszczalnej wartości w pewnym polu nagłówka datagramu IP,

c) wykrycie nieosiągalnych miejsc przeznaczenia. Jeśli nieosiągalnym adresatem

jest komputer w sieci, to komunikat ten jest wysyłany przez routery

pośredniczące w transferze datagramów. Jeżeli nieosiągalnym miejscem

przeznaczenia jest port, to komunikaty wysyła docelowy komputer,

d) chwilowego wstrzymania nadawania, gdy datagramy przybywają do

komputera lub pośredniczącego routera szybciej niż można je przetworzyć i

brakuje wolnej pamięci buforowej do ich zapamiętania,

e) sprawdzenia zasobów sieciowych. W celu sprawdzenia poprawności działania

zdalnego systemu wysyła się sygnał echa. System, po otrzymaniu tego

komunikatu, musi natychmiast odesłać go do nadawcy. Brak odpowiedzi

oznacza, że testowany system nie jest sprawny,

f) wskazania innej (krótszej) trasy dla datagramów,

g) określenia opóźnienia związanego z przesyłaniem datagramów przez sieć,

h) identyfikacji sieci przez dołączony do niej komputer (konfiguracja

komputera),

i) otrzymania przez komputer maski podsieci wykorzystywanej w sieci fizycznej.



background image

32


3. Propozycje sposobów przyłączania

nadzorowanych urządzeń do sieci
TCP/IP


W trzecim rozdziale pracy został przedstawiony sposób

podłączania urządzeń do sieci TCP/IP przy wykorzystaniu sterownika

mikroprocesorowego pracującego jako konwerter interfejsów między

danym urządzeniem a różnym typem sieci.











background image

33

3.1. Sterownik jako konwerter między siecią TCP/IP

a urządzeniem

Nadzorowanie urządzeń poprzez sieć TCP/IP, które nie posiadają

interfejsu sieciowego umożliwiającego bezpośrednie podłączenie urządzenia do

danego typu sieci, wymaga podłączenia modułu (sterownika) między interfejsem

danego urządzenia a interfejsem sieciowym. Moduł ten powinien odpowiadać za

konwersję sygnałów wejścia/wyjścia danego urządzenia na sygnały panujące w

medium transmisyjnym w danym typie sieci internetowej i odwrotnie, czyli

konwertować sygnały sieciowe na sygnały odpowiadające obsłudze danego

urządzenia. Przykład urządzenia podłączonego do sieci TCP/IP poprzez

sterownik odpowiadający za konwersję interfejsów jest przedstawiony na

rysunku 3.1.

Rys.3.1. Sposób podłączania nadzorowanych urządzeń do sieci TCP/IP

background image

34

4. Projekt sterownika mikropro-

cesorowego umożliwiającego
zadawanie i odczyt stanów
urządzeń poprzez sieć TCP/IP

W tym rozdziale przedstawiłem projekt sterownika

umożliwiającego zadawanie i odczyt stanów poprzez sieć TCP/IP.

Najpierw scharakteryzowałem wybrany do sterownika mikrokontroler a

następnie przedstawiłem schemat blokowy urządzenia i schematy ideowe

jego poszczególnych bloków. Na końcu tego rozdziału umieściłem wykaz

elementów użytych w zaprojektowanym sterowniku.

background image

35

4.1. Wybór mikrokontrolera

Projekt sterownika mikroprocesorowego umożliwiającego zadawanie i

odczyt stanów urządzeń poprzez sieć TCP/IP wykonałem na bazie

mikrokontrolera DS80C400 firmy Maxim/Dallas[8]. Wybrałem ten

mikrokontroler ze względu, iż producent zaimplementował pełny stos

protokołów TCP/IP w pamięci ROM mikrokontrolera oraz udostępnia pełne

oprogramowanie do tego mikrokontrolera. Przy projektowaniu sterownika

pomocny przydał się kit oferowany przez firmę Maxim/Dallas o nazwie TINI400

[10], gdzie wykonany przeze mnie projekt oparty jest na tym zestawie.

Wbudowanie stosu TCP/IP przez producenta ułatwiło mi wykonanie sterownika

pracującego w sieci internetowej. Oprócz zaimplementowania stosu TCP/IP,

producent wyposażył mikrokontroler DS80C400 w wiele urządzeń

peryferyjnych. Posiada on trzy porty szeregowe, kontroler interfejsu CAN 2.0B,

interfejs jednoliniowy (1-Wire Master) i 64 linie we/wy. Zaimplementowany stos

TCP/IP pozwala na obsługę jednocześnie do 32 połączeń TCP i na transfer

danych do 5Mbps przez sieć Ethernet. Maksymalna częstotliwość oscylatora

zasilającego mikrokontroler wynosząca 75MHz pozwala na uzyskanie

minimalnego cyklu instrukcji równego 54ns. Dostęp do zewnętrznej pamięci

programu i danych jest realizowany przez 24-bitowe adresowanie, które

umożliwia zaadresowanie 16MB obszaru danych. W celu poprawy transferu

danych pomiędzy mikrokontrolerem a pamięcią wprowadzono cztery rejestry

indeksowe, które mogą być konfigurowane tak, aby inkrementowały lub

dekrementowały swoją zawartość w zależności od wykonywanej instrukcji.

Sprzętowy „math accelerator” znacznie przyspiesza wykonywanie 32- i 16-

bitowego mnożenia i dzielenia i innych operacji arytmetycznych.


Cechy układu :

background image

36

• Wykonuje pojedynczy cykl instrukcji w 54 ns .

• Częstotliwość oscylatora od DC do 75MHz.

• Ciągła przestrzeń adresowa do 16MB.

• Cztery rejestry indeksowe z automatyczną inkrementacją/dekrementacją.

• Sprzętowy 16/32-bitowy Math Accelator.

• Kontroler 10/100Ethernet Media Accese Controller (MAC).

• Kontroler interfejsu 1-Wire Net.

• Trzy full-duplex porty szeregowe.

• Do ośmiu dwukierunkowych 8-bitowych portów (64 linie we/wy).

• Zapewnia możliwość bootowania (Network Boot Over Ethernet) za

pomocą protokołów DHCP i TFTP.

• Posiada zaimplementowany w ROM pełny, dostępny przez aplikację

użytkownika stos TCP/IP.

• Zaimplementowano protokóły IPv4 i IPv6.

• Zaimplementowano protokoły UDP, TCP, DHCP, ICMP, i IGMP.

• Adres MAC może być opcjonalnie pobrany z układu IEEE-Registered

DS2502-E48.

• Interfejs Ethernet obsługujący standardy IEEE 802.3 MII (10/100Mbps) i

ENDEC (10Mbps) z możliwością wybory PHY.

• 8kB pamięci w układzie dla pakietów danych wysyłanych i odbieranych

na TX/RX z jednostką kontroli bufora redukującą obciążenie jednostki
centralnej.

• Realizuje operacje half- lub full-duplex z kontrolą przepływu danych.

• Filtracja adresów Multicast/Broadcast z obsługą VLAN.

• W pełni funkcjonalny kontroler interfejsu CAN 2.0B(obsługa 11-

bitowych i 29-bitowych identyfikatorów).

• Obsługa 16 źródeł przerwań w tym 6 zewnętrznych.

• Układ posiada cztery 16-bitowe Timer/Couters.

• Układ redukcji zakłóceń elektromagnetycznych (EMI).

• Programowalny układ watchdog.

• Układ detekcji uszkodzenia oscylatora.

• Programowany generator wykorzystywany przez interfejs IrDA.

• Zaawansowany układ redukcji pobieranej mocy (praca rdzenia przy 1,8V,

operacje przy napięciu 3,3V, tryby idle i stop.

• Możliwość wyboru 8/10-bitowego wskaźnika stosu.

• Dodatkowa 1kB wewnętrzna pamięć SRAM wykorzystywana jako stos

dla danych.

• 16-bitowe/24-bitowe strony w trybie 24-bitowej obsługi pamięci.

• Możliwość wyboru pracy interfejsu do obsługi pamięci zewnętrznej :praca

multipleksowa lub niemultipleksowa.

Możliwość programowania mikrokontrolera w systemie (In-System
Programming).

background image

37

Schemat blokowy mikrokontrolera DS80C400 jest przedstawiony na rysunku
4.1.




Rys.4.1. Schemat blokowy mikrokontrolera DS80C400

background image

38

Kontrloler Ethernetu 10/100Mbps układu DS80C400 obsługuje

protokoły warstwy fizycznej wymagane przez standard Ethernet/IEEE 802.3.

Zapewnia on mechanizmy do odbioru, nadawania i kontroli przepływu danych

przez niezależny od nośnika interfejs (MII), który zawiera szeregowy interfejs

pozwalający na konfiguracje zewnętrznych urządzeń fizycznych (external PHY

devices). Interfejs MII może być konfigurowany do pracy w trybie half-duplex

lub full-duplex przy prędkości 10Mbps lub 100Mbps, lub może pracować w

trybie 10Mbps ENDEC. Dla trybu half-duplex układ DS80C400 współdzieli

fizyczny nośnik Ethernetu z innymi stacjami w sieci. DS80C400 przy dostępie

do sieci korzysta z metody CSMA/CD. Schemat blokowy interfejsu Ethernet

mikrokontrolera DS80C400 jest przedstawiłem na rysunku 4.2.

Rys.4.2. Schemat blokowy interfejsu Ethernet mikrokontrolera DS80C400

Mikrokontroler DS80C400 posiada 64kB wewnętrzną pamięć ROM

(TINI400 ROM), w której zaimplementowano wiele funkcji dostępnych dla

aplikacji napisanych przez użytkownika. Każda z tych funkcji znajduje się pod

background image

39

określonym adresem w pamięci programu. Adres absolutny każdej funkcji z

TINI400 ROM musi być przeczytany z tabeli eksportu adresów (również

znajdującej się w pamięci ROM). Ze względu na elastyczność oprogramowania

tabela eksportu adresów nie znajduje się pod określonym adresem, lecz jej

początek jest wskazywany przez 3-bajtowy wskaźnik znajdujący się pod adresem

(trzema adresami): FF0002h (XSB), FF0003h (MSB), FF0004h (LSB). Trzy

pierwsze bajty tabeli zawierają liczbę funkcji w niej zawartych. Pozostałe bajty

tabeli (z krokiem co 3 bajty) zawierają absolutne adresy funkcji eksportowanych

z pamięci ROM. Sposób obliczania absolutnych adresów funkcji jest

przedstawiony na rysunku 4.3

.

Rys. 4.3. Sposób obliczania absolutnych adresów funkcji w mikrokontrolerze

DS80C400

W pamięci ROM mikrokontrolera zostały zaimplementowane funkcje

obsługi gniazd TCP/IP zgodnie ze standardem Berkley. Stos obsługuje protokoły

TCP i UDP, umożliwiając utworzenie do 24 gniazd klient/serwer dla IPv4 lub

IPv6. W tabeli 4.1 przedstawiona jest lista funkcji obsługi gniazd, które zostały

zaimplementowane w pamięci ROM.

background image

40

Tabela. 4.1 Funkcje obsługi gniazd zaimplementowane w pamięci ROM.

N

Na rysunku 4.4. przedstawiona jest typowa kolejność wywołań funkcji do

tworzenia połączeń server - klient dla protokołów TCP i UDP w

mikrokontrolerze DS80C400.













Rys.4.4. Tworzenie połączeń TCP i UDP

background image

41


4.2. Projekt schematu blokowego sterownika




Przy projektowaniu schematu blokowego sterownika umożliwiającego

zadawanie i odczyt stanów poprzez sieć TCP/IP uwzględniłem następujące

czynniki:

• Mikrokontroler DS80C400 nie ma wewnętrznej pamięci do

przechowywania aplikacji napisanych przez użytkownika .

• Sterownik będzie korzystał z aplikacji napisanych w języku Java oraz

do pamięci programu zostanie zainstalowanie środowisko wykonawcze

TINI Java Runtime Environment [9] poprzez program MTK

(Microcontroller Tool Kit) [10] całość jest udostępniona przez firmę

Maxim/Dallas.

Sterownik zostanie podłączony do sieci typu Ethernet standardu

10Base-T i 100Base-TX.

• Mikrokontroler będzie się łączył z układem PHY(PHysical laYer)

wykorzystując interfejs MII (Media Independent Interface).

• Adres fizyczny MAC będzie odczytywany przez mikrokontroler z

układu DS2502-E48 [11].

• Sterownik zostanie wyposażony w układ RTC (Real Time Clock).

Uruchamianie aplikacji na sterowniku będzie wymagało wyposażenia

go w port szeregowy RS-232 typu DCE (Data Communication

Equipment) dodatkowo sterownik będzie wyposażony w port

szeregowy RS-232 typu DTE(Data Terminal Equipment).

background image

42

• Sterownik będzie wyposażony w układ rezerwowego zasilania (battery

backup) dla przechowywania zawartości pamięci RAM i modułu

liczącego w układzie RTC, w chwili zaniku zasilania zasadniczego.

• Projekt sterownika zostanie wyposażony w blok zasilania z

odpowiednimi wartościami napięć do poszczególnych bloków

sterownika.

Projekt schematu blokowego umieściłem na rysunku 4.5

Rys.4.5 Schemat blokowy sterownika


background image

43


4.3. Blok mikrokontrolera


Schemat ideowy bloku mikrokontrolera przedstawiłem na rysunku 4.6.

Mikrokontroler DS80C400 jest zasilany dwoma napięciami +1,8V(praca rdzenia)

i +3V(operacje logiczne na I/O). Z blokiem pamięci pracuje w trybie

demultipleksowym. Mikrokontroler taktowany jest kwarcem o częstotliwości

14,7456 MHz, jest to optymalna częstotliwość kwarcu dla tego mikrokontrolera,

z faktu, że DS80C400 ma wewnętrzny mnożnik 2X/4X częstotliwości

rezonatora kwarcowego.

Rys.4.6. Schemat ideowy bloku mikrokontrolera

background image

44

Blok mikrokontrolera został wyposażony w dwie listwy szpilkowe 4Pin

(J10 i J11) oraz punkt lutowniczy J12, służące jako port I/O sterownika.


4.4. Blok pamięci


Schemat ideowy bloku pamięci jest przestawiony na rysunku 4.7. Blok

pamięci został wyposażony w 1MB pamięci Flash realizowanej na układzie U4

firmy AMD o oznaczeniu AM29LV081[12]. Jest to pamięć o organizacji

1MBx8bit, pamięć ta cechuje się niskim poborem mocy oraz ma gwarantowaną

przez producenta ilość cykli zapisu danych równą 10

6

.

Rys.4.7. Schemat ideowy bloku pamięci

background image

45

Uaktywnienie pamięci Flash przez mikrokontroler jest dokonywane poprzez

wstawienie stanu niskiego na linii EnFlash. Podanie przez mikrokontroler stanu

niskiego na linii OutReset powoduje reset pamięci Flash. Blok pamięci RAM

mikrosterownika tworzą dwie 512kB pamięci RAM, o organizacji 512kBx8bit,

układy U2 i U3 firmy AMIC o symbolu LP62S4096[13]. Pamięci RAM również

mają niski pobór mocy oraz mogą pracować w trybie rezerwowego zasilania w

tzw. „battery backup operation”. Wybór danej pamięci RAM jest dokonywany

przez wstawienie przez mikrokontroler stanu niskiego na linii EnRAM1 lub

EnRAM2. Zastosowane pamięci, zarówno Flash i RAM maja jednakowy czas

dostępu równy 70ns. Układy U5, U6 produkcji Maxim/Dallas o oznaczeniu

MAX 6365[14], tworzą wraz z 3-voltową baterią litową układ rezerwowego

zasilania pamięci RAM. Układy firmy w zależności od wersji mają różny próg

napięcia V

TH

, przy którym w przypadku zaniku napięcia zasilania pamięci RAM

następuje przełączenie na zasilania bateryjne tej pamięci. W projekcie

sterownika zastosowane są układy MAX6365PKA31 z typową wartością

napięcia progu przełączania V

TH

= 3,08V, tak więc jeżeli napięcie zasilania

pamięci RAM obniży się poniżej danej wartości V

TH

, nastąpi przełączenie

zasilania na zasilanie bateryjne pamięci RAM. W czasie zaniku

zasilania układy

U5 i U6 generują sygnał resetu poprzez wyjście

RST

dla mikrokontrolera oraz

wstawiają stan niski na wyjściach

CEO

, uniemożliwiając w ten sposób wybór

pamięci dokonywany na liniach EnRAM1 i EnRAM2. Linia ResetIn służy do

resetowania mikrokontrolera DS80C400 w momencie uruchamiania programu

MTK na komputerze PC. Linia ta wykorzystuje sygnał DTR portu szeregowego.

Podanie stanu niskiego na linii ResetIn powoduje wstawienie sygnału niskiego

na wyjściach

RST

układów U5 i U6. Ponieważ mikrokontroler DS80C400 do

resetowania się potrzebuje sygnału wysokiego na linii Reset, konieczne jest

zastosowanie inwertera, który jest wykonany na tranzystorze Q3 produkcji

Fairchild semiconductor o symbolu BS84. Zapis i odczyt pamięci RAM i Flash

jest wykonywany przez mikrokontroler poprzez podanie sygnału niskiego

odpowiednio na liniach Wr i Psen.

background image

46

4.5. Blok PHY

Schemat ideowy bloku PHY przedstawiłem na rysunku 4.8. Transceiver

do sieci Ethernet tworzy układ U7 produkcji Realtek o oznaczeniu RTL

8201BL[15]. Układ ten obsługuje standardy sieci Ethernet typu 10Base-T,

100Base-TX oraz 100Base-FX. Praca układu może odbywać się w trybie full

duplex / half duplex, w strukturze układu zawarty jest mechanizm

autonegocjacji, służący do ustalania parametrów łącza(100Base-TX), układ

obsługuje interfejs MII i SNI, ten ostatni jest dostępny tylko dla standardu

10Base-T.

Rys.4.8. Schemat ideowy bloku PHY

background image

47

Konfiguracja układu może odbywać sprzętowo poprzez podanie odpowiednich

stanów logicznych na wybranych wejściach układu, lub tez może odbywać

programowo przez kontroler MAC poprzez linie MDC/MDIO

.

Schemat blokowy

układu RTL8201 BL umieściłem na rysunku 4.9.

Rys.4.9. Schemat blokowy układu RTL8201 BL

Struktura układu zawiera blok obsługi prędkości łącza 100Mbit/s (

wykorzystuje kod 4B/5B oraz liniowy trójpoziomowy kod MLT-3), blok obsługi

prędkości łącza 10Mbit/s (wykorzystywany kod Manchester) oraz jednostkę

przełączającą 10/100 half/full Switch Logic, która komunikuje bezpośrednio z

background image

48

kontrolerem MAC poprzez interfejs MII/SNI . Interfejs MII składa się z 18

sygnałów (TXD[3:0], TXEN, TXCLK, CRS, COL, MDC, MDIO, RXD[3:0],

RXDV, RXCLK oraz RXER/FXEN). Dane są obsługiwane w sposób

synchroniczny i w zależności od prędkości łącza sygnały zegara TXCLK,

RXCLK wynoszą 25MHz przy 100Mbit/s i 2,5MHz przy 10Mbit/s. Podczas

nadawania MAC najpierw wstawia „jedynkę” na linii TXEN a następnie

zamienia dane na 4-bitowe ramki i podaje je na linie TXD[3:0] bloku PHY.

Transceiver PHY próbkuje dane na liniach TXD[3:0] z częstotliwością zegara na

linii TXCLK. Podczas odbioru danych układ PHY wstawia „jedynkę” na linii

RXEN a następnie podaje układowi MAC z częstotliwością zegara RXCLK, 4-

bitową ramkę na linie RXD[3:0]. Linie CRS i COL służą do detekcji i obsługi

kolizji. Układ RTL8201BL jest odseparowany od sieci Ethernet poprzez

transformator separujący. W projekcie został użyty transformator T1 firmy

Bothhand o oznaczeniu 16PT8515[20], z specyfikacją zgodną do układu

RTL8201BL. Jest to podwójny transformator separujący, z przekładnią sygnałów

nadawania równą 1:

2

oraz z przekładnią sygnałów odbierania równą 1:1.

Sprzętowa konfiguracja parametrów łącza jest wykonywana przez

przełącznik S1, gdzie poszczególne sekcje przełącznika oznaczają:

1. Tryb PWD (Power Down Mode), tryb o obniżonym poborze mocy, odłączony

zostaje interfejs zarządzania MDC/MDIO, tryb aktywowany stanem wysokim.

2. Sekcja nie podłączona

3. Tryb LDPS (Link Down Power Saving)

4. Tryb RPTR

5.Wybór prędkości pracy transceivera (10Mbit/s -stan niski lub 100Mbit/s-stan

wysoki).

6.Wybór trybu pracy transceivera Full duplex-stan wysoki lub Half duplex-stan

niski.

7. Tryb autonegocjacji.

background image

49

4.6. Blok RTC i adresu MAC

Schemat ideowy bloku RTC i adresu MAC przedstawiłem na rysunku

4.10. Adres fizyczny MAC sterownika jest pobierany z układu U9 firmy

Maxim/Dallas o oznaczeniu DS2502-E48. Jest to pamięć o pojemności 1kbit-a

typu OTP-EPROM, gdzie w pierwszych 32-bajtach tej pamięci jest zawarty

unikatowy 48-bitowy adres MAC przydzielony przez IEEE. Pierwsze 32-bajty

pamięci DS2502-E48 są chronione przed zapisem, tak więc dla użytkownika jest

dostępne raz programowalne 768 bity. Do komunikacji pamięci U9 z

mikrokontrolerem wykorzystywany jest interfejs 1-Wire.

Rys.4.10. Schemat ideowy bloku adresu MAC (po lewej stronie) i bloku RTC (po

prawej stronie)

Blok RTC oparty jest na układzie U8 o symbolu DS1672U-33 [16] firmy

Maxim/Dallas. Jest to układ czasowy rodziny Timekeeper, wyposażony w

wewnętrzny obwód resetujący i przełącznik zasilania podtrzymującego. Pozwala

wyeliminować kilka niezależnych układów scalonych, wymaganych dotąd do

realizacji tych funkcji oraz pracuje z niskim napięciem zasilania z zakresu od

2,0V do 3,3V. Komunikacja z mikroprocesorem jest realizowana za

background image

50

pośrednictwem 2-żyłowego interfejsu. DS1672U-33 zawiera 32-bitowy licznik

sekund, z którego na podstawie programowego algorytmu wyznaczane są data i

godzina. W projekcie sterownika układ DS1672 jest

taktowany wbudowanym

generatorem, wymagającym dołączenia zewnętrznego rezonatora kwarcowego

32,768 kHz. Podtrzymanie pracy zegara zapewnia dodatkowe wyprowadzenie

zasilające, przeznaczone do podłączenia baterii o napięciu 3 V.

4.7. Blok zasilania

Schemat ideowy bloku zasilania jest przedstawiony na rysunku 4.11. Do złącza

J2 dostarczane jest napięcie niestabilizowane ze zewnętrznego zasilacza o

wartości DC = 8 V...12V. Układ U9 jest to typowy stabilizator 5V w obudowie

TO-220 o oznaczeniu UA7805. Układ U11 tworzy stabilizator napięcia 3,3V,

który jest wykonany na układzie MAX1692 [17] firmy Maxim/Dallas. Jest to

impulsowy stabilizator PWM, charakteryzujący się bardzo dobrą sprawnością

(95% według danych producenta) i z wydajność prądową około 600mA Na

rysunku 4.11 jest przedstawiony typowy układ połączeń dla tego stabilizatora.

Ponieważ jest to stabilizator impulsowy na wyjściu został zastosowany koralik

ferrydowy L4 służący do tłumienia częstotliwość pracy stabilizatora. Układ U12

o symbolu MAX1792EUA18 [18] również produkcji MaximDallas jest 1,8 V

stabilizatorem napięcia typu Low-dropout dla zasilania rdzenia mikrokontrolera

DS80C400.

background image

51

Rys. 4.11 Schemat ideowy bloku zasilania

4.8. Blok interfejsu RS-232

Schemat ideowy bloku interfejsu RS-232 umieściłem na rys.4.12. Układ

U13 o oznaczeniu MAX560 [19] produkcji Maxim/Dallas, jest 3,3V

transceiverem obsługującym standard transmisji szeregowej RS-232. W 28-

nóżkowej obudowie typu SOP producent umieścił bufory odwracające składające

się z czterech linii nadawczych i pięciu linii odbiorczych oraz konwerter

poziomów napięć z +3,3V na

±6,6V. Konwerter napięć wymaga dołączenia

czterech kondensatorów o pojemności 1

µF .

Rys.4.12 Schemat ideowy bloku interfejsu RS-232

W projekcie został użyty port typu DCE (złącze J8), do którego jest

„ładowane” oprogramowanie sterownika poprzez komputer PC z interfejsem

background image

52

szeregowym oraz port typu DTE (złącze J9) oraz port typu DTE (złącze J9),

gdzie w przypadku odpowiedniego programu umieszczonego w sterowniku

mogą zostać podłączone inne urządzenia posiadające port szeregowy. Układ

MAX560 posiada tzw. tryb „Shutdown Mode”, przy którym linie nadawcze

transceivera są odłączone, wyłączony zostaje też konwerter napięć a sygnały +V

i –V zostają podłączone z sygnałami odpowiednio VCC i GND. Uaktywnienie

tego trybu jest dokonywane przez wstawieni stanu L na linii

SHDN

transceivera

do którego służy złącze J7. Złącze J6 umożliwia reset mikrokontrolera w

momencie uruchamiania programu MTK na komputerze PC.

4.9. Układ do odczytu temperatury i włączania

diody LED

Zaprojektowany sterownik umożliwia poprzez sieć TCP/IP odczyt

temperatury z zewnętrznego czujnika temperatury oraz zapalanie diody LED .

Do obsługi tych urządzeń potrzeba jest przystawka (oddzielna płytka PCB),

schemat ideowy przystawki umieściłem na rysunku 4.13.

background image

53

Rys.4.13. Schemat ideowy przystawki do pomiaru temperatury i
włączania

diody LED

Czujnikiem temperatury jest układ U15 o oznaczeniu DS1820 [20]

produkcji Maxim/Dallas. Jest cyfrowy czujnik temperatury o bardzo dobrej

dokładności pomiaru (

± 0,5°C w zakresie od -10°C do +85°C), wyposażony w

interfejs 1-Wire. Układ U14 o symbolu DS2480B [21] również firmy

Maxim/Dallas jest konwerterem interfejsu jednoliniowego (1-Wire) na interfejs

szeregowy. Dioda D4 jest zapalana przez odpowiednią aplikację wykorzystującą

sieć TCP/IP.

4.10. Wykaz elementów

Wykaz elementów użytych do wykonania sterownika jest przedstawiony poniżej.


Rezystory :
R5,R11,R12,R13,R14,R15,R16....................................................................5,1k
R27............................................................................................................... 10
Rezystory SMD :
R1,R3,R4,R10,R31,R33............................................................................... 10k
R2................................................................................................................ 1,8k
R6................................................................................................................ 5,6k
R20,R21,R24,R25...................................................................................... 5,1k
R7,R8,R9,R10.............................................................................................. 50
R17,R18....................................................................................................... 75
R19,R22,R34................................................................................................ 510
R28............................................................................................................... 2,2k
R29.............................................................................................................. 200k
R30.............................................................................................................. 120k
R32.............................................................................................................. 47k

Kondensatory SMD :
C1,C2,C3,C4,C5,C8,C9,C10,C11,C12,C13,C16, C17,C18,
C20,C21,C22,C23,C24,C26,C27,C28,C30,C32,C35,C39,C45,C48...........100nF
C6,C7...........................................................................................................27pF
C14,C15.......................................................................................................20pF
C34...............................................................................................................220nF
C36...............................................................................................................47pF

Kondensatory tantalowe SMD :

background image

54

C25,C33,C38,C40........................................................................................22uF/16V
C41,C42,C43,C44,C46................................................................................1uF/16V

Kondensatory elektrolityczne :
C31.......................................................................................... ...................47uF/16V

Diody SMD :
DN1..............................................................................................................BAT54S
D3.................................................................................................................BAT54

Tranzystory SMD :
Q1,Q3,Q4…………………………………………………………………..BSS84
Q2…………………………………………………………………………..2N7002

Układy scalone :
U1……………………………………………………………………….DS80C400




U2,U3……………………………………………….………………… LP62S4096
U4.............................................................................................................AM29LV081
U5,U6.....................................................................................................MAX6365PKA31
U7............................................................................................................RTL8201BL
U8............................................................................................................DS1672U-33
U9............................................................................................................DS2502-E48
U10............................................................................................................UA7805
U11............................................................................................................MAX1672
U12.......................................................................................................MAX1792EUA18
U13..............................................................................................................MAX560
U14..............................................................................................................DS2480B
U15...............................................................................................................DS1820


Rezonatory kwarcowe:
Y1................................................................................................................14,7456MHz
Y2................................................................................................................25,0000MHz
Y3................................................................................................................32,768kHz




Inne :
Bateria litowa 3V BT1: CR2016
Diody LED :D1,D2
Gniazda : RJ-45, DB9-M, DB9-F, gniazdo zasilania
Przełącznik typu „SwitchDIP”
Listwy szpilkowe

background image

55




:




5. Wykonanie i uruchomienie zapro-
jektowanego sterownika

W rozdziale piątym pracy przedstawiłem projekt płytki drukowanej

sterownika, sposób wykonania płytki drukowanej, uruchomienie

sterownika oraz zainstalowanie przykładowych aplikacji do danego

sterownika.

background image

56

5.1. Projekt płytki drukowanej

Płytkę drukowaną sterownika internetowego zaprojektowałem przy

pomocy programu Protel 99 SE, firmy Protel International. Projekt płytki

drukowanej wykonałem przy użyciu dwóch warstw, co zminimalizowało

wymiary płytki, jej wymiary wynoszą 115mmx115mm. Dla skutecznego

rozprowadzenia prądów zasilania, szerokości ścieżek zasilających i masy zostały

powiększone do niezbędnych rozmiarów. Szerokości ścieżek zaczynają się od

0,2mm do 3mm. Małe szerokości połączeń są użyte do komunikacji

mikrokontrolera z blokiem pamięci i blokiem PHY, ponieważ większość tych

układów ma rozstaw wyprowadzeń równy 0,5mm, a to z kolei wymusza

odpowiednią szerokość ścieżki. Najgrubsze połączenia stanowią linie zasilające

poszczególne układy sterownika. Na płytce drukowanej sterownika zostały

umieszczone wszystkie złącza występujące w schemacie ideowym sterownika.

W warstwie tylnej płytki drukowanej zostało przewidziane miejsce na 3-voltową

background image

57

baterię BT1 dla układu rezerwowego zasilania. Na rysunku 5.1. przedstawiłem

widok górnej warstwy płytki drukowanej (Top Layer), natomiast na rysunku 5.2

przedstawiony jest widok tylnej warstwy płytki drukowanej (Bottom Layer).

Zamieszczone na rysunkach płytki są przedstawione w skali 1:1.

background image

58

Rys.5.1. Widok górnej warstwy płytki drukowanej sterownika

w skali 1:1

background image

59

Rys.5.2. Widok dolnej warstwy płytki drukowanej sterownika

w skali 1:1

5.2 Wykonanie sterownika

Płytka drukowana została wykonana metodą fotolitografii. Jako środek

światłoczuły został użyty positiv20. Na początku laminat dwustronny został

odpowiednio wycięty (1cm więcej od każdego boku ) a następnie został

wypolerowany bardzo drobnoziarnistym papierem ściernym. Użycie papieru

ściernego dokładnie wyczyściło laminat od innych substancji. Po przygotowaniu

laminatu została nałożona warstwa emulsji światłoczułej (positiv20), która

następnie została wysuszona. Widoki warstwy górnej i dolnej zostały

wydrukowane na folii z drukarki atramentowej ustawionej na maksymalną

rozdzielczość. Do naświetlania emulsji użyłem lampy halogenowej. Na każdą

powierzchnię laminatu nakładem folię z wzorem płytki ( atramentem do

powierzchni laminatu) i przyciskałem kawałkiem pleksy w celu dokładnego

dociśnięcia folii do laminatu. Przedstawiony proces naświetlania wymagał około

30 minut naświetlenia emulsji światłoczułej dla każdej z obu powierzchni

laminatu. Trudnością przy naświetlaniu laminatu okazało się spasowanie obu

background image

60

warstw co wymagało wywiercenia kilku otworów służących jako przelotki na

płytce drukowanej i spasowania folii pod „światło”. Po naświetleniu

poszczególnych warstw płytka drukowana musiała zostać wywołana

wykorzystując do tego wodorotlenek sodu NaOH w odpowiedniej proporcji z

wodą. Po wywołaniu płytki drukowanej została ona wytrawiona za pomocą

środka trawiącego B327. Mając gotowa płytkę drukowaną sterownika

przystąpiłem do nawiercania otworów na poszczególne elementy sterownika oraz

przelotek, które w projekcie są wykonane poprzez cienki drucik lutowany na

górnej i dolnej warstwie płytki. Otwory były wiercone wiertłem o średnicy od

0,5mm do 0,8mm. Następnym etapem wykonania sterownika było wlutowanie

wszystkich układów sterownika. Na początku zostały zalutowane druciki służące

jako przelotki oraz najmniejsze elementy ( rezystory SMD, kondensatory SMD

diody SMD i tranzystory SMD). Następnym krokiem było zmontowanie bloku

zasilania , gdzie po sprawdzeniu zgodności napięć wyjściowych zamontowane

zostały pozostałe układy sterownika. Płytka drukowana została wyposażona w

„stopki” wykonane z czterech śrubek M3 wkręconych na rogach płytki. Zdjęcie

wykonanego sterownika umieściłem na rysunku 5.3.

background image

61

5.3.

Zdjęcie wykonanego sterownika umożliwiającego zadawanie i odczyt

stanów poprzez sieć TCP/IP

5.3. Zainstalowanie środowiska wykonawczego do

sterownika

Przedstawiony projekt sterownika umożliwiający zadawanie i odczyt

stanów poprzez sieć TCP/IP wykorzystuje aplikacje napisane w języku Java.

Aplikacje te są wykonywane w sterowniku poprzez środowisko wykonawcze

TINI Java Runtime Environment, które musi być zainstalowane wewnątrz

sterownika. Do zainstalowania środowiska wykonawczego potrzebny jest

program o nazwie MicroController Tool Kit (MTK) oraz oprogramowanie TINI

SDK w wersji co najmniej 1.1. Program MTK pracuje pod systemem Windows

98/Me/2000/XP. Po uruchomieniu programu MTK, musimy skonfigurować port

szeregowy do którego jest podłączony sterownik. Połączenie sterownika z

komputerem PC odbywa się kablem typu „prosty”. Po skonfigurowaniu portu

szeregowego i jego otwarciu wyświetla program ładujący tzw. Auto Boot

Loader, który jest na stałe zapisany w pamięci ROM mikrokontrolera. Program

ładujący zarządza ładowanie środowiska wykonawczego do pamięci flash

background image

62

sterownika. Na rysunku 5.4. przedstawiłem widok programu MTK z

uruchomionym Auto Boot Loader-em. Do zainstalowania TINI Java Runtime

Environment wymagane jest załadowanie dwóch plików : tini.tbin oraz

slush.tbin, które znajdują się w oprogramowaniu TINI SDK. Pliki można

załadować wybierając zakładkę File

→Load Tbin i ustawiająć ścieżkę dostępu do

TINI SDK. Plik tini.tbin jest ładowany w pamięci flash o adresie od 400000h do

47000h natomiast plik slush.tbin załadowany zostaje w pamięci flash od adresu

47100h do adresu 48000h ,przestań pamięci miedzy adresami 47000h a 47100h

zostaje wykorzystana do zapamiętywania ustawień sieciowych. sterownika. Po

załadowaniu tych dwóch plików sterownik ma zainstalowane środowisko

wykonawcze, które składa się z systemu operacyjnego TINI OS wirtualnej

maszyny Java i interfejsu API (Application Programming Interface ). Widok

programu MTK przedstawiającego system operacyjny TINI OS umieściłem na

rysunku 5.5.

Rys.5.4 Widok programu MTK z uruchomionym Auto Boot Loader -em

background image

63

Rys.5.5 Widok programu MTK z uruchomionym systemem operacyjnym

TINI OS

Po zalogowaniu się do środowiska TINI uruchamia się prosty interpretator

poleceń systemu operacyjnego tzw. Slush. Interpretator ten steruje funkcjami

sytemu poprzez wpisanie odpowiedniego polecenia np. dane o konfiguracji

sieciowej są wywoływane poprzez wpisanie polecenia ipconfig. Na rysunku 5.6.

umieściłem widok programu MTK przedstawiającego ustawienia sieciowe

sterownika, wyświetlany jest również na nim adres MAC (Ethernet Address)

pochodzący od układu DS2502-E48.

background image

64

Rys.5.6 Widok programu MTK przedstawiającego ustawienia sieciowe sterownika

Zmiana ustawień sieciowych jest dokonywana poprzez dodanie do polecenia

odpowiedniego znaku oraz wartości danej np. polecenie ipconfig –a 192.168.0.2

ustawia adres IP sterownika. Oprócz ustawień sieciowych slush umożliwia

sterowaniem układu RTC, umożliwia połączenia sieciowe FTP oraz połączenia

Telnet. Uruchamia również aplikację pisane w języku Java po wcześniejszym

przekształceniu beta kodu ( pliki z rozszerzeniem .class) na pliki uruchamiane

przez maszynę wirtualną Java w środowisku TINI (pliki z rozszerzeniem .tini).

5.4. Uruchomienie przykładowych aplikacji

W projekcie zostały użyte dwie aplikacje napisane w języku Java (po

niewielkiej modyfikacji), które dostępne są na stronie internetowej

producenta mikrokontrolera po DS80C400. Aplikacje te umożliwiają

zadawanie i odczyt stanów poprzez sieć TCP/IP. Pierwsza z nich o

nazwie TINIWebServer umożliwia odczyt temperatury z czujnika

dołączonego do sterownika. Druga aplikacja o nazwie TINIWebSwitch

umożliwia zadawanie stanu (włączanie/wyłącznie diody LED

podłączonej do sterownika). Do komunikacji z użytkownikiem obie

aplikacje wykorzystują przeglądarkę internetową np. Internet Explorer.

Uruchomienie danej aplikacji wymaga załadowania do pamięci RAM

sterownika poprzez połączenie ftp komputera PC z sterownikiem, pliku

background image

65

odpowiednio TINIWebSwitch.tini lub TINIWebServer.tini. Najpierw

pliki źródłowe muszą zostać skompilowane do czego wykorzystuje się

środowisko JDK Standard Edition 1.2.2 firmy Sun [22], które jest

instalowane na komputerze PC. Po skompilowaniu plików źródłowych

muszą one zostać poddane konwersji aby mogły być uruchamiane przez

JVM środowiska TINI, do czego służą aplikacje Java o nazwie

TINIConvertor lub BuildDependency znajdujące się w TINI SDK w

pliku tini.jar . Uruchamiane są one na komputerze PC korzystając z

wiersza poleceń. Przykład konwersji plików z rozszerzeniem .class na

pliki z rozszerzeniem .tini aplikacji TINIWebServer umieściłem poniżej:

C:\jdk1.2.2\bin>java –classpath h:\tini1.12\bin\tini.jar BuildDependency –f
h:\tini1.12\bin\WebWorker.class –f h:\tini1.12\bin\TemperatureWorker.class
-f h:\tini1.12\bin\TINIWebServer.class -o h:\tini1.12\bin\TINIWebServer.tini
-d h:\tini1.12\bin\tini.db –add OneWireContainer10 –x h:\tini1.12\bin\owapi_
dep.txt –p h:\tini1.12\bin\owapi_dependencies_TINI.jar –p h:\tini1.12\bin\
modules.jar –add HTTPSERVER

Ścieżka dostępu h:\tini1.12\bin wskazuje na oprogramowanie TINI SDK dla

systemu TINI .Poszczególne znaczniki oznaczają:

-f - wskazuje , które pliki muszą być skonwertowane (pliki z

rozszerzeniem .class),

-o - wskazuje miejsce umieszczenia pliku skonwertowanego (plik z

rozszerzeniem .tini),

-d - wskazuje miejsce utworzenia bazy danych dla systemu TINI,
-p -wskazuje miejsce klasy zależnej,
-x -wskazuje listę plików zależnych,
-add -dodaje bibliotekę,

Po wygenerowaniu pliku z rozszerzeniem .tini należy umieścić go w

pamięci sterownika, do czego wykorzystujemy połączenie ftp. Następnie

przy włączonym interpretatorze poleceń Slush uruchamiamy aplikację

TINIWebServer poprzez polecenie java TINIWebServer.tini .Możemy

teraz włączyć przeglądarkę i w pasku adresu wpisać adres internetowy

sterownika poprzez http:// 192. 168. 0. 2. przy prawidłowo skonfigurowanej

background image

66

sieci lokalnej uruchamia się strona internetowa sterownika odczytująca

temperaturę czujnika w stopniach Fahrenheita oraz czas odczytujący z

układu RTC. Na rysunku 5.7 przedstawiłem widok uruchomionej strony .

Rys.5.7. Widok strony generowanej przez sterownik (aplikacja TINIWebServer)

Uruchomienie aplikacji TINIWebSwitch wymaga zainstalowania do

przeglądarki internetowej wirtualnej maszyny java JVM, ponieważ

aplikacja ta uruchamia Aplett Java na przeglądarce. Widok strony

przedstawiający aplikacje pozwalającą na włączanie i wyłączanie diody

LED jest przedstawiony na rysunku 5.8.

background image

67




Rys.5.8. Widok strony generowanej przez sterownik (aplikacja

TINIWebSwitch)

6. Przeprowadzenie badań wyko-

nanego sterownika w warunkach
przyłączenia go do wybranych sieci
TCP/IP.

W szóstym punkcie pracy została dokonana analiza przepływu

danych sterownika podłączonego do sieci lokalnej przy pomocy programu

IRIS w wersji 4.06.

background image

68

6.1. Analiza przepływu danych sterownika

podłączonego do sieci LAN przy wyko-

rzystaniu programu IRIS.

Sterownik został podłączony do innego komputera w sieci LAN, gdzie na

tym komputerze odbywało się włączanie i wyłączanie diody LED podłączonej do

sterownika. Uruchomiony program IRIS na komputerze pozwalał na odczyt

ruchu przepływu danych w sieci między komputerem a sterownikiem. Na

rysunku 6.1. przedstawiony jest widok programu IRIS z pokazanym ruchem

przepływu danych między komputerem a sterownikiem. Dla lepszego widoku

został wycięty i powiększony obszar z danymi programu, który jest

przedstawiony na rysunku 6.2.

background image

69

Rys.6.1. Widok programu IRIS z wyświetlonym przepływem danych w sieci między

komputerem a sterownikiem.

Rys.6.2. Widok programu IRIS z wyświetlonym przepływem danych w sieci między

komputerem a sterownikiem (powiększenie).

Konfiguracja sieciowa komputera i sterownika jest przedstawiona na

rysunku 6.3. Cztery pierwsze linie danych w programie IRIS przedstawiają

proces ruchu danych w sieci przy włączeniu diody LED zainicjowany przez

przeglądarkę internetową komputera. Cztery ostatnie linie pokazują proces ruchu

background image

70

danych w sieci przy wyłączeniu diody LED zainicjowany przez przeglądarkę

komputera.

Rys. 6.3. Widok konfiguracji sieciowej komputera i sterownika w sieci LAN

Podsumowanie

Zaprojektowany sterownik do sterowania i kontroli urządzeń

poprzez sieć TCP/IP całkowicie spełnił swoje zadania. Bardzo duży obszar

możliwości współpracy z urządzeniami zewnętrznymi sprawia, że

sterownik jest doskonałym systemem do kontroli i sterowania urządzeń

rozproszonych praktycznie na całym świecie. W dobie wielkiej i

obciążonej sieci internetowej systemy te być może nie najlepiej się

sprawdzą przy kontrolowaniu czy też sterowaniu urządzeń wymagających

background image

71

dużych przepustowości danych, jednak z pewnością systemy te poradzą z

urządzeniami wykorzystywanymi przez człowieka do powszechnego

użytku, które nie wymagają aż tak znacznej ilości danych do ich działania.

Literatura:

1.

www.maxim-ic.com

2.

www.I-buttom.com

3.

www.maxim-

ic.com/products/microcontrollers/pdf/DS80c390_user_guide.pdf

4.

www.pomiary.pl

5.

www.netica.com.pl

6.

www.test-therm.com.pl

7.

www.computerworld.pl

8.

http://pdfserv.maxim-ic.com/en/ds/DS80C400.pdf

background image

72

9.

ftp://ftp.dalsemi.com/pub/tini

10.

ftp://ftp.dalsemi.com/pub

11.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3748

12.

www.amd.com

13.

www.amic.com

14.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2251

15.

www.realtek.com.tw

16.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2750

17.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1932

18.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2355

19.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1544

20.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2815

21.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2923

22.

www.sun.com


Wyszukiwarka

Podobne podstrony:
Prezentacja praca dyplom
Praca dyplomowa Strona tytułowa etc
PRACA DYPLOMOWA BHP - ORGANIZACJA PRACY W PSP, TEMATY PRAC DYPLOMOWYCH Z BHP
praca dyplomowa 1 strona wzor, Szkoła, prywatne, Podstawy informatyki
d druku BIBLIOGRAFI1, cykl VII artererapia, Karolina Sierka (praca dyplomowa; terapia pedagogiczna z
Praca dyplomowa(1)
streszczenie panelu, Prace dyplomowe i magisterskie, praca dyplomowa, materiały z internetu
praca dyplomowa BR5VQ5NYN263L77S7YKAVS66LCHECBHKF2E3GEQ
praca dyplomowa informatyka programowanie 7B5PTOE5KXERFXSEJISGCMFJDQ5X6LRRZEBNOJY
praca dyplomowa
Protokół TCP IP, R03 5
praca dyplomowa edycja wbn1 2011
PRACA DYPLOMOWA MAGISTERSKA OCZ SC TYPU LEMMNA
Protokol TCP IP R08 5 id 834124 Nieznany
Bardzo krótko o TCP IP adresacja w sieciach lokalnych
Protokół TCP IP, R12 5
Internet - UE prawo, Studia - IŚ - materiały, Semestr 07, Praca dyplomowa
do druku ROZDZIAŁ III, cykl VII artererapia, Karolina Sierka (praca dyplomowa; terapia pedagogiczna

więcej podobnych podstron