AVT-974.pdf

(471 KB) Pobierz
010-013_sterownik_tcpip.indd
Sterownik z interfejsem TCP/IP
Sterownik z interfejsem
TCP/IP
AVT–974
Powszechnie dostępne
specjalizowane układy interfejsów
sieciowych stały się powodem
lawinowo powstających projektów
najróżniejszych sterowników
ethernetowych. Wpływa na to
również łatwość ich stosowania,
a możliwość zbudowania
internetowej aplikacji, która
jeszcze nie dawno była tylko
marzeniem, dziś jest już
„chlebem powszednim”.
Rekomendacje:
głównym zastosowaniem
sterownika będzie zbieranie
danych z różnorodnych czujników
wejściowych i przekazywanie
ich do komputerów pracujących
w lokalnej sieci ethernetowej
lub komunikujących się przez
Internet.
W artyku-
le zostanie opi-
sany prosty sterow-
nik posiadający cyfro-
we wejścia i wyjścia, wy-
posażony w interfejs sieciowy.
Linie wejściowe sterownika mogą
być wykorzystywane do odczytu
stanu wszelkiego rodzaju czujników
oraz sygnałów pochodzących np.
z innych urządzeń. Linie wyjściowe
mogą służyć do sterowania różny-
mi urządzeniami wykonawczymi.
W przypadku, gdy potrzebne jest
sterowanie urządzeniami zasilanymi
z sieci 230 V, należy dodatkowo za-
stosować przekaźnik lub triak. Stan
linii wyjściowych sterownika jest
zapamiętywany w nieulotnej pamię-
ci, więc nie jest tracony po zaniku
napięcia zasilającego. Komunikacja
ze sterownikiem jest bardzo prosta
i odbywa się poprzez stronę inter-
netową z wykorzystaniem protokołu
TCP/IP. Jednym z najbardziej popu-
larnych układów z zaimplemento-
wanymi stosami TCP/IP jest układ
W3100A firmy Wiznet. Oferuje on
4 gniazda, co oznacza, że do ukła-
du można dołączyć jednocześnie
czterech klientów. Ma także wbudo-
waną pamięć RAM będącą buforem
dla otrzymywanych i wysyłanych
danych. Układ W3100A jest dostęp-
ny w obudowie SMD, ale jest rów-
nież odpowiedni moduł IIM7000A,
który bez większych problemów
można zastosować we własnych
aplikacjach. Tego typu moduł wyko-
rzystano w sterowniku. Niewątpliwą
zaletą urządzenia jest możliwość
ochrony do-
stępu do niego
z wykorzystaniem
nazwy użytkownika
oraz hasła. Sterownik
posiada prostą budowę,
przez co nie powinno być
problemów z jego uruchomie-
niem. Wygląd strony HTTP, adres
IP, maskę oraz bramę można łatwo
modyfikować, wystarczy do tego
celu podstawowa znajomość języka
HTML oraz oprogramowania Bascom
AVR, w którym napisano oprogra-
mowanie sterownika. W artykule
nie będą przedstawiane informacje
o działaniu protokołów TCP/IP oraz
HTTP. Dodatkowych informacji na
temat tych protokołów należy szu-
kać w dostępnej literaturze.
PODSTAWOWE PARAMETRY
Opis działania układu
Na rys. 1 przedstawiono sche-
mat ideowy sterownika TCP/IP. Za-
stosowano w nim mikrokontroler
AVR typu ATmega162, gdyż posia-
da on magistralę przystosowaną do
komunikacji z zewnętrzna pamięcią
RAM (umożliwia jej zaadresowanie).
Za jej pomocą odbywa się komu-
nikacja z modułem sieciowym U2.
Układ U3 służy do zatrzaskiwania
mniej znaczącego bajtu adresowe-
go (linie A0...A7) wystawianego na
magistralę danych. Moduł U2 zaj-
muje adres z zakresu &H8000 do
&HFFFF. Większość tego obszaru
jest używana przez wewnętrzne bu-
fory, a pozostała część przez rejestry
statusowe i kontrolne modułu U2.
Linia A15 zanegowana przez U4D
steruje linią wyboru CS modułu
U2. Dioda D1 sygnalizuje nawiąza-
ne połączenie z innym urządzeniem
sieciowym, natomiast diody D2 i D3
sygnalizują prędkość transmisji (od-
• Płytka o wymiarach 109x64 mm
• Liczba wejściowych linii cyfrowych: 5
• Liczba cyfrowych linii wyjściowych: 8
• Zapamiętywanie stanu linii w pamięci
nieulotnej
• Ochrony dostępu do sterownika: nazwa
użytkownika oraz hasło
• Obsługa sterownika przez stronę HTTP
10
Elektronika Praktyczna 3/2007
PROJEKTY
750400164.050.png 750400164.051.png 750400164.052.png 750400164.053.png
Sterownik z interfejsem TCP/IP
powiednio 10 Mb/s i 100 Mb/s). Do
linii TPR i TPT modułu U2 zostało
dołączone gniazdo RJ45 (Z4) z wbu-
dowanym już transformatorkiem.
Moduł U2 wymaga dwóch sygna-
łów zerowania o przeciwnych fa-
zach. Obwód zerowania został zbu-
dowany w oparciu o elementy R7,
C7 oraz bramki U4A, U4B i U4C.
Moduł U2, jak i mikrokontroler U1
zerowany jest zawsze po włączeniu
zasilania. Czas zerowania jest zależ-
ny od wartości elementów R7 i C7.
Mikrokontroler jest taktowany ze-
wnętrznym rezonatorem kwarcowym
o częstotliwości 8 MHz. Moduł U2
wymaga jednej linii przerwania
i do tego celu zostało wykorzysta-
ne przerwanie INT0. Linie wejścio-
we sterownika zostały zabezpieczo-
ne przed wyższymi napięciami od
napięcia zasilania mikrokontrolera.
Do tego celu wykorzystano elemen-
ty R1...R5 oraz diody Zenera D5...
D9. Dzięki tym elementom możliwe
jest podawanie napięć na wejścia
sterownika wyższych od napięcia
zasilania mikrokontrolera Wszystkie
linie portu PB zostały skonfigu-
rowane jako wyjściowe. Elementy
sterownika są zasilane napięciem
+3,3 V uzyskiwanym na wyjściu
stabilizatora U5. Napięcie +3,3 V
zasilające elementy sterownika wy-
nika z tego, że moduł U2 nie może
być zasilany wyższym napięciem.
Dioda D4 sygnalizuje napięcie zasi-
lania sterownika.
racji i komunikację można sprawdzić
programem ping , który jest dostępny
w prawie każdym systemie operacyj-
nym. Program ping wysyła pakiet
danych pod określony adres IP. Ad-
resowane urządzenie powinno zwró-
cić otrzymane dane. Aby sprawdzić
poprawność komunikacji ze sterow-
nikiem, należy wysłać następujące
polecenie:
Montaż i uruchomienie
Schemat montażowy sterownika
pokazano na rys. 2 . W sterowniku
nie wykorzystano żadnych elemen-
tów SMD. Montaż należy rozpocząć
od elementów najmniejszych. Mo-
duł sieciowy U2 można wlutować,
ale można również zastosować dla
niego odpowiednie gniazdo o rastrze
2 mm. Po zmontowaniu całości
wraz z zaprogramowanym mikrokon-
trolerem, sterownik jest gotowy do
uruchomienia. Można go zasilić na-
pięciem stałym z zakresu od 5 V do
15 V. Sterownik można dołączyć do
routera lub bezpośrednio do kompu-
tera za pomocą skrętki. W drugim
przypadku potrzebny będzie prze-
wód skrosowany. Sterownik posia-
da domyślny numer IP: 192.168.1.5,
maskę 255.255.255.0 oraz bramę
192.168.1.1. Po włączeniu zasilania
powinna zaświecić się dioda D2 lub
D3 w zależności od możliwej pręd-
kości transmisji. Poprawność konfigu-
Rys. 1. Schemat elektryczny sterownika
Elektronika Praktyczna 3/2007
11
750400164.001.png 750400164.002.png 750400164.003.png 750400164.004.png 750400164.005.png 750400164.006.png 750400164.007.png 750400164.008.png 750400164.009.png 750400164.010.png 750400164.011.png 750400164.012.png 750400164.013.png 750400164.014.png 750400164.015.png 750400164.016.png 750400164.017.png 750400164.018.png 750400164.019.png 750400164.020.png 750400164.021.png 750400164.022.png 750400164.023.png
Sterownik z interfejsem TCP/IP
Rys. 4. W przypadku aktywnej auto-
ryzacji dostępu dostęp do strony jest
możliwy po zalogowaniu
Rys. 2. Schemat montażowy płytki sterownika
słanie strony do klienta. Protokół
HTTP wykorzystuje port o numerze
80. Po udzieleniu odpowiedzi na
zapytanie klienta, połączenie jest
zrywane do czasu otrzymania na-
stępnego zapytania. W zapytaniach
wykorzystuje się kilka metod, ta-
kich jak: GET , HEAD , POST , PUT
itp. Metoda GET jest stosowana
w zapytaniu o żądanie przesłania
strony HTTP o określonym adre-
sie. Metoda POST (wykorzystywana
podczas przesyłania danych z for-
mularzy) pozwala żądać od serwe-
ra przyjęcia załączonych danych
jako nowej, skierowanej do niego
publikacji. W programie sprawdzany
jest rodzaj zapytanie, na które jest
przesyłana odpowiedź. Zmianę nu-
meru IP, maski i bramy można zre-
alizować tylko w kodzie programu.
Po każdej zmianie program należy
poddać kompilacji. Otrzymaną za-
wartość pliku należy zapisać do
mikrokontrolera. Numer IP, maskę
i bramę można zmienić w instruk-
cji config TCPIP . Można również
w niej zmienić adres MAC sterow-
nika. W programie występuje sta-
ła Authenticate , od wartości której
zależy czy dostęp do strony HTTP
sterownika będzie chroniony. Nada-
nie stałej Authenticate wartości 1
spowoduje włączenie chronionego
dostęp do sterownika. Nazwę użyt-
kownika, jak i login można zmody-
fikować w linii If Base64dec(s) =
"test:test" Then..." . Nazwa użytkow-
nika i hasło są oddzielone znakiem
dwukropka. W tym przypadku na-
zwa użytkownika i hasło składają
się ze znaków test . Strona HTTP
została zapisana w pamięci progra-
mu za pomocą instrukcji data . Jest
ona identyfikowana etykietą www .
Do odczytania tych danych wy-
korzystywane są instrukcje restore
oraz read . Po wysłaniu do przeglą-
darki ilości przesyłanych danych,
ping.exe 192.168.1.5
W przypadku braku odpowiedzi
od sterownika, problem może być
ze źle skonfigurowaną kartą siecio-
wą w komputerze, w złym przewo-
dzie połączeniowym lub z samym
układem wykorzystującym moduł
sieciowy. Należy wtedy w pierwszej
kolejności sprawdzić poprawność
montażu oraz napięcia zasilania. Ze
sterownikiem można się połączyć
poprzez przeglądarkę stron HTTP.
Należy w niej wpisać adres http://
192.168.1.5/index.htm.
Na rys. 3 pokazano wygląd wy-
świetlanej strony HTTP sterownika.
Zawarto tu informacje o stanie linii
wejściowych i wyjściowych sterowni-
ka. Za pomocą przycisków ON i OFF
można zmieniać stan danej linii
wyjściowej. Wyświetlana strona jest
odświeżana automatycznie co kilka
sekund. Jeśli włączona została auto-
ryzacja, przed załadowaniem strony
HTTP zostanie wyświetlone okienko
( rys. 4 ), w którym należy podać na-
zwę użytkownika oraz hasło. Domyśl-
na nazwa użytkownika, jak i hasło to
„ test” . Włączenie autoryzacji umożli-
wia ochronę dostępu do sterownika
przed niepowołanymi osobami. Gdyby
sterownik miał sterować urządzenia-
mi zasilanymi z sieci 230 V, należy
do wyjść sterownika dołączyć układ
wykonawczy, którym może być prze-
kaźnik lub triak. Na rys. 5 pokaza-
no przykładowy układ wykonawczy
z przekaźnikiem, a na rys. 6 z wyko-
rzystaniem triaka. Oprogramowanie
sterownika można dowolnie modyfiko-
wać. Można w nim zmienić nie tylko
numer IP, maskę, bramę, nazwę użyt-
kownika, hasło ale również wygląd
strony HTTP. W EP prezentowany był
kurs, w którym przedstawiono przy-
kłady programów współpracujących
z modułem sieciowym firmy Wiznet.
Informacje tam zawarte będą pomoc-
ne w ewentualnych przeróbkach pro-
gramu tak, aby na przykład obsłużyć
wiadomości email. Pomocne przerób-
kom będzie również krótki opis dzia-
łania programu sterownika.
Oprogramowanie
sterownika
Oprogramowa-
nie sterujące ste-
rownikiem, zostało
napisane w Bascom
AVR i realizuje ob-
sługę protokołu
HTTP, który jest
wykorzystywany do
przeglądania stron
www. Jest on opar-
ty na mechanizmie
pytanie–odpowiedź.
Klient żąda prze-
słania strony z ser-
wera HTTP, odpo-
wiedzią jest prze-
Rys. 3. Strona WWW zaimplementowana w sterowniku
12
Elektronika Praktyczna 3/2007
750400164.024.png 750400164.025.png 750400164.026.png 750400164.027.png
Sterownik z interfejsem TCP/IP
+12V
następuje wysłanie
strony HTTP od-
czytywanej kolejno
z pamięci progra-
mu. W kod wy-
świetlanej strony
HTTP, podczas jej
wysyłania, wpla-
tana jest informa-
cja o stanach linii
wejściowych i wyj-
ściowych. Miejsca
wstawiania infor-
macji o wejściach
i wyjściach są roz-
poznawane poprzez
zliczanie liczby li-
nii data . Na przy-
kład w przypad-
ku wysyłania linii
o numerze 67 program realizuje
następujące instrukcje:
Elseif Count = 67 Then
'jeśli count=67 to
If Out4 = 1 Then
'jeśli Out4 = 1 to
S = "ON"
'zapis do S tekstu ON
Else
'w przeciwnym razie
S = "OFF"
'zapis do S tekstu OFF
End If
Z2
wa instrukcja zapisane w HTML
realizująca wysłanie formularza
z komunikatem ustawienia wyjścia
Out1 jest następująca:
Data "<form method={034}post{034}>"
Data "<input type={034}hidden{034}
name={034}on1{034}>"
Data "<input type={034}submit{034}
value={034}ON {034}></form></td>"
Dla pozostałych przycisków usta-
wiających i zerujących linie Out,
instrukcje będą podobne. Naciśnię-
cie przycisku spowoduje wysłanie
do serwera zapytania z wykorzysta-
niem metody POST . Po wykryciu
przez serwer tej metody, wykony-
wany jest podprogram page oraz
zmiennej Bcmd zostaje przypisana
wartość 2. W przypadku metody
POST wykrywany jest komunikat
Content–Length: , z którym zwią-
zana jest ilość wysłanych przez
przeglądarkę danych. Ilość wysła-
nych danych z przeglądarki jest
zapisywana do zmiennej Bcontent .
Przy metodzie POST. jeśli zmienna
Bcmd wynosi 2, następuje odczyt
danych wysłanych po naciśnięciu
przycisku wysyłającego formularz.
Wysłane dane są odczytywane do
zmiennej Buf . Ilość odbieranych
danych wskazuje zmienna Bcon-
tent . Warunek ustawienia wyjścia
Out1 jest następujący:
If Left(s , 3) = "on1" Then 'je-
śli otrzymano znaki on1 to
Set Out1
'ustawienie linii Out1
Jeśli otrzymano znaki on1 wyj-
ście Out1 zostanie ustawione. Wa-
runki ustawiania i zerowania dla
pozostałych wyjść są podobne.
Jak pokazano umieszczenie na
stronie stanów linii wejściowych
i wyjściowych nie jest trudne. Sto-
sunkowo łatwo można zmodyfiko-
wać program tak, aby w przypadku
jakiegoś wykrytego przez wejścia
zdarzenia była wysyłana wiadomo-
ści email. Zastosowań przedstawio-
nego sterownika może być bardzo
wiele. W dużej mierze jego funkcje
będą zależeć od oprogramowania.
Marcin Wiązania, EP
marcin.wiazania@ep.com.pl
~220V
Z1
R1
2,2k
Ox
GND
PK1
RM96-P-5V
ARK2
D1
1N4148
Z3
NC
CON2
T1
BC548
OUT
NO
ARK3
Rys. 5. Wyjściowy obwód wykonawczy z przekaźnikiem
Z2
~220V
Z1
R2
220
ARK2
R1
330
Q1
Q2
Ox
GND
Z3
R3
220
BT136-600
CON2
MOC3041
OUT
ARK2
Rys. 6. Wyjściowy obwód wykonawczy z triakiem
WYKAZ ELEMENTÓW
Rezystory
R1...R5: 10 k V
R6, R8...R10: 1 k V
R7: 100 k V
R11, R12: 470 V
R13...R16: 51 V
Kondensatory
C1, C3, C7...C15: 100 nF
C2: 47 m F/16 V
C4: 100 m F/16 V
C5, C6: 22 pF
Półprzewodniki
U1: ATmega162 DIP–40
U2: moduł IIM7000A
U3: 74HC573
U4: 74HC00
U5: LD1117V33C TO–220
X1: kwarc 8 MHz
D1: LED 3 mm żółta
D2, D3: LED 3 mm czerwona
D4: LED 3 mm zielona
D5...D9: dioda Zenera 3,6 V
Inne
Z1: Goldpin 1x9
Z2: Goldpin 1x6
Z3: Goldpin 1x2
Z4: złącze RJ45 z trafo typu
J0026D21B
W zależności od stanu linii
Out4 zostanie wysłany tekst ON
lub OFF . W przypadku otrzymania
strony HTTP o nazwie innej niż
/index.htm , wysyłana jest strona
HTTP, która powoduje przekiero-
wanie strony na adres /index.htm .
Instrukcja HTML:
Data "<meta HTTP–EQUIV={034}refre-
sh{034} CONTENT={034}5{034}>"
w kodzie powoduje, że strona
HTTP będzie automatycznie od-
świeżana co 5 sekund. Znak o ko-
dzie ASCII {034} to cudzysłów
(”). Jak widać odczyt i wyświetle-
nie na stronie HTTP informacji
o wyjściach i wejściach sterownika
jest bardzo proste. Trudniejsza do
zrealizowania jest możliwość stero-
wania wyjściami za pomocą przy-
cisków umieszczonych na stronie
HTTP. Do tego celu wykorzystano
przyciski wysłania formularza przy
pomocy metody POST . Przykłado-
forum.ep.com.pl
forum.ep.com.pl
forum.ep.com.pl
forum.ep.com.pl
forum.ep.com.pl
forum.ep.com.pl
forum.ep.com.pl
Elektronika Praktyczna 3/2007
13
forum.ep.com.pl
750400164.028.png 750400164.029.png 750400164.030.png 750400164.031.png 750400164.032.png 750400164.033.png 750400164.034.png 750400164.035.png 750400164.036.png 750400164.037.png 750400164.038.png 750400164.039.png 750400164.040.png 750400164.041.png 750400164.042.png 750400164.043.png 750400164.044.png 750400164.045.png 750400164.046.png 750400164.047.png 750400164.048.png 750400164.049.png
Zgłoś jeśli naruszono regulamin