Jste zde

Vestavný modul Charon II a projekt Ethernut

Modul Charon II modul 3x4 cm, určený pro vestavbu do zákaznických zařízení, kde řeší konektivitu do

sítě Ethernet. Na rozdíl od Charon I (architektura x51 a programování převážně v ASM) je zde použit risc MCU

ATmega128 - Atmel AVR. Veškerý kód je psaný v C a je plně kompatibilní s BSD projektem

Ethernut.

Vývojový projekt Ethernut

Původní projekt Ethernut vznikl v Německu a autorem kódu, který zároveň nový kód autorizuje je Harald Kipp z firmy Egnite, která prodává vývojové prostředky pro Ethernut systém. Cílem projektu je implementace síťových technologií do zákaznických zařízení. Jedná se v současné době o jeden z nejprogresivnějších projektů v oblasti embedded ethernetu, především proto, že projekt je vyvíjen a šířen pod BSD licencí. Veškeré informace o projektu, zdrojové kódy a schémata jsou dostupné na internetové adrese www.ETHERNUT.de.

Na použité koncepci softwarového řešení je vidět, že autor projektu si byl od počátku dobře vědom požadavků, které budou kladeny na navrhovaný systém.

Mezi základních požadavky s nimiž byl systém navržen patří současné zpracování více úloh, dynamická správa paměti, přístup k periferiím pomocí ovladačů, implementace TCP/IP protokolového zásobníku, implementace standardních síťových protokolů a služeb, transparentnost celého řešení.

Risc mikroprocesor ATmega128 díky svým vlastnostem přímo vybízí k použití vyššího programovacího jazyka C. Zdrojové kódy jsou vesměs napsané v jazyku ANSI C, což zpřehledňuje celé řešení. K sestavení programu lze použít volně dostupný AVR GNU C nebo komerční ImageCraft AVR. Pokud preferujete rumunské CodeVision AVR, existuje pro tento kompilátor neautorizovaná verze také.

Nut/OS Real-Time Operating System

Při tvorbě operačního systému Nut/OS autor vycházel z projektu Liquorice vytvořeného Dave Hudsonem, který si kladl obdobné cíle jako Ethernut. Nut/OS je napsán v jazyku C pro překladač AVR GNU C a ImageCraft AVR. Vše, co potřebuje ke své činnosti, je součástí jeho zdrojových kódů, což je nesmírnou výhodou. Jedná se o víceúlohový operační systém s kooperativním multitaskingem a systémem řízení priorit. Je podporovaná dynamická správa paměti. Jednotlivé úlohy lze dynamicky vytvářet a ukončovat za běhu programu. Dále je implementována podpora časovačů, systém zpráv, fronty událostí a jednoduchý systém souborů. Přístup k perifériím mikroprocesoru je řešen pomocí ovladačů jednotlivých zařízení (UART, RTL8019, …). Programátor má k dispozici služby operačního systému, nad kterými může snadno vytvářet vlastní aplikace.

Nut/Net

Nut/Net je nadstavbou Nut/OS a představuje implementaci TCP/IP protokolového zásobníku v rámci projektu Ethernut. Na rozdíl od osobních počítačů jsme zde limitováni dostupnou výpočetní a paměťovou kapacitou. Implementace TCP/IP protokolového zásobníku v embedded zařízeních si proto vyžaduje specifický přístup. Nut/Net podporuje práci s UDP a TCP sokety. V současné době jsou implementovány následující protokoly ARP, IP, ICMP, UDP, TCP, TELNET, DHCP, DNS, HTTP, TFTP, PPP. Způsob použití a funkčnost jednotlivých protokolů je ukázána na řadě demonstračních příkladů.

Vývoj aplikací se provádí na platformě MS Windows nebo Linux. Pro obě platformy je k dispozici instalační balík obsahující zdrojové kódy, dokumentaci a programy nutné k okamžitému zahájení vývoje. Programátor má na výběr z dvou kvalitních kompilátorů, volně dostupného AVR GNU C nebo komerčního ImageCraft AVR.

Charon II

Charon II vychází z Charon I velikostí a rozložením pinů, snaží se ale zpřístupnit aplikaci všechny důležité piny, kromě adresní a datové sběrnice. Na modulu je umístěn kromě mikroprocesoru také ethernetový řadič RTL8019AS 10Mbps umožňující připojení do ethernetu pouze přes transformátor na základní desce a 32 kB paměti SRAM RAM. Samotný MCU disponuje výkonem 10MIPS, 128kB paměti FLASH, 4kB RAM, 4kB EEPROM a dvojicí rozhraní UART.

