TCP IP i mikrokontrolery, cz 1


K U R S
TCP/IP
i mikrokontrolery, część 1
Jak mówi stare przysłowie:
 co dwie głowy to nie jedna .
A gdy głów tych będą tysiące,
a nawet miliony? Aż strach
pomyśleć. Tymczasem taką
globalną siłę intelektu mamy
dziś w zasięgu ręki, ba  nawet
z niej korzystamy. Wszystko
za pośrednictwem terabajtów
informacji, które w każdej większych problemów zastosować go Protokoły TCP/IP oraz UDP
we własnych aplikacjach. Wszystkie TCP to skrót od Transmission
sekundzie przesyłane są
programy zawarte w niniejszym arty- Control Protocol, natomiast IP to skrót
olbrzymiÄ… sieciÄ… informatycznÄ…
kule zostały przetestowane na zesta- od Internet Protocol. Każde urządzenie
oplatającą całą kulę ziemską.
wie uruchomieniowym Easy TCP/IP, w sieci może mieć przypisany adres
w którym zastosowano mikrokontroler IP, który będzie go identyfikował (dba
Upowszechnienie się Internetu ATmega162. Przykładowe programy o to bezpołączeniowy protokół IP).
było tylko kwestią czasu. Dziś pra- zostały napisane w Bascomie AVR. W TCP/IP do komunikacji pomiędzy
wie każdy użytkownik komputera Efekty działania niektórych aplika- aplikacjami używane są tak zwane
ma w swoim domu do niego dostęp. cjach można obserwować na wy- gniazda, które można porównać do
Coraz więcej urządzeń domowego świetlaczu LCD zestawu, komputero- kanałów komunikacyjnych. Aby sko-
użytku pozornie nie mających naj- wym terminalu komunikującym się munikować się z danym serwerem
mniejszego związku z globalną siecią z zestawem przez łącze RS232 oraz lub klientem należy w pierwszej kolej-
(np. tuner, lodówka) ma możliwość za pośrednictwem programu easytc- ności otworzyć gniazdo. Należy także
dostępu do Internetu. Celem niniej- pip.exe. Do poprawnej kompilacji wspomnieć o portach, które są punk-
szego artykułu jest przedstawienie programów wymagana jest biblioteka tami końcowymi połączeń związanymi
metod dołączania do Internetu wła- tcpip.lbx. Wykorzystywane z tej bi- z aplikacjami. Numer portu może się
snych, mniej rozbudowanych urzą- blioteki instrukcje będą sukcesywnie zawierać w przedziale od 0 do 65535,
dzeń. W szczególności przedstawione opisywane w trakcie przedstawiania przy czym wiele portów jest używa-
zostaną aspekty programowe wyko- przykładowych aplikacji. Będą to: nych przez konkretne usługi (np.
rzystania różnych protokołów siecio-  aplikacja testująca poprawność HTTP używa portu 80). Serwerem jest
wych we własnych aplikacjach. konfiguracji zestawu Easy TCP/IP, aplikacja, która oczekuje na połączenie
 aplikacja umożliwiająca wysyła- klientów, natomiast klient jest aplika-
Informacje podstawowe nie wiadomości e mail po naci- cją łączącą się do serwera. Na przy-
TCP/IP jest rodziną wielu proto- śnięciu przycisku, kład klientem jest aplikacja łącząca
kołów (TCP, UDP i innych). Wszyst-  aplikacja umożliwiająca wysyła- się do serwera poczty, natomiast ser-
kie standardy protokołu TCP/IP są nie wiadomości e mail z autory- werem jest aplikacja HTTP, do której
opublikowane w dokumentach RFC zacją po naciśnięciu przycisku, klienci łączą się przez przeglądarkę.
dostępnych na stronie www.ietf.org/  aplikacja umożliwiająca odbiera- TCP jest protokołem gwarantującym
rfc.html. Więcej informacji można nie wiadomości e mail z infor- dostarczenie danych. W tym protokole
uzyskać z książek na temat TCP/IP. macją o włączeniu bądz wyłącze- oczekiwane jest potwierdzenie odbio-
Dostosowanie aplikacji mikropro- niu diody LED, ru przesyłanych danych przed rozpo-
cesorowych do współpracy z Inter-  aplikacja umożliwiająca pracę częciem transmisji kolejnych. Inaczej
netem czy ogólnie siecią Ethernet jako serwer, do którego może jest w protokole UDP (User Datagram
jest stosunkowo łatwe przy wyko- się dołączyć do 4 klientów, Protocol). Jest to protokół bezpołącze-
rzystaniu układu W3100A firmy  aplikacja umożliwiająca pracę niowy. Nie gwarantuje on dostarcze-
Wiznet. Układ ten posiada 4 nieza- jako klienta łączącego się do nia danych. Nie ma w nim żadnego
leżne kanały, co stwarza możliwość serwera, mechanizmu sprawdzającego czy dana
dołączenia 4 klientów. Wbudowana  aplikacja komunikującą się przez aplikacja otrzymała dane. Przesyłanie
pamięć RAM pełni funkcję bufora protokół bezpołączeniowy UDP, danych za pośrednictwem UDP ge-
dla otrzymywanych i wysyłanych da-  aplikacja serwera HTTP, umożli- neruje więc mniejszy ruch w sieci
nych. Układ W3100A jest dostępny wiająca odczyt temperatury oraz niż przesyłanie przez TCP. W ramach
w obudowie SMD, ale wykorzystując sterowanie diodą LED przez przykładu z wykorzystaniem UDP zo-
gotowy moduł IIM7000A można bez przeglądarkę stron www. stanie przedstawiony prosty chat.
Elektronika Praktyczna 4/2006
89
K U R S
List. 1.
 Program PING - konfiguracja modułu TCP/IP
 Easy TCP/IP
$regfile =  M162def.dat  typo mikrokontrolera
$crystal = 4000000  czestotliwosc zegara
$xa  wlaczenie dostepu do zewnetrznej magistrali mikrokontrolera
$hwstack = 50  wartosc stosu
$swstack = 50  wartosc stosu
$framesize = 50  wartosc ramki
 stałe dla modułu TCP/IP
Const Sock_stream = $01  Tcp
Const Sock_dgram = $02  Udp
Const Sock_ipl_raw = $03  Ip Layer Raw Sock
Const Sock_macl_raw = $04  Mac Layer Raw Sock
Const Sel_control = 0  Confirm Socket Status
Const Sel_send = 1  Confirm Tx Free Buffer Size
Const Sel_recv = 2  Confirm Rx Data Size
Const Sock_closed = $00  Status Of Connection Closed
Const Sock_arp = $01  Status Of Arp
Const Sock_listen = $02  Status Of Waiting For Tcp Connection Setup
Const Sock_synsent = $03  Status Of Setting Up Tcp Connection
Const Sock_synsent_ack = $04  Status Of Setting Up Tcp Connection
Const Sock_synrecv = $05  Status Of Setting Up Tcp Connection
Const Sock_established = $06  Status Of Tcp Connection Established
Const Sock_close_wait = $07  Status Of Closing Tcp Connection
Const Sock_last_ack = $08  Status Of Closing Tcp Connection
Const Sock_fin_wait1 = $09  Status Of Closing Tcp Connection
Const Sock_fin_wait2 = $0a  Status Of Closing Tcp Connection
Const Sock_closing = $0b  Status Of Closing Tcp Connection
Const Sock_time_wait = $0c  Status Of Closing Tcp Connection
Const Sock_reset = $0d  Status Of Closing Tcp Connection
Const Sock_init = $0e  Status Of Socket Initialization
Const Sock_udp = $0f  Status Of Udp
Const Sock_raw = $10  Status of IP RAW
$lib  tcpip.lbx  zalaczenie bibliotego TCP/IP
Enable Interrupts  odblokowanie sprzetowych przerwan
Config Lcd = 16 * 2  konfiguracja rozdzielczosci wyswietlacza LCD
Config Lcdpin = Pin , Db4 = Pinb.0 , Db5 = Pinb.1 , Db6 = Pinb.2 , Db7 = Pinb.3 , E = Pinb.4 , Rs = Pinb.5  konfiguracja
linii wyswietlacza LCD
Config Tcpip = Int0 , Mac = 12.128.12.34.56.78 , Ip = 192.168.1.8 , Submask = 255.255.255.0 , Gateway = 192.168.1.1 , Localport
= 1000 , Tx = $55 , Rx = $55  konfiguracja modułu TCP/IP
Cursor Off  kursor wyłaczony
Cls  czysc LCD
Lcd  IP = 192.168.1.8  wyswietlenie na LCD numeru IP przypisanego Easy TCP/IP
Do  poczatek nieskonczonej petli do-loop
Loop
End  koniec programu
Konfiguracja nej obsługi pamięci. Umożliwia to który także powinien być unikatowy.
Aby było można komunikować dyrektywa $xa. Dyrektywy $hwstack, Tak więc moduł TCP/IP będzie po-
się z aplikacją wykorzystującą mo- $swstack i $framesize ustalają warto- siadał adres IP 192.168.1.8. Kolejny
duł IIM7000A, należy odpowiednio ści stosów i ramki. W dalszej części parametr SUBMASK określa maskę
skonfigurować sieć. Od tego bę- programu zostają zdefiniowane stałe, sieci, która w tym przypadku wyno-
dzie zależeć także dostęp do In- które ułatwiają czytelność programu. si 255.255.255.0. Następny parametr
ternetu. Podczas testów przykłado- Określonym nazwom zostają przy- GATEWAY to adres bramy (wykorzy-
wych aplikacji zestaw Easy TCP/IP pisane wartości liczbowe. Aby był stywanej do dostępu do Internetu),
podłączono do routera z wbudowa- dostęp do procedur obsługi modu- którą ustalono na 192.168.1.1. Ad-
nym przełącznikiem. Do podłącze- łu TCP/IP, należy załączyć potrzeb- res bramy jest zależny od dostaw-
nia zestawu do przełącznika można ną bibliotekę tcpip.lbx. Umożliwia cy Internetu. Parametr LOCALPORT
użyć typowego przewodu sieciowe- to dyrektywa $lib. Następnie zostaje to domyślna wartość portu, którą
go bez przeplotu. Do przełącznika odblokowany globalny system prze- ustalono na 1000. Domyślna war-
podłączono także komputer, którego rwań. Moduł TCP/IP korzysta tylko tość portu może być wykorzystywa-
adres IP ustawiono na 192.168.1.2, z jednego zródła zewnętrznego prze- na podczas pracy modułu w trybie
maskę: 255.255.255.0, a bramę na rwania. W pierwszej kolejności kon- klienta. Za pomocą parametrów TX
192.168.1.1. Zestaw Easy TCP/IP skon- figurowany jest wyświetlacz LCD oraz RX ustalane są wielkości bufo-
figurowano tak, aby posiadał adres zestawu Easy TCP/IP. W dalszej ko- ra odpowiednio nadawczego i odbior-
IP: 192.168.1.8, maskę 255.255.255.0 lejności następuje konfiguracja mo- czego dla każdego z 4 gniazd. Całko-
oraz bramę 192.168.1.1. Taka konfi- dułu TCP/IP instrukcją config tcpip. wity bufor w module TCP/IP wykosi
guracja umożliwiła zestawowi TCP/IP Pierwszym parametrem tej instrukcji 8 kB. Dla każdego z gniazd w baj-
dostęp nie tylko do sieci Ethernet, jest określenie rodzaju przerwania, cie określającym wielkość bufora,
ale i do Internetu. z którego korzysta moduł TCP/IP. przypisano dwa bity. Dwa najmniej
W tym przypadku wykorzystywa- znaczące bity określają wielkość bu-
Aplikacja testująca na jest zewnętrzna linia przerwania fora dla gniazda 0, a dwa bardziej
poprawność komunikacji INT0. Drugim parametrem jest adres znaczące bity wielkość bufora dla
z modułem TCP/IP MAC (Media Access Control) modu- gniazda 3. Wartość bitów 00 powo-
Do sprawdzenia poprawności ko- łu. Jest to adres fizyczny danego duje ustawienie bufora na rozmiar
munikacji z modułem TCP/IP moż- urządzenia. W tym przypadku MAC 1024 bajtów, 01 na 2048 bajtów,
na wykorzystać dowolny program będzie adresem układu TCP/IP. MAC 10 na 4096 bajtów, a 11 na 8192
ping, który wysyła pakiet kontrolny jest zazwyczaj złożony z 12 cyfr bajtów. Cały dostępny bufor można
do układu o danym adresie IP. Na szesnastkowych (6 bajtów). Adresy rozdzielić na każde z gniazd. Czy-
list. 1 przedstawiono program kon- MAC urządzeń pracujących w da- li dla danych odbieranych i nada-
figurujący moduł TCP/IP. Aby była nej sieci nie mogą być identyczne. wanych na każde z gniazd, będzie
możliwa komunikacja pomiędzy mi- W module TCP/IP adres MAC zapi- przypadał bufor 2048 bajtów. Aby
krokontrolerem, a modułem TCP/IP, sano w postaci dziesiętnej. Parametr było to możliwe parametry TX oraz
należy włączyć dostęp do zewnętrz- IP określa adres IP modułu w sieci, RX powinny mieć przypisane war-
Elektronika Praktyczna 4/2006
90
K U R S
poprawność komunikacji z modu-
łem TCP/IP, należy wydać następu-
jÄ…ce polecenie:
ping.exe 192.168.1.8
Na rys. 1. przedstawiono rezul-
tat działania programu ping z pra-
widłową odpowiedzią modułu TCP/
IP. W przypadku braku odpowiedzi
z modułu TCP/IP, problem może
być ze zle skonfigurowaną kar-
tą sieciową w komputerze, w złym
przewodzie połączeniowym lub
z samym układem wykorzystującym
moduł TCP/IP. W przypadku otrzy-
mania odpowiedzi istnieje 99%
pewności, że moduł TCP/IP z dołą-
czonym do niego mikrokontrolerem
Rys. 1. działa poprawnie.
Omówieniem przykładowych
tości &H55 (&B01010101). Umożliwi po czym program przechodzi do aplikacji zajmiemy się w kolejnych
to korzystanie ze wszystkich 4 do- wykonywania nieskończonej pętli. częściach artykułu.
stępnych gniazd. Oczywiście przy Poprawność konfiguracji i komuni- Marcin Wiązania, EP
wykorzystywaniu mniejszej liczby kację można sprawdzić programem marcin.wiazania@ep.com.pl
gniazd istnieje możliwość zwiększe- ping, który jest dostępny w prawie
nia bufora dla danego gniazda kosz- każdym systemie operacyjnym. Pro- Dodatkowe informację:
tem bufora innego gniazda. gram ping wysyła pakiet pod okre- http://www.ietf.org/rfc.html
W dalszej kolejności w progra- ślony adres IP. Adresowane urzą- http://www.mcselec.com
mie na wyświetlaczu LCD jest wy- dzenie powinno zwrócić otrzymane http://www.i2chip.com
świetlany adres IP modułu TCP/IP, dane z powrotem. Aby sprawdzić http://psoc.prv.pl
ARM7TDMI®
ADuC7000
& układy i narzędzia uruchomieniowe
- już dostępne !
ANALOG
DEVICES
uznany dostawca
rozwiązań dla
ANALOG
DEVICES
teraz, jako partner
www.analog.com/dsp/3rdparty
ALFINE P.E.P.
ul. Poznańska 30-32 " 62-080 Tarnowo Podgórne
tel.: (61) 89 66 934, 89 66 936 " fax: (61) 81 64 414, 81 64 076
Alfine Team like never before
e-mail: analog@alfine.pl " http: //www.alfine.pl
Designed by Electro-Vision
Elektronika Praktyczna 4/2006
91
Designed by
Electro-Vision
" reklama_ELE_30


Wyszukiwarka

Podobne podstrony:
TCP IP i mikrokontrolery, cz 2
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