Skip to main content

CCG3-8M Application

Autonomous Driving Sensing Solution

The video capture card can be applied to the unmanned vehicle. It needs multiple cameras, millimeter wave radar, Lidar, GPS, integrated navigation and other sensors, and these sensors need to be connected to a powerful computing platform, such as an industrial personal computer. Then a product that can simultaneously connect multiple cameras and synchronize with other sensors is needed. The video capture card is to provide high-speed, multi camera, low delay image access solution for unmanned vehicle. Here are typical solution examples.

CCG3-8M Application Scenario

System Architecture

  • GMSL Cameras: Multiple high-resolution cameras are connected to the CoaxCapture card, which aggregates and synchronizes their video streams.
  • CoaxCapture Capture Card: Installed in the vehicle's IPC (industrial PC) via PCIe, the card receives camera data and synchronization signals, ensuring frame-level alignment across all channels.
  • GPS Module: Provides 1PPS (Pulse Per Second) and TOD (Time of Day) signals for global time reference.
  • Ethernet Switch: Supports PTP/gPTP (Precision Time Protocol/Generalized PTP) for time synchronization across LiDAR, radar, and other sensors.
  • LiDAR/External Devices: Provide TTL square wave signals to the CCG3-8M for hardware-level camera synchronization, ensuring precise timing alignment between camera captures and sensor measurements.
  • IPC (Industrial PC): Central processing unit that collects, processes, and stores synchronized data from all sensors.

Synchronization Workflow

  1. The GPS provides 1PPS and TOD signals to the time synchronization box, which then outputs PTP information via Ethernet to the capture cards and other devices.
  2. The CoaxCapture card uses these signals to synchronize all connected GMSL cameras, ensuring that each frame is timestamped accurately and aligned with other vehicle sensors.
  3. The Ethernet switch propagates PTP/gPTP signals to LiDAR, radar, and other devices, enabling system-wide time synchronization.
  4. All sensor data, including video, LiDAR, and radar, are collected by the IPC for real-time processing and recording.

Quick Bring Up

SDK Download

CameraLinux system versionDriver pkg download linkDriver pkg download method
GMSL2 Camera (YUV Data)
(e.g.: SG3S-ISX031C-GMSL2-Hxxx)
Ubuntu 18.04/20.04LinkCopy the full link address to DownGit to download

Directory Structure

The package includes the following key directories and files:

Directory/FileDescription
bash/Bash scripts for device management.
MakefileBuild script for drivers and applications (supports compiling per directory).
xdma_v4l2/PCIe board card driver source code.
include/Header files for xdma driver.
./tool/pcie_a53_rwApplication for reading/writing data to the PCIe board's PS (Processing System).
./tool/pcie_reg_rwApplication for reading/writing PCIe board register values.
./tool/xdma_v4l2_rwApplication for configuring the driver via the V4L2 (Video for Linux 2) interface.

Prerequisites

  • Ubuntu 18.04 or 20.04.

Installation & Usage

1. Load the Driver

Enter the bash/ directory and execute the following script to load the driver:

sudo ./load_modules.sh

Successful Output:

Loading Pcie driver...
Pcie driver installed correctly.
Video devices were recognized.
DONE

Verification:
After successful loading, video device files (e.g., /dev/video0, /dev/video1, /dev/video2, /dev/video3) will be generated in the /dev directory. Control interface files (e.g., xdma0_bypass, xdma0_control, xdma0_user) will also be created. The number (e.g., 0) corresponds to the PCIe board index (e.g., 0 for the first board, 1 for the second, etc.).


2. Initialize the PCIe Board

Execute the following script to initialize the PCIe board (e.g., board 0) and configure connected cameras:

sudo ./pcie_init_card0.sh

Successful Output:

Reset Process!
Card Params Init Processed!
Serdes 0 Params Init Processed!
Serdes 1 Params Init Processed!
...
Info: All process in pcie_init.sh passed.

Note: If you have multiple capture cards, you can modify the pcie_init_card*.sh script again, and then execute the command:

sudo ./pcie_init_card*.sh

3. Image Testing

Use the open-source tool guvcview to test video capture.

Install guvcview (if not installed):

sudo apt-get install guvcview

Test Video Streams:

Connect cameras to the board, then run:

# For video0 (board 0, channel 0)
guvcview -d /dev/video0

# For video1 (board 0, channel 1)
guvcview -d /dev/video1

# Repeat for video2, video3 (if supported)

Verify Frame Rate:
To capture and verify the frame rate, execute:

v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1000

Configuring Camera Parameters

To modify parameters for different cameras, adjust:

  1. The pcie_init_card0.sh script (for initialization configurations).
  2. The pcie_a53_rw application (for low-level register/control adjustments).

Firmware Programming

The capture card is pre-programmed at the factory to support YUV or RAW12 modes. To switch modes:

  1. Reprogram the firmware using the corresponding file from the FirmwareResources/ directory:
    • YUYV/UYVY (YUV): Use pcie_zu_fw-xxxx-YUV.tar.gz.
    • RAW12: Use pcie_zu_fw-xxxx-RAW12.tar.gz.

2.The command to upgrade the firmware of the capture card is as follows:

cd /tools/pcie_zu_tools
sudo ./pcie_zu-updata.sh ./pcie_zu_fw-xxxx-RAW12.tar.gz

Notes

  • Ensure all cameras are properly connected via coaxial cables before initializing the board.
  • If issues occur, check /dev directory for video device files and verify driver loading logs.