|
|||||||||||||
Charon 2 DB peripherals demo firmwareEnglish version Czech version Charon 2 pages: # Hlavní stránka # Development Kit # Demo aplikace # Charon 2 OnLine Charon 2 DB Peripheral demo firmware je výchozí embedded aplikace pro moduly Charon 2, určená pro spolupráci s periferiemi Charon 2 Development Boardu. Tato aplikace a její zdrojové kódy jsou dobře zdokumentované v tomto článku.Základní vlastnosti
Download
Nastavení IP adresy Nejprve je zapotřebí ethernetovým zařízením přiřadit jedinečnou IP adresu. Přidělení IP prostřednictvím DHCP není podporováno kvůli různým problémům a nekompatibilitě s předchozími verzemi. Pro nastavení doporučujeme použít nějaký sériový terminál.Spusťte terminálový program (například Hercules nebo Tera Term) s nastavením portu: 9600Bd, bez parity, 8 datových bitů, 1 stop bit (9600 8N1). Vypněte řízení toku dat (Flow : NONE). Poté zapněte napájení se zkratovaným jumperem “SETUP”. V okně sériového terminálu se zobrazí první stránka nastavovacího procesu. RS-232 Setup je určen pro nastavení základních síťových parametrů potřebných pro připojení k ethernetu. Před prvním připojením Charon 2 Development Kitu k ethernetu by tyto parametry měly být nastaveny správně, aby se zajistila jeho korektní činnost v síti (přístup k modulu přes ethernet). Během RS-232 Setupu postupujte podle pokynů na obrazovce a “Press any key to enter RS232 setup“. Na obrazovce se vypisují informace o aktuální konfiguraci a přehledné menu umožňující snadnou konfiguraci síťových parametrů Po načtení Charon 2 DB peripherals demo firmware do procesoru jsou jako výchozí nastaveny následující síťové hodnoty :
Nyní lze snadno zadáním písmene “I” nebo “i” (velikost písmen nerozhoduje) přiřadit IP adresu. Při zadávání trojmístných hodnot doplňuje oddělovací tečky sám SETUP, který rovněž automaticky potvrzuje zadání IP adresy po doplnění čtvrté trojice. Má-li hodnota méně než tři číslice, je třeba tečky vypisovat a na konci potvrdit hodnotu klávesou ENTER. Tímto způsobem je třeba nastavit i další parametry (IP mask, IP gateway). Nyní lze vyjmout “SETUP jumper” a stisknout “R” pro “R: Reboot (exit setup)”. Uživatel může k HTML stránce “Charon 2 DB demo page” přistupovat prostřednictvím svého webového prohlížeče. Stačí do adresního řádku zadat aktuální IP adresu modulu Charon 2 a objeví se úvodní stránka. Výchozí IP adresa je 192.168.1.100, v prohlížeči http://192.168.1.100. Toto je úvodní HTML stránka (‘welcome'), ze které má uživatel možnost dále pokračovat na ostatní stránky prostřednicvím klasických odkazů : V odkazech nadepsaných jako NutOs status si lze prohlédnout dúležité informace o činnosti operačního systému NutOs. Hlavním účelem této aplikace v Charonu II je však ovládání periférií. Proto je nejdůležitějším odkazem Peripheral control zobrazující následující HTML stránku : Charon 2 DB peripherals demoOvládání LCD displeje![]() Na webové stránce je editovatelné textové pole určené k ovládání externího LCD displeje připojeného k Development Boardu. Toto textové pole má rozměry pro 2x16 znaků - stejně jako připojovaný LCD displej zprostředkovávající zobrazení. LED - ovládání výstupních pinů![]() LED symbolizují stav diod na Develompent Boardu (fyzicky realizované bargrafem) a ovládají se pomocí zaškrtávacích políček Každé zaškrtávací pole má odpovídající protějšek zobrazující požadovaný (nebo současný) stav LED. Zaškrtávací pole reprezentují bitovou hodnotu příslušných výstupů posuvných registrů - je-li pole zaškrtnuto, má bit/vývod hodnotu log. H, není-li zaškrtnutý, je jeho stav log. L Protože LED jsou připojeny proti VCC, je jejich stav vždy opačný proti zaškrtávacímu poli, ale obrázky zobrazují reálný stav diod. Dekadická hodnota všech výstupů posuvného registru je zobrazována v jediném editovatelném poli. Spínače DIP - čtení vstupních pinů![]() Spínače DIP obsažené na Development Boardu jsou kontrolovány v 8 polích a 8 odpovídajících obrázcích. Každé zaškrtávací pole má odpovídající obrázek, který zobrazuje současný stav spínače. Zaškrtávací pole reprezentují bitovou hodnotu příslušných výstupů posuvných registrů - je-li pole zaškrtnuto, má bit/vývod hodnotu log. H, není-li zaškrtnuto, je jeho stav log. L Protože spínače jsou připojeny proti VCC, je jejich stav vždy opačný proti poli, ale obrázky zobrazují reálný stav spínačů. Dekadická hodnota všech vstupů posuvného registru je zobrazována v jediném textovém poli. Datový výstup RS-232Uživatel může odesílat data (text) z této HTML stránky na sériový port RS-232 umístěný na Dewelopment Boardu. Uživatel zapíše požadovaný text do editovatelného textového pole a ten je při následující obnově stránky odeslán na RS-232 (přenosová rychlost je nastavována v poli RS-232 baud rate). Protože tato data RS-232 jsou odesílána do Charonu II metodou GET a Ethernut podporuje pouze 256bytové přenosy metodou GET nebo POST, je délka datového výstupu omezena na 70 bytů (do celkové délky je třeba započítat i další hodnoty pro LED, spínače DIP atd.). Datový vstup RS-232Pokud Charon 2 přijme data (text) z RS-232, může si je uživatel zobrazit pomocí textového pole na HTMLstránce. Zobrazované údaje jsou updatovany při každém obnovení HTML stránky. Vyrovnávací paměť modulu Charon 2 umožňuje uložení až 255 bytů přijatých znaků. Pokud od posledního obnovení stránky nedošlo k přijetí nových dat, zůstávají na stránce zobrazena předchozí data. Řízení přenosové rychlosti RS-232Přenosovou rychlost sériového portu RS-232 modulu Charon 2 lze nastavovat prostřednictvím editovatelného textového pole HTML stránky. Pokud přenášíme data z HTML stránky na port RS-232, je rychlost datového toku závislá na této hodnotě. Po obnovení HTML stránky se v textovém poli zobrazuje aktuální přenosová rychlost (proto může být tato hodnota mírně odlišná od požadavku kvůli omezení v Charon 2 UART baud rate setting). Čtení teploměrůCharon 2 Development Board má konektor pro připojení 1-wire teploměrů. Charon 2 měří teplotu ze všech teploměrů každou sekundu, přičemž počet připojených teploměrů je detekován automaticky. Naměřenou teplotu lze snadno přečíst prostřednictvím HTML stránky. Hodnota je zobrazována v textovém poli HTML stránky - v případě více teploměrů jsou jejich hodnoty vypisovány ve více řádcích. Pro současnou verzi firmware platí omezení na maximálně 5 připojených teploměrů (lze však nastavit i jinou hodnotu). Řádek RS-232 / TCP port 23 (telnet)Na HTML stránce se zobrazují informace o činnosti modulu Charon 2 stejně jako převod mezi sériovou linkou RS-232 a TCP (port 23 = telnet). Tento konvertor pracuje nezávisle na činnosti ostatních periférií (kromě nastavení přenosové rychlosti RS-232, jejíž změny se projevují okamžitě). Odeslání a obnova HTML stránkyVšechny požadované hodnoty jsou odesílány ke zpracování a obsluze periférií Charon 2 Development Boardu pomocí tlačítka Update/Refresh values. To odešle požadovaná data metodou GET do modulu Charon pracujícího jako server. Charon 2 pak nastaví požadované hodnoty, posbírá načtené informace a znovu zobrazí upravenou HTML stránku se současnými hodnotami periférií. Další obrázky a odkazy![]() HTML stránka zobrazuje 2 obrázková loga hlavních společností podílejících se na vývoji firmware/software. Tyto obrázky odkazují na jejich domovské stránky, kde získáte mnoho důležitých i zajímavých informací z oblasti embedded Ethernetu (produkty, příklady, řešení atd.). V levém horním rohu HTML stránky se pak nachází odkaz na domovskou stránku Charon 2 Developer Board. Použijte tento odkaz, pokud chcete získat další informace o současném stavu operačního systému Charon 2. Pravý dolní roh odkazuje na www.HW-group.com a naleznete tam i jméno autora a vývojáře této stránky. Popis převodníku RS232/telnetRS232 na TCP - port 23 (telnet)Charon 2 DB peripherals demo firmware pracuje na pozadí jako konvertor RS-232/telnet (TCP port 23). Pro ověření činnosti tohoto konvertoru se stačí spustit na počítači připojeném k síti terminál pro telnet, připojit se k dané IP adrese (výchozí IP=192.168.1.100) a následně se připojit pomocí sériového terminálu k Charon 2 Development Boardu prostřednictvím sériového portu (výchozí nastavení sériového portu je 9600,8,N,1 avšak datová rychlost může být změněna přes HTML stránku). Tím je klient telnetu spojen se sériovým terminálem přes ethernet. Cokoli nyní uživatel napíše do sériového terminálu, je modulem Charon 2 odesláno ke klientu telnetu. Tato konverze je pochopitelně obousměrná (RS-232=> telnet i telnet => RS-232).Popis firmwareZákladní funkcí firmware je vykonání nějaké akce v závislosti na požadavcích uživatele a provoz služeb běžících na pozadí. Služby běžící na pozadí představuje:
Po zavedení firmware jsou nejprve spuštěna zařízení sloužící pro připojení k síti a k provozu UART. To představuje inicializaci UART ve výchozím nastavení s přenosovou rychlostí 9600 baudů a načtení síťových parametrů z EEPROM. Následně se zkontroluje stav jumperu Setup a je-li zkratován, spustí se RS232 setup. Jinak je spuštěno vlákno Receiver pro příjem dat ze sériové linky RS232. Thermo thread čte teplotu z připojených teplotních čidel. Aktivuje se síť s parametry uloženými v EEPROM. Pak registr CGI vzorků zobrazí webové stránky (NutOs status a Charon 2 DB peripherals
demo). Další 4 vlákna jsou procesy pro odezvy HTTP serveru (vlákna jsou označena jako httpd1, httpd2, httpd3, httpd4). LCD displej se inicializuje s výchozími hodnotami: je zobrazen text po spuštění.
Na konci hlavního programu je smyčka pro zpracování převodu TCP na RS-232 (toto může být realizováno rovněž jako nezávislé vlákno, ale pak nebude mít hlavní program co dělat). Řízení LCD displejeVýstup pro LCD displej probíhá během odezvy HTML stránky v rutině ShowForm. Požadovaný text pro displej je z HTML stránky odesílán s parametrem "LCDtext". Hodnota řetězce tohoto parametru je nejprve filtrována pomocí rutiny ReplaceHTMLStr pro správnou konverzi textových znaků. Pak se provede oddělení 2 řádek požadovaného textu. Nakonec proběhne inicializace displeje (funkce LCD_Init) a zapíše se text na displej (funkce LCD_Puts). Inicializace je nezbytná, protože v případě odpojení LCD displeje by byl požadován restart firmware.LED - řízení výstupních pinůŘízení LED (v bargrafu) se provádí během odezvy HTML stránky rutinou ShowForm. Požadovaná hodnota LED je z HTML stránky odesílána jako parametr "ShiftLEDOut". Podle tohoto parametru se jednoduše nastaví stavy diod pomocí funkce DevBoardShiftLedOut (protože LED jsou připojeny k posuvnému registru na Development Boardu).Spínače DIP - čtení vstupních pinůStavy spínačů DIP jsou pomocí rutiny ShowForm zachycovány během odezvy HTML stránky. Zachycení je vykonáno funkcí DevBoardShiftByteIn, protože spínače jsou připojeny k posuvnému registru na Development Boardu. Stavy jsou nakonec vloženy do HTML stránky.Datový výstup RS-232Odesílání dat do RS-232 linky se provádí během odezvy HTML stránky rutinou ShowForm. Požadovaná data jsou z HTML formuláře odesílána jako parametr "RS232DataOut". Hodnota tohoto parametru je nejprve filtrována funkcí ReplaceHTMLStr, poté odeslána do UART Charonu II (funkce _write).
Příjem dat z RS-232 je proces běžící na pozadí jako vlákno Receiver.
Toto vlákno jednoduše čte data přicházející na sériový port a pokud nějaká zachytí, odešle je na TCP port (je-li klient připojen) a současně je uloží do vyrovnávací paměti. Tato vyrovnávací paměť, rxbuff, může být uživatelem načtena během odezvy HTML stránky. Velikost je limitována na 255 bytů.
|
...
ShiftLEDOut ="<#ShiftLEDOut> ";
ShiftLEDIn ="<#ShiftLEDIn> ";
LCDText ="<#LCDText> ";
RS232DataOut ="<#RS232DataOut>";
RS232Speed ="<#RS232Speed> ";
RS232DataIn ="<#RS232DataIn> ";
Thermometer ="<#Thermometer> ";
//not remove next line - this char is mark for Charon insert data command
//@
if ((ShiftLEDOut =="<#ShiftLEDOut> ")||(ShiftLEDOut==null))
ShiftLEDOut = 0xAA;
if ((ShiftLEDIn =="<#ShiftLEDIn> ")||(ShiftLEDIn==null))
ShiftLEDIn = 0x55;
if ((LCDText =="<#LCDText> ")||(LCDText==null))
LCDText = " LCD Text"+"\n"+ "Ethernut project";
if ((RS232DataOut=="<#RS232DataOut>")||(RS232DataOut==null))
RS232DataOut = "RS232 Data Out" + "\n" + "0123456789";
if ((RS232Speed =="<#RS232Speed>")||(RS232Speed==null))
RS232Speed = 9600;
if ((RS232DataIn =="<#RS232DataIn> ")||(RS232DataIn ==null))
RS232DataIn = "RS232 Data In" +"\n" + "0123456789";
if ((Thermometer =="<#Thermometer> ")||(Thermometer==null))
Thermometer = 0.0001 + "\n" + 0.0002 + "\n" + 0.0003;;
...
|
... |
...
ShiftLEDOut ="<#ShiftLEDOut> ";
ShiftLEDIn ="<#ShiftLEDIn> ";
LCDText ="<#LCDText> ";
RS232DataOut ="<#RS232DataOut>";
RS232Speed ="<#RS232Speed> ";
RS232DataIn ="<#RS232DataIn> ";
Thermometer ="<#Thermometer> ";
//not remove next line - this char is mark for Charon insert data command
//
ShiftLEDOut= 254;
ShiftLEDIn = 8;
LCDText=unescape("%20%43%68%61%72%6f%6e%20%49%49%20%64%65%6d%6f%20%0a
%45%74%68%65%72%6e%75%74%20%50%72%6f%6a%65%63%74");
RS232DataOut =unescape("%44%61%74%61%20%74%6f%20%52%53%32%33%32");
RS232Speed =9601;
RS232DataIn =unescape("");
Thermometer = 26.6250 ;
;
if ((ShiftLEDOut =="<#ShiftLEDOut>")||(ShiftLEDOut==null))
ShiftLEDOut = 0xAA;
if ((ShiftLEDIn =="<#ShiftLEDIn> ")||(ShiftLEDIn ==null))
ShiftLEDIn = 0x55;
if ((LCDText =="<#LCDText> ")||(LCDText ==null))
LCDText = " LCD Text"+"\n"+"Ethernut project";
if ((RS232DataOut=="<#RS232DataOut>")||(RS232DataOut==null))
RS232DataOut= "RS232 Data Out" + "\n" + "0123456789";
if ((RS232Speed =="<#RS232Speed> ")||(RS232Speed ==null))
RS232Speed= 9600;
if ((RS232DataIn =="<#RS232DataIn> ")||(RS232DataIn ==null))
RS232DataIn= "RS232 Data In" +"\n" + "0123456789";
if ((Thermometer =="<#Thermometer> ")||(Thermometer ==null))
Thermometer= 0.0001 + "\n" + 0.0002 + "\n" + 0.0003;
...
|
Pro správné vložení hlavičkových souborů musí být soubory projektu uloženy v adresáři \ethernut\nut\app\<ProjectDirectory>.
Projekt byl vytvořen Ing. Igorem Češkou pro potřeby společnosti HW-group
. Další rutiny pro řízení LCD displeje, posuvných registrů, 1-wire teploměrů, UARTu, TCP a zpracování vláken byly shromážděny ze zdrojů www.HW-group.com
a příkladů zahrnutých v operačním systému NutOs
www.ethetnut.de.
Rovněž si můžete vyzkoušet veřejné demo na adrese : 80.250.3.195 nacházející se v naší pražské kanceláři.
Produkty držíme stabilně skladem v několika kusech. Cenu produktu najdete na stránce Ceníku .
Charon 2 Development Kit obsahuje
![]()
- Modul Charon 2 s MAC adresou a sériovým číslem na štítku;
- Charon I&II Development Board (dále jen Development Board);
- HW STK-500 kompatibilní programovací adaptér pro sériový port RS-232;
- Sériový komunikační kabel LapLink s dvojicí zásuvek DB-9.
- 1-Wire teploměr DS1822;
- LCD displej 2x16;
- CD s nezbytným softwarem v adresáři /Charon2/;
- Tištěný katalogový list pro modul CHaron II a Development Kit.
| English version | Produkty | DOWNLOAD | Ceník | Kontakty | Mapa stránek |