Folosirea de servere web integrate în aplicaţii

by donpedro

Rodger Richey Applications Manager
Microchip Technology Inc.
www.microchip.com

Este uzual ca un microcontroler (MCU) ieftin să fie folosit de stiva TCP/IP pentru pagini de web. Multe MCU încorporează o stivă TCP/IP, ceea ce le permite conectarea la Internet. Deşi o asemenea utilizare este perfect validă, asemenea dispozitive pot fi şi mai bine folosite de aplicaţii. Multe aplicaţii folosesc un port pentru stare sau pentru diagnostic pentru a oferi o vedere asupra operaţiilor lor interne. Sunt necesare eforturi considerabile pentru realizarea acestei interfeţe, a protocoalelor şi a software-ului pentru a rula pe un calculator extern sau pentru afişarea de informaţii. Este mult mai uşoară folosirea unui standard global: Internet şi browsere Web. Oricine poate naviga pe Web sau pe o pagină de Web. Utilizarea de servere Web integrate pentru afişarea de informaţii despre stare sau pentru diagnostic folosind pagini Web reduce timpul de dezvoltare necesar proiectantului sistemului şi costurile pentru training şi echipament, reducând de asemenea şi costurile pentru training şi echipament atunci când sistemul este livrat.

Figura 1 Modelul stivei TCP/IP

Majoritatea sistemelor mari încorporează deja o reţea integrată, de obicei RS-232, RS-485, I2C sau CAN, de unde pot fi obţinute informaţii despre sistemul de operare. Un MCU ieftin, de 8 biţi poate constitui interfaţa către această reţea şi poate comunica cu diferite subsiteme pentru obţinerea de informaţii despre stare şi pentru controlul acestor sisteme. MCU are de asemenea şi o interfaţă pentru Internet. Acest lucru permite unui tehnician de service din teren să conecteze un PC standard la sistem folosind portul serial Ethernet. Deoarece adresa IP a MCU este aceeaşi pentru toate sistemele, configurarea PC-ului se face automat la bootare. Tehnicianul trebuie doar să starteze browserul Web pentru a începe verificarea stării sau pentru schimbarea parametrilor sistemului.

INTERFEŢE HARDWARE

Figura 2 Un server integrat Web generic care foloseşte PIC18F6720

Interfaţa pentru Internet are două variante: serială sau Ethernet. Interfaţa serială este la fel cu cea folosită astăzi pentru conectarea pe Web folosind un modem. În acest caz nu este necesar un modem deoarece stiva MCU emulează unul. Singura cerinţă hardware este un circuit “level-shift” care translatează nivelele ±15V ale RS-232 în nivele digitale de 0V şi +5V pentru MCU. Acest lucru este realizat de multe dispozitive ieftine ca MAX232 sau DS275.
Interfaţa Ethernet necesită de asemenea o interfaţă IC, care trebuie să fie mai complexă decât cea necesară pentru RS-232. Acest dispozitiv menţine pachetele ce trebuiesc transmise sau pachetele ce sunt recepţionate, verificând adresele şi checksum pentru aceste pachete şi asigură interfaţa către reţeaua media. Dispozitivele folosite pentru interfaţa Ethernet pot fi Realtek RTL8019AS sau Crystal CS8900A. Suplimentar faţă de interfaţa IC, este necesară o sursă de tact şi o interfaţă media cum ar fi un transformator.
Interfeţele seriale pot folosi portul serial integrat al multor microcontrolere. Dispozitivele pentru interfeţe Ethernet nu sunt încă integrate şi de obicei implementează anumite tipuri de interfeţe de bus PC ca ISA sau PCI. De aceea, interfaţa către MCU necesită o creştere a numărului de pini I/O pentru adrese, date şi control.
Microcontrolerul este a doua parte a hardware-ului pentru Internet. MCU trebuie să interfaţeze reţeaua existentă pentru aplicaţie. Implementarea serverului Web cu periferice integrate previne încărcarea CPU la sistemul principal în comparaţie cu implementarea unui periferic virtual. I2C este foarte folosit la monitorizarea mediului pentru echipamente rack-mounted cum ar fi serverele. RS-485 este folosit de principalele aplicaţii industriale. CAN este de asemenea folosit de aplicaţiile industriale şi de industria auto. Un exemplu de dispozitiv care ar îndeplini aceste cerinţe este microcontrolerul Flash PIC18F6720 de la Microchip Technology. Acest dispozitiv are o interfaţă USART care suportă RS-232 şi RS-485, un modul SPI şi un modul I2C. El conţine 128 Kbytes de memorie program şi 3.8 Kbytes de memorie pentru date, suficientă pentru a implementa interfaţa pentru reţeaua aplicaţie şi stiva TCP/IP.

