Bevezető a beágyazott web szerverek világába
Martin Burhardt (FAE
Manager Közép Európa, Microchip Technology) és
Francesco P. Volpe (A mikroszámítógép technika és digitális elektronika professzora)
A „beágyazott Internet” iránt egyre nagyobb az érdeklődés. Ez a cikk egy egyszerű példán keresztül magyarázza el az alapelveket.
PC alapú WEB szerverek mindennaposak. Bármely Windows, Linux vagy Unix operációs rendszerű PC-t lehet WEB szerverként használni. A kis méretű WEB szervereket igénylő alkalmazások megjelenése a „beágyazott” vagy „DIMM” PC-k kifejlesztését igényelte, melyek 80386-, 80486- vagy Pentium-alapú PC magra épülnek. Ezen megoldás előnye, hogy az alkalmazást szokványos PC fejlesztőkörnyezetével készíthetjük el. Jelentős hátrány, hogy a beágyazott PC-k drágák.
Számos alkalmazás nem igényel általános WEB szervert; például, amikor elegendő egy érzékelő vagy logikai állapot lekérdezése. Ilyen alkalmazás lehet kávéautomaták figyelése, vagy fénymásolók távoli diagnosztikája. Egy 8-bites mikrokontroller, mint a PIC16F877 a PICmicro termékcsaládból, sokkal költséghatékonyabb ezekre a feladatokra. A PIC16F877 erőforrásai elegendőek a TCP/IP verem és HTTP szerver megvalósításához.
Amennyiben beágyazott WEB szerverrel böngészőn keresztül vezérelni szeretnénk egy eszközt a saját platformján, számos építő elemet kell beágyaznunk az alkalmazásba

1. ábra: Beágyazott WEB szerver alkotóelemei
Az adat Interneten jut el a beágyazott WEB szerverig. A TCP/IP vermen keresztül az adatok a HTTP „motor” alkalmazásnak adódnak át. Az űrlapelemző kinyeri a megfelelő adatot a HTTP szövegből a beágyazott alkalmazás részére, ilyen lehet, például egy hőmérséklet mérés eredménye. Továbbá ez a modul szolgáltatja a kívánt adatot – a hőmérséklet értéket – a HTML generátornak, mely böngésző-kompatibilis formátumúvá alakítja át. A HTTP motor ekkor WEB lappá alakítja, és kiküldi az Ethernet hálózatra a TCP/IP vermen keresztül. Az Ethernet hálózaton át az adat kérést indító böngészőbe jut.
Az Internetre küldött adatok szabványos formátumú üzeneteket igényelnek. A TCP/IP verem vezérli az adatfeldolgozást. A TCP/IP verem több rétegből áll (2. ábra).

Az adatkapcsolati réteg a hálózati illesztő meghajtó programját tartalmazza. Az itt bemutatott beágyazott WEB szerver meghajtó rutinja csak a PIC16F877 és az Ethernet vezérlő közti adatforgalmat vezérli. A hálózati réteg tartalmazza az IP-t (Internet protokoll). Az IP a megfelelő adatkapcsolati réteg illesztő programjának küldi az adatokat. Az átviteli réteg tartalmazza az adatkapcsolatot ellenőrző protokollt (transmission control protocol [TCP]), mely a két távoli alkalmazási réteg közti adatátvitelről gondoskodik. Számos feladata mellett, a TCP gondoskodik róla, hogy ne legyen elveszett adatcsomag. Az alkalmazási szint tartalmazza a hálózati alkalmazást, ebben az esetben a HTTP szervert. A felhasználó által írt program, a fent említettek szerint a beágyazott WEB szerverben, nem a TCP/IP veremben foglalnak helyet.
Az adat útját a TCP/IP veremben a 3. ábrán szemléltetjük. Az alkalmazási szint beszúr egy fejlécet, a HTTP szerver adatai elé; a kombinált adatot a TCP rétegnek továbbítja. A TCP kiegészíti a csomagot egy előtaggal. Az így keletkezett csomagot TCP szegmensnek nevezzük. A TCP szegmenst az IP szint kapja meg, mely egy IP előtag hozzáadásával IP adatfolyamot formál. Végül az adatfolyamot az adatkapcsolati réteg (Ethernet meghajtó) kapja meg. Ebben a lépésben az adathoz hozzáadódik egy újabb előtag és egy utótag, az így keletkezett Ethernet adatkeretet az Ethernet chip a helyi hálózatra küldi.
A beérkezett adatok is ugyanezen az úton haladnak végig, csak fordított irányban. Minden szint lebontja a reá vonatkozó keretet, kiértékeli, és a hasznos adatot továbbítja a megfelelő magasabb szintű rétegnek.

Megvalósítás PICmicro-val
Egy TCP/IP verem és HTTP szerver megvalósítása megközelítőleg 2Kszó kódmemóriát és 300 byte RAM-ot igényel egy PIC16F877 mikrovezérlőnél, ez a létező legkisebb TCP/IP verem 8 bites mikrovezérlővel. 4. ábra mutatja be a beágyazott WEB szerver kapcsolási rajzát.

A 20MHz oszcillátor szolgáltat órajelet a PIC16F877 mikrokontrollernek és az Ethernet vezérlőnek. Szükség esetén a mikrovezérlőt lehet kisebb frekvencián is járatni. A reset áramkör MCP-130. A TCN75 digitális hőmérő az alkalmazási illesztő felülethez van kapcsolva. A mért értéket a PIC16F877 az Ethernet vezérlőn keresztül továbbítja a hálózatra.
A beágyazott WEB szerver honlapjai az MCU program memóriájában vannak tárolva. A szükséges HTML szövegek táblázatosan kezelhetőek. A PIC16F877 in-circuit programozást támogat, a felhasználók könnyen testre szabhatják az alkalmazás honlapjait.
Megvalósítás PIC18 mikrovezérlővel
PIC18 mikrovezérlőkhöz ingyenes TCP/IP vermet biztosít a Microchip cég. Számos applikációs, adatkapcsolati és hálózati réteg van implementálva a letölthető forráskódban. A HI-TECH PICC18 és Microchip C18 –al fordítható alkalmazások közt találunk olyan beágyazott WEB szervert is, mely DHCP-vel automatikusan lekérdezi az IP címét, majd FTP-vel tölthetjük fel rá a kívánt WEB lapokat. A fejlesztéshez elengedhetetlen megjegyzések és rövid, angol nyelvű leírások megtalálhatóak a Microchip cég honlapján (www.microchip.com) Azoknak, akik kedvet kaptak ezen korszerű technológia alkalmazásához, jó hír, hogy a szükséges szoftverek, építőelemek és fejlesztő rendszerek már Magyarországon is elérhetőek!