Table of Contents Table of Contents
Previous Page  10 / 100 Next Page
Information
Show Menu
Previous Page 10 / 100 Next Page
Page Background

EMBEDDED

60 • MAGGIO • 2016

LA COPERTINA DI EMBEDDED

NATIONAL INSTRUMENTS

10

ze nella pipeline, garantisce il bilanciamento della latenza

all’unione delle pipeline parallele per configurare il buffer

di sincronizzazione. In questo modo si assicura che i FIFO

nei buffer di sincronizzazione abbiano una profondità suf-

ficiente in base alla latenza massima delle pipeline. L’uti-

lity del contatore di prestazioni nel Vision Assistant stima

il tempo massimo impiegato per l’elaborazione di ciascun

fotogramma (Fig. 2), permettendo di conoscere la latenza

collettiva di tutti i blocchi nella pipeline. Gran parte dei

processori del portfolio hardware NI dispongono di un si-

stema operativo real-time. L’utilizzo di Vision Assistant

semplifica quindi la stima del tempo necessario per ese-

guire una funzione di visione.

Coloro che non hanno dimestichezza con LabVIEW, note-

ranno che conVisionAssistant si garantisce la creazione di

un progetto completamente funzionale, che include tutte

le dipendenze, come gli strumenti virtuali (VI) di trasferi-

mento, le DMA FIFO e la logica di acquisizione delle im-

magini. Un VI è simile a una funzione o a una subroutine

negli altri linguaggi di programmazione. I VI di trasferi-

mento sono necessari per trasferire i dati delle immagini

tra la logica host/acquisizione e l’FPGA. Le DMA FIFO

non coinvolgono il processore host, pertanto sono il meto-

do disponibile più veloce per trasferire grandi quantità di

dati tra il target FPGA e l’host Real-Time. La logica di ac-

quisizione dipende dal tipo di sistema di visione, se basato

sull’elaborazione inline o sulla co-elaborazione.

Vision Assistant ,

inoltre, permette di creare altri VI, come

l’Host VI, che viene eseguito sul processore Real-Time, e il

VI FPGA. Si potrebbe quindi compilare il VI FPGA utiliz-

zando gli strumenti Xilinx Vivado e generare un bitstream

per la distribuzione sull’FPGA. È importante notare che il

sistema che ospita la pipeline di elaborazione dell’immagi-

ne può essere largamente categorizzato come elaborazione

inline o co-elaborazione, in base al luogo in cui risiede la

logica di acquisizione. Nell’elaborazione inline, la logica di

acquisizione è sull’FPGA, la telecamera viene configura-

ta mediante la logica di acquisizione e l’immagine viene

elaborata sull’FPGA. I risultati e l’immagine elaborata

vengono poi rispediti all’host per la valutazione e ulterio-

ri analisi. Nella co-elaborazione, la logica di acquisizione

per la telecamera è sul processore. Trasferire l’immagine

dal processore all’FPGA, rinviare poi l’immagine elaborata

dall’FPGA al processore richiede una quantità di tempo

limitato. Si può anche suddividere l’elaborazione della pi-

peline tra il processore e l’FPGA. In quanto sviluppatore di

un sistema di visione che utilizza FPGA, devi essere con-

sapevole del throughput che l’FPGA può raggiungere. Puoi

utilizzare le informazioni sul throughput e la stima delle

risorse in tempo reale per determinare quante funzioni

(blocchi IP) puoi distribuire all’FPGA. Nella co-elabora-

zione, le prestazioni del processore determinano il throu-

ghput finale. Ciò risulta valido se si utilizzano le funzioni

IP dell’FPGA che NI fornisce con Vision Development Mo-

dule, perché si tratta di funzioni completamente pipelined

che producono prestazioni migliori rispetto alla maggior

parte dei processori.

Dal prototipo alla distribuzione

L’IP di visione FPGA del Vision Development Modu-

le consente agli sviluppatori di utilizzare l’elaborazio-

ne fortemente parallela, lo strumento Xilinx Vivado

ad alto livello di sintesi (HLS), per ottenere un IP di

visione sull’FPGA completamente pipelined, a bassa

Fig. 3 - Block Diagram del VI FPGA con un nodo di sincronizzazione