PROTOCOALE TCP/IP
Trebuie acum să definim un set de protocoale Internet pentru implementarea serverului Web integrat. Cerinţele acestuia pot fi văzute în figura 1, care arată modelul de stivă TCP/IP care conţine mai multe nivele.
Nivelul fizic oferă o interfaţă low-level între MCU şi mediul fizic. Pentru interfeţe seriale, acesta poate include firmware pentru emularea unui modem şi/sau rutine pentru transferul datelor folosind portul serial. O interfaţă Ethernet necesită rutine pentru controlul pinilor de I/O folosiţi pentru conectarea liniilor de adresă, de date şi de control. Nivelul fizic transferă biţii de date între mediu şi următorul nivel din stivă.
Nivelul Data Link converteşte datele brute primite de la nivelul fizic în cadre logice recunoscute de următorul nivel. O interfaţă serială foloseşte în mod tipic unul din două protocoale: Serial Line Interface Protocol (SLIP) sau Point-to-Point Protocol (PPP). SLIP este o metodă foarte simplă pentru împărţirea datelor în cadre folosind un caracter de delimitare în fluxul de date. PPP este un protocol mai complicat care oferă servicii cum ar fi compresia şi multe alte caracteristici avansate. PPP este folosit de obicei în interfeţele seriale pentru conexiuni dial-up la Internet, dar simplitatea SLIP poate fi mai potrivită pentru un port de control şi diagnostic.
Nivelul de reţea este responsabil cu manipularea adreselor mesajelor şi rutarea mesajelor de la sursă la destinaţie. El este folosit pentru translatarea adreselor hardware, cum ar fi adresele Ethernet, în adrese logice, cum ar fi adrese IP. Protocoalele folosite în acest nivel sunt Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP) şi Internet Protocol (IP). ARP translatează adresa fizică într-o adresă logică. ICMP oferă o metodă de comunicare a erorilor şi a altor mesaje între două noduri ale reţelei. Una dintre cele mai utilizate caracteristici ale ICMP pentru debuggingul sistemelor integrate este “echo request and reply” sau PING. Această caracteristică permite unui sistem să determine dacă un alt sistem este conectat la reţea. IP este piatra de temelie a Internetului. Câteva dintre caracteristicile IP sunt adresarea şi rutarea pachetelor, fragmentarea şi reasamblarea pachetelor de date, packet timeout – acordarea de prioritate pentru pachete.
Nivelul de transport controlează fluxul de date dintre nodurile unei reţele şi împarte fluxul de date în pachete mai mici pentru alte nivele. El poate de asemenea oferi controlul erorilor, şi confirmarea datelor pe baza unui protocol. Principalele două protocoale folosite de nivelul de transport sunt User Datagram Protocol (UDP) şi Transmission Control Protocol (TCP). UDP este un protocol fără conexiune în care pachetele de date sunt transmise fără primirea de confirmare de recepţie. Este mult mai simplu decât TCP şi poate fi folosit cu succes la multe aplicaţii integrate. TCP, pe de altă parte, oferă o metodă sigură pentru livrarea pachetelor la destinaţie. TCP oferă o transmisie full duplex şi poate compensa pachetele care nu sosesc în ordine. El îşi poate schimba funcţionarea pentru a maximiza livrările de pachete pe baza întârzierilor reţelei şi mărimii pachetelor. TCP este un protocol foarte robust, dar contribuie mult la încărcarea CPU.
Nu am discutat până acum ce se întâmplă cu datele, ci numai cum acestea circulă. Nivelul aplicaţiei oferă serviciile necesare pentru interpretarea datelor recepţionate. Acest nivel oferă servicii cum ar fi file transfer, mail şi browsing Web. Cele două protocoale importante pentru sistemele integrate sunt Trivial File Transfer Protocol (TFTP), bazat pe transport UDP şi HyperText Transfer Protocol (HTTP) bazat pe transport TCP. TFTP este o metodă simplă folosită pentru transferul datelor către MCU, cum ar fi firmware nou self programmed în memorie de program Flash sau pentru afişarea pe pagini noi de Web. HTTP este protocolul de bază pentru browsere Web. El interpretează HyperText Markup Language (HTML) şi coordonează transferul de date şi grafică pentru pagina Web. Browserul Web este cea mai folosită graphical user interface (GUI) şi, ceea ce este important, este gratis !
Există câteva aplicaţii care pot beneficia de serverele integrate Web pentru diagnostic şi control. Maşinile moderne au multe subsisteme folosite pentru comunicaţii pe reţea. Aceasta este de obicei o reţea CAN network, ce comunică folosind engine control module, traction control module, body control module şi altele. Un avion are un sistem similar, cu multe subsisteme care controlează motoarele, suprafeţele şi sistemele de zbor. Aplicaţiile industriale care au traductori folosiţi într-un anumit proces pot afişa rate de curgere, temperaturi, presiuni, etc. Rackuri de echipamente cum sunt serverele au hardware pentru monitorizarea tensiunilor de alimentare, temperaturilor şi vitezelor ventilatoarelor. Figura 2 arată un exemplu de sistem generic bazat pe PIC18F6720. Toate aceste aplicaţii pot oferi o interfaţă intuitivă pentru un tehnician, pentru diagnosticarea şi modificarea sistemului şi folosesc probabil MCU de 8 biţi.
Folosind protocoalele din suita TCP/IP, cele mai potrivite pentru un mediu integrat, un microcontroler pe 8 biţi poate crea un server integrat Web self-contained care poate interfaţa aplicaţia reţelei cu lumea exterioară. El poate folosi un GUI pentru a vedea starea unui sistem şi pentru controlul aplicaţiei. Dar cel mai important factor este că el reduce timpul de dezvoltare şi costurile asociate cu echipamentul de diagnostic şi trainingul pentru tehnicieni.

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