Zpět na hlavní stránku
English version Produkty Novinky Software Podpora Ceník Mapa serveru

Web51-C - první kroky

Web51-C je vývojový kit pro tvorbu vestavných Ethernetových UDP a SNMP aplikací na bázi 8051 procesorů.
 
Web51-C je rozšíření projektu Web51 původně tvořeného v assembleru do jazyka C. Výsledné embedded ethernet aplikace lze kompilovat volným kompilátorem SDCC nebo komerčním Keil C51.

Projekt Web51-C lze zkompilovat na původní HW (od cca 1kB interní RAM na novějších x51 procesorech, jako je T89C51RD2. Pro funkce SNMP je ale potřeba použít větší externí RAM.

Základ doporučeného hardwarového řešení tvoří vestavný modul Charon I poskytující dostatečnou paměťovou a výpočetní kapacitu.

Tento popis vás krok za krokem provede instalací a otestováním některých aplikací Web51-C. Vzhledem ke značným možnostem poslední demonstrační aplikace „SNMP I/O Thermometer“ lze upravit a velmi rychle použít ji jako finální řešení.


Základní vlastnosti Web51-C

  • Zdrojové kódy v ANSI C  
  • Používá standardní 8051 MCU a RTL8019AS Ethernet řadič  
  • Plně otevřená HW i SW platforma  
  • Veškeré příklady lze testovat na zdokumentovaných Charon I + Development Kit nebo Charon I + Charon I&II Development Board
  • Vše k dispozici ve zdrojových kódech  
  • Implementován UDP stack  
  • Příklady kompatibilní pro volné SDCC (Small Device C Compiler)  
  • Příklady kompatibilní pro komerční Keil C51  
  • Funkční SNMP aplikace „SNMP I/O Thermometer“ s JAVA vizualizací  
  • Podrobný popis, starting guide.  
  • Rychlý návrh a vývoj aplikací  
  • Velmi levné HW řešení, vhodné pro velké série
     


 

Download

Web51-C – Getting Started

Podrobný manuál, popisující které kompilery (SDCC a Keil uC51) je třeba použít a jak zkompilovat příklady. Popis vývoje a odladění aplikací v Keilu i SDCC kompileru. Krok-za-krokem popis, jak otestovat aplikaci SNMP Thermo Meter..
Download : Web51C_SNMP_en.pdf

 

Web51-C – Evaluation version

Testovací verze v samorozbalitelném Instalátoru pro Win32. obsahuje :
  • Full source code of the UDP stack
  • Ethernet controller driver in .LIB version only
  • SNMP demo examples as .HEX files only, no source code

 

Blokové schéma projektu Web51-C

Demo verze


 
 

ANSI C - SNMP vývojový systém


 
 

Hardwarové řešení projektu

Základ hardwarového řešení 8051 kompatibilní (dále x51) procesor a řadič Ethernetu RTL8019AS. V našich aplikacích používáme vestavný modul Charon I, jehož schéma a popis najdete v přílohách této dokumentace. Charon I je osazen 8bitovým mikroprocesorem T89c51RD2 firmy Atmel. Obecně lze ale samozřejmě použít jakýkoliv jiný x51 MPU.

Paměťový podsystém tvoří

  • integrovaná paměť FLASH 64 kB (kód programu),
  • integrovaná paměť EEPROM 2 kB (konfigurační parametry),
  • externí paměť SRAM 32 kB (dynamické přidělování paměti),
  • přímo mapované periférie - ethernetový řadič RTL8019as.

 
Adresový prostor
Použito
0x0000 – 0xFBFF
FLASH 63 kB (CODE)
0xFC00 – 0xFFFF
Bootloader 1 kB
Tab.1 Paměťový podsystém Web51-C – interní paměť programu CODE

Adresový prostor
Použito
0x0000 – 0x7FFF
SRAM 32 kB (XRAM)
0x8000 – 0x801F
RTL8019as Ethernet controller
0x8020 – 0x80FF
Free for the additional HW
0x8100 – 0xFFFF
The 0x8000 – 0x80FF address space overlapping
Tab.2 Paměťový podsystém Web51-C – externí paměť dat XRAM

Adresový prostor
Použito
Adresový prostor
Použito
0x0000 – 0x03FF
SRAM 1 kB (XRAM)
0x0000 – 0x07FF
EEPROM 2 kB
Tab.3 Paměťový podsystém Web51-C – interní paměť dat XRAM a EEPROM

Programování paměti FLASH a EEPROM se provádí metodou ISP přes sériový port mikroprocesoru viz kapitola „Programování firmwaru do modulu Charon I“. Tato metoda nevyžaduje žádný další podpůrný hardware a zcela eliminuje použití klasického programátoru.

Ethernetový řadič RTL8019as je zapojen v minimalizovaném zapojení bez nutnosti použití externí paměti EEPROM 93c46. Komunikace s řadičem probíhá v 8bitovém režimu, umožňující adresovat 8 kB SRAM integrované uvnitř řadiče. Paměť je určena pro příjem a vysílání ethernetových rámců. Po přijetí ethernetového rámce, řadič automaticky generuje požadavek o přerušení pro řídící mikroprocesor. K připojení zařízení do lokální sítě 10BaseT slouží konektor RJ-45.

Doporučený HW pro ladění příkladů

Testovací příklady jsou určeny pro moduly Charon I a standardně fungují s dodávanými vývojovými kity :
 
Charon I DK (Development Kit) je jednoduchý a levný vývojový kit, ve kterém lze otestovat pouze základní periferie, neobsahuje posuvné registry atd..
Charon I&II DB (Development Board) je vývojový kit, na němž najdete přímé výstupy, ale také SHIFT registry pro externí rozšířené vstupy a výstupy, LCD displej připojený také přes posuvné registry, přímý výstup na 1-Wire.
Charon I&II obsahuje také periferie, které podporuje pouze Charon 2 (druhou sériovou linku RS-232, JTAG, SERIAL FLASH až 4 MB, ISP programovací rozhraní..).
Poznámka : Modul lze použít v jakékoliv základní desce, která připojí galvanicky oddělený Ethernet a napájení.

V příkladech použité periférie

Šířka binárních vstupů a výstupů je dána počtem použitých posuvných registrů, které se připojí kaskádně za sebe. Rozšířené periférie v příkladu „SNMP I/O Thermometer“ fungují pouze, pokud je z JAVA aplikace (nebo z obecného SNMP clienta) nastaven pro periférie mód „special“, v režimu „paralel“ lze přistupovat pouze přímo na 8bitový vstupně/výstupní port P1.
  • Sériová linka RS-232 (data z RS-232 jsou odeslána do SNMP clienta jako trapy)
  • 0 .. 32 binárních vstupů
  • 0 .. 32 binárních výstupů
  • až 4x teploměr 1-Wire
Aplikaci „SNMP I/O Thermometer“ doporučujeme ladit na vývojové desce Charon I&II DB, která má vyvedeny všechny potřebné periférie, včetně LCD displeje.

Softwarové řešení

Od prvopočátku bylo jasné, že projekt Web51-C musí být směřován do oblasti jednoduchých embedded ethernet zařízení. 8bitové mikroprocesory řady 8051 jsou bohužel kvůli své hardwarové architektuře dosti limitovány co do možností dosažitelného maximálního výpočetního výkonu. Je třeba šetřit s dostupnými prostředky a celé řešení uzpůsobit použitému mikroprocesoru.

Seznam základních požadavků na navrhovaný systém lze shrnout do následujícího výčtu:

  • použití vyššího programovacího jazyka,
  • možnost dynamické správy paměti,
  • přístup k periferiím pomocí vyhrazených funkcí,
  • implementace základních síťových protokolů,
  • snížit dobu odezvy systému na minimum,
  • transparentnost celého řešení.

Proč použít jazyk C?

Jazyk C byl navržen k systémovému (nízkoúrovňovému) programování. Díky tomu se prosadil všude tam, kde je třeba přímo ovládat libovolný hardware. V jazyce C je napsaná celá řada operačních systému, uživatelských a mikroprocesorových aplikací. Překladače jazyka C existují pro většinu dostupných typů procesorů.

Výhody jazyka C:

  • jednoduchá přenositelnost zdrojových kódů programu (multiplatformnost),
  • přehlednost zdrojových kódů programu a celkové zjednodušení při správě složitých projektů,
  • rychlejší vývoj aplikací (použití standardních knihoven),
  • nástroje na optimalizaci a validaci výsledného kódu programu,
  • zavedený programovací jazyk, podporovaný výrobci hardwaru (mikroprocesorů) a softwaru (kompilátorů).

Nevýhody jazyka C:

  • vyšší cena kvalitního vývojového prostředí,
  • relativně větší nároky na paměť dat a programu výsledné aplikace,
  • složitější na osvojení oproti ostatním vyšším programovacím jazykům.

Implementace jazyka C u mikroprocesorů řady 8051

Díky neutuchající oblibě mikroprocesorů řady 8051 je k dispozici dostatečné množství kompilátorů jazyka C. Základní vlastností jazyka C je, že využívá intenzivně práce se zásobníkem (předávání parametrů, lokální proměnné, návratové adresy funkcí, reentrivní funkce atd.). To je kamenem úrazu u mikroprocesorů řady 8051, která není vybavena vhodným zásobníkovým systémem. Úspěšnost implementace jazyka C u mikroprocesorů řady 8051 závisí na tom, jak se daný výrobce kompilátoru vypořádal s tímto nelehkým problémem. V další fázi se pak řeší specifické problémy s implementací jazyka C na 8-bitový mikroprocesor řady 8051.

Volba kompilátoru jazyka C

Základním kritériem při výběru kompilátoru jazyka C bylo
  • jádro systému Web51-C musí být možno sestavit nejméně ve dvou kompilátorech (komerční/volně dostupný),
  • vývoj aplikací musí být možný na platformě MS Windows a Linux,
  • výsledný systém Web51-C musí umožňovat vývoj aplikací s minimálními investicemi do programového vybavení.

GNU kompilátor SDCC (Small Device C Compiler), vyvíjený skupinou nadšenců si v porovnání s komerčními produkty vede docela obstojně. Svými vlastnostmi výsledného kódu programu se řadí do střední třídy kompilátorů. Chybí spousta vymožeností, které je dána absencí IDE a s tím spojený komfort při vývoji. Rozšířená syntaxe jazyka C používaná u mikroprocesorů řady 8051 je u SDCC a Keil C51 shodná. To umožňuje psát programy, které lze jednoduše přeložit v obou kompilátorech. Při realizaci složitějších projektů, je však třeba počítat se zvýšeným úsilím, ze strany vývojáře k dosažení patřičného výsledku.

Keil C51 je odbornou veřejností považován za jeden z nejlepších kompilátorů pro 8051 mikroprocesory. Je to pravda a na celém produktu je vidět několik let intenzivního vývoje, který má za sebou. Pokud vážně uvažujete o nákupu komerčního kompilátoru, tak by jste při výběru neměli opomenout Keil C51.

Poznámka: Překladač Keil C51 používá pro ukládání dat do paměti metodu velkého endiánu (Big Endian) na rozdíl od SDCC, které využívá metodu malého endiánu (Little Endian).

Adresářová struktura projektu

Projekt Web51-C je rozdělen do následujících adresářů

web51c\app ... uživatelské aplikace (např. demonstrační příklady)
 
web51c\bin ... podpůrné programy využívané systémem Web51-C (např. RD2-Flasher)
 
web51c\dev ... ovladače jednotlivých hardwarových zařízení (např. ethernetový řadič RTL8019as)
 
web51c\doc ... dokumentace
 
web51c\include ... hlavičkové soubory systému Web51-C
 
web51c\lib ... předkompilované knihovny (např. udp, snmp knihovna
 
web51c\net.. zdrojové kódy systému Web51-C

Implementované síťové protokoly

Volba rozsahu implementovaných protokolů vycházela z celkové koncepce zvoleného řešení. Vybrané protokoly pokrývají oblast referenčního modelu OSI-RM. Na jednotlivých vrstvách byly implementovány následující protokoly

Linková vrstva (data link layer)

  • Vysílání a příjem rámců podle standardu Ethernet II.
  • ARP (Address Resolution Protocol) - používá se při znalosti cílové IP adresy stanice pro nalezení příslušné fyzické adresy rozhraní MAC.

Síťová vrstva (network layer)

  • IP (Internet Protocol) - klíčový protokol, provádí vysílání datagramů na základě síťových adres obsažených v jejich záhlavích a poskytuje síťovou službu bez spojení.
  • ICMP (Internet Control Message Protocol) - protokol řídících hlášení, slouží k přenosu specifických zpráv týkajících se chyb a zvláštních okolností při přenosu datagramů.

Transportní vrstva (transport layer)

  • UDP (User Datagram Protocol) - poskytuje mechanismus pro koncový přenos dat mezi dvěma stanicemi. Nabízí transportní službu bez spojení.

Aplikační vrstva (application layer)

  • SNMP (Simple Network Management Protocol) – protokol podporující přenos informací pro management sítí. Slouží k monitorování aktivních prvků sítě, dálkové řízení a změny konfigurace sítě.
  • DNS (Domain Name System) – umožňuje mapování jmen stanic na IP adresy.
  • WOL (Wake On Lan) – zapnutí stanice na lokální síti.
  • Různé proprietární protokoly použité v uživatelských aplikacích (např. měření teploty).

V současné verzi tvoří jádro systému UDP protokolový zásobník, nad kterým jsou provozovány další síťové protokoly. Jádro lze přeložit jak v SDCC, tak i Keil C51. Jednou z hlavních aplikačních úloh kde je systém Web51-C využíván, je monitorování zařízení na síti pomocí protokolu SNMP. Implementace SNMP protokolu byla provedena pouze pro kompilátor Keil C51.

Vývoj a ladění aplikací

Vývoj aplikací se provádí na platformě MS Windows nebo Linux. Programátor může volit mezi kompilátorem SDCC (překlad pomocí souborů makefile), nebo Keil C51 (integrované prostředí µVision2). Pro pochopení principů práce se systémem Web51-C je k dispozici celá řada demonstračních příkladů v adresáři web51c\app.

Tvorba aplikací v Keil C51

Sestavení aplikace se provádí v µVision2 IDE, které sdružuje management projektu, editaci zdrojových kódů, překladač, linker a debugger v jeden celek. Instalace programu je obdobná běžně používanému postupu známého z prostředí MS Windows.

 

Konfigurace paměti eeprom mikroprocesoru T89c51RD2

Systém Web51-C používá pro uložení konfiguračních parametrů interní paměť eeprom mikroprocesoru T89c51RD2, viz příklad 1. Pro správnou funkci je nezbytně nutné tuto paměť následujícím způsobem nakonfigurovat.

Zdrojové soubory příkladu 1 jsou sdruženy v rámci projektu web51.uv2. Projekt obsahuje informace potřebné pro překladač a linker. Projekt otevřeme v menu Project => Open Project , kde zadáme cestu: \web51c\app\00.eeprom.setup a vybereme projekt web51.uv2.

V levém okně vidíme jednotlivé části, které projekt obsahuje:

  • složka SRC – zdrojový kód programu eesetup.c (EEPROM SETUP),
     
  • složka INC – hlavičkové soubory systému Web51-C,
     
  • složka LIB – použité knihovny Web51Udp.LIB (celý systém Web51-C včetně UDP protokolového zásobníku).

 

fig. 1: Keil C51 - µVision2 IDE
ETH_ADDR MY_ETH_ADDR = {{0x00, 0x0A, 0x59, 0x00, 0x00, 0x00}}; 
                                                        // Web51 MAC adresa
IP_ADDR  MY_IP_ADDR  = {{192,168,6,68}};		// Web51 IP adresa
IP_ADDR  GW_IP_ADDR  = {{192,168,6,254}};        	// maska podsítě
IP_ADDR  NETMASK     = {{255,255,255,0}};		// IP adresa brány

Hodnoty IP adres je třeba nastavit tak, aby odpovídaly použitým adresám v dané lokální sítí do které se modul Charon I připojuje.

Jméno souboru
Popis
WEB51  vstupní data pro debugger
WEB51.HEX  sestavený kód programu
WEB51.M51  symbol table
WEB51.OPT  aktuální nastavení µVison2 (otevřené soubory, velikost oken, …)
WEB51.UV2  soubor projektu
EESETUP.C  zdrojový kód programu (Eeprom Setup)
EESETUP.LST  výpis programu po provedení sestavení

Poznámka: V dolní části obr.1 je vidět výsledek kompilace. Knihovna Web51Udp.LIB obsahuje i některé funkce, které nejsou v programu použity. V důsledku toho kompilátor ohlásí 14 varovných hlášení. Nejedná se o chybu, pouze nás kompilátor upozornil, že tyto funkce nejsou použity a zabírají zbytečně místo v paměti kódu programu. Uživatel má možnost označit v souboru \include\config.h funkce, které se nemají přidávat do knihovny Web51Udp.LIB a tím potlačit výskyt těchto chybových hlášení. Tento krok však vyžaduje znovusestavení knihovny a je doporučen zkušenějším uživatelům.

Nahrání firmwaru (soubor web51.hex) do modulu Charon I lze provést pomocí souboru flash.bat (uložen ve stejném adresáři jako projekt). .


Obr. 2: Výstup programu na sériový port 9600, N, 8, 1

Nyní je paměť eeprom nakonfigurována. O tom, že data byla správně zapsána do paměti eeprom se můžeme přesvědčit pokud vyresetujeme modul Charon I.

První aplikace v systému Web51-C

Následující popis uvádí základní principy použití systému Web51-C. Na jednoduchém příkladu UDP klienta bude demonstrována komunikace mezi PC a modulem Charon I. Program přijímá data vyslaná z PC na IP adresu modulu port 2000. Obsah UDP datagramu je zobrazen na standardní výstup (sériový port).

Projekt otevřeme v prostředí µVision2 (viz postup uvedený v předchozím příkladě). Zdrojový kód příkladu je uložen v adresáři web51c\app\02.udp.client.

Funkce main

Celý program je obsažen v souboru udpclient.c. Nejdříve musíme vyhradit paměť pro příjem UDP datagramů (ethernetových rámců).:
u_char EthFrmBuf[ ETH_FRM_SIZE ];   /* The memory for the received UDP datagram */
data WORD EthProt;		    /* The type of the detected protocol */

Následuje inicializace systému Web51-C

  • nastavení sériového portu (9600,N,8,1),
     
  • načtení konfigurace z eeprom,
     
  • inicializace ARP CACHE protokolu ARP,
     
  • inicializace ethernetového řadiče RTL8019as.
W51SystemInit();  /* inicializace systému Web51-C */
W51VerStrComp();  /* zobrazení aktuální verze systému na standardní výstup  */
W51SysInfo();     /* zobrazení konfigurace (MAC, IP adresa atd.) */

Hlavní smyčku programu se dělí na následující dvě části:

Zpracování požadavků od ethernetového řadiče – program testuje výstup RTL8019as, jestli nedošlo k příjmu ethernetového rámce. Pokud jsou data k dispozici načtou se funkcí W51EthReadData() do paměti XRAM. Z přijatého datagramu se určí typ zapouzdřeného protokolu (ARP, IP atd.) a podle toho se postupuje při dalším zpracování.
  • W51ArpInput() – zpracování ARP dotazu/odpovědi,
  • W51IpValid() – ověření intergrity IP datagramu (CRC, cílová IP adresa atd.),
  • W51IcmpInput() – zpracování ICMP dotazu/odpovědi,
  • W51UdpValidCRC() – ověření intergrity UDP datagramu (platné CRC),
  • W51UdpValidPort() – platný(otevřený) UDP port na systému Web51-C,
  • W51DisplayUdpData() – zobrazení UDP datagramu na standardní výstup.
    if( RTLIrq0 ) // check for received ethernet data
                  // test RTL8019as interrupt request line
    { W51EthReadData( &EthFrmBuf[0] ); // read data from ethernet controller

      EthProt = MAKEWORD(EthFrmBuf[12], EthFrmBuf[13]);

      // --- decode received ethernet frame data --- //
      if(EthProt == 0x0806) W51ArpInput( (ARP_FRAME *) EthFrmBuf );  // ARP
      if(EthProt == 0x0800)                                          // IPv4
      {if( W51IpValid((IPv4_FRAME *) EthFrmBuf))
       {if( EthFrmBuf[23] == IP_Prot_ICMP )                          // ICMP
         W51IcmpInput((ICMP_FRAME *) EthFrmBuf);
        if( EthFrmBuf[23] == IP_Prot_UDP )                           // UDP
        { if( W51UdpValidCRC( (UDP_FRAME *) EthFrmBuf))
          { // decode received UDP datagram here
            if(W51UdpValidPort((UDP_FRAME *)EthFrmBuf))     // available UDP port
            { W51DisplayUdpData( (UDP_FRAME *) EthFrmBuf);
            }
          }
        }
       }
      }
    }

Management systému Web51-C – správa ARP cache, nalezení příslušné fyzické adresy rozhraní MAC pro danou IP adresu (ARP resolver).

W51ArpManagement();    // updata arp cache, resolve remote hosts,...

Test funkčnosti aplikace

Sestavení programu provedeme v menu Project => Build target , výsledný soubor web51.hex nahrajeme do modulu Charon I. Dostupnost modulu nejdříve ověříme pomocí programu ping (např. ping 192.168.6.68).
 

Obr. 3: Odezva systému Web51-C na ping

K testování funkce programu na PC slouží aplikace udp_client.exe uložená v adresáři web51c\app\02.udp.client\udp.client.pc. Aplikace čte data ze standardního vstupu (klávesnice) a posílá na IP adresu modulu port 2000.

Spuštění programu UDP klient na PC:

udp_client 192.168.6.68.

Obr. 4: Program udp_client.exe spuštěný na PC

Zadáme testovací řetězec „Web51-C project based on T89c51RD2 and RTL8019as.“ a na obr. 5 vidíme data přijatá modulem Charon I.


Obr. 5: Přijatá data modulem Charon I zobrazená na sériovém portu

Demonstrační příklady systému Web51-C

Systém We51-C obsahuje dále uvedené demonstrační příklady řešených aplikací
  • EEPROM – konfigurace paměti EEPROM systému Web51-C.
     
  • Wake On Lan – zapnutí stanice na lokální síti pomocí UDP datagramu.
     
  • UDP client – příjem UDP datagramu a jeho zobrazení na standardní výstup.
     
  • UDP server – vysílání UDP datagramu na danou IP adresu.
     
  • UDP echo server – příjem a následné zpětné vyslání UDP datagramu.
     
  • ICMP ping – test dostupnosti vzdáleného počítače pomocí ICMP zpráv.
     
  • SNMP I/O Thermometer – použití SNMP protokolu pro monitorování teploty, ovládání vstupů a výstupů..

Poznámka: Systém Web51-C využívá pro standardní vstup/výstup sériový port mikroprocesoru T89c51RD2. K zobrazení dat posílaných na sériový port lze použít libovolný sériový terminál. Stačí pouze nastavit přenosové parametry 9600, N, 8, 1 a vypnout řízení toku dat.

Příklad 1 - EEPROM

Systém Web51-C používá pro uložení konfiguračních parametrů (IP adresa, maska, brána atd.) interní paměti eeprom mikroprocesoru T89c51RD2.
Adresa
Popis
Délka [B]
0x000
Web51 MAC adresa
6
0x006
Web51 IP adresa
4
0x00A
maska podsítě
4
0x00E
IP adresa brány
4
0x012
IP adresa DNS serveru
4
Tab.4 Struktura paměti eeprom systému Web51-C

Program provede následující nastavení konfiguračních parametrů systému Web51-C

  • Web51 MAC - počáteční MAC adresa vyhrazená projektu Web51 00:0A:59:00:00:00.
  • Web51 IP adresa – 192.168.6.68
  • Maska podsítě – 255.255.255.0
  • IP adresa brány IP – 192.168.6.254

Zdrojový kód příkladu : web51c\app\00.eeprom.setup.

Poznámka: Implementace SNMP protokolu využívá vlastní(adaptivní) uspořádání paměti eeprom, který není slučitelný s popisem uvedeným v tabulce 4.

Příklad 2 – Wake On Lan (WOL)

Technologie Wake On Lan (Magic Packet Technology) byla vyvinuta firmami AMD a Hewlett Packard. WOL umožňuje zapnutí počítače na lokální síti pomocí speciálního UDP datagramu (ethernetového rámce). UDP datagram musí obsahovat sekvenci 6 x FFh za kterou je zopakována 16 x MAC adresa počítače, který má být probuzen. Počítač musí obsahovat síťovou kartu a základní desku podporující funkci WOL, která musí být zároveň povolena v BIOSu počítače.

Zdrojový kód příkladu : web51c\app\01.wake.on.lan.

Příklad 3 – UDP klient

Program přijímá data vyslaná z PC na IP adresu Web51 zařízení port 2000. Obsah UDP datagramu je zobrazen na standardní výstup (sériový port).

K testování funkce programu na PC slouží aplikace udp_client.exe, která čte data ze standardního vstupu (klávesnice) a posílá vše na Web51 zařízení. Aplikace je napsaná v jazyce C a lze ji sestavit pomocí kompilátoru MS Visual C++ nebo volně dostupného kompilátoru LCC-WIN32. IP adresa zařízení Web51 lze zadat jako parametr programu např. udp_client.exe 192.168.6.68.

Zdrojový kód příkladu : web51c\app\02.udp.client.

Příklad 4 – UDP server

Program vysílá každou sekundu UDP datagram z Web51 zařízení na IP adresu PC klienta port 4000. UDP datagram obsahuje informace o teplotě (simulovaná teplota inkrementující se po 0,1°C při každém odeslání).

K testování funkce programu na PC slouží aplikace udp_server.exe, která přijímá vyslaná data z Web51 zařízení. Aplikace je napsaná v jazyce C a lze ji sestavit pomocí kompilátoru MS Visual C++ nebo volně dostupného kompilátoru LCC-WIN32.

Zdrojový kód příkladu : web51c\app\03.udp.server.

Příklad 5 – UDP echo server

Program čte data z libovolného UDP portu, zobrazí je na standardní výstup a odpoví (pošle originální datagram) co nejrychleji zpět. Jedná se o rozšíření příkladu 3 a demonstrace běžné situace, kdy obslužný systém funguje formou dotaz – odpověď. K testování funkce programu na PC lze použít např. aplikaci udp_client.exe.

Zdrojový kód příkladu : web51c\app\04.udp.echo.server.

Example 6 – ICMP ping

Program testuje dostupnost vzdáleného počítače pomocí ICMP zpráv echo request a echo reply. Jedná se o obdobu příkazu ping (Packet Internet Grouper) běžně používaného na PC.

Zdrojový kód příkladu : web51c\app\05.icmp.ping.

Example 7 – SNMP

Příklad demonstruje detailní popis použití SNMP na jedné rozsáhlé aplikaci, která ovládá binární vstupy, výstupy, LCD display, sériovou linku RS-232 a 1-Wire teploměr.

Celý příklad je k dispozici v rámci projektu Web51-C, k jeho zkompilování je ale již třeba kompilátor Keil C51, verze pro SDCC zatím není k dispozici, s pomocí zdrojových kódů pro Keil C51 ji nelze vytvořit.

V poslední kapitole najdete podrobný popis jak začít používat aplikaci „SNMP I/O Thermometer“, která je případně k dispozici i jako samostatný text pro tento příklad.

 

Zdrojový kódy příkladů k problematice SNMP jsou uloženy v adresářích :

  • web51c\app\10.snmp.LED,
  • web51c\app\10.snmp.LED_table
  • web51c\app\ 10.snmp.LED_variable_all
  • web51c\app\10.snmp.serial_io

Programování firmwaru

Atmel Flip

Modul Charon je defaultně dodáván s firmwarem Konvertor Ethernet / RS-232, takže nejdříve je nutné nahrát do modulu nový firmware, který obsahuje tuto SNMP aplikaci. Upload firmware do procesorů T89C51RD2 a následovníků se provádí programem Flip od výrobce procesorů – firmy Atmel.

Program stáhnete buď na oficiálních stránkách Atmelu, nebo odzkoušenou starší verzi 1.6, kterou vidíte na obrázku najdete na www.HWgroup.cz na stránce DOWNLOAD mezi užitečnými utilitami..

PSEN - programování

Připojte modul Charon k sériové lince RS-232 a osaďte jumper PSEN.

Pozici jumperu PSEN najdete vyznačenu na vývojové desce (Charon I&II DB vlevo dole – spodní pozice „Forced“, Charon I DK pod ledkami LINK a POWER).

Po osazení jumperu zapněte napájecí napětí, vyberte ve Flipu typ procesoru (Device => Select => T89C51RD2) pak načtěte firmware uložený v souboru s příponou .HEX.

Nastavte programování po sériovém portu RS-232 (Settings => Communication => RS-232). Pokud program zahlásí chybu, zkontrolujte osazení jumperu PSEN, použité kabely pro připojení RS-232 (stačí 3vodičové připojení RxD, TxD, GND), (u Charon I&II DB zkontrolujte, zda jste osadili jumper RESET do pozice x51) a případně modul resetujte.

  • Před programování nezapomeňte zaškrtnout i políčka ERASE a BLANK CHECK.
  • Po naprogramování a verifikaci odpojte program Atmel Flip ze sériového portu.
  • Odstraňte jumper PSEN a proveďte reset zařízení.
     
  • Pokud aplikace podporuje SETUP režim, osaďte jumper SETUP (T0) a proveďte reset zařízení.

Pro nastavení v SETUPu spusťte libovolný sériový terminál (TeraTerm, Terminal, v nejhorším případě HyperTerminál z Windows), nebo náš program „Ethernet Converter SETUP“, který lze také stáhnou ze stránky DOWNLOAD na www.HW-group.com .

Programování firmwaru – RD2-Flasher

Program „RD2-Flasher“ slouží k programování mikroprocesoru Atmel T89c51RD2 metodou ISP přes sériový port v operačních systémech MS Windows. Jedná se o konzolovou aplikaci určenou pro snadnou integraci do libovolného vývojového prostředí (Keil µVision2, SDCC atd.). Zdrojové kódy programu jsou k dispozici v rámci projektu Web51.

RD2-Flasher představuje alternativní řešení k originálnímu softwaru FLIP. Ve spojení se zavaděčem (plně kompatibilní s FLIPem) vyvinutým v rámci projektu Web51 umožňuje přímo programovat eeprom paměť mikroprocesoru T89c51RD2. Umí navíc přepnout modul Charon I přímo do programovacího režimu pomocí ovládání pinu PSEN mikroprocesoru vývodem CTS z RS232.

Postup ISP programování

Nastavení jumperu PSEN se shoduje s postupem uvedeným u programu FLIP. Detailní popis použití RD2-Flasheru je uveden na adrese http://www.hw.cz/software/rd2_flasher/flasher22.html.

Příklad nahrání souboru snmp.hex do modulu Charon :

RD2F -f snmp.hex -c COM1 -b 115200 -m 0 -p 1 -t 2 -q 18 -i 32 -v 1

Aplikace „SNMP I/O Thermometer„


Více se o aplikaci SNMP I/O Thermometer dozvíte v článku SNMP I/O Thermometer- První kroky

Závěr

Projekt Web51 má za sebou již několik let vývoje a stovky aplikací, což se positivně promítá do jeho současného stavu. V oblasti implementace síťových technologií do embedded zařízení si našel své stále místo. Verze Web51-C rozšiřuje stávající možnosti projektu zvláště v oblasti managementu sítí.

Implementace SNMP protokolu otevírá cestu k monitorování aktivních prvků sítě, dálkovému řízení a změně konfigurace sítě. Použití programovacího jazyka C zpřehledňuje a zpřístupňuje celý systém většímu okruhu vývojářů. Programování v jazyku C má za následek rapidní snížení doby vývoje aplikací v porovnání s psaním v assembleru.

 

Objednávky

Několik kusů vývojového kitu držíme skladem, takže jej můžeme odeslat během 1-2 dnů. Objednávejte prosím přes náš Internetový obchod obchod.HW.cz

Kompletní dodávka obsahuje

PortStore SET photo
  • Charon I&II Development Board
  • Charon I embedded module
  • Napájecí adaptér 9V / 300 mA
  • RS-232 LapLink kabel (2x DB9F křížený)
     
  • Tištěný manuál První kroky
  • CD se softwarea a zdrojovými kódy k UDP stacku, a všem příkladům...

Aktuální cenu najdete v našem obchod.HW.cz

 

Související dokumentace

  • web51c\app\Readme.txt
    Všechny SNMP aplikace mají propracované readme v angličtině.
     
  • Charon I&II Development Board – Schémata a popis rozšířeného vývojového kitu.
     
  • Charon I – Dokumentace – Schéma a popis samotného modulu a programování.
     
  • Projekt Web51 - http://web51.hw.cz/
     
  • www.Hwgroup.cz – Dokumentace k finálním produktům a řešením.

 

 

Literatura & zajímavé odkazy



English version Produkty DOWNLOAD Ceník Kontakty Mapa stránek


HW group - U Pily 3/103, 143 00, Praha 4

Telefon: 222 511 918   fax 222 513 833