TCP IP i mikrokontrolery, cz 2


K U R S
Przykłady zastosowań TCP/IP
w mikrokontrolerach, część 2
Po przedstawieniu wstępnych in-
formacji na temat protokołu TCP/IP
i skonfigurowaniu modułu IIM7000A
do pracy w naszej sieci możemy
przystąpić do konkretnych prób.
Aplikacja wysyłająca
wiadomości e mail bez Listingi do artykułu
są umieszczone na płycie
autoryzacji po naciśnięciu
CDEP5/2006 oraz na stronie
przycisku (protokół SMTP)
http://download.ep.com.pl
Poczta elektroniczna należy chy-
ba do najczęściej wykorzystywa-
nych aplikacji pracujących w TCP/IP.
Jak mówi stare przysłowie:  co dwie głowy to nie jedna . A gdy
Adres w poczcie elektronicznej zawie-
głów tych będą tysiące, a nawet miliony? Aż strach pomyśleć.
ra nazwę konta użytkownika oraz do-
Tymczasem taką globalną siłę intelektu mamy dziś w zasięgu
menę usługodawcy internetowego. Do
ręki, ba  nawet z niej korzystamy. Wszystko za pośrednictwem
wysyłania wiadomości e mail wykorzy-
stywany jest protokół SMTP (Simple
terabajtów informacji, które w każdej sekundzie przesyłane są
Mail Transfer Protocol) zapewniający
olbrzymią siecią informatyczną oplatającą całą kulę ziemską.
przesyłanie listów pomiędzy dwiema
stacjami. Protokół SMTP wykorzystuje
numer portu 25. Określa on zarów- terminala. Prędkość transmisji wynosi Instrukcja getsocket otwiera gniazdo
no format wiadomości jak i metody 19200 bodów. Do terminala wysyłana do komunikacji TCP/IP. Pierwszy para-
przesyłania poczty. Przesyłając pocz- jest większość danych otrzymanych metr to numer gniazda. W tym przy-
tę do adresata, aplikacja wysyłająca z modułu TCP/IP. Początek progra- padku jest to gniazdo numer 0. Ko-
posługuje się poleceniami protokołu. mu jak i konfiguracja modułu TCP/IP lejny parametr to tryb pracy gniazda.
Po zakończeniu transmisji połączenie będzie identyczna we wszystkich pre- Dla komunikacji TCP/IP wykorzysty-
pomiędzy aplikacjami jest przerywa- zentowanych aplikacjach. W tym przy- wany jest tryb Sock_stream. W przy-
ne. W przykładzie przedstawionym padku linie portów, do których dołą- padku UDP będzie wykorzystywany
niżej zostanie pokazany sposób wy- czono przyciski zostały skonfigurowa- tryb Sock_sdgrm. Następny parametr
słania wiadomości e mail po naci- ne jako wejścia z rezystorami podcią- to port używany przez otwierane
śnięciu jednego z przycisków S1 lub gającymi. W pętli głównej programu
S2, które występują w zestawie Easy następuje oczekiwanie na naciśnięcie
TCP/IP. Treścią wysyłanej wiadomości przycisku S1 lub S2. Po naciśnięciu
będzie informacja, który przycisk zo- któregoś z nich, następuje zapisanie
stał naciśnięty. Wysyłanie wiadomości numeru naciśniętego przycisku do
przebiega bez autoryzacji, czyli użycia zmiennej P_s, po czym są wykonywa-
loginu i hasła. Przyciski S1, S2 zosta- ne instrukcje odpowiedzialne za wy-
ły dołączone do zestawu w sposób słanie wiadomości e mail. W pierwszej Rys. 3. Widok odebranej wiadomości,
pokazany na rys. 2. Na list. 2 przed- kolejności są to instrukcje pętli do lo- która została wysłana przez moduł
stawiono program wysyłający wiado- op, która jest opuszczana, gdy j=0. Easy TCP/IP
mość e mail. Przebieg działania pro-
gramu można śledzić przez interfejs
RS232 z uruchomionym programem
Rys. 2. Sposób dołączenia przycisków Rys. 4. Informacje wysłane przez mikrokontroler do terminala podczas transmi-
S1 i S2 towania wiadomości e mail
Elektronika Praktyczna 5/2006
108
K U R S
parametr to numer otwartego gniaz- wysyłane jest polecenie MAIL FROM:
da. Drugim jest zmienna, do której z adresem e mail nadawcy wiadomo-
będą trafiać odebrane dane. Możliwe ści. Serwer także i to polecenie po-
jest także zastosowanie trzeciego pa- twierdza komunikatem o kodzie 250.
rametru informującego o liczbie odbie- Kolejnym poleceniem wysyłanym do
ranych danych, mającego znaczenie serwera jest RCPT TO: w którym na-
Rys. 5. Widok odebranej wiadomości tylko przy zmiennych nie będących leży podać adresata wiadomości. I to
e mail wysłanej z autoryzacją przez ciągami znaków. Odczytywane dane polecenie serwer potwierdza komuni-
Easy TCP/IP z modułu TCP/IP są nie tylko prze- katem o kodzie 250. Kolejne polecenie
twarzane w programie, ale i wysyłane DATA umożliwia zapisanie treści wia-
gniazdo. Ostatni parametr określa do- do komputerowego terminala. Typowe domości e mail tj. nadawcy, odbiorcy,
datkowe opcje. Wartość 0 oznacza, że połączenie (wysłanie e maila) składa tytułu oraz treści. Po wysłaniu tego
brak jest dodatkowych opcji. Instruk- się z sześciu etapów, które zostaną polecenia serwer zwraca komunikat
cja ta w przypadku otwarcia gniazda przedstawione na podstawie kolejnych o kodzie 354. W tym przypadku w tre-
zwraca jego numer. W przeciwnym instrukcji w programie. Po poprawnym ści wiadomości zapisywana jest infor-
przypadku zwracana jest wartość 255. połączeniu serwer poczty wysyła ko- macja o naciśniętym przycisku. Zapis
Jeśli gniazdo zostanie otwarte, wyko- munikat o kodzie 220. Po rozpoznaniu treści wiadomości e mail kończy się
nywana jest instrukcja socketconnect, tego komunikatu w programie, do ser- umieszczeniem znaku kropki (.). Po
która służy do nawiązania połączenia wera wysyłane jest polecenie HELO, zapisaniu treści wiadomości serwer
z serwerem TCP/IP. Pierwszy jej pa- które rozpoczyna sesję. Polecenie to zwraca komunikat o kodzie 250. Po
rametr to numer otwartego gniazda. zawiera także nazwę konta e mail, zapisaniu wiadomości e mail wysy-
Następnym parametrem jest adres IP z którego będzie wysyłana wiadomość. łane jest do serwera polecenie QUIT
serwera, z którym nawiązywane jest Znaki 013 i 010 w kodzie ASCII są kończące sesję. Serwer to polecenie
połączenie oraz numer portu. Dla pro- znakami potwierdzenia. Wysyłanie da- potwierdza komunikatem o kodzie 221.
tokołu SMTP port wynosi 25. Adres nych do TCP/IP umożliwia instrukcja Po otrzymaniu z rejestru kontrolnego
IP będzie adresem serwera pocztowe- tcpwrite, której pierwszy parametr to modułu TCP/IP komunikatu Sock_clo-
go. Adres IP serwera można spraw- numer otwartego gniazda. Drugim pa- se_wait, należy zamknąć gniazdo in-
dzić wykonując polecenie: rametrem jest zmienna, z której będą strukcją closesocket, której parametrem
ping.exe serwer_p wysyłane dane. Instrukcja ta zwraca jest numer otwartego gniazda. Komu-
gdzie serwer_p to nazwa serwera liczbę wysłanych bajtów. Po wysłaniu nikat Sock_close_wait jest otrzymywa-
pocztowego. W przypadku nawiązania do serwera polecenia rozpoczęcia se- ny, gdy serwer zamyka połączenie.
połączenia instrukcja zwraca war- sji, serwer potwierdza jej otrzymanie Po zamknięciu gniazda program prze-
tość 0, w przeciwnym razie zwróci komunikatem o kodzie 250. Następnie chodzi do oczekiwania na naciśnię-
1. W przypadku uzyskania połącze-
nia wykonywana jest instrukcja soc-
ketstat zwracająca informacje o stanie
danego gniazda. Pierwszym jej para-
metrem jest numer otwartego gniaz-
da, a drugim parametr określający, co
ma zwrócić instrukcja. Przy wartości
0 drugiego parametru zwracana jest
wartość rejestru statusu, czyli stan
gniazda. Zwracana wartość przez te
instrukcje sprawdzana jest w instrukcji
wyboru, która będzie identyczna dla
wielu protokołów TCP/IP. Sprawdzane
są w niej trzy wartości: Sock_establi-
shed informuje o ustabilizowaniu się
połączenia, Sock_close_wait i Sock_clo-
sed informują o zakończeniu połącze-
nia. Przy wartości drugiego parametru
równej 1 zwracana będzie informacja,
ile bajtów można umieścić w buforze,
a przy wartości równej 2 zwracana
będzie liczba danych nieodebranych
z bufora. Po odczytaniu rejestru z in-
formacją Sock_established zgłasza się
serwer, po czym jest już możliwe
wysłanie wiadomości e mail. Kolej-
na instrukcja socketstat z drugim pa-
rametrem o wartości 2 sprawdza, czy
są jakieś dane do odebrania z bufora.
Do odbierania danych z bufora służy Rys. 6. Informacje wysłane przez mikrokontroler do terminala podczas wysyła-
instrukcja tcpread, w której pierwszy nia wiadomości e mail z autoryzacją
Elektronika Praktyczna 5/2006
109
K U R S
danych powstaje całkowicie nieczytel- przekazywana w temacie wiadomo-
ny dla człowieka ciąg znaków. W pro- ści e mail. Zestaw Easy TCP/IP bę-
gramie po wysłaniu do serwera po- dzie pobierał wiadomości z serwera
lecenia auth login, otrzymywany jest i w zależności od informacji poda-
komunikat o kodzie 334 z zakodowaną nej w temacie będzie sterował diodą
w Base64 nazwą Username:. Do deko- LED dołączoną do niego w sposób
dowania informacji zapisanej w Base- pokazany na rys. 7. Na wyświetla-
64 służy funkcja base64dec. Wysyła- czu LCD będzie prezentowana liczba
na nazwa użytkownika powinna zo- e maili znajdujących się na serwe-
Rys. 7. Sposób dołączenia diody LED stać zakodowana do formatu Base64. rze oraz informacja z tematu odbie-
Umożliwia to funkcja base64enc. Po ranej wiadomości. Przebieg działania
cie przycisku S1 lub S2. Na rys. 3. wysłaniu nazwy użytkownika serwer programu można śledzić także przez
przedstawiono widok odebranej wia- zwraca komunikat o kodzie 334 z za- interfejs RS232 z uruchomionym pro-
domości e mail wysłanej przez Easy kodowaną nazwą Password:. Po zako- gramem terminala. Na list. 4 przed-
TCP/IP po naciśnięciu przycisku S2. dowaniu hasła i jego wysłaniu, serwer stawiono program odbierający wia-
Na rys. 4 przedstawiono informacje zwraca komunikat o kodzie 235, który domości z serwera POP3, na pod-
wysłane przez mikrokontroler do ter- informuje o prawidłowo przeprowadzo- stawie których steruje diodą LED.
minala podczas transmitowania wia- nej autoryzacji. Dalsze etapy wysyła- W pierwszej kolejności w programie
domości e mail. nia wiadomości e mail są identyczne konfigurowany jest moduł TCP/IP,
jak dla przypadku bez autoryzacji. wyświetlacz LCD oraz linia portu
Aplikacja wysyłająca Na rys. 5. przedstawiono widok ode- PB.6 jako wyjście, do którego zo-
wiadomości e mail branej wiadomości e mail wysłanej stała dołączona dioda LED. Program
z autoryzacją po naciśnięciu z autoryzacją przez Easy TCP/IP po realizuje w nieskończonej pętli co 5
przycisku (protokół SMTP) naciśnięciu przycisku S2. Na rys. 6 sekund połączenie do serwera POP3
Coraz więcej serwerów poczty przedstawiono informacje wysłane sprawdzając czy nie ma wiadomości
podczas wysyłania wiadomości wy- przez mikrokontroler do terminala, do odebrania. Nawiązywanie połą-
maga autoryzacji, czyli podania na- podczas wysyłania wiadomości e mail czenia z serwerem POP3 przebiega
zwy użytkownika i hasła do konta z autoryzacją. Przykład pokazuje, w jak podobnie jak w przypadku wysyła-
e mail. Przedstawiony na list. 3 pro- prosty sposób można wysłać wiado- nia wiadomości, z tym że z wyko-
gram realizuje to samo, co program mość e mail pod dowolny adres po rzystaniem portu 110. Po połączeniu
z list. 2, z tą różnicą, że wiadomość zaistnieniu określonego zdarzenia, np. zgłasza się serwer POP3 wysyłając
e mail jest wysyłana z autoryzacją. awarii jakiegoś urządzenia wykrytej komunikat zaczynający się od zna-
Opisane zostaną tylko różnice pomię- przez odpowiedni czujnik. ków +OK. W dalszej kolejności wy-
dzy programami z list. 2 i list. 3. Za- syłane jest polecenie USER z nazwą
miast polecenia HELO wysyłane jest Aplikacja odbierająca użytkownika konta e mail. Po uzy-
polecenie EHLO, będące poleceniem wiadomości e mail skaniu potwierdzenia (+OK) wysyła-
rozszerzonym. Także w tym przypad- z informacją o włączeniu, bądz ne jest polecenie PASS z hasłem do
ku serwer potwierdza otrzymane po- wyłączeniu diody LED (POP3) konta e mail. Zarówno nazwa użyt-
lecenie komunikatem o kodzie 250. Protokół POP3 (Post Office Proto- kownika, jak i hasło wysyłane są
Następnie do serwera jest wysyłane col 3) jest najpowszechniej stosowa- w sposób niekodowany. Po otrzyma-
polecenie autoryzacji. Występują róż- ny do odbierania wiadomości e ma- niu komunikatu +OK można rozpo-
ne jego wersje, jak: auth login, auth il. Serwer POP3 przechowuje pocztę cząć odbieranie wiadomości e mail.
plan..., w których login oraz hasło są do czasu, gdy użytkownik połączy W tym celu wysyłane jest polecenie
kodowane w różny sposób. W przykła- się i odbierze swoje listy. Listy bę- STAT, które pozwala określić liczbę
dzie wybrano polecenie auth login, dące na serwerze można pozostawić wiadomości przechowywanych na
w którym login (nazwa użytkownika) lub skasować po odebraniu. Protokół serwerze. Po wysłaniu tego pole-
oraz hasło są zapisywane algoryt- POP3 wykorzystuje port 110. W tym cenia serwer wysyła potwierdzenie
mem Base64. Algorytm Base64 służy przykładzie zostanie pokazany spo- (+OK), liczbę wiadomości na ser-
do konwersji ciągu bajtów binarnych sób sterowania diodą LED poprzez werze oraz ilość zajmowanego przez
do postaci znaków kodu ASCII i jest wysłanie wiadomości (możliwe włą- nie miejsca na dysku. Po wyfiltro-
często wykorzystywany w TCP/IP do czenie, bądz wyłączenie diody). In- waniu z otrzymanych danych infor-
przesyłania nazw użytkowników oraz formacja o stanie diody LED będzie macji o liczbie wiadomości na ser-
haseł. Base64 pozwala zapisać dane werze (dane te są wyświetlane na
8 bitowe w formie 6 bitowych liczb. wyświetlaczu LCD) następuje odbie-
Dane przeznaczone do zakodowania ranie wiadomości w pętli For. Pętla
dzielone są najpierw na 3 bajtowe wykonywana jest tyle razy, ile na
grupy, po czym każda z takich trójek serwerze jest wiadomości. W przy-
jest dzielona na cztery 6 bitowe licz- padku braku wiadomości pętla For
by. Każda liczba otrzymuje następnie nie jest wykonywana. W pętli For
odpowiednik w postaci jednego znaku. wysyłane jest polecenie TOP, które
Przydział znaków odbywa się na pod- odbiera wiadomość (bez kasowa-
stawie ściśle określonego, 64 znako- Rys. 8. Widok wysyłanej wiadomości nia z serwera). Polecenie to posiada
wego alfabetu, będącego podzbiorem z informacją w temacie, że dioda dwa parametry: numer wiadomości
kodów ASCII. W wyniku zakodowania LED ma zostać włączona oraz liczbę odbieranych wierszy.
Elektronika Praktyczna 5/2006
110
K U R S
Podanie drugiego parametru o war- program przecho-
tości 0 umożliwia pobranie całej dzi do opóznienia,
wiadomości. W dalszej części pę- po którym znów
tli jest wykrywany tekst Subject:, się połączy z ser-
po którym znajduje się informacja, werem POP3. Do-
jaki ma być stan diody LED. Jeśli stępnych jest wie-
odebrano w temacie tekst LED_ON, le innych poleceń
dioda LED zostanie zapalona, nato- p r o t o ko ł u P O P 3
miast w przypadku odebrania w te- jak: LIST, RETR
macie tekstu LED_OFF lub dowol- czy NOOP, które
nego innego, dioda LED zostanie nie zostały wyko-
wyłączona. Zawartość tematu jest rzystane. Dokład-
także wyświetlana w drugiej linii ne informacje na
wyświetlacza LCD. Odczyt wiado- ich temat znajdują
mości e mail następuje, aż do wy- się w dokumentach
krycia znaku kropki (.). Po odczyta- RFC. Na rys. 8.
niu danej wiadomości wysyłane jest przedstawiono wi- Rys. 9. Informacje wysłane przez mikrokontroler do ter-
polecenie DELE z numerem odczyta- dok wysyłanej wia- minala podczas odbierania wiadomości z serwera POP3
nej wiadomości. Polecenie to kasuje domości z informa-
z serwera wiadomość e mail o poda- cją w temacie, że dioda LED ma wiadomości w jedną całość można
nym numerze. Bez użycia tego po- zostać włączona. Na rys. 9 przed- uzyskać potwierdzenie wiadomością
lecenia wiadomości e mail po od- stawiono informacje wysłane przez e mail wykonania polecenia wysła-
czytaniu nie będą usuwane z serwe- mikrokontroler do terminala pod- nego również wiadomością e mail.
ra. Wiadomości e mail są odczyty- czas odbierania wiadomości z serwe- W ostatniej części kursu będzie
wane z opóznieniem 1 sekundy. Po ra POP3. Zaprezentowany przykład mowa o serwerze zapytań, komuni-
odczytaniu wszystkich wiadomości pokazuje prosty sposób sterowania kacji za pośrednictwem protokołu
wysyłane jest do serwera polecenie elementami wykonawczymi za po- UDP oraz serwerze HTTP.
QUIT, które kończy sesję POP3. Po mocą wysyłanej wiadomości e ma- Marcin Wiązania, EP
rozłączeniu i zamknięciu gniazda il. Aącząc wysyłanie i odbieranie marcin.wiazania@ep.com.pl
Zawody Sumo Robotów i Międzynarodowy Festiwal
Robotów CybAiRBot 2006
22 kwietnia na Politechnice Poznańskiej odbyły P o l i t e c h n i k i
się Zawody Sumo Robotów i Międzynarodowy P o z n a ń s k i e j
Festiwal Robotów CybAiRBot 2006. Roboty m o ż n a b y ł o
startujące w Zawodach Sumo mogą ważyć s p o t k a ć c a ł ą
maksymalnie 3 kg i mieć rozmiary 20x20 cm. g a m ę r o b o t ó w
Muszą to być pojazdy w pełni autonomiczne m o b l i n y c h
i inteligentne, potrafiące samodzielnie odszukać z a r ó w n o
innego robota i wypchnąć go z ringu. Do k o ł o w y c h , j a k
Poznania zjechało się ponad 30 robotów i kroczących oraz
skonstruowanych głównie przez studentów gąsienicowych,
uczelni technicznych. Udział w imprezie pra ktycznie z e
wzięli m.in. znani w środowisku  robociarzy wszystkich uczelni oraz wielu firm działających
Demon, Plugawy Oprawca, Bizon, Skorpion, w tej branży. Publiczność mogła poznać m.in.
więc konkurencja była bardzo duża. Inspektora  policyjnego robota do rozbrajania
W ramach CybAiRBot 2006 odby ł się bomb pracującego na co dzień w poznańskiej
Konkurs na Najciekawszą Konstrukcję Robota Policji. Gościom usługiwał robot hostessa
Amatorskiego. Wziął w niej udział m.in. robot TOKA 3, u którego zawsze znajdzie się trochę
Torquemax, który przybył w asyście swoich łakoci. Roboty LEGO oraz piesek robot AIBO
konstruktorów do Poznania aż z dalekiej dostarczyły dużo frajdy dzieciom.
Kolumbii. Na CybAiRBot można było zobaczyć m.in. jak
Organizatorzy dalecy kuzyni robotów  inteligentne systemy
z a p r o s i l i wizyjne radzą sobie z rozpoznawaniem
n a z a w o d y l u d z k i c h t w a r z y. N i e z a b r a k ł o t a k ż e
t a k ż e i n n e prawdziwych samurajów, którzy pokazali jak Impreza jest adresowana do szerokiego grona
roboty. W holu kiedyś w Japonii walczyło się na miecze. odbiorców w wieku od 2 do 102 lat i ma za
n o w e g o W p r z e r w a c h m o ż n a b y ł o w y s ł u c h a ć zadanie popularyzację nowoczesnej techniki
c e n t r u m wykładów i prezentacji na temat współczesnej oraz robotyki.
wykładowego robotyki. Więcej informacji na www.sumo.put.poznan.pl.
Elektronika Praktyczna 5/2006
111


Wyszukiwarka

Podobne podstrony:
TCP IP i mikrokontrolery, cz 1
TCP IP i mikrokontrolery, cz 4
TCP IP i mikrokontrolery, cz 3
DNS Konfiguracja w sieci TCP IP
TCP IP a model OSI
,sieci komputerowe,Zestaw protokołów TCP IP (2)
TCP IP Księga eksperta
Protokół TCP IP R01 5
Bezpieczeństwo w sieciach TCP IP

więcej podobnych podstron