Sunteți pe pagina 1din 15

Universitatea “Dunărea de Jos” Galaţi

Facultatea de Inginerie Electrică şi Electronică


Specializarea: Tehnologii şi Sisteme de Telecomunicaţii

Circuit de supervizare şi control cu


interfaţă “ethernet”

Coordonator ştiinţific,
Asist. Drd. Ing. EPURE Silviu
Absolventă,
MIHNEA Dorina
Plan de prezentare

1. Obiectivele proiectului
2. Proiectare hardware
3. Proiectare software
4. Rezultate practice
5. Concluzii
1.Obiectivele proiectului

Proiectarea unui circuit de supervizare şi control cu interfaţă


“ethernet” prin:

1. Realizarea unei interfeţe hardware ce asigură comunicarea PC-ului cu


circuitul;

2. Implementarea algoritmilor software pentru comandarea senzorilor


prin server;

3. Realizarea unei aplicaţii software ce trimite linie cu linie un fişier text


serverului (client).
2. Proiectare hardware
Circuitul de interfaţă:
n Constă în comunicarea între un encoder de tip ENC28J60 cu
interfaţă Ethernet şi un microcontroller de tip PIC18F2620
legându-se fizic de un calculator printr-o mufă RJ-45;
n ENC28J60 comunică cu PIC18F2620 prin interfaţa SPI;
n Se alimentează la o tensiune de 3.3V.

Figura 1. Realizarea fizică a circuitului de interfaţă


Schema electrică detaliată
3. Proiectare software
3.1 Aplicaţia server
- Rulează în microcontroller (mikroC);
- Reprezintă un server http ce procesează comenzile TCP primite pe
portul 80 de la clientul PC;
- Structura aplicaţiei realizată în mikroC reprezintă:
1. Comenzile principale care conţin iniţializarea porturilor, a ethernet-
ului şi apelul în buclă infinită;
2. Comenzile care tratează procedura de transmisie/recepţie între
microcontroller şi encoderul ethernet.
3. Comenzile care implementează procedura de tratare a
evenimentelor TCP;
3.1 Aplicaţia server

Figura 2. Organigrama programului Figura 3. Mini web server


3.2 Prelucrare TCP

n Pagina web memorată în server conţine elemente simple (text, tabele,


fundal colorat, linkuri). Ea a fost proiectată manual şi salvată în
variabila/ constanta “index-page” din microcontroller;
n Pentru a comunica între PC şi server, se foloseşte aplicaţia
browser(Internet Explorer, Mozilla, etc.);
n Datorită protocolului de comunicare TCP, microcontrollerul
recepţionează un şir de caractere de forma: „GET /stare buton …
HTTP/1.1..Accept: ...” - atunci când se trimite comanda de la buton
prin browserul web.
3.2.1 Configurarea porturilor pentru
comunicarea cu ENC28J60
sfr sbit SPI_Ethernet_Rst at RC0_bit;
sfr sbit SPI_Ethernet_CS at RC1_bit;
sfr sbit SPI_Ethernet_Rst_Direction at TRISC0_bit;
sfr sbit SPI_Ethernet_CS_Direction at TRISC1_bit;
// Se configurează regiştrii SFR Ethernet RST şi CS pentru pinii RC0, respectiv
RC1;
typedef struct {
unsigned canCloseTCP: 1; // Blocul care închide soketul TCP;
unsigned isBroadcast: 1; // Blocul care scoate în evidenţă pachetul;
} TEthPktFlags;
3.2.2 Structura de cod pentru senzorul
de lumină
IntToStr(ADC_Read(0), dyna) ;
len += putConstString("var AN0=") ;
len += putString(dyna) ;
len += putConstString(";") ;
ADC Read apelează convertorul analog numeric din PIC şi întoarce
ca rezultat un număr între 0 şi 1024, corespunzător tensiunii de la intrarea
analogică AN0 a PIC-ului. IntToStr transformă numărul returnat de ADC
Read într-un şir de caractere ce poate fi trimis ENC28j60.
Următoarele linii semnifică scrierea şirului de caractere în răspunsul
ce va fi trimis clientului (PC).
3.2.3 Structura de cod pentru buton
<script>var str,i;\str=\"\";\
for(i=4;i<5;i++){str+=\"<tr><td bgcolor=#EFF23A align=center>Comanda Aux.
RA\"+i+\"</td>\
<td bgcolor=#F0F27A align=center><a href=/t\"+i+\">Buton</a></td>\";\
if(PORTA&(1<<i)){str+=\"<td width=50px bgcolor=#32F62C align=center>ON\";}\
else {str+=\"<td width=50px bgcolor=#255528 align=center>OFF\";}\
str+=\"</td></tr>\";}document.write(str);</script>
if(getRequest[5] == 't') { // Dacă numele cererii începe cu "t", comută starea portului
RA4,
// număr care vine după;
unsigned char bitMask = 0 ; // pentru bitul de mască;
if(isdigit(getRequest[6])) { // dacă este 0 <= numărul bitului <=9, biţii 8 si 9 nu există
dar
//nici nu contează;
bitMask = getRequest[6] - '0' ; // Converteşte din codul ASCII în număr întreg;
bitMask = 1 << bitMask ; // Crează bitul de mască;
PORTA ^= bitMask ; // Schimbă starea portului RA4 cu operatorul XOR;
}
4. Rezultate experimentale[1]
n În timpul programării microcontrollerului s-a ţinut cont de mărimea
pachetului de date către encoder care nu trebuie să depăşeascã 1500
biţi de cuvinte pentru a evita supraîncărcarea magistralei de date.
n Se deschide pagina html (în browser se introduce adresa
192.168.0.200), se încarcă serverul în browser afişându-se
informaţiile senzorilor şi starea butonului cu comanda direct din pagina
web.
n Prin apăsarea butonului se efectuează comanda auxiliară care trimite
pe portul RA4, a microcontrolerului, starea de 1 logic (+5vcc). La o a
doua apăsare portul RA4 trece în starea de 0 logic (0vcc).
n Senzorul de lumină, la variaţia intensităţii luminoase, trimite semnal
analogic între 0 şi 5vcc la intrare în portul RA0 setat pe “analogic
input”, după conversie, pe pagina web se afişeaz valoarea între 0 şi
1023 echivalentul a 10 biţi de conversie a semnalului analogic.
4. Rezultate experimentale[2]
n Utilizare Internet Explorer:

Reîmprospătarea paginii web se face în mod automat la un interval de o secundă,


conform liniei de cod:
<meta http-equiv="refresh" content="1" />
5. Concluzii
În proiectul curent am realizat următoarele:
n Fizic am realizat un circuit de interfaţă cu un microcontroller de tip
PIC18F2620 ce suportă interfaţa SPI pentru a facilita comunicaţia cu
encoderul ENC28J60. Acesta are rolul de a se conecta prin ethernet cu PC.
n Software am realizat, un buton, în pagina web care schimbă starea portului
RA4, 0vcc sau 5vcc, folosit pentru comanda auxiliară, prin care
microcontrollerul receptionează linia de comandă (if(getRequest[5] == 't'))
trimisă prin TCP de utilizator pentru executarea funcţiei cerute.
n Am realizat un program în mikroC pentru microcontroller (implementare
server), recepţionarea şi afişarea temperaturii senzorului DS18B20 şi
conversia analog digital pentru senzorul de lumină.
n Identitatea serverului este dată de adresele MAC si IP care sunt declarate
software şi sunt apelate de către client când se efectuează transmisia
pachetelor de date.
Vă mulţumesc pentru atenţie!

S-ar putea să vă placă și