Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Sviluppo di un’interfaccia Camera Link - FPGA Anno accademico: 2003/2004 Laureando: Bojan Simoneta Relatore: Chiar.mo prof. Sergio Carrato Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Introduzione • Scopo dell’elaborato: realizzare una scheda d’interfaccia tra la telecamera CLinkCam e la scheda XSA50; • Sulla XSA50 è montato un dispositivo logico programmabile FPGA (Field Programmable Gate Array), che elabora le immagini e le visualizza sullo schermo VGA; • Il controllo della telecamera avviene attraverso due linee seriali connesse al PC tramite il connettore RS232. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Schema a blocchi principale Telecamera CLinkCam Scheda XSA50 (FPGA) SCHEDA D’INTERFACCIA PC Sviluppo di un’interfaccia Camera Link - FPGA Schermo VGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Caratteristiche della telecamera • Interfaccia di comunicazione Camera Link; • Frame rate = 24 immagini al secondo; • Risoluzione dell’immagine = 640 x 480 pixel; • Luminosità pixel quantizzata in 1024 livelli (dimensione pixel = 10 bit); • Controllo seriale tramite 2 linee a velocità 9600 baud; • 1 linea di controllo CC1 per richiedere la visualizzazione di una singola immagine. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Segnali di temporizzazione della telecamera • il segnale di clock (8 MHz); • il segnale di sincronizzazione dei dati DVAL (data valid); Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Segnali di temporizzazione della telecamera • il segnale di sincronizzazione delle linee LVAL (line valid); • il segnale di sincronizzazione delle immagini FVAL (frame valid). Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Interfaccia standard di comunicazione CameraLink • Sviluppata da alcune compagnie che producono telecamere digitali; • Si basa sulla comunicazione LVDS (Low Voltage Differential Signaling). Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Segnali LVDS dell’interfaccia Camera Link • 4 segnali per la trasmissione dei dati, 1 segnale di clock. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Tecnologia Channel Link 3.3 V • Serie di integrati prodotti dalla National Semiconductor; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 C_TX7 C_TX5 C_TX8 C_TX9 • Trasmettitori e ricevitori, che convertono 4 linee LVDS in 28 linee TTL/CMOS e viceversa. C_SPARE C_LVA L C_FVA L V CC TxIN5 TxIN6 TxIN7 GND TxIN8 TxIN9 TxIN10 V CC TxIN11 TxIN12 TxIN13 GND TxIN14 TxIN15 TxIN16 V CC TxIN17 TxIN18 TxIN19 GND TxIN20 TxIN21 TxIN22 TxIN23 V CC TxIN24 TxIN25 TxIN4 TxIN3 TxIN2 GND TxIN1 TxIN0 TxIN27 LV DS GND TxOUT0TxOUT0+ TxOUT1TxOUT1+ LV DS VCC LV DS GND TxOUT2TxOUT2+ TxCLKOUTTxCLKOUT+ TxOUT3TxOUT3+ LV DS GND PLL GND PLL V CC PLL GND PWR DWN TcCLKIN TxIN26 GND 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 C_TX4 C_TX3 C_TX2 C_TX1 C_TX0 C_TX6 LV DS_GND X0X0+ X1X1+ LV DS_V CC LV DS_GND X2X2+ XCLKXCLK+ X3X3+ LV DS_GND PLL_GND PLL_V CC PLL_GND C_PWDN C_TXCLK C_DVA L DS90CR285 0 Sviluppo di un’interfaccia Camera Link - FPGA 0 Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Scheda d’interfaccia – Il connettore MDR26 • Connette la telecamera con la scheda d’interfaccia; • 26 piedini (13 linee LVDS): 8 piedini per la trasmissione dei dati (4 canali); 2 piedini per il clock; 8 piedini per 4 segnali di controllo; 2 piedini per il segnale seriale verso la telecamera; 2 piedini per il segnale seriale verso il frame grabber; 4 piedini di protezione di massa. Sviluppo di un’interfaccia Camera Link - FPGA shield26 shield13 X0X0+ X1X1+ X2X2+ XclkXclk+ X3X3+ SerTC+ SerTCSerTFGSerTFG+ CC1CC1+ CC2+ CC2CC3CC3+ CC4+ CC4shield14 shield1 mdr26 26 13 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 16 3 15 2 14 1 Data_In0Data_In0+ Data_In1Data_In1+ Data_In2Data_In2+ Clk_InClk_In+ Data_In3Data_In3+ SerTx_Out+ SerTx_OutSerRx_InSerRx_In+ CC1_OutCC1_Out+ Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Scheda d’interfaccia – Il ricevitore LVDS per applicazioni Camera Link DS90CR286 • E’ il duale del trasmettitore LVDS DS90CR285, che sta nella telecamera; • Converte 4 canali LVDS di dati in 28 linee TTL/CMOS; • Converte il canale LVDS del clock nella linea TTL/CMOS del clock; • Alimentazione: +3.3V => livello logico alto in uscita = +3.3V; • Tensione di modo comune LVDS d’ingresso = 1.2 V; • Soglia della tensione differenziale LVDS d’ingresso = ±100mV. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Scheda d’interfaccia – Il ricevitore LVDS per applicazioni Camera Link DS90CR286 +3.3 V +3.3 V Data_In0R8 100 Spare LV AL FV AL DV AL Data_In0+ Data_In1- D6 R7 100 Data_In1+ Data_In2C13 100nF R6 100 Data_In2+ Clk_InR5 100 Clk_In+ Data_In3- PWRDWN R4 100 CLK D0 C14 Data_In3+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 RxOUT22 RxOUT23 RxOUT24 GND4 RxOUT25 RxOUT26 RxOUT27 LV DS GND8 RxIN0RxIN0+ RxIN1RxIN1+ LV DS V cc LV DS GND14 RxIN2RxIN2+ RxCLKINRxCLKIN+ RxIN3RxIN3+ LV DS GND21 PLL GND22 PLL Vcc PLL GND24 PWRDWN RxCLK OUT RxOUT0 GND28 V cc56 RxOUT21 RxOUT20 RxOUT19 GND52 RxOUT18 RxOUT17 RxOUT16 V cc48 RxOUT15 RxOUT14 RxOUT13 GND44 RxOUT12 RxOUT11 RxOUT10 V cc40 RxOUT9 RxOUT8 RxOUT7 GND36 RxOUT6 RxOUT5 RxOUT4 RxOUT3 V cc31 RxOUT2 RxOUT1 DS90CR286 100nF Sviluppo di un’interfaccia Camera Link - FPGA 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 C18 100nF C17 100nF C16 D9 D8 100nF D5 D7 D4 D3 D2 D1 C15 100nF Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Scheda d’interfaccia – Controllo seriale ed il segnale di controllo CC1 • Trasmettitore LVDS a 2 linee DS90C401 per la trasmissione del segnale seriale e del segnale CC1 verso la telecamera ; • Ricevitore duale DS90C402 per la ricezione del segnale seriale dalla telecamera. +5 V SerRx_In+5 V C19 100nF CC1_OutCC1_Out+ CC1_In 1 2 3 4 VCC DI2 DO1- DO2+ DO1+ DO2DI1 GND 8 7 6 5 SerTx_In SerTx_Out+ SerTX_Out- C20 100nF DS90C401 R3 100 1 2 3 4 VCC RI2RO1 RI2+ RI1+ RO2 RI1- GND 8 7 6 5 SerRx_In+ SerRx_Out DS90C402 GND Sviluppo di un’interfaccia Camera Link - FPGA GND Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Scheda d’interfaccia – Comunicazione seriale • MAX232: converte i due segnali seriali SerTx e SerRx in due segnali, che si possono ricevere o trasmettere con il protocollo RS232; • Un cavo null modem RS232 collega il connettore maschio a 9 poli della scheda con il PC; • I byte di comando si trasmettono utilizzando il tool di comunicazione Hyper Terminal; Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Scheda d’interfaccia – Costruzione • ORcad Capture per fare lo schematico; • ORcad Layout per creare i footprint dei componenti e per realizzare il layout; • La basetta è stata costruita nei laboratori dell’Elettra; • Alcuni componenti saldati nei laboratori dell’Elettra, alcuni nei laboratori della Facoltà. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica XSA50 - Componenti • Dispositivi logici programmabili FPGA e CPLD; • Memoria SDRAM; • Memoria Flash; • Generatore di clock programmabile; • Switch e pushbotton; • Display a 7 segmenti; • Porta parallela da collegare al PC; • Uscita VGA e ingresso PS/2. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica XSA50 – Schema a blocchi Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Programmazione della FPGA • Si è scelto di programmarla in due modi: Utilizzando il linguaggio di programmazione VHDL; Disegnando uno schematico; • Tool di programmazione: Project Navigator della Xilinx; • Il tool esegue la sintesi, l’implementazione e genera il file da scaricare sulla scheda. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: schema generale SDRAM CONTROLLER Dati dalla telecamera Segnali da/verso SDRAM CONTROL SYSTEM VGA CONTROLLER Sviluppo di un’interfaccia Camera Link - FPGA Immagine da visualizzare Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: SDRAM Controller • Il controllo della memoria SDRAM (RAM dinamica e sincrona) è complesso; • Lo SDRAM Controller gestisce la SDRAM e la fa sembrare una RAM statica facile da controllare; • Per comandare le operazioni di scrittura e lettura si utilizzano i segnali di write e read enable; • Dimensione bus indirizzi: 23 bit; • Dimensione bus dati: 16 bit. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: VGA Controller • Genera i segnali di sincronismo per la visualizzazione dell'immagine: Hsync: segnale di sincronismo orizzontale; Vsync: segnale di sincronismo verticale. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: VGA Controller • converte i dati provenienti dalla SDRAM in dati di 6 bit che si possono visualizzare: Red: 2bit; Green: 2 bit; Blue: 2 bit. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: Control system - Introduzione • Controlla e gestisce gli altri 2 blocchi; • E’ composto da 3 sottoblocchi: Write_control: legge i dati dalla telecamera e li memorizza nella SDRAM; Read_control: legge i pixel dalla memoria e li invia al VGA Controller; Address Control: è un multiplexer => sceglie gli indirizzi della SDRAM tra quelli di scrittura e lettura a seconda della posizione di uno switch posto sulla scheda XSA50. Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: Control system - Schema Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Software: Control system – Diagramma di flusso Scrittura nella SDRAM (wr=1) Switch = 1 Switch = 0 Lettura dalla SDRAM (rd=1) Sviluppo di un’interfaccia Camera Link - FPGA Università degli studi di Trieste – Corso di laurea triennale in Ingegneria elettronica Conclusioni • Test sulla parte hardware => Strumenti di misura: Oscilloscopio; Tester; • Test sulla parte software => Si è creato un simulatore della telecamera che genera i segnali: Clock a 8 MHz LVAL; DVAL; Un’immagine a colonne verticale; Sviluppo di un’interfaccia Camera Link - FPGA