Table of Contents

Advertisement

Quick Links

Active Silicon PHOENIX User Manual

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the PHOENIX and is the answer not in the manual?

Questions and answers

Summary of Contents for Active Silicon PHOENIX

  • Page 1 Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment SERVICE CENTER REPAIRS WE BUY USED EQUIPMENT • FAST SHIPPING AND DELIVERY Experienced engineers and technicians on staff Sell your excess, underutilized, and idle used equipment at our full-service, in-house repair center We also offer credit for buy-backs and trade-ins •...
  • Page 2 PHOENIX USER MANUAL Active Silicon v1.6 14-Sep-2010 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
  • Page 3 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
  • Page 4 Active Silicon reserves the right to change the specification of the product described within this manual and the manual itself at any time without notice and without obligation of Active Silicon to notify any person of such revisions or changes.
  • Page 5 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
  • Page 6: Table Of Contents

    THE PoCL LEDs (4, 5)............................. 5 BLOCK DIAGRAM ..............................6 SDK Overview................................10 SDK Examples................................11 INITIALISING THE PHOENIX BOARD ......................11 PCI BANDWIDTH MEASUREMENT ......................... 11 SINGLE ACQUISITION WITH FILE SAVE ....................... 11 LIVE ACQUISITION............................. 11 BUFFER CONTROL.............................. 12 IMAGE CONVERSION............................
  • Page 7 Display buffer destinations..........................22 PHX_EVENTCOUNT / PHX_EVENTCOUNT_AT_GATE ................23 HOW TO CREATE A SMALLER EXECUTABLE BY LINKING FIRMWARE OBJECT FILES ....23 Phoenix Firmware Object Files ...........................23 Extract the Firmware Object File(s) ........................24 Link the Application to the Required Firmware Object File(s)................24 Camera Control ................................26 EXPOSURE CONTROL............................26...
  • Page 8 Phoenix User Manual Introduction Example ................................34 SEQUENCE CONTROL ............................35 Examples ................................36 HOW PHOENIX USES MEMORY BUFFERS..................... 37 Internal Memory..............................37 Retrieving the Buffer Details ..........................37 Virtual Memory..............................37 Physical Memory ..............................38 IMAGE CORRUPTION (FIFO OVERFLOW)...................... 39 Image Slip ................................
  • Page 9 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
  • Page 10: Introduction

    Phoenix User Manual Introduction Introduction SCOPE This document provides overview information regarding the Phoenix series of frame grabbers and answers some of the most frequently asked questions posed to phoenix.support@activesilicon.com. DOCUMENT STRUCTURE The document is broken down into the following major sections •...
  • Page 11: Documentation Overview

    D24CL PCI Express Camera Link. This is the PCI Express version of the above board. • D36 PCI LVDS. The Phoenix-D36 is a PCI board for the acquisition of digital data from a variety of sources, including digital frame capture and line scan cameras. It has 36 bits used for input data, with 4 bits for control.
  • Page 12: Hardware Manuals

    Phoenix Display Library (PDL). This library allows the user to easily display images captured using a Phoenix image capture device. PDL is closely coupled to the Phoenix image capture library (PHX), configuring itself using the parameters of the associated Phoenix instance.
  • Page 13: Phoenix Board Overview

    D10HDSDI : Single input HD-SDI frame grabber, • D20HDSDI : Dual input HD-SDI frame grabber, • D36 : 36-bit LVDS frame grabber The Phoenix boards are available in PCI Express, PCI, CompactPCI, PMC, PCI/104-Express and PC/104- Plus form factors. FEATURE LIST PHX-D24CL PHX-D48CL...
  • Page 14: The Three Leds (1, 2, 3)

    THE POCL LEDS (4, 5) The Phoenix Camera Link boards support the Power over Camera Link (PoCL) functionality and are able to provide power to PoCL enabled cameras via the Camera Link data cable thereby removing the need for a separate power supply.
  • Page 15: Block Diagram

    No LEDs : Sensing mode, whereby the Phoenix board is scanning for any PoCL or non-PoCL camera to be connected. Note that if the clock is lost whilst the board is in the solid Amber or Green states, Phoenix will revert back to sensing mode to allow users to change between PoCL and non-PoCL cameras.
  • Page 16 85MHz, using the Camera Link Strobe (STB) and Data Valid (DVAL) signals. Camera FIFO: Data from the video source is stored in a FIFO prior to being processed by Phoenix. The acquisition trigger control module is used to determine which video frames to Acquisition acquire from the camera.
  • Page 17 Opto-Isolated I/O: 4 bits of opto-isolated I/O are provided to interface to external systems. As standard, Phoenix is configured with 2 bits of input and 2 bits of output, but this can be varied as factory build option. The outputs are designed to sink up to 20mA, and will withstand 24V when “off”.
  • Page 18 For opto-isolated, EIA-644 & TTL I/O there are internal 20 & 26 way 0.1” IDC headers, with the option to bring these out to a 50 way mini D on an adjacent PCI slot. A 10 way 0.1” IDC header (“Chain”) allows two Phoenix boards to be used together to simultaneously acquire from wider sources.
  • Page 19: Sdk Overview

    The Phoenix library (PHX) provides acquisition and control features for the Phoenix image capture boards. • The Phoenix Firmware library (PFW) contains the firmware designs and is used by the PHX library to allow the Phoenix board’s functionality to be upgraded with new SDK releases. •...
  • Page 20: Sdk Examples

    Example application code is supplied as part of the Phoenix SDK. These examples illustrate how the Phoenix libraries can be used in various user applications. They are listed in ascending order of complexity, hence the user will benefit by working through them in sequence.
  • Page 21: Buffer Control

    This example shows how to initialise the Phoenix board and use the buffer library (PBL) to run live double buffered (also known as ping-pong) acquisition, using a callback function.
  • Page 22: Phoenix Board Control

    The camera handle hCamera is used as the first parameter in most of the Phoenix library (PHX) function calls. It indicates to the Phoenix library which channel of which board is to be accessed.
  • Page 23: Error Handler

    A pointer to a user defined custom error handler function. Examples To find and initialise the first un-configured channel on the first Phoenix board in the system using the camera configuration file provided, using the default supplied error handler: PHX_CameraConfigLoad( &hCamera, “file.pcf”, PHX_DIGITAL |, PHX_BOARD1, &PHX_ErrHandlerDefault );...
  • Page 24: Camera Tap Configuration

    Phoenix User Manual Phoenix Board Control CAMERA TAP CONFIGURATION A tap is an image data channel provided by the camera. A camera may have just one tap, or it may have multiple taps i.e. it can generate image data from multiple areas of the image in parallel. Each vertical tap provides image data from a particular line.
  • Page 25: Dual Horizontal And Dual Vertical Taps

    Phoenix User Manual Phoenix Board Control necessary to specify which half of the line is generated by each of the taps since cameras vary in their definition of tap ordering. In this case we specify the ordering as ascending which means that tap 1 generates the left hand side of the line (i.e.
  • Page 26: Sdk Concepts

    Error Status Codes All of the Phoenix SDK functions return an enumerated value of type etStat which is used to return the status (success or otherwise) of the function being called. These values are defined in the phx_api.h header file, and their meanings are outlined below.
  • Page 27 Phoenix User Manual SDK Concepts PHX_ERROR_INTERNAL_ERROR An internal error has occurred in the library. Please contact Active Silicon for further support. PHX_ERROR_OVERFLOW A data overflow has occurred. This could be a PCI FIFO overflow, or a comms Receive/Transmit buffer overflow for example.
  • Page 28: Error Information

    Error Handler Function When configuring a Phoenix board, the fourth parameter of PHX_CameraConfigLoad is a pointer to an error handler function. This gets called when an error is encountered within the PHX library. The function...
  • Page 29: I/O Port Access

    Phoenix User Manual SDK Concepts I/O PORT ACCESS Phoenix has a number of I/O ports which can be used for controlling external equipment, sensing etc. The following ports are available: LVDS Phoenix board Camera Link Phoenix board Two 8 bit bidirectional TTL ports (A and B).
  • Page 30: Examples

    Phoenix board will automatically convert the captured image data to the destination format and transfer this over the PCI bus. This means that if the display mode is 32-bit and the camera source is 8-bit then the Phoenix board will actually transfer 32-bits/pixel.
  • Page 31: Double Buffering

    This can be done using the PHX_ParameterSet function with the PHX_DST_FORMAT set to the relevant bit depth. Double Buffering Phoenix can make use of double buffering to help improve the performance of the system. On creation a display is associated with a board, see below. PDL_DisplayCreate( &DisplayHandle, HwndHandle, PhxBoardHandle, ErrHandler );...
  • Page 32: Phx_Eventcount / Phx_Eventcount_At_Gate

    • PDL_BUFF_VIDCARD_MEM_INDIRECT A ‘_DIRECT’ buffer is one that will receive DMA data from the Phoenix board. These buffers are used to directly display the captured image. An ‘_INDIRECT’ buffer is a displayable buffer that will be used to accept processed data. The usual scenario is that you have captured your image to memory (in a ‘_DIRECT’...
  • Page 33: Extract The Firmware Object File(S)

    Link the Application to the Required Firmware Object File(s) The following makefile shows how to build the ‘phxinfo’ example application under DOS32 (using DJGPP), assuming that the Phoenix board is a D24CL in a 32-bit, 33MHz, 3.3volt PCI slot. vpath %.c ../../common INCDIR1 = ../../../../include...
  • Page 34 Phoenix User Manual SDK Concepts vpath %.h $(INCDIR1) $(INCDIR2) CPPFLAGS += -I$(INCDIR1) -I$(INCDIR2) -D_PHX_DOS32 phxinfo.exe : phxinfo.o common.o $(CC) -o phxinfo.exe phxinfo.o common.o pfw_api.o pfw_g.o d2p3m3v3.obj -lphx - L. \ -Wl,--defsym -Wl,_abAsPhxData_D24Cl_P32_M33_V5=0 \ -Wl,--defsym -Wl,_abAsPhxData_D24Cl_PE1=0 \ -Wl,--defsym -Wl,_abAsPhxData_D36_P32_M33_V3=0 \ -Wl,--defsym -Wl,_abAsPhxData_D36_P32_M33_V5=0 \...
  • Page 35: Camera Control

    EXPOSURE CONTROL Phoenix has the ability to trigger the camera in order to operate in asynchronous reset mode. Most modern cameras have the ability to reset the sensor and internal timings so that it is ready to take another picture.
  • Page 36: Exposure Control Methods

    Phoenix User Manual Camera Control PHX_IO_CCOUT_A bit 2 3,16 CC3+, CC3- PHX_IO_CCOUT_A bit 3 15,2 CC4+, CC4- PHX_IO_CCOUT_B bit 0 5,18 CC1+, CC1- PHX_IO_CCOUT_B bit 1 17,4 CC2+, CC2- PHX_IO_CCOUT_B bit 2 3,16 CC3+, CC3- PHX_IO_CCOUT_B bit 3 15,2 CC4+, CC4- Exposure Control Methods The exposure control signals can be driven in one of three ways.
  • Page 37: Exposure Control Internal Timers

    Here, the width of CcIo_1 is defined by the width of Timer_1, which is set using the PHX_IO_TIMER_1_PERIOD parameter in the Phoenix Library. The width of CcIo_2 is defined by the width of Timer_2, which is set using the PHX_IO_TIMER_2_PERIOD parameter in the Phoenix Library.
  • Page 38: Exposure Trigger Block Diagram

    Phoenix User Manual Camera Control Exposure Trigger Block Diagram The following block diagram shows how the internal Exposure Trigger signal is generated. When PHX_LINETRIG_TIMER_CTRL is PHX_LINETRIG_TIMER_TIME, the timer outputs a square wave of period PHX_LINETRIG_TIMER_PERIOD microseconds. When PHX_LINETRIG_TIMER_CTRL is PHX_LINETRIG_TIMER_LINES, the timer divides the AUXIN signal by PHX_LINETRIG_TIMER_PERIOD lines.
  • Page 39: Acquisition Trigger Control

    In many vision applications you may need to trigger the frame grabber from an external source to acquire a new image. The source could arrive from a variety of sources and therefore Phoenix has number of different options for trigger inputs.
  • Page 40: Acquisition Trigger Block Diagram

    PHX_ACQTRIG_ALIGN Internal Control Phoenix has various options over which edges or levels of the trigger source are used, as controlled by the PHX_ACQTRIG_TYPE parameter. Note that the default setting for the acquisition trigger type is PHX_ACQTRIG_NONE, i.e. Phoenix does not wait for an acquisition trigger before starting an image capture.
  • Page 41: Line Scan Control

    The PHX_CAM_TYPE parameter should be set to PHX_LINESCAN_ROI for example in order set the Phoenix board into line scan mode. In line scan mode, Phoenix uses the Line Enable signal to initiate the capture of image data instead of the Frame Enable signal used during area scan mode.
  • Page 42: Acquisition Control

    Enable all of the above interrupts. * This is only generated if PHX_ACQ_CONTINUOUS is disabled. ** This occurs if the Phoenix cannot transfer the data to the destination fast enough and therefore data is lost. Implementation Any of the above interrupts can be enabled or disabled using the PHX_ParameterSet with the PHX_INTRPT_SET parameter.
  • Page 43: Example

    Phoenix User Manual Acquisition Control The Callback function is registered on the call to PHX_Acquire and will be called on each interrupt that has been set. PHX_Acquire( hCamera, PHX_START, Callback ); Example This example demonstrates how a callback function can be registered to be executed following the end of each image capture.
  • Page 44: Sequence Control

    PHX_CameraRelease( &hCamera ); SEQUENCE CONTROL Before starting an acquisition, Phoenix will link together a series of acquisition buffers to form a sequence. The number of images in the sequence is defined by the PHX_ACQ_NUM_IMAGES parameter. If this is 1 for example, then only a single image will be captured. If it is 5 for example, then there will be 5 buffers in the sequence.
  • Page 45: Examples

    Phoenix User Manual Acquisition Control • If this is PHX_DISABLE, then the next buffer in the sequence will always be overwritten, irrespective of whether or not it has been released. The PHX_ACQ_BUFFER_START parameter can be used to specify which buffer of a sequence will be captured into first.
  • Page 46: How Phoenix Uses Memory Buffers

    Acquisition Control HOW PHOENIX USES MEMORY BUFFERS For maximum flexibility, all the Phoenix products support the use of three different types of destination memory; Internal, Virtual and Physical. These different memory types are selected via the PHX_ParameterSet function called with the PHX_DST_PTR_TYPE parameter.
  • Page 47: Physical Memory

    /* Terminate the end of the array with NULL parameters */ asImageBuffs[kiNumOfBuffs].pvAddress = (void *) NULL; asImageBuffs[kiNumOfBuffs].pvContext = (void *) NULL; /* Pass the buffer information to Phoenix, and instruct it to use these buffers. PHX_ParameterSet( hPhoenix, PHX_DST_PTRS_VIRT, (void *) asImageBuffs ); eParamValue = PHX_DST_PTR_USER_VIRT;...
  • Page 48: Image Corruption (Fifo Overflow)

    Image Slip In certain circumstances, access to the PCI bus may be temporarily denied to the Phoenix board, and as a result, data in the PCI FIFO can be overwritten before it is transferred across the PCI bus. This is termed a FIFO OVERFLOW.
  • Page 49: Severe Image Corruption

    Severe Image Corruption By default, Phoenix will convert the captured image data from the camera output format to the required destination format of the buffer allocated on the host or graphics memory. If the destination buffer is to be displayed, its pixel depth is usually set to 32-bits.
  • Page 50 Phoenix User Manual Acquisition Control In this instance, simply aborting and restarting acquisition will make no difference. The solution is to reduce the data rate across the PCI bus. Within an application, the user should change the format of the destination buffer ( PHX_DST_FORMAT ) so that it matches the camera’s output format (for example an 8-bit camera will need...
  • Page 51: Image Control

    The outer box designates the total image data generated by the camera. This is dictated by the camera hardware and cannot be altered using the Phoenix libraries. The box within the outer box designates the active area. This is the valid image data generated by the camera.
  • Page 52: Destination Buffer

    The destination format of the output image is defined using PHX_DST_FORMAT. The camera source data is mapped in hardware by the Phoenix board before being written to the destination buffer. Note that the user should be aware that using high pixel rate cameras with certain destination formats (e.g.
  • Page 53: Look-Up Table Control

    Multiple LUTs can be defined per image line, and per camera tap/colour component. Since Phoenix only has a finite amount of physical memory available for holding the hardware LUTs, the number available is dictated by the camera source image depth.
  • Page 54: User Allocated Lut Data

    Phoenix User Manual Image Control The above settings may be modified and PHX_ParameterSet called using the PHX_LUT_INFO parameter. This will cause the library to regenerate the LUT using the new settings. User allocated LUT data In order to use a custom LUT, the user creates a buffer containing the mapping data (each entry being 16 bits regardless of camera depth), and sets pwLutData to point to this.
  • Page 55: Displaying Images With Greater Than 8-Bit Data

    SAVING IMAGES WITH GREATER THAN 8-BIT DATA When using the Sequence tab on the Phoenix Control Class property sheet (under win32) to save a captured image buffer (or complete sequence), the following dialog box is displayed: The “Save as type:”...
  • Page 56 Phoenix User Manual Image Control Format Description JPEG Monochrome images are saved as 8-bit mono JPEG. Colour images are saved as 24-bit colour JPEG. TIFF Monochrome images of greater than 8-bit depth are saved as 16-bit mono TIFF. Monochrome images of 8-bits are saved as 8-bit mono TIFF.
  • Page 57 Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment SERVICE CENTER REPAIRS WE BUY USED EQUIPMENT • FAST SHIPPING AND DELIVERY Experienced engineers and technicians on staff Sell your excess, underutilized, and idle used equipment at our full-service, in-house repair center We also offer credit for buy-backs and trade-ins •...

Table of Contents