| Literature DB >> 22163739 |
Ignacio Bravo1, Javier Baliñas, Alfredo Gardel, José L Lázaro, Felipe Espinosa, Jorge García.
Abstract
This article describes an image processing system based on an intelligent ad-hoc camera, whose two principle elements are a high speed 1.2 megapixel Complementary Metal Oxide Semiconductor (CMOS) sensor and a Field Programmable Gate Array (FPGA). The latter is used to control the various sensor parameter configurations and, where desired, to receive and process the images captured by the CMOS sensor. The flexibility and versatility offered by the new FPGA families makes it possible to incorporate microprocessors into these reconfigurable devices, and these are normally used for highly sequential tasks unsuitable for parallelization in hardware. For the present study, we used a Xilinx XC4VFX12 FPGA, which contains an internal Power PC (PPC) microprocessor. In turn, this contains a standalone system which manages the FPGA image processing hardware and endows the system with multiple software options for processing the images captured by the CMOS sensor. The system also incorporates an Ethernet channel for sending processed and unprocessed images from the FPGA to a remote node. Consequently, it is possible to visualize and configure system operation and captured and/or processed images remotely.Entities:
Keywords: CMOS sensor; Ethernet; FPGA; intelligent camera
Mesh:
Substances:
Year: 2011 PMID: 22163739 PMCID: PMC3231626 DOI: 10.3390/s110302282
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1.Architecture of Intelligent Camera based on FPGA.
Figure 2.FPGA Block diagram of Capturing and Controlling CMOS Sensor.
Figure 3.Internal Block of Hardware Processing Module.
Figure 4.Internal Pipeline executing image capture and processing.
Times associated with the Internal Pipeline of Figure 4.
| Latency from giving the signal to shoot a new image with null exposure time. | |
| Time to write one row in FIFO buffer. | |
| Latency before decimation. | |
| Time to decimate one row | |
| Time to package one burst in FIFO buffer. | |
| Time to write one pixel burst into memory. | |
| | Time to read one pixel burst in memory |
| HW processing time of one pixel burst. | |
| Memory access time between HW processing of pixel bursts. Includes memory access latency. | |
| SW processing time of one pixel burst loaded in Cache Memory. | |
| Memory access time to update one pixel burst for SW processing in Cache Memory | |
where:
TCLK_CMOS: CMOS controller clock signal period (fCLK_CMOS = 66 MHz).
TCLK_SYS: clock signal period of the architecture’s internal buses (fCLK_SYS = 100 MHz).
ROW_SIZE: number of pixels per column in the CMOS sensor (1,280 pixels).
COL_SIZE: number of pixels per row in the CMOS sensor (1,024 pixels).
D: decimation factor (1 to 10).
BURST_SIZE: number of words for access memory with a pixel burst.
N: number of bytes per word of the memory data write bus (4 bytes/word).
ΔT6: memory write latency.
ΔT7: memory read latency.
Summary of internal FPGA resources used.
| Number of DCMs | 1 out of 4 | 25% |
| Number of External IOBs | 242 out of 320 | 75% |
| Number of PPC405_ADVs | 1 out of 1 | 100% |
| Number of RAMB16s | 28 out of 36 | 77% |
| Number of Slices | 5,470 out of 5,472 | 99% |
| Number of SLICEMs | 395 out of 2,736 | 14% |
Figure 5.Internal FPGA resources occupied by each module of Figure 1.
User timing constraints for the developed design.
| PPC405 | DPLB0_PLB_Clk | 209.266 | 100 |
| IPLB1_PLB_Clk | 287.965 | 100 | |
| PLB_SLAVES | PLB_Clk | 258.522 | 100 |
| BRAM | BRAM_Clk | 250.240 | 100 |
| RS232 | SPLB_Clk | 218.948 | 100 |
| LEDS | SPLB_Clk | 343.536 | 100 |
| SWITCHES | SPLB_Clk | 343.536 | 100 |
| FLASH | MCH_PLB_Clk | 174.497 | 100 |
| INT_CTRL | SPLB_Clk | 265.555 | 100 |
| DDR_SDRAM | PLB_Clk | 369.399 | 100 |
| PLB_CMOS_SENSOR | sysclk | 150.115 | 60 |
| MPLB_Clk | 195.792 | 100 | |
| SPLB_Clk | 151.357 | 100 | |
| ETHERNET_MAC | SPLB_Clk | 149.157 | 100 |
| PHY_tx_clk | 396.873 | 100 | |
| PHY_rx_clk | 305.446 | 100 | |
| PLB_HW_IMAGE_PROCESSING | SPLB_Clk | 156.777 | 100 |
| MPLB_Clk | 200.906 | 100 |
Figure 6.System used to validate the intelligent camera based on FPGAs.
Figure 7.Captured and processed image from FPGA with different resolution. On the left, an 120 × 102 pixel image and on the right, a 1,280 × 1,024 pixel image.
Figure 8.Experimental TCP Bandwidth Test with Ethernet FPGA IP Core.
Figure 9.Frame rates for a sequential (upper) and pipelined mode (lower).
Figure 10.Improved pipelined vs. sequential frame rate.