. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Referenční návrh IP kamery
22. dubna 2016 - 4:13 | Pandatron | Referenční návrh IP kamery | Komentářů: 0  

Referenční návrh IP kamery

Návrh webové IP kamery s využitím vývojového kitu Freescale a JPEG sériové kamery.

Každý máme potřebu být neustále v obraze a vědět co se děje. Nyní s pomocí celosvětové sítě internet je to možné mnohem snadněji, než jak tomu bylo kdykoliv dříve. To je také důvod, proč mnoho aplikací, jako jsou videokonferenční zařízení, bezpečnostní systémy či kupříkladu i systém zdravotní péče je vždy připojen k internetu a umožňuje tak snadné použití odkudkoliv na světě. I přes rostoucí počet podobných aplikací jsou stále nejběžnějšími A/V prvky v síti nejrůznější IP kamery. Tato zařízení umožňují uživateli sledovat prakticky v reálném čase dění na libovolném místě, ať už se jedná o domácnost v době dovolené, firemní prostory či veřejná prostranství. Přesto že je dnes na trhu dostupná celá řada podobných produktů, ne vždy jsou v sériově vyráběných zařízeních dostupné takové funkce, které by splnili dané požadavky a tak přichází na řadu návrh vlastního zařízení.


Obr. 1: Blokové schéma referenčního návrhu IP kamery s obvodem Freescale MQX

Hardware:
Referenční návrh představený společností Freescale demonstruje schopnosti Freescale MQX a přibližuje možnost návrhu vlastní aplikace, splňující všechny specifické vlastnosti. Pro jednoduché použití je referenční design postaven na levném vývojovém kitu M52259DEMOKIT, dostupném například u distributora Farnell, nebo prostřednictvím služeb našeho eShopu v ceně zhruba 39 EUR. Dále je použit modul VGA kamery se sériovým portem typu C328R, dostupný i v Čechách, který na svých výstupech poskytuje obraz ve formátu JPEG.

Modul na příkaz hostitele umožňuje sejmout jeden obrázek, komprimovat do formátu JPEG a v plném rozlišení odeslat po sériovém portu. Na následujícím obrázku je mikroprocesorové rozhraní M52259DEMOKIT, využité pro připojení modulu kamery.


Obr. 2: MCU rozhraní M52259DEMOKIT

Kamera C328R vyžaduje pouze jediné 3,3 V napájecí napětí, GND, UART-Tx a UART-Rx. Všechny tyto piny jsou k dispozici na uvedeném konektoru a modul je tak možné připojit přímo k vývojové desce podle následující tabulky.


Tab. 3: Spojení modulu kamery s M52259DEMOKIT

Dále k desce kromě napájecího zdroje není potřeba nic dalšího připojovat, jelikož rozhraní Ethernet 10/100 BaseT i případný USB Host port pro flash disk je již její součástí.

Aplikační rozhraní:
Demonstrační aplikace obsahuje pouze tři úkoly:

  • task_init - Automaticky spouštěný kód sloužící k inicializaci sítě a spouštějící camera_task. Task_init obsahuje i funkci pro uložení snímku na USB flash disk.
  • camera_task - Obsahuje kód komunikující s kamerou a vyčítající jednotlivé obrázky ve formátu JPEG.
  • USB_task - Tato úloha inicializuje USB a řídí plug-and-play operace s připojeným zařízením.


Obr. 4: Diagram funkcí demo aplikace

Konfigurace UART:
Aplikace využívá dva sériové porty. UART0 je využit jako podpora konzole, kde jsou zobrazovány jednotlivé stavy a další zprávy. UART2 je v aplikaci využit na komunikaci s modulem kamery C328R. Zatímco UART0 vysílá pouze připravená data, UART2 musí být konfigurován pro vysílání a příjem obsluhovaný přerušením. Je to z důvodu náročnosti na správné načasování a příjem dat z modulu kamery.

Následující ukázka kódu umožňuje modulu UART2 pracovat v přerušení. Kód musí být umístěn v souboru user_config.h. Jména TTYA, TTYB a TTYC jsou v prostředí Freescale MQX zástupná pro UART0, UART1 a UART2.

#define BSPCFG_ENABLE_TTYC 0 //interrupt
#define BSPCFG_ENABLE_ITTYC 1
#define BSPCFG_UART2_BAUD_RATE 19200

Následně je potřeba překompilovat všechny MQX knihovny, aby se v aplikaci projevili změny v souboru user_config.h. MQX knihovny jsou kompilovány v samostatném CodeWarrior projektu.

RTCS konfigurace:
TCP/IP stack je konfigurován pro spuštění klienta DHCP. To zajišťuje snadnou konfiguraci a získání IP adresy a brány sítě z DHCP serveru v lokální síti, který je připojen k internetu. IP adresy přidělené DHCP serverem se používají pro přístup k webovému serveru odkudkoliv v síti LAN. Pro přístup z vnější sítě internet je samozřejmě potřeba provést konfiguraci internetové brány či routeru.

Web server:
Uvedený referenční návrh vyžívá knihovny Freescale MQX RTCS. Pro přístup k aktuálnímu obrázku z modulu kamery je využito webového serveru. Ten slouží k zobrazení JPEG obrázku v HTML kódu webové stránky, která je uživatelům LAN přístupná po zadání získané IP adresy do libovolného webového prohlížeče. Pro tento demonstrační účel byl webový server upraven tak, aby zároveň odkazoval přímo na paměťovou oblast, ve které je uložen aktuální obrázek JPG. Obrázky se z kamery načítají do bufferu v paměti RAM. Z důvodu přístupnosti bufferu jak pro kameru, tak i webový server je potřeba ošetřit možné kolize při souběžném přístupu. Vzájemné vyloučení synchronizace kamery a webového serveru je zajištěno technikou MUTEX (the Mutual Exclusion).


Obr. 5: MUTEX zajišťuje rozdílný přístup kamery a webového serveru

HTML:
Webový server zobrazuje HTML soubory. Pro lepší využití paměťového prostoru jsou veškeré HTML soubory i prvky v nich obsažené převedeny do šestnáctkového pole. K tomu je určen dostupný nástroj mktfs.exe Freescale MQX. Tyto datové bloky jsou poté uloženy ve flash jako triviální souborový systém, který je využíván webovým serverem pro zobrazení HTML obsahu.

V demo aplikaci referenčního návrhu jsou obsaženy dva HTML soubory. Mqx.html je nastaven jako výchozí pro načtení při požadavku zobrazení webové stránky z webového serveru. Mqx.html poté obsahuje vložený soubor Mqx_cam.html, sloužící k neustálému obnovování obrázku z kamery a to v intervalu 500 ms. Kamera přitom zhotovuje nový snímek každých 500 až 800 ms, který ukládá do bufferu v paměti RAM. Doba kolísá v závislosti na velikosti obrázku, který je závislý především na sytosti barev a rozlišení snímku.


Obr. 6: Příklad webové stránky

USB Mass Storage:
Uvedený referenční návrh IP kamery navíc obsahuje i funkce pro uložení snímku do paměti klasického USB flash disku a to vždy po stisku tlačítka SW2 na desce M52259DEMOKIT. Úkol je zajištěn funkcí USB Mass Storage. Zdrojový kód přitom pracuje shodně jako v případě web_hvac demo, dostupné jako součást Freescale MQX. Ve chvíli, kdy je USB disk připojen v zařízení, zajišťuje MQX přístup k jeho obsahu, diskovým oddílům a systému souborů. V tu chvíli je možné z disku libovolně číst a zapisovat.

Jakmile dojde ke stisku tlačítka SW2, úloha Task_init zajistí prostřednictvím MUTEX výhradní přístup k obrazovým datům v paměti RAM, kde je uložen obrázek JPG. V tu chvíli nemá kamera k datům povolen přístup a jednoduchým způsobem je tak vyloučeno poškození právě zpracovávaných dat. Po uzamčení datového prostoru funkcí MUTEX dojde úlohou Task_init k ověření, zda je souborový systém USB disku k dispozici a vytvoření nového souboru. Následně dojde ke zkopírování dat z paměti RAM do tohoto souboru a jeho uzavření. Dále je již jak kameře, tak i webovému serveru opět povolen přístup k datům v paměti a zařízení může pokračovat ve své základní funkci. Již dříve uvedený MUTEX je tak využíván pro synchronizaci a řízení přístupu celkem tří úkolů ke společnému datovému prostoru paměti RAM.


Obr. 7: Vývojový kit M52259DEMOKIT

Více informací o referenčním návrhu včetně kompletních zdrojových kódů je volně k dispozici na webových stránkách Freescale a v odkazech pod článkem.

Odkazy & Download:
Domovská stránka výrobce
IP Camera and USB Snapshot with MQX
Zdrojové kódy referenčního návrhu - DOWNLOAD
MCF5225X: One-Stop-Shop Connectivity 32-bit Microcontrollers
M52259DEMOKITQSG : M52259DEMOKIT Quick Start Guide







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře:
Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
ID-12 - čtečka RFID
Modul čtečky bezkontaktní identifikace - RFID tagů s integrovanou anténou a dosahem 12 cm.
Skladem od 670 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007