Skip to content

BCON for LVDS Control Protocol#

This topic provides information about the low level protocol used to communicate with a Basler BCON for LVDS camera module.

This topic is aimed at experienced hardware and software engineers proficient in electronics, software development, and embedded system design. The topic assumes that users have significant experience in programming with the GenICam generic programming interface and are familiar with the GenCP 1.2 specification.

General Information#

Basler BCON for LVDS camera modules are configured via a standard I²C interface. The camera modules are GenICam devices and use GenCP (Generic Control Protocol), version 1.2, as their low level protocol.

All information given in this topic is based on the GenCP 1.2 specification.

Basler BCON for LVDS Control Protocol#

GenCP Prefix#

To communicate with a Basler BCON for LVDS camera module, you must use the following prefix:

Width (Bytes) Offset (Bytes) Description
4 0 0x434C5356
Contains the ASCII string "VSLC", short for Versatile Serial Link Control (with "V" in the LSB).

GenCP Postfix#

Each GenCP command and each GenCP acknowledge uses a CRC-16 code as postfix.

To communicate with a Basler BCON for LVDS camera module, you must use the following postfix:

Width (Bytes) Offset (Bytes) Description
2 0 CRC-16 code
Contains the CRC-16 with LSB first. Includes the prefix, CCD and SCD data.
The generator polynom used is 0x8005.

GenCP Command IDs#

Basler BCON for LVDS camera modules support the following command IDs:

  • READMEM_CMD
  • READMEM_ACK
  • WRITEMEM_CMD
  • WRITEMEM_ACK
  • PENDING_ACK

Basler BCON for LVDS camera modules don't support the following command IDs:

  • EVENT_CMD
  • EVENT_ACK

Sample I²C Transaction#

The following pseudo data structure describes the I²C data stream initiated from the I²C master.

GenCP Command#

The pseudo data structure of a GenCP Command (without start, stop, and ACK bits) is as follows:

I²C Address (write) Prefix ("VSLC") Payload (GenCP CMD) Postfix (CRC16)

Example#

The following image shows an I²C dump of a valid I²C write request.

As an example, the GenCP READMEM_CMD command for the Maximum Device Response Time register is used.

Dump of a Valid IC2 Write Request

GenCP Acknowledge#

The pseudo data structure of a GenCP Acknowledge (without start, stop, and ACK bits) is as follows:

I²C Address (read) Prefix ("VSLC") Payload (GenCP ACK) Postfix (CRC16)

Example#

The following image shows an I²C dump of a valid I²C read request.

As an example, the GenCP READMEM_ACK command for the Maximum Device Response Time register is used.

Dump of a Valid IC2 Read Request

Considerations When Reading Data from the Device#

Before issuing a read command, the I²C master must send a valid GenCP command. Otherwise, the device will return a 0xFF value for each requested byte.

If the I²C master requests more data than the device is able to return, the following occurs:

  1. The device returns the data that the device is able to return.
  2. The device returns a 0xFF value for each further byte until the read request is finished.

Bootstrap Register Map (BRM)#

According to the GenCP standard, the total BRM is divided into two parts:

  • The Technology Agnostic Bootstrap Register Map (ABRM)
  • The Technology Specific Bootstrap Register Map (SBRM).

The next sections describe both register maps.

Technology Agnostic Bootstrap Register Map (ABRM)#

The Technology Agnostic Bootstrap Register Map (ABRM) uses the first 64 kB of the register space.

Info

The ABRM shown below is exactly the same as the ABRM described in the GenCP 1.2 specification, with the following exceptions:

  • The Heartbeat Timeout register is not used.
  • The Message Channel ID register is not used.
  • The Access Privilege register is not used.

Accessing these registers will return a GENCP_INVALID_ADDRESS status code.

For more information, refer to Chapter 5 in the GenCP 1.2 specification.

Table Definitions#

  • Width: Size of the register in bytes
  • Offset: Address of the register in the device's BRM
  • Support: M = Mandatory / R = Recommended / CM = Conditional Mandatory (depending on the capability bits)
  • Access: R = Read-only, W = Write-only, RW = Read/Write
  • Description: Name and short description