Dostupné periferie pro Charon II

  • 10 Base-T ethernet
  • 2x USART
  • 1x JTAG rozhraní
  • 1x SPI rozhraní
  • 2x TWI (I2C kompatibilní)
  • 8kanálový 10bitový ADC
  • 1x Analogový komparátor
  • 2x PWM
  • 2x Čítač / časovač

Podobně jako jeho předchůdce je i Charon II navržen tak, aby se usnadnila jeho implementace do finálních zařízení. Požadovanou aplikaci lze snadno odladit na vývojové desce a následně celý modul přenést do koncového zařízení již bez nutnosti dalšího ladění.

Příklady aplikací modulu Charon II

  • Webový server;
  • ovládání zařízení přes www rozhraní;
  • ovládání přístrojů přes TCP a UDP;
  • prodloužení sériového portu RS 232/422/485 přes Ethernet;
  • sběr dat a jejich zpřístupnění po síti (například formou rozhraní www);
  • komunikační moduly pro přístroje.

Charon I používá software téměř výhradně v jazyce symbolických adres (Assembleru), kromě Web51-C, který je programovatelný v Keil C nebo SDCC, ale pracuje pouze s UDP pakety. Charon II je oproti tomu určen pro mnohem náročnější aplikace předpokládající například současné zpracování více úloh či dynamickou správu paměti. I proto byl Charon II navržen tak, aby mohl být plně slučitelný s projektem Ethernut a vývojář, který se pro něj rozhodne, mohl těžit z výhod a závěrů právě Ethernutu.

Charon I&II Development Board

Charon I&II DB je profesionální vývojová deska pro Charon I (technologie Web51) nebo Charon II (Ethernut) v SMD montáži, určená především pro vývoj aplikací s Charon II. Deska obsluhuje Ethernet, vyvádí potřebné konektory, RS232 a připojuje základní periférie.

Základní vlastnosti vývojové desky:

  • RJ45 konektor pro TP kabel ethernetu;
  • 2x rozhraní RS-232;
  • rozhraní SPI pro programování modulu Charon II;
  • rozhraní JTAG pro programování a ladění aplikací modulu Charon II;
  • všechny dostupné piny modulů vyvedeny na konektor;
  • periférie připojené posuvnými registry:
    • rozhraní 1-Wire pro připojení např. teploměru,
    • LCD display konektor pro připojení LCD 2x16 znaků
    • 8pólový přepínač DIP simulující vstupy;
    • 8x LED simulující výstupy;
  • možnost osazení až 16 Mbit SPI FLASH pro Charon II.
  • Rozměry desky umožňují její osazení do standardní krabičky systému Web51, jako finální zařízení.
  • Napájení vnějším zdrojem stejnosměrného napětí 9-12V.

Sériové linky na této desce jsou vyvedeny pomocí vidlic Cannon 9, takže pro spojení s počítačem je třeba použít křížený kabel, ale protože se deska může sama tvářit jako PC, je toto řešení pohodlnější pro odlaďování následných aplikací.

Charon II Development Kit

Charon II Development Kit je vývojový produkt určený vývojářům vlastních aplikací založených na modulu Charon II. Kromě samotného modulu Charon I a Charon II Development Board dále obsahuje AVR SPI programátor HW STK500 připojitelný na RS-232, podsvětlený LCD displej 2x16znaků, 1-Wire teploměr DS1822, CD s potřebným programovou výbavou a ovladači, testovací rozsah MAC adres, propojovací kabel RS232 pro připojení k PC (křížený „LapLink“) a 1x křížený kabel TP pro možnost připojení přímo k počítači.

Samozřejmostí je pak též tištěná dokumentace s podrobným popisem jednotlivých nastavovacích prvků a konektorů modulu Charon II i Charon I&II Development Boardu spolu s přehledným návodem pro první spuštění. Na CD jsou pak v elektronické podobě uloženy katalogové listy souvisejících integrovaných obvodů i kompletní balík dokumentace a zdokumentovaných příkladů projektu Ethernut, včetně podrobného popisu operačního systému Nut/OS a jeho nadstavby Nut/Net.

HTTP Demo

