Jste zde

Charon I - Web51 Home Control

Web51 Home Control je demonstrační FirmWare systému Web51. Aplikace je zkompilovaná mimo jiné pro

modul Charon I, který s tímto firmwarem ovládá RS-232, 8 vstupů, 8 výstupů, LCD displej a až 4 teploměry přes

Ethernetovou síť z WWW rozhraní, nebo pomocí speciálního příkazového režimu z telnetu.

Tento firmware není standardně dodáván v modulu Charon a proto je třeba jej do modulu nahrát. Základní síťové parametry se pak konfigurují po sériové lince RS-232 v jednoduchém terminálu. Aplikace je ve zdrojových kódech k dispozici ve vývojové verzi systému Web51, jako jeden z příkladů.

Základní popis

Základní funkcí tohoto firmware je zpřístupnění sériové linky RS-232, I/O portů, až 4 teploměrů a LCD displeje po Ethernetu. Není třeba vyvíjet žádnou obsluhující aplikaci, protože periferie lze ovládat z WWW stránky uložené v modulu Charon I, nebo z konzolového Controleru.

  • Modul se vůči uživateli tváří jako malý WWW server, tudíž má svoji IP adresu a na standardním portu 80 poskytuje www službu, která zobrazí danou HTML stránku. Na této stránce jsou vidět stavy I/O portů, které je možno měnit. Pro změnu je nutné zadat heslo, které si můžete nastavit v setupu po RS-232.
     
  • Modul podporuje zobrazení teploty až ze 4 teploměrů 1-Wire a pomocí formuláře je možné poslat text na LCD display.
     
  • Nově dokáže modul poslat email na SMTP server na základě vnější události dle nastavené podmínky na vstupním I/O portu.
     
  • Kromě ovládání přes WWW poskytuje modul zpřístupnění RS-232 linky po Ethernetu na IP adrese a portu 23 v režimu Client nebo Client/Server (tzv. aktivní režim).
     
  • Periferie se dají ovládat kromě WWW stránky také z tzv. Controleru, což je textový protokol, kterým lze s aplikací komunikovat na portu 26 (lze snadno testovat např. pomocí telnetu).
     
  • Tento firmware nepotřebuje externí SRAM 32kB, která je osazena na modulech Charon. Program může běžet na libovolné x51, která má cca 512 B XRAM na čipu, standardně používáme procesor AT89c51RD2.
     
  • Při použití modulu Charon I si je třeba tento osadit do jednoduché základní desky, která bude popsané periferie připojovat.

Ovládané a podporované periferie

Web51 Home Control používá pro připojení všech periférií kromě RS-232 8. bitový port procesoru P1. V SETUPu lze nastavit dva typy použití portu P1, používat tento port přímo, nebo předpokládat rozšíření periferií pomocí posuvných registrů, podle doporučeného schématu zapojení (viz. schéma Charon I&II Development Board).

Přímý přístup na 8. bitový port P1

Pokud potřebujete jen několik výstupů, použijte tuto variantu. všech 8 pinů portu P1 pak vzdáleně ovládáte :

  • Přístup na sériový port RS-232 přes TCP/IP na portu 23
  • 8. bitová I/O brána na P1

Použití externích posuvných registrů

Pokud využijete námi doporučené schéma připojení externích posuvných registrů, lze připojené periférie značně rozšířit :

  • Přístup na sériový port RS-232 přes TCP/IP (port 23)
  • Ovládání 8. bitové vstupní brány (posuvný registr 74165)
  • Ovládání 8. bitové výstupní brány (posuvný registr 74595)
  • Detekce a čtení až 4x 1-Wire teploměr – např. DS1822.
  • Zápis na LCD displej (připojen na posuvný registr 74595)