Width (Bytes) Offset (Bytes) Support Access Description
4 0x00000 M R GenCP Version
Complying GenCP specification version.
64 0x00004 M R Manufacturer Name
String containing the self-describing name of the manufacturer.
64 0x00044 M R Model Name
String containing the self-describing name of the device model.
64 0x00084 CM R Family Name
String containing the name of the family of this device.
64 0x000C4 M R Device Version
String containing the version of this device.
64 0x00104 M R Manufacturer Info
String containing additional manufacturer information.
64 0x00144 M R Serial Number
String containing the serial number of the device.
64 0x00184 CM RW User Defined Name
String containing the user defined name of the device.
8 0x001C4 M R Device Capability
Bit field describing the device's capabilities.
See note below.
4 0x001CC M R Maximum Device Response Time
Maximum response time in ms.
8 0x001D0 M R Manifest Table Address
Pointer to the Manifest Table.
8 0x001D8 CM R SBRM Address
Pointer to the Technology Specific Bootstrap Register Map.
8 0x001E0 CM RW Device Configuration
Bit field describing the device's configuration.
4 0x001E8 CM RW Heartbeat Timeout
Heartbeat Timeout in ms.
Not used by the Basler BCON for LVDS interface.
4 0x001EC CM RW Message Channel ID
channel_id used for the message channel.
Not used by the Basler BCON for LVDS interface.
8 0x001F0 CM R Timestamp
Last latched device time in ns.
4 0x001F8 CM W Timestamp Latch
8 0x001FC CM R Timestamp Increment
4 0x00204 CM RW Access Privilege
Not used by the Basler BCON for LVDS interface.
4 0x00208 - - Reserved
Deprecated Protocol Endianness, don't reuse.
4 0x0020C CM R Implementation Endianness
Endianness of device implementation registers.
65008 0x00210 M none Reserved Register Space

Device Capability#

The Device Capability register is set to 0xE09. As specified in the GenCP 1.2 specification, this value indicates the following:

  • Access Privilege Available: Unavailable (not used by the Basler BCON for LVDS standard)
  • Timestamp Supported: Available (required by the Basler BCON for LVDS standard)
  • String Encoding: 0x0 ASCII (required by the Basler BCON for LVDS standard)
  • SBRM Supported: Available (required by the Basler BCON for LVDS standard)
  • Written Length Field Supported: Available (required by the Basler BCON for LVDS standard)

Technology Specific Bootstrap Register Map (SBRM)#

The SBRM must start on a free manufacturer-specific address space after address 0xFFFF.

Table definitions

  • Width: Size of the register in bytes
  • Offset: Address of the register in the device's BRM
  • Support: M = Mandatory / R = Recommended / CM = Conditional Mandatory (depending on the capability bits)
  • Access: R = Read-only, W = Write-only, RW = Read/Write
  • Description: Name and short description
Width (Bytes) Offset (Bytes) Support Access Description
4 SBRM M R GenCP Version
Complying GenCP specification version.
16 SBRM + 0x04 M none Reserved Register Space
4 SBRM + 0x14 M R Maximum Command Transfer Length
The maximum supported command transfer length of the device.
4 SBRM + 0x18 M R Maximum Acknowledge Transfer Length
The maximum supported acknowledge transfer length of the device.
4 SBRM + 0x1C M RW Prepare Access
Writing any value to this register will re-initialize the camera module. If the camera module is currently acquiring images, image acquisition and data transmission will be stopped.
4 SBRM + 0x20 M R Clock Frequency
The Basler BCON for LVDS clock frequency in Hertz. The value can range from 12000000 (12 MHz) to 84000000 (84 MHz).
4 SBRM + 0x24 M R Pixels Per Clock Cycle
The number of pixels transmitted per clock cycle via the Basler BCON for LVDS interface.
4 SBRM + 0x28 M R Width
The current width of the region of interest in pixels.
4 SBRM + 0x2C M R Height
The current height of the region of interest in pixels.
4 SBRM + 0x30 M R Pixel Format
The current SFNC pixel format.