Progettare una videocamera IP

Tutti noi abbiamo la necessità di essere informati in ogni momento. Adesso con l’aiuto di Internet, questo è possibile. Questo perchè, molte applicazioni (come le video conferenze, la sicurezza, i sistemi di assistenza sanitaria) includono la connessione ad Internet. Una delle applicazioni più comuni è la videocamera IP. La videocamera ip permette all’utente di guardare un luogo lontano. Questa videocamera IP può essere utilizzata per sicurezza, conferenza, vigilanza e altre applicazioni come queste.

Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Videocamera IP - Impostazioni Hardware

Un progetto di dimostrazione è stato sviluppato per mostrare le capacità del Freescale MQX. Questo progetto è eseguito su una scheda di dimostrazione Freescale M52259DEMOKIT. Il progetto di dimostrazione usa una videocamera seriale VGA per riprendere e un’unità di memorizzazione di massa USB per salvare gli scatti presi dalla telecamera seriale. La C328R è una telecamera VGA che si comporta come una telecamera stick con compressione JPEG.

Può essere usata per ottenere uno scatto da un comando dall’host per catturare un’immagine a piena risoluzione. L’immagine è quindi compressa dal motore JPEG e trasferita all’host tramite porta seriale. Ciò che segue è la descrizione dell’hardware da collegare la telecamera C328R alla scheda M52259DEMOKIT.
La telecamera C328R richiede solo +3,3V, GND, UART-Tx e UART-Rx. Questi segnali sono disponibili sul connettore J4 chiamato MCU PORT.

ip_camera_porta_microcontrollore_freescale

Applicazione. Videocamera IP

Questa applicazione ha tre processi.
• task_init Questo è un processo di autoinizializzazione. Inizializza la rete e avvia camera_task. Task_init gestisce anche la funzione scatto a USB.
• camera_task Questo processo gestisce la comunicazione con la telecamera
• USB_task Questo processo inizializza l?USB, e controlla l’operazione di inserimento e rimozione della chiavetta di memoria USB.

ip_camera_freescale_demo_application

Configurazione UART
L’applicazione usa due porte UART. L’UART0 è usato come console di supporto dove sono mostrati lo stato dell’applicazione e alcuni messaggi. L’UART2 è usata per far comunicare l’applicazione con la telecamera C328R. Mentre l’UART0 lavora in poling, l’UART2 deve essere configurata per mandare e ricevere dati usango gli interrupt. La ragione dell’uso degli interrupt è che il clock della telecamera C328R è molto critico.

Il codice seguente abilita la porta UART2 a lavorare con gli interrupt. Questo codice deve essere messo nel file user_config.h. In Freescale MQX, i nomi TTYA, TTYB e TTYC sono i rispettivi alias per le porte UART0,UART1 e UART2.

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

E’ necessario ricompilare tutte le librerie MQX per permettere alle modifiche nel file user_config.h di avere effetto nella successive compilazione dell’applicazione. Le librerie MQX sono compilate in un progetto CodeWarrior separato, quindi per ricompilare le librerie MQX, deve essere aperto il progetto bluid_libs.mcp e ricompilato di nuovo. Dopo che questo passaggio è stato fatto, i cambiamenti nelle librerie saranno riflessi nell’applicazione.

Configurazione RTCS
Lo stack TCP/IP è configurato per inizializzare il client DHCP. Questo aiuta ad ottenere un indirizzo IP dal server DHCP nella LAN dove è connessa la scheda. Un indirizzo IP assegnato da un server DHCP è usato per accedere al server web da qualcunque postazione nella LAN.

Server Web
Questa applicazione usa il server web incluso nel Freescale MQX RTCS. Questo server web è usato per ottenere l’accesso all’immagine catturata dalla videocamera C328R. Il server web aiuta a pubblcare questa immagine in una pagina web in HTML che può essere visitata dall’utente tramite Internet o l’accesso alla LAN. Per questa demo, il server web è stato modificato per aggiungere un’esclusione comune nell’era di memoria che memorizza l’immagine JPG. Come menzionato prima, il compito della telecamera è salvare l’immagine in un buffer in RAM. Questo buffer è anche accessibile dal server web per mandare l’immagine al browser web del client che è connesso. Per questa ragione, la Mutual Exclusion (MUTEX) è necessaria. Questo previene alcuni comportamenti anormali.

HTML
Il server web mostra i file HTML. Questi file sono convertiti da HTML in array esadecimali. Se altri elementi sono mostrati nella pagina web HTML, allora anche questi sono convertiti in array esadecimali. Il tool mktfs.exe è fornito con Freescale MQX per convertire questi file in array esadecimali. Questi array sono allora memorizzati nella memoria flash come un file di sistema insignificante che può essere utilizzato dal server web per mostrare i contenuti HTML.

In questa demo, il server web sta mostrando due file HTML; il file mqx.html è impostato come pagina web che sarà caricata quando un browser web richiede il nostro indirizzo IP. Il file mqx.html inslude mqx_cam.html. mqx_cam.html aggiorna i suoi contenuti, l’immagine dalla videocamera; ogni 500 millisecondi. La videocamera prende uno scatto tra i 500 e gli 800 millisecondi, lo manda all’MCU, e la memorizza nella RAM. La variazione del tempo dipende dalla dimensione dell’immagine. La dimensione dell’immagine dipende dalla saturazione del colore e dalla risoluzione dello scatto.

Caratteristiche del dispositivo di memorizzazione di massa USB
Questa demo include anche la funzionalità di memorizzare uno scatto in una memoria flash ogni volta che è premuto il bottone SW2. Un’operazione è creata per configugare l’host USB per la memoria di massa. Il codice funziona come la demo web_hvanc (C:\Program Files\Freescale\Freescale MQX 3.2\demo\web_hvac). Quando la chiavetta di memoria USB è inserita nella porta USB, lo stack dell’host USB di MQX imposta il dispositivo, e installa la partizione e il file system dalla chiavetta di memoria USB. In questo momento, è possibile leggere e scrivere file nella chiavetta di memoria USB. Dopo che task_init inizializza il MUTEX e la rete, apre il driver GPIO per configurare il bottone SW2 nella scheda M52259DEMO come input.

Task_init inserisce in un ciclo per interrogare il bottone SW2. Se il bottone BW2 è premuto, task_init blocca il MUTEX per avere l’accesso esclusivo alla memoria RAM dove è memorizzata l’immagine JPG. La videocamera non può scrivere in questo modo nella memoria e scarta ogni corruzione della memoria. Dopo che il MUTEX è bloccato, task_init verifica che è disponibile un filesystem nella chiavetta di memoria USB e crea un file lì. Copia il contenuto della memoria in questo nuovo file e chiude il file.

Infine laascia il MUTEX per permettere l’operazione della videocamera e il server web continua con le attività. Il MUTEX è usato per sincronizzare l’accesso di questi tre processi alla risorsa della memoria e questo è chiamata esclusione comune.

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Scarica subito una copia gratis

Una risposta

  1. Avatar photo Emanuele 11 Marzo 2010

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend