47 50 (2)


Internetowy interfejs dla mikrokontrolera
P R O J E K T Y
Internetowy interfejs dla
mikrokontrolera, część 3
AVT-5055
Jest to ostatnia czÍśĘ
opisu projektu, ktÛry wzbudziÅ‚
ogromne zainteresowanie
naszych CzytelnikÛw.
SprzÍtowa realizacja stosu
TCP/IP, choĘby w oparciu
o układ S-7600A, zapewnia
nowoczesne i bardzo
praktyczne rozwiÄ…zanie -
warto wiÍc zapoznaĘ siÍ
z programowaniem
i konfiguracją tego układu.
Najbardziej dostÍpnÄ… i znanÄ… nieniu dlaczego tak jest skoÒczyÅ‚y
metodÄ… poÅ‚Ä…czenia siÍ z Interne- siÍ tak samo, jak prÛby Å‚Ä…czenia
tem przez modem jest wykorzys- siÍ przez 0202122. PozostawiÍ to
tanie numeru dostÍpowego TP bez komentarza...
S.A. Wystarczy wysłaĘ do mode- Jak juł wspomniałem, wpisa-
mu komendÍ ATDT 0202122, a do nie jedynki do PPP_En w rejestrze
PAP String sekwencjÍ: 0x03 PPP Control and Status powoduje
PPP0x03PPP i czekaĘ na popraw- rozpoczÍcie negocjowania poÅ‚Ä…-
ne poÅ‚Ä…czenie. Pierwsze prÛby, czenia przez sprzÍtowy stos PPP.
jakie robiÅ‚em nie daÅ‚y jednak WczeÅ›niej trzeba wpisaĘ jedynkÍ
pozytywnego rezultatu. Powstawa- na pozycji bitu SCTL w rejestrze
Å‚y zmiany w programie, kolejne Serial Port Configuration/Status.
prÛby i... niestety nic z tego. UmoÅ‚liwi to przejÍcie kontroli
ZrobiÅ‚em wiele takich prÛb, stra- nad portem szeregowym przez
ciÅ‚em mnÛstwo czasu na mody- stos sprzÍtowy. Przy okazji trzeba
fikacjÍ programu i wyczytywanie teÅ‚ ustawiĘ (wpisaĘ jedynkÍ) bit
pakietÛw PPP wymienianych po- DSR/HWFC i wÅ‚Ä…czyĘ mechanizm
miÍdzy S-7600A a serwerami TP hardware flow control.
S.A. OkazaÅ‚o siÍ, Å‚e nie jest Ze stosem PPP zwiÄ…zane sÄ…
mołliwe ustanowienie połączenia jeszcze cztery rejestry Our IP
pomiÍdzy S-7600A i serwerami TP Address. Pod adresem 0x10 znaj-
S.A. Po zmianie na numer dostÍ- duje siÍ mniej znaczÄ…ca czÍśĘ
powy firmy Polbox wszystko za- numeru IP, a pod 0x13 bardziej
czÍÅ‚o dziaÅ‚aĘ od razu! Wszelkie znaczÄ…ca. MoÅ‚na tam wpisaĘ ad-
prÛby dotarcia do kogoÅ› z TP res IP serwera dostÍpowego lub
S.A., kto mÛgÅ‚by pomÛc w wyjaÅ›- nic nie wpisywaĘ (domyÅ›lnie sÄ…
Elektronika Praktyczna 5/2002
47
Internetowy interfejs dla mikrokontrolera
natomiast do rejestrÛw Their Port
Tab. 11. Rejestr Config Status Low
Registers (0x37...0x37) jest wpisy-
Bit Nazwa Dostęp Opis
wana wartośĘ 0x006e (110 dzie-
7 TO R TCP Timeout - ten bit sygnalizuje, że wystąpił timeout w czasie
siÍtnie). Obie te wartoÅ›ci, tak jak
ustanawiania połączenia TCP lub czekania na pakiet TCP po
i adres IP, muszą byĘ ustawione
ustanowieniu połączenia.
przed aktywacjÄ… kieszeni. Po wpi-
0 = normalna praca
1 = nastąpił timeout
saniu tych ustawieÒ w rejestrze
6 Buff_ R Ten bit sygnalizuje, czy bufor danych wyjściowych jest pusty czy też
Config Status Low trzeba określiĘ
Empty nie. Bit jest jedynką, jeżeli bufor jest pusty. Jest zerowany, jeżeli
typ protokołu kieszeni na TCP
kieszeń danych wyjściowych nie jest pusta i taka pozostaje.
Client Mode.
1 = bufor pusty
Teraz jest juł wszystko gotowe
0 = bufor nie jest pusty
i mołna rozpocząĘ połączenie TCP
5 Buff_Full R Ten bit sygnalizuje, czy przestrzeń jest dostępna do zapisu danych.
(aktywacji kieszeni) przez wpisa-
Może również wyzwalać przerwanie, kiedy bufor jest pełny i bit
Buff_Full_En w rejestrze Socket Interrupt Mask Low (0x2a) jest
nie dowolnej wartości do rejestru
ustawiony. Rejestr Data Register nie powinien być zapisywany, kiedy
o adresie 0x30 (Data Send and
Buff_Full=1.
Buffer Length). Jełeli połączenie
0 = bufor dostępny
dojdzie do skutku, to w rejestrze
1 = bufor nie jest dostępny
Socket Status Mid (tab. 11) bit
4 Data_ R/W Wyzerowanie tego bitu ustawia wszystkie parametry kieszeni do
Avail/RST wartości domyślnych. Jest samozerujący i nie potrzebuje zerowania dla ConU zostanie ustawiony, a w po-
właściwej operacji. Przed wyzerowaniem należy się upewnić, że bit
lu TCP State powinna pojawiĘ siÍ
Snd_Bsy w rejestrze Socket Status High (0x3A) jest wyzerowany.
wartośĘ 2 (established).
Przeczytany określa, czy są dostępne dane w kieszeni.
Na wyÅ›wietlaczu w gÛrnym
2:0 Protocol_ R/W Te bity są używane do ustawiania protokołu kieszeni.
wierszu pojawi siÍ wtedy komu-
Type 010 = TCP Client Mode
nikat ìPolaczenie TCP/IP okî,
101 = UDP Mode
110 = TCP Server Mode natomiast w dolnym ìport 110î.
Jest to moment, w ktÛrym S7600A
mołe wysyłaĘ i odczytywaĘ z ser-
tam wpisane same zera). W tym port ürÛdÅ‚a ma mieĘ losowo wy- wera pocztowego dane. Dane sÄ…
drugim przypadku serwer sam braną wartośĘ z zakresu wysyłane w momencie wpisania
przeÅ›le swÛj adres i zostanie on 1024...65535. Port przeznaczenia do rejestru Socket Data (adres
wpisany do rejestrÛw Our IP dla aplikacji uÅ‚ywajÄ…cej protokoÅ‚u 0x2e). Odczytanie tego rejestru
Address (floating IP address ne- POP3 ma standardowy numer 110. powoduje kolejne wczytywanie
gocjowany podczas sesji PPP). Do rejestrÛw Our Port registers danych przychodzÄ…cych z pamiÍci
Poprawne zakoÒczenie negocja- (0x38...0x39) wpisywana jest war- aktywnej kieszeni. Przez odczyta-
cji ukÅ‚ad S-7600A sygnalizuje tośĘ 0x9200 (37376 dziesiÍtnie), nie rejestrÛw Data Send and
ustawiajÄ…c bit PPP_UP/SRst w PPP
Control and Status. Mołna wtedy
Tab. 12. Rejestr Socket Status Mid
odczytaĘ rejestry Our IP Address.
Bit Nazwa Dostęp Opis
Po ustawieniu PPP_En program
7 URG R Ten bit sygnalizuje przychodzÄ…ce pilne dane. Wpisanie 1 na pozycji
sterujÄ…cy czeka w pÍtli na usta-
bitu URG w Socket Interrupt High Register (0x2d) zeruje ten bit
wienie bitu PPP_UP/SRst. Jełeli
0 = nie ma pilnych danych
1 = sÄ… pilne dane
to nastąpi, to na wyświetlaczu (w
6 RST R Ten bit sygnalizuje, że kieszeń odebrała sygnał RST ze strony TCP
gÛrnym wierszu) pojawi siÍ
0 = nie odebrano sygnału RST
ìPPP_ok.î, a w dolnym bÍdÄ… wy-
1 = odebrano RST
świetlone hexadecymalnie cztery
5 Term R Ten bit sygnalizuje, że kieszeń odłącza się od zródła i wyzwala
bajty adresu IP.
przerwanie, jeżeli bit Term_En jest ustawiony w rejestrze Socket
W tym momencie S-7600A mo-
Interrupt Mask High (0x2b). Ustawienie maski przerwania nie
łe rozpocząĘ nawiązywanie połą-
powoduje braku przesyłania tego bitu.
0 = praca normalna
czenia TCP ze stacjÄ… docelowÄ….
1 = odłączenie kieszeni od zródła
Do rejestrÛw Their IP Address
ten bit ustawia siÄ™, kiedy S-7600A odbierze segment z flagÄ… FIN. To
(0x3c...0x3f) trzeba wpisaĘ adres
oznacza, że zdalna strona żąda zamknięcia połączenia TCP.
IP tej stacji. Przed dostÍpem do
4 ConU R Ten bit sygnalizuje, że kieszeń ustanowiła połaczenie z hostem.
indeksowanych rejestrÛw kieszeni
0 = połączenie nieustanowione
musi byĘ zaprogramowany rejestr 1 = połączenie ustanowione
indeksowy o adresie 0x20. Kolej- 3:0 TCP State R Te bity sygnalizują bieżący stan TCP
0 = CLOSED
ną czynnością jest wyzerowanie
1 = SYN_SENT
bitu Data_avail/RST (wyzerowa-
2 = ESTABLISHED
nie kieszeni) w rejestrze Config
3 = CLOSE_WAIT
Status Low (adres 0x22). OprÛcz
4 = LAST_ACK
adresu IP potrzebne jest jeszcze 5 = FIN_WAIT1
6 = FIN_WAIT2
okreÅ›lenie numerÛw portÛw ürÛd-
7 = CLOSING
Å‚a i przeznaczenia. Prezentowane
8 = TIME_WAIT
urządzenie ma pracowaĘ jako
9 = LISTEN
klient poczty. W takim przypadku
A = SYN_RECVD
Elektronika Praktyczna 5/2002
48
Internetowy interfejs dla mikrokontrolera
Buffer Length mołna określiĘ wiel-
List. 3
kośĘ bufora wejściowego.
+OK 979 octets
Return-Path:
Wymiana informacji moÅ‚e siÍ
Received: from ghost3.onet.pl (ghost3.onet.pl [213.180.128.18])
odbywaĘ tylko w ramach standar-
by mach4.polbox.pl (8.10.2/8.10.2) with ESMTP id f9I6KKK9K052319
dowego protokołu. Do odczytywa-
for ; Thu, 18 Oct 2001 20:14:09 +0200
nia poczty stosuje siÍ protokÛÅ‚
Received: from pa24.zulavs.cvx.ppp.tpnet.pl ([213.77.198.24]:4100  HELO
POP3. Bez wdawania siÍ w szcze- world )
gÛÅ‚y, umoÅ‚liwia on uwierzytelnie-
by ghost3.onet.pl with SMTP id ;
nie ułytkownika przez wysłanie
Thu, 18 Oct 2001 20:14:13 +0200
nazwy i hasła, sprawdzenie liczby
Message-ID: <001d01c157bledd8b0080$0334521fjj9@world>
wiadomości i zajmowanej przez
From:  Tomek
To:
nie pamiÍci. MoÅ‚na teÅ‚ odczytaĘ
Subject: POP3 test
kolejne wiadomości i skasowaĘ
Date: Thu, 18 Oct 2001 20:13:19 +0200
wiadomośĘ o konkretnym nume-
MIME-Version: 1.0
rze. Po wysłaniu kałdej komendy
Content-Type: text/plain;
POP3, serwer odpowiada komuni- charset= iso-8859-2"
Content-Transfer-Encoding: 7bit
katem, ktÛry zaczyna siÍ ì+ok.î
X-Priority: 3
dla sytuacji kiedy komenda jest
X-MSMail-Priority: Normal
zaakceptowana i poprawnie wyko-
X-Mailer: Microsoft Outlook Express 4.72.3110.5
nana lub ì-errî jeÅ‚eli wystÄ…pi
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
błąd. Jełeli wystąpi błąd, to pro- Status: RO
gram sterujący wyświetla odebra-
Witaj S7600A!
ny komunikat i rozłącza połącze-
-
nie przez wyzerowanie bitu
PPP_En w rejestrze PPP Control
and Status. W przypadku kiedy rzysty sposÛb, jak moÅ‚na wyko- siÍ ze stacjÄ… w Internecie potrzeb-
cała sekwencja odczytywania rzystaĘ S-7600A w aplikacji inter- ny jest jej adres IP. Dostawcy
poczty jest poprawna, to mołna netowej. Program sterujący działa usług internetowych zmieniają ad-
odczytaĘ na wyÅ›wietlaczu caÅ‚Ä… poprawnie w sytuacji, kiedy poÅ‚Ä…- resy IP zachowujÄ…c tÄ… samÄ… nazwÍ
przesłaną wiadomośĘ. Zawiera ona czenie jest realizowane właściwie domeny. Jełeli aplikacja wyko-
oprÛcz przesyÅ‚anej treÅ›ci - takiej, i nie wystÍpujÄ… Å‚adne problemy. rzystuje system DNS do wyszu-
jaka pojawia siÍ w oknie progra- Program, ktÛry zawieraÅ‚by proce- kiwania adresÛw IP, to wszystko
mu do odczytu poczty - szereg dury obsługi sytuacji krytycznych jest w porządku. W naszym przy-
innych istotnych wiadomości nor- byłby zdecydowanie bardziej roz- padku tak nie jest i wałne jest by
malnie niewidocznych (list. 3) - budowany, a co za tym idzie duło znaĘ aktualny adres IP serwera
moÅ‚na tam znaleüĘ informacjÍ od mniej zrozumiaÅ‚y. Celowo teÅ‚ wy- pocztowego. Przy znajomoÅ›ci da-
kogo nadeszÅ‚a wiadomośĘ, do- braÅ‚em w warstwie aplikacji pro- tagramÛw protokÛÅ‚u IP moÅ‚na ten
kÅ‚adnÄ… datÍ i godzinÍ wysÅ‚ania, tokÛÅ‚ POP3. MoÅ‚na byÅ‚o wybraĘ adres wyczytaĘ podczas spraw-
a takłe dane identyfikacyjne ser- np. HTML i ze strony WWW dzania poczty za pomocą np.
wera, z ktÛrego wiadomośĘ zostaÅ‚a sterowaĘ jakimÅ› elementem - np. Outlook Express. MoÅ‚na w tym
wysÅ‚ana. przekaünikiem. Jednak w takim celu wykorzystaĘ dowolny termi-
Oczywiście są tam teł takie przypadku jednocześnie do sieci nal znakowy. Odpowiedni jest na
podstawowe informacje, jak te- musiałyby byĘ podłączone: nasz przykład Terminal Emulation
mat i sama treśĘ wiadomości. moduł i komputer z otwartą stro- z Nortona Commandera. Adres IP
PoniewaÅ‚ nawet najkrÛtsza wia- nÄ… WWW, a to z kolei mogÅ‚oby serwera dostÍpowego moÅ‚e byĘ
domośĘ, to kilkaset znakÛw AS- zniechÍciĘ wielu potencjalnych wyÅ›wietlany na ekranie moduÅ‚u
CII - w przedstawionym przypad- eksperymentatorÛw do prÛb. po nawiÄ…zaniu poÅ‚Ä…czenia PPP.
ku 979 znakÛw - to przeglÄ…danie W przypadku poczty moÅ‚na naj- Odpowiedni fragment programu
jej na ekranie wyÅ›wietlacza moÅ‚- pierw wysÅ‚aĘ na swojÄ… skrzynkÍ w pliku tcp.c (opublikowany na
liwe jest w sekwencjach zawiera- wiadomośĘ, a potem odczytaĘ ją płycie CD-EP3/2002B) jest zapisa-
jÄ…cych 40 znakÛw. Pierwsze 40 za pomocÄ… moduÅ‚u. Podczas tes- ny w postaci komentarza i wystar-
znakÛw wyÅ›wietla siÍ po odebra- tÛw opisywany moduÅ‚ Å‚Ä…czyÅ‚ siÍ czy go odpowiednio zmodyfiko-
niu, a kolejne po przyciÅ›niÍciu w zasadzie bez problemu z serwe- waĘ, aby taka informacja mogÅ‚a
przycisku SW1. rem dostÍpowym Polboxu. Zda- byĘ wyÅ›wietlana. W pliku tcp.c
rzaÅ‚y siÍ problemy przy logowa- naleÅ‚y teÅ‚ wpisaĘ nazwÍ i hasÅ‚o
Podsumowanie niu na serwerze POP3 - serwer swojej skrzynki pocztowej, wpisaĘ
Przedstawiony tutaj projekt jest odpowiadaÅ‚ komunikatem o zajÍ- numer telefonu i caÅ‚ośĘ skompilo-
dośĘ nietypowy. Nie jest to projekt tości. Jednak w czasie niewielkie- waĘ. Program został napisany dla
zamkniÍtego urzÄ…dzenia, ale ra- go natÍÅ‚enia ruchu w Internecie kompilatora C firmy Keil. W przy-
czej ìszkieletuî sÅ‚uÅ‚Ä…cego do opra- poÅ‚Ä…czenia nastÍpowaÅ‚y szybko padku innych kompilatorÛw nale-
cowania własnych konkretnych i bezproblemowo. Do modułu pod- ły go odpowiednio zmodyfiko-
aplikacji. łączony był standardowy modem waĘ.
StaraÅ‚em siÍ przedstawiĘ w ar- Zoltrix FM366 za pomocÄ… firmo- Mimo wielu sceptycznych gÅ‚o-
tykule, w jak najbardziej przej- wego kabla RS232. Do poÅ‚Ä…czenia sÛw wydaje siÍ, Å‚e systemy ste-
Elektronika Praktyczna 5/2002
49
Internetowy interfejs dla mikrokontrolera
rowania czy akwizycji danych zmiany parametrÛw sterowania Uwaga!
oparte na mikrokontrolerach nie- oddalonych od siebie sterowni- Kody ürÛdÅ‚owe do projektu
odwracalnie wchodzÄ… w Å›wiat kÛw. Wystarczy za pomocÄ… e- internetowego interfejsu opubliko-
wielkiej sieci. Przed konstruktora- mail'a wysÅ‚aĘ zbiÛr tekstowy za- waliÅ›my na CD-EP3/2002B.
mi otwierajÄ… siÍ olbrzymie moÅ‚- wierajÄ…cy potrzebne dane. Nic nie
liwości przesyłania danych na stoi na przeszkodzie, aby zaimple- Wzory płytek drukowanych w for-
duÅ‚e odlegÅ‚oÅ›ci. DziÍki S7600A, mentowaĘ protokÛÅ‚ SMTP i wysy- macie PDF sÄ… dostÍpne w Internecie
i na pewno doskonalszym nastÍp- Å‚aĘ do serwera wiadomoÅ›ci o za- pod adresem: http://www.ep.com.pl/
com, aplikacje internetowe stają istniałych zdarzeniach lub jakiś ?pdf/maj02.htm oraz na płycie
siÍ Å‚atwe i tanie. Nawet przedsta- inny protokÛÅ‚ np. HTTP. CD-EP05/2002B w katalogu PCB.
wione tutaj rozwiązanie mołe słu- Tomasz Jabłoński, AVT
łyĘ na przykład do okresowej tomasz.jablonski@ep.com.pl
Elektronika Praktyczna 5/2002
50


Wyszukiwarka