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.

 

 

 

 

 

 

 

 

 

 

          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