Doporučený hardware

  • Web51 HW 3.X Starší vývojový kit – RTL8019 připojen přímo na portech MCU.
  • Web51 HW 4.X Průmyslový převodník RS-232/Ethernet + binární vstupy a výstupy.

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 II (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í.

Instalace FirmWare do modulu Charon I

Upload Home Web Control 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 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čí 3. vodič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áhnou ze stránky DOWNLOAD na www.HWgroup.cz.

RS-232 SETUP pro aplikaci Web51 Home Control

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: Reset to defaults 

Po jeho provedení a opětovném načtení menu nastavte IP adresu, Gateway a Masku.

S: Telnet/SMTP Server IP

Je IP adresa protistrany se kterou budete komunikovat.

  • Pokud chcete posílat Emaily nastavte adresu SMTP serveru.
  • Pokud chcete používat modul jako client, nastavte IP adresu serveru.

IP adresa musí být odlišná od IP Gatewaye.


B: Speed 9600,N,8,1
Serial port speed:
            1: 38400 Bd
            2: 19200 Bd
            3:  9600 Bd
            4:  4800 Bd
            5:  2400 Bd
            6:  1200 Bd
            7:   600 Bd
            
Nastavení komunikační rychlosti na sériovém portu RS-232.
Jiné rychlosti, nebo typy parity a kombinace stop bitů nelze použít.
   
A: Add device (max.4) now:1
Adding One-Wire device ... OK
E: Remove all devices
Zde lze po jednom přidávat a odebírat teplotní čidla 1-Wire.
   
H: HTTP password
Enter Password for access via HTTP:
Heslo pro ovládání výstupů z WWW stránky. Pro vypnutí hesla jej stačí nezadat.  
   
Z: System configuration
------- System Configuration -------
            T: serial server          ON
            S: serial client          ON
            E: e-mail                 OFF
            
Aktivace jednotlivých součástí síťových aplikací. Doporučujeme vypnout to, co nepotřebujete..  
   
 P: Peripherals config.
--------------I/O ports-------------
            id  in   state       id  out   state
            ------------------------------------
            0.  in0   1          8.  out0  0
            1.  in1   1          9.  out1  0
            2.  in2   1          10. out2  0
            3.  in3   0          11. out3  0
            4.  in4   0          12. out4  0
            5.  in5   1          13. out5  0
            6.  in6   1          14. rea   0
            7.  in7   0          15. reb   0
            -------- Temperature sensors -------
            id  name   temperature(gr.C)
            ------------------------------------
            16. term1  29.7
            17. term2  Not Present
            18. term3  Not Present
            19. term4  Not Present
            ---------------- Ports -------------
            P: input capture Period         10(x 5ms)
            A: Output state after Reset     0x00
            - I/O port type:                Shift registers
            S: switch to Shift regs ports
            D: switch to Direct ports
            N: port name
            E: erase all names
            - Caption for LOW state:            ---Vyp
            - Caption for HIGH state:           Zap---
            C: change HIGH/LOW captions
            H: set to HIGH state(1)
            L: set to LOW state (0)
            ----------- Display Mode -----------
            - Mode of 2nd display line:         text mode
            T: switch to text mode
            I: switch to IP mode
            
Přiřazení jmen jednotlivých vstupům, (0..7), „state“ indikuje aktuální stav vstupu.

Přiřazení jmen jednotlivých výstupům, (8..15), jméno může být dlouhé max. 6 znaků.

Výpis nalezených teploměrů, výpis jejich teploty a možnost změny jména (16..19).


P: Jak často budou vzorkovány vstupy

A: Hex hodnota stavu výstupního portu po resetu.

S: Přepni P1 na použití externích posuvných registrů.

D: Přepni P1 na přímý přístup na 8. bitový port P1.

C: Definuje jméno log. 1 a 0 (ON a OFF, ALARM a OK..)

H,L: Nastaví daný pin do log. 0 nebo 1

T,I: Definuje typ obsluhy 2. řádky LCD displeje (oba řádky text, nebo 2. řádka IP adresa posledního návštěvníka).

   
 C: Controller
 
Zapíná Controler po sériové lince. Controler a jeho ovládání bude podrobně popsáno dále.
   
 X: E-Mail settings
-------------- e-Mail --------------
            F: From - home_controll@web51
            T: To   - lsn_web51@smtp_server
            S: Subj.- Mousetrap state message
            Mask Patt. Message
            ---------------------------------------------
            0x07 0x01  Msg1 - Mouse in the Mousetrap
            0x07 0x02  Msg2 - Mousetrap - Armed
            0x07 0x03  Err1 - Mousetrap - No Cheese
            0x07 0x04  Err2 - Mousetrap - Under Attack
            0x07 0x05  Err3 - Mousetrap - Out Of Order
            ---------------------------------------------
            C: Change Message
            
Nastavení emailů a textu předmětu zasílaného emailu.

Následuje pět podmínek, kdy je vyvoláno zaslání emailu s textem, který bude odeslán..

Mask definuje kterých bitů ze vstupního portu se hodnota Patt.bude týkat.

Podmínky se vyhodnocují odshora.

Spouštíme a testujeme aplikaci Web51 Home Control

Rozpojte jumper SETUP a resetujte aplikaci Žádná stránka se nám v okně terminálu již nezobrazí, protože modul je ve svém provozním módu.

V nabídce START na vašem PC zvolte „Spustit", do okna napište příkaz PING x.x.x.x –t a stiskněte Enter. Číslo x.x.x.x je třeba 192.168.6.15, což je IP adresa modulu, kterou jsme si nastavili v setupu po RS-232. Po stisknutí Enter se objeví okno, ve kterém se PC snaží opakovaně najít náš modul na nastavené IP adrese. Když je modul správně připojen a hodnoty správně nastaveny, modul na PING odpoví, což se nám zobrazí v otevřeném okně.

Nyní je čas vyzkoušet WWW rozhraní. Spusťte Internet Explorer nebo jiný internet prohlížeč a uveďte www adresu našeho modulu: http://x.x.x.x v mém případě by to byla adresa http://192.168.6.15

Modul Charon I (nebo jiný z doporučených HW), vygeneruje HTML stránku (viz obrázek na první stránce) na které je možno vidět stavy všech periférií. Pokud jste načetli po resetu stránku poprvé, nebo nemáte připojený a detekovaný teploměr, nemusí být vidět žádná teplota. Můžete ale vyzkoušet změnit hodnoty výstupů. Zaškrtneme příslušné výstupy a stiskneme „Nastavit“ Na modulu budou vidět hodnoty výstupu (zaškrtnuto = Log. 1 = LED nesvítí).
Pokud žádná z LED na P1 nesvítí, zkontrolujeme, zda je jumper umístěný vedle 8. LED spojený.

Pokud jste si již nastavili heslo, musíte jej vyplnit, jinak modul stav výstupů nezmění.

Tím jste vyzkoušeli základní nastavení a můžete se pustit do podrobnějšího zkoumání všech parametrů, které jsou v SETUPu vypsány.

Poznámka : Po každé manipulaci s jumperem SETUP je třeba modul resetovat !

Používáme teploměr

Tepelný senzor na sběrnici 1-Wire připojíme podle obrázku na GND, +5V, pin DQ připojte na P1.0. V SETUPu přes RS-232 nastavte port do režimu SHIFT. Pomocí voleb „A“ a „E“ ze základního menu lze přidat až 4 teploměry paralelně. Teploměry mohou paralelně běžet a měřit, ale v okamžiku přidávání musí být na sběrnici osazen jenom jeden (program detekuje sériové číslo teploměru).

Jak na odesílání emailů

V menu Z: System configuration zvolte SMTP CLIENT ON a příkazem “M” se vraťte do hlavního menu. Pro testy si nastavte přímý přístup na porty, pokud používáte Charon I&II DB, můžete zůstat v SHIFT módu a jako binární vstupy používat DIP switch. Pro používání e-mailů nesmí být Gateway zároveň SMTP serverem na který je odesílána pošta. Pokud tomu tak je, nastavte GW na 0.0.0.0 a SMTP server je přístupný pouze po lokální síti.

Z hlavního menu S: Telnet/SMTP Server IP vložíme IP adresu našeho SMTP serveru. SMTP server musí být na této adrese přístupný na standardním portu 25.

Volbou X: E-Mail settings nastavíme vlastní podmínky pro odesílání e-mailů. Maska znamená, že nad 8 vstupy modulu bude proveden logický součin AND. Pattern definuje výsledek po logickém součinu vstupů. Podmínka se tedy vyhodnotí tak, že hodnota I/O portu AND MASK se porovná s hodnotou Pattern. Když jsou hodnoty stejné, modul odešle e-mail, jehož obsah lze nastavit.

Serial Converter – TCP port 23

Po otevření spojení s aplikací na portu 23 bude zařízení data vyslaná po Ethernetu převádět na výstup sériové linky a data ze vstupu sériové linky bude naopak vysílat do Ethernetu. Pokud modul neodešle ani nepřijme po dobu cca 50s žádný znak je TCP spojení automaticky ukončeno.

Komunikační protokol sériové linky se nastavuje v režimu Setup (defaultní nastavení je 9600,8,N,1 bez řízení toku dat).

Omezení použití konvertoru sériové linky

  • Aplikace podporuje v jedné chvíli pouze jedno TCP/IP spojení. Není proto možné na portu 23 přistupovat k sériovému portu a zároveň na portu 26 ovládat vstupy a výstupy. Http server na portu 80 je ale nezávislý a může pracovat najednou s kterýmkoli z těchto dvou spojení.

I/O Controller lite – TCP port 26

Veškeré vstupy, výstupy a Controlerem ovládané periférie (LCD displej, teploměry atd..) mají přiděleno neměnné ID. Každé ID může mít 5 bytový alias složený z písmen a číslic. Například první teploměr v pořadí s ID 16 má implicitně alias „term1“. Tato ID slouží k jednoznačné adresaci zařízení při vzdáleném ovládání.

Texty aliasů lze definovat v SETUP režimu. V běžícím Controleru je lze využívat, ale nelze je již měnit.
Aliasy lze v ovládání pomocí Controleru plně využívat, ale příkazy jsou potom uvozeny znakem „$“ zatímco při adresaci pomocí ID je použit znak „#“

Obecná syntaxe příkazů Controleru

Pro vzdálené ovládání je použita syntaxe : port.příkaz

port definuje se kterým zařízením chci pracovat. ID zařízení lze definovat dvěma způsoby :

  • # například “#16“ pro práci s 1. teploměrem
  • $ například „$term2“ pro práci s 2. teploměrem

příkaz specifikuje příkaz který se má s daným ID provést

  • ? – dotaz na stav
    - například „#16.?“ – vypíše stav vstupu ID=16
    - například „$in1.?“ - vypíše stav 1. binárního vstupu ID=16
  • s - ostatní nastavení - například výpis textu na display
    - například „#24.sAHOJ“ vypíše na první řádek displeje text AHOJ
  • 1 – nastavení binárního výstupu do log. 1
    - například „#8.1“ nastaví out1 (první binární výstup) do log. 1
  • 0 - nastavení binárního výstupu do log. 0
    - například „$rea.0“ nastaví ID=14 (sedmý binární výstup) do log. 0

Poznámka: V případě, že byl v Setupu nastaven mód displeje na „IP mode“, bude při pokusu o zápis nového řetězce na druhou řádku displeje vypsána hláška „!-Read Only“.

Jan Řehák
Jan.Rehak@ HW.cz

DOWNLOAD & Odkazy

Hodnocení článku: