TECH INSIGHT
VISIONE ARTIFICIALE
22
- ELETTRONICA OGGI 463 - GIUGNO/LUGLIO 2017
Il passaggio allo sviluppo software
Una volta che il progetto è verificato e gli indirizzi sono assegnati alle
periferiche mappate in memoria che usano sia le interconnessioni AXI
ad alte prestazioni, sia quelle con funzione generica (il che può esse-
re fatto automaticamente), l’hardware è realizzato in ambiente Vivado
2015.4 ed è esportato all’ambiente di sviluppo software SDK 2015.4.
L’SDK è usato per configurare non solo il progetto all’interno del dispo-
sitivo Zynq, ma anche alcuni elementi sull’EVK prima di usarli. Questo
avviene perché in questo esempio il PS agisce con funzione di supervi-
sione e di controllo del sistema. Di conseguenza, deve essere configu-
rato l’intero sistema di visione embedded.
Affinché il sistema in grado di operare, è necessario aggiungere del
software semplice. In particolare, il software è usato per configurare
elementi chiave del sistema, che includono la configurazione della fo-
tocamera Python 1300C attraverso la sua interfaccia SPI, il modulo di
interfaccia AXI del sensore Python 1300C, il VDMA AXI per la lettura dei
fotogrammi dalla memoria DDR e per la loro scrittura in memoria, la Matrice di Filtri di Colori AXI, il dispositivo di
Uscita HDMI, il Mux I
2
C e le periferiche ad esso associate, e il modulo di espansione IO I
2
C che controlla le linee
di alimentazione per il sensore Python 1300C.
L’EVK usa il controllore I
2
C del PS del dispositivo Zynq per configurare il dispositivo di uscita HDMI e abilitare
gli alimentatori del dispositivo Python.
Avnet fornisce API per controllare l’I
2
C e per configurare le seguenti interfacce:
•
ADV7511 – API
per l’uscita HDMI.
•
CAT9554 – API
per il modulo di espansione I/O I
2
C sul modulo fotocamera.
•
TCA9548 – API
per il mux I
2
C sull’EVCC.
•
PCA9534 – API
per il modulo di espansione IO I
2
C sull’EVCC.
•
OnSemi_Python_SW – API
per il sensore Python 1300C.
•
XAXIVDMA_EXT – API
per la configurazione del VDMA.
•
XIICPS_EXT – API
per la gestione dell’interfaccia I
2
C esterna.
Oltre a queste API, sono anche fornite le API di Xilinx per i blocchi IP all’interno della catena di elaborazione
delle immagini. Per creare l’applicazione software, il progetto hardware è stato importato all’interno dell’SDK
ed è stato creato un pacchetto di supporto alla scheda (BSP) per questo hardware. Tale BSP conterrà tutte le
API di Xilinx necessarie per controllare l’hardware, se abbinate alle API di AVNET all’interno della catena di
elaborazione delle immagini e nel dispositivo Zynq. Il software in sé è richiesto per inizializzare le periferiche
AXI, mettere sotto tensione le linee di alimentazione del sensore di immagini e configurare il 1300C, la matrice
di filtri di colore e il VDMA. Alcuni esempi
sono mostrati nella figura 2. Il completa-
mento di questi passaggi, quando il sof-
tware viene eseguito sull’EVK, produce
un’immagine che viene inviata al monitor
HDMI, come si può vedere in figura 3.
Seguendo degli articoli che discutono gli
elementi di un sistema di visione embed-
ded, questo progetto dimostrativo illustra
come un sistema è realizzato usando API
software e librerie di IP. Da questo pun-
to di partenza, è possibile poi sviluppare
degli algoritmi su misura per aggiungere
ulteriore valore alla catena di elaborazio-
ne delle immagini. Ulteriori informazioni
si possono trovare sui Microzed Chroni-
cles blogs e sull’AVNET Git HUB.
Fig. 2 – Alcuni esempi di utilizzo del software
Fig. 3 – Acquisizione di un fotogramma di una scena catturata
usando la demo