Charon I - SNMP I/O Thermometer - první kroky

V jazyce C lze pro modul Charon I naprogramovat řadu SNMP aplikací a vývojový kit „Web51 ANSI C – SNMP“ obsahuje řadu příkladů na jejich tvorbu.

Nejrozvinutější z aplikací je „SNMP I/O Thermometer“, který lze použít ve spolupráci s JAVA aplikací „Thermometer“. Místo běžného SNMP clienta ovládá sériovou linku RS-232, až 32 binárních vstupů a výstupů a několik 1-Wire teploměrů.


Tento popis vás krok za krokem provede instalací a otestováním SNMP aplikace. Vzhledem ke značným možnostem této demonstrační aplikace ji můžete použít jakožto finální řešení, aniž byste museli cokoliv programovat.

SNMP I/O Thermometer

Firmware je určen pro moduly Charon I a standardně funguje 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í periférie, 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 rovněž periférie, které podporuje pouze Charon 2 (druhou sériovou linku RS-232, JTAG, SERIAL FLASH až 4 MB, ISP programovací rozhraní..).

Modul lze použít v jakékoliv základní desce, která připojí galvanicky oddělený ethernet a napájení.


Ovládané 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 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 8. bitový 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

Parametry RS-232 portu se nastavují po SNMP v našem případě z JAVA aplikace. Jakákoliv příchozí data jsou odeslána jako SNMP trap.
Teploměry na sběrnici 1-Wire se automaticky detekují vždy po zapnutí.
Teploměry na 1-Wire se detekují po startu i za běhu. Lze je tedy odpojit a připojit. Který teploměr chci použít, lze definovat indexem teploměru v Java aplikaci. Teploměry se řadí podle svého ID.

Instalace SNMP FirmWare do modulu Charon I

Upload SNMP firmware

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 Atmel FLIP 1.6 z našeho serveru, kterou vidíte na obrázku.

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.
  • Osaďte jumper SETUP (T0)

Spusťte si 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áhnout ze stránky DOWNLOAD na www.HWgroup.cz.

RS-232 SETUP pro aplikaci SNMP I/O Thermometer

Nastavte parametry sériového kanálu 9600 Bd 8N1, no handshake. Ověřte, zda jste osadili jumper SETUP a odstranili jumper PSEN, a resetujte modul.

POZOR – DŮLEŽITÉ
Po každém nahrání nového firmware, nebo jeho updatu, je NUTNÉ provést nejprve RESET TO DEFAULT, abyste inicializovali hodnoty v konfigurační paměti EEPROM.

Proveďte příkaz :

d ... load default setup
Po jeho provedení a opětovném načtení menu nastavte IP adresu, Gateway, Masku a „target trap adress“.
t ... enter target trap address
Target trap adress je adresa, kam se budou odesílat UDP pakety se SNMP trapy. Jedná se tedy o jedinou adresu, která bude s modulem komunikovat. Pravděpodobně sem nastavte vaší IP adresu.

Pokud používáte DHCP, nebo si ji nepamatujete, nejsnáze ji zjistíte spuštěním v příkazovém řádku „IPconfig“ – systém Windows vypíše DNS, IP, MASK a GATEWAY. Další možnosti jsou 0.0.0.0 = vypnuto, 255.255.255.255 = UDP broadcast.

v ... set port value
Definuje hodnotu I/O portu po zapnutí napájení. Lze tak definovat například vypnutí nějakých zařízení po restartu systému. Hodnota se nastavuje v desítkové soustavě v rozsahu 0..255.
p ... switch port type
Mění typ práce s porty mezi direct – přímý přístup na I/O port a shifted – použití posuvných registrů a 1-Wire teploměru. Pokud používáte Charon I&II DB nastavte si verzi

s ... Web51 system info
Vypíše aktuální nastavené síťové parametry (MAC, IP, GW, MASK).

Po nastavení potřebných parametrů odstraňte jumper SETUP a modul restartujte. Do sériového portu modul vypíše :

EEPROM loading, preserving MAC, getting

Závěr

Firmware modulu je nyní nastaven. Je čas připojit se k modulu po SNMP! Pokud si chcete být jisti, že modul skutečně na síti finguje, zkuste si pingnout na jeho IP adresu, ping je součást ICMP a funguje samozřejmě i na UDP a SNMP zařízeních, které nepodporují TCP/IP.

Instalujeme a spouštíme JAVA aplikaci „Thermometer“

Pro obsluhu modulu Charon I, který komunikuje po SNMP, můžete používat libovolný SNMP client (browser), protože MIB tabulka je přiložena k aplikaci, ale pokud se SNMP začínáte, použijte naši JAVA aplikaci „Thermometer“, která vám vše přehledně zobrazí s pomocí grafiky a zároveň v ní lze snadno a rychle modul nastavovat.

Základní pojmy kolem jazyka JAVA

JAVA ještě není běžně rozšířena, proto se vám pokusíme vysvětlit pár základních pojmů :
  • JAVA SDK (Software Development Kit)
    Obsahuje překladač souborů .java na soubory .class a vše potřebné pro to, abyste mohli začít vyvíjet v JAVĚ aplikace. Pokud potřebujete hotové aplikace jen používat, nepřidělávejte si starosti s instalací kompletního balíku.
  • JRE – JAVA runtime enviroment
    Základní prostředí, které umí JAVA kód spustit, a JRE tak potřebujete k tomu, abyste mohli jakoukoliv JAVA aplikaci vůbec pustit. Poslední dobou firma SUN, která JAVU vymyslela, hodně propaguje tzv. Java Web Start 1.2. Jedná se o jakýsi další balík rozšíření, který umožňuje spouštět aplikace z jediného souboru nebo přímo z Internetu atd. Poslední dobou je standardně obsažen v základním JRE.
  • .java
    Textový zdrojový kód aplikace, jedná se tedy o textový kód.
  • .class
    Tzv. „byte code“ = univerzální spustitelný kód, který není závislý na platformě CPU. Vzniká přeložením původního textového zdrojového souboru .java.
  • .jar
    Několik souborů .class sloučených do jednoho souboru .jar = finální spouštěná aplikace. Aplikace je pak jediný soubor, nepotřebujete tolik otevřených souborů, případně komprimovat programy atd.

Poslední verzi ovládající JAVA aplikace „Thermometer“ si lze stáhnout z internetu na adrese http://www.dfsoft.cz/Charon/.

Jak pracovat s aplikací „Thermometer“

K tomu, abyste vůbec spustili soubor „sThermometer.jar“, potřebujete mít napřed nainstalovaný buď JAVA SDK, nebo JRE. Ten není defaultně součástí Windows, tak si jej stáhněte z internetu http://java.sun.com/products/javawebstart/download-windows.html,

Po nainstalování podpory pro JAVA aplikace již na .JAR soubor na disku stačí kliknout a aplikace se spustí sama. Aplikaci také můžete spustit z výše uvedené WWW stránky.

Pro uložení IP adresy a proměnných slouží soubor „charon_properties.txt“ ve stejném adresáři :

max=50



graph_time=1



min=-20



timeout=5000



IP=192.168.6.16



Aplikace používá freeware Westhawk, což je implementace SNMP protokolu pro JAVA aplikace.

Ovládání aplikace Thermometer

Před spuštěním JAVA aplikace nastavte IP adresu modulu Charon v textovém souboru .

Options

Pokud IP adresu modulu nenastavíte v charon_properties.txt, program bude hlásit, že modul nenalezl. IP lze nastavit ještě v menu „Options -> Host IP“ spolu s timeoutem, po kterém SW nahlásí chybu SNMP komunikace.

V „Options“ dále nastavíte parametry grafu teploty (rozsah grafu a časy mezi měřeními).

Thermo

Nastavuje alarmy = hodnoty, při kterých SNMP zařízení (modul Charon) nečeká na dotaz clienta (zde JAVA aplikace) na teplotu a sám hlásí překročení povoleného rozsahu. Hodnota alarmu je zobrazena vlevo na stupnici teploměru červenou a modrou šipečkou. Hlášení o alarmu se vypisují v textovém okně nad grafem s průběhem teploty.

Vyzkoušejte alarmy – nastavte horní mez teploty (červená šipka) na cca 31°C a vezměte teploměrové čidlo do ruky, teplota poroste a při překročení nastavené meze se objeví hlášení :

04:35:07 [0] '31.13 °C' Temperature High from 192.168.6.16“

Klimatická poznámka : Pokud je 32 – 36 °C běžná teplota, ve které se pohybujete, použijte spodní mez na cca 15°C a kostku ledu...

Ethernet

Toto menu slouží ke vzdálenému nastavení parametrů modulu. Kromě standardních IP parametrů, které lze definovat i v SETUPu přes RS-232 (IP adresa modulu, Maska, Gateway) lze nastavit také přijímací port modulu (defaultně 2000) a IP adresu a port, kam jsou odesílány SNMP trapy (IP adresa počítače kde běží JAVA aplikace, nebo standardní SNMP client).

Specialitou je „Allowed IP adress range“, což je rozsah adres, s nimiž modul komunikuje. Rozsah se definuje hodnotou IP adresy a její maskou jako v klasických sítí pro rozlišení komunikace v lokální síti / komunikaci přes Gateway.

Serial

Menu pro nastavení parametrů sériové linky RS-232 na modulu. Parametr „serial timeout“ řídí „packetiser“ (algoritmus, který souvislý tok dat z RS-232 rozkládá na jednotlivé pakety, které odesílá do ethernetu). Parametr definuje maximální délku mezery za posledním přijatým znakem, která se má respektovat, než je z přijatých dat vytvořen paket a odeslán po SNMP. Počet timeout znaků je tedy vlastně časové zpoždění, ale udává se ve znacích, aby jej uživatel nemusel přepočítávat při změně baudové rychlosti.

Pokud je tedy na 9600 Bd nastaveno serial timeout = 7 a přijde souvislý paket 15 znaků (trvá cca 15 ms), čeká po posledním znaku modul dalších 7 ms (7 ms = cca 7 znaků na 9600 Bd), než přijatých 15 bytů sbalí a odešle jako SNMP trap.

Poznámka : Všechny vzdáleně nastavené parametry modul ukládá do interní EEPROM a po spuštění je aplikace znovu z modulu po SNMP načítá, takže nemusíte mít obavu ze ztráty konfigurace.

Port

Menu port nastavuje typ přístupu k 8bitovému I/O portu na modulu Charon.
  • Parallel
    I/O port P1 je použit jako přímých 8 pinů. Šířka portu má pak smysl 1..9, kdy 9. bit je vstup INT0 (druhý jumper vedle jumperu SETUP).
    Pokud nastavíte šířku 4, jsou automaticky horní 4 piny přiřazeny jako síťová indikace, podle následujících funkcí :

    - P1.4 – PING
    - P1.5 – ARP
    - P1.6 – SNMP
    - P1.7 – UDP

    V přímém režimu nelze port dále rozšířit a nelze používat 1-Wire sběrnici ani posuvné registry.

  • Special
    I/O port je rozšířen pomocí posuvných registrů a dalších periférií podle dokumentace „Rozšíření sériových portů modulů Charon“, což je plně kompatibilní se schématem k doporučené vývojové desce Charon I&II Development Board.

    - I/O porty lze rozšířit až na 32 vstupů a výstupů
    - Na P1.0 lze připojit až 4x 1-Wire teploměr

Popisované aplikace SNMP I/O Thermometer nepodporuje rozšíření o LCD displej nebo A/D převodníky, což zmíněná specifikace umožňuje.

Použití aplikace s obecným SNMP clientem

Pokud budete chtít použít aplikaci s obecným SNMP clientem, budete potřebovat MIB tabulku k aplikaci v modulu Charon. Tuto tabulku najdete buď v adresáři příkladů k originálnímu „ANSI C - SNMP Development System“, nebo je ke stažení spolu s .HEX souborem a zde popsanou aplikací sThermometer.jar.

Pro ověření funkce nebo pro reálnou aplikaci lze použít libovolný SNMP Client. Po nainstalování clienta je třeba nahrát do příslušného adresáře .mib soubor. K tomu, aby jej SNMP client vzal k dispozici, je třeba nahranou tabulku přikompilovat k výběru používaných MIB. Po úspěšném přikompilování by měl client SNMP zařízení Web51 rozpoznat a zobrazit strom s proměnnými, které obsahuje.

Jak na SNMP

Pro obecný x51 hardware (nemusí se tedy zdaleka jednat jen o moduly Charon) lze použít vývojový kit ANSI C - SNMP Development Systém, který obsahuje opět celou řadu řešených příkladů, jednoduchý generátor MIB tabulek a podobně. Podrobnější informace najdete na vývojových stránkách http://Web51.HW.cz.


Související soubory


DOWNLOAD & Odkazy


  • ANSI C - SNMP Development System - Vývojový kit s příklady SNMP aplikací na x51 platformě. ANSI C kód je zkompilovatelný v Keilu nebo částečně i v SDCC. - Web51.HW.cz
  • 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/products/charon1/