Charon I – Web51 Home Control
Charon I – Web51 Home Control Web51 Home Control je demonstrační FirmWare systému Web51. Aplikace je zkompilovaná mimo jiné pro modul Charon I, jehož vývojový kit zde budeme dále popisovat. Modul 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. K testování aplikace doporučujeme Charon I Development Kit. 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 periférie 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).
•
Periférie 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é periférie připojovat.
Červenec 2003 HW server
1/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
Ovládané a podporované periférie Web51 Home Control používá pro připojení všech periférií kromě RS-232 8bitový 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í periférií pomocí posuvných registrů, podle doporučeného schématu zapojení (viz schéma Charon I&II Development Board).
Přímý přístup na 8bitový 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; • 8bitová 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í 8bitové vstupní brány (posuvný registr 74165); ovládání 8bitové výstupní brány (posuvný registr 74595); detekce a čtení až 4x 1-Wire teploměr – např. DS1822; zápis na LCD display (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í 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 také periférie, 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í. Červenec 2003 HW server
2/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
Instalace 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 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. - 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.
Červenec 2003 HW server
3/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
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
Nastavení komunikační sériovém portu RS-232.
rychlosti
Jiné rychlosti, nebo typy parity kombinace stop bitů nelze použít.
na a
A: Add device (max.4) now:1
Serial port 1: 38400 2: 19200 3: 9600 4: 4800 5: 2400 6: 1200 7: 600
speed: Bd Bd Bd Bd Bd Bd Bd
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.
Červenec 2003 HW server
4/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
Z: System configuration Aktivace jednotlivých součástí síťových aplikací. Doporučujeme vypnout to, co nepotřebujete. P: Peripherals config. Přiřazení jmen jednotlivých vstupům, (0..7), „state“ indikuje aktuální stav vstupu. Přiřazení jmen jednotlivým 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 posuvných registrů.
použití
externích
D: Přepni P1 na přímý přístup na 8bitový 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).
------- System Configuration ------T: serial server ON S: serial client ON E: e-mail OFF
--------------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
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 Nastavení emailů zasílaného emailu.
a
textu
předmětu
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.
-------------- 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
Červenec 2003 HW server
5/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
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ý internetový 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í e-mailů 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. Červenec 2003 HW server
6/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
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 5bytový 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 <enter>
ID 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 24 25
Std.Alias In1 In2 In3 In4 In5 In6 In7 In8 out1 out2 out3 out4 out5 out6 rea reb term1 term2 term3 term4 disp1 disp2
Význam binární vstup 1 binární vstup 2 binární vstup 3 binární vstup 4 binární vstup 5 binární vstup 6 binární vstup 7 binární vstup 8 binární výstup 1 binární výstup 2 binární výstup 3 binární výstup 4 binární výstup 5 binární výstup 6 binární výstup 7 binární výstup 8 teplotní snímač DS1622 1 teplotní snímač DS1622 2 teplotní snímač DS1622 3 teplotní snímač DS1622 4 alfanumerický displej 2x16zn. – 1. řádek alfanumerický displej 2x16zn. – 1. řádek
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<string> - ostatní nastavení - například výpis textu na display - například „#24.sAHOJ“ vypíše na první řádek displeje text AHOJ
Červenec 2003 HW server
7/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz
Charon I – Web51 Home Control
• •
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
Příklady operací s binárními vstupy/výstupy - nastavení výstupu do log.1 nebo log.0: - čtení stavu: port.<1,0><enter> port.?<enter> port=ID<8,15> port=ID<0,15> Př.:
Př.:
$out1.1 #15.0
$in1.? ->1 #10.? ->0
Operace s teploměry DS1822 - čtení stavu: port.?<enter> port=ID<16,19>
Možné chybové hlášky: “-> not present” ... teploměr není nainstalován “-> no response” ... teploměr nereaguje
Př.: $term1.? ->25.4
Operace s alfanumerickým displejem 2x16zn. - čtení obsahu bufferu displeje: - zápis nového řetězce do textového bufferu displeje: port.?<enter> port.s<řetězec><enter> port=ID<24,25> port=ID<24,25> Př.: $disp1.? ->Nejaky text
Př.: $disp2.sHello World
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“.
Související dokumentace •
Charon I - SNMP I/O Thermometer - první kroky Příklad ovládání modulu Charon I přes SNMP
•
Charon I Development Kit - první kroky Rychlý úvod do aplikace modulů Charon I, jak připojit modul do ethernetu a odladit základní aplikace během několika minut.
•
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í
•
www.Hwgroup.cz - Dokumentace k finálním produktů a řešením.
Červenec 2003 HW server
8/8 Rumunská 26, Praha 2, 120 00 – Tel. 222 511 918
www.HWgroup.cz