Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
Image Handling

See the Software Architecture page for a class digram that will provide additional context to this section.

Starting Image Acquisiton

The figure below illustrates a typical start of image acquisition from a GenICam based protocol. In this particalar example, the AIA U3V protocol handler is used. As is shown in the sequence diagram, the U3V host writes to the GenICAM Acquisition Start register on the camera. Updating the Acquisition Start register will notify the registered tcStartStopHandler class, which sees the command register write request and uses the tcIOChannel::capture() method for the U3V IO Channel to request that the channel start outputting data. If the sensor is not already running (it might be, if other IO channels are defined and active), the U3V IO channel will call a SocCamera::tcSensorBoard::snap() to start the sensor capturing images.

Starting Capture, U3V

Image Arrival / Notification

In the MityCAM architecture, new frames generally arrive to system memory via an attached FPGA framework using a streaming interface. For nearly all scenarios, a variant of the tcRAMStreamer class, managed by the SocCamera::tcSensorBoard object contains information on the location of the image stored in system memory.

New Frame Arrival

Image output

The image below illustrates how tcIOChannel class receives the new frame data notification via the tcIOChannel::sendUpdate() method and would route the data to an output interface. In this example, the AIA U3V IO channel implemented for the MityCAM platform is shown. It takes the data pointers contained in the tcIOChannel::sendUpdate() arguments and queues them to output DMA descriptors used by a U3V FPGA image streaming core.

IOChannel to Frame Output, U3V