HTTP Demo je ukázková aplikace dodávaná spolu s modulem Charon II jako jeho výchozí firmware a umožňující základní ovládání periférií nacházejících se na Charon I&II Development Board prostřednictvím www rozhraní.

Aplikace se aktivuje voláním IP adresy modulu Charon (výchozím nastavením z výroby je 192.168.1.100) z okna libovolného www prohlížeče.

Pod volbou Peripherals Controls se nachází možnost kompletního ovládání periférií vývojové desky a zobrazení vstupních informací. Položka ShiftLEDOut graficky zobrazuje stavy LED připojených přes Shift registry. Zaškrtávací políčka pod diodami umožňují změnu stavu LED po odeslání formuláře ke zpracování. Nastavení DIP lze odečíst v položce DIPswitchIn, a to buď v grafické podobě, nebo přehledněji formou zaškrtávacích políček formuláře, která pochopitelně nelze na www stránce měnit. U LED i DIP spínačů zobrazuje formulář rovněž číselnou, dekadickou, hodnotu. Textové pole LCDText pak slouží ke změně textu zobrazovaného na připojeném 2x16znakovém displeji. Položka Thermometer(s) zobrazuje hodnoty naměřené pomocí 1-Wire teploměrů připojených k Charon I&II Development Board.

Z Peripherals Controls zbývá popsat již jen funkce pro práci s rozhraním RS-232. Jedná se o položky RS232DataOut a RS232DataIn, které zobrazují data odesílaná, resp. přijímaná sériovým rozhraním modulu Charon II. Poslední, nikoliv však nezajímavou, funkcí je možnost vzdálené změny komunikační rychlosti sériového portu modulu právě prostřednictvím tohoto www formuláře. Stačí do políčka RS232Speed zadat číselnou hodnotu požadované rychlosti a stisknout tlačítko odeslání formuláře. Modul Charon změní rychlost sériového portu a vrátí výslednou hodnotu. Měnit však jde pouze baudrate, nikoliv další parametry.

Užitečnou funkcí pak mohou být též volby skrývající se pod hlavičkou NutOs status, které nabízejí důležité informace o činnosti modulu poskytované samotným operačním systémem, jako je stav čítačů, informace o ethernetové komunikaci či probíhajících operacích.

Hercules Setup Utility

Hercules Setup Utility je název pro původní produkt HW group fungující jako terminál pro sériový port (RS-232 nebo RS-485), UDP/IP a TCP/IP (Client nebo Server) určený pro nastavení, ovládání a testování zařízení založených na modulech Charon (Serial/Ethernet Converter, RS-232/Ethernet Buffer nebo I/O Controller) pomocí UDP, TCP nebo i lokálně po sériovém portu. Program je pro libovolné Windows 32 a nemusí se instalovat.

Zvláštností fungující však jen ve spojení s produkty HW Group je funkce UDP Setup, která umožňuje pomocí datagramů UDP/IP nastavení základních síťových parametrů (IP adresu, masku, Gateway, rozsah povolených adres na protistraně). UDP funguje pouze pro lokální větev sítě Ethernet, kde projde všeobecná výzva.

Pro rychlé ověření činnosti modulů osazených do některé z nabízených vývojových desek je pak k dispozici záložka Test mode umožňující přímé ovládání výstupních portů modulu, čtení vstupních i odesílání dat na sériový port.

Kromě výše zmíněného UDP Setup a Test Mode, které pracují jen s originálními HW Ethernet zařízeními, je tento program plně funkční i s jakýmkoliv jiným výrobkem. Zdarma je k dispozici na adrese www.HWgroup.cz

Závěr

Otevřenost vývojového systému Ethernut „dává vývojářům křídla“. Nejste odkázáni na jedno řešení, vše je k dispozici ve zdrojových kódech a používáte standardní MCU a hlavně standardni ANSI C. Modulové verze Ethernetu – Charon II je jen logickým pokračováním základního systému.

V prosinci 2003 byla představena HW verze Ethernut 2.0, která používá 100 MBit ethernet řadič, 512 kB ram a používá některá další vylepšení. Základní procesor ale zůstal stále stejný, velikost FLASH paměti se rozšiřuje pomocí sériových SPI FLASH a vše je zpětně kompatibilní..

Oldřich Mrázek
mrazek@ HW.cz

DOWNLOAD & Odkazy

Hodnocení článku: