跳转到内容

BCON for LVDS 控制协议#

本主题提供有关用于与 Basler BCON for LVDS 相机模块通信的低级协议的信息。

本主题针对精通电子、软件开发和嵌入式系统设计的经验丰富的硬件和软件工程师。本主题假定用户具有使用 GenICam 通用编程接口进行编程的丰富经验,并且熟悉 GenCP 1.2 规范

一般信息#

Basler BCON for LVDS 相机模块通过标准的 I²C 接口进行配置。该相机模块是 GenICam 设备,并使用 GenCP(通用控制协议)版本 1.2 作为其低级协议。

本主题中给出的所有信息均基于 GenCP 1.2 规范

Basler BCON for LVDS 控制协议#

GenCP 前缀#

要与 Basler BCON for LVDS 相机模块通信,必须使用以下前缀:

宽度(字节) 偏移(字节) 描述
4 0 0x434C5356
包含 ASCII 字符串“VSLC”,是 Versatile Serial Link Control(通用串行链路控制)的缩写(在 LSB 中带有“V”)。

GenCP 后缀#

每个 GenCP 命令和每个 GenCP 确认均使用 CRC-16 代码作为后缀。

要与 Basler BCON for LVDS 相机模块通信,必须使用以下后缀:

宽度(字节) 偏移(字节) 描述
2 0 CRC-16 代码
首先包含带 LSB 的 CRC-16。包括前缀、CCD 和 SCD 数据。
使用的生成多项式为 0x8005。

GenCP 命令 ID#

Basler BCON for LVDS 相机模块支持以下命令 ID:

  • READMEM_CMD
  • READMEM_ACK
  • WRITEMEM_CMD
  • WRITEMEM_ACK
  • PENDING_ACK

Basler BCON for LVDS 相机模块不支持以下命令 ID:

  • EVENT_CMD
  • EVENT_ACK

I²C 事务处理示例#

以下伪数据结构描述了从 I²C 主设备发起的 I²C 数据流。

GenCP 命令#

GenCP 命令的伪数据结构(无开始位、停止位和 ACK 位)如下:

I²C 地址(写入) 前缀(“VSLC”) 有效负载 (GenCP CMD) 后缀 (CRC16)

示例#

下图显示了有效 I²C 写入请求的 I²C 转储。

例如,使用“最大设备响应时间”寄存器的 GenCP READMEM_CMD 命令。

转储有效的 IC2 写入请求

GenCP 确认#

GenCP 确认的伪数据结构(无开始位、停止位和 ACK 位)如下:

I²C 地址(读取) 前缀(“VSLC”) 有效负载 (GenCP ACK) 后缀 (CRC16)

示例#

下图显示了有效 I²C 读取请求的 I²C 转储。

例如,使用“最大设备响应时间”寄存器的 GenCP READMEM_ACK 命令。

转储有效的 IC2 读取请求

从设备读取数据时的注意事项#

发出读取命令之前,I²C 主机必须发送有效的 GenCP 命令。否则,设备将为每个请求的字节返回 0xFF 值。

如果 I²C 主设备请求的数据多于设备能够返回的数据量,则会发生以下情况:

  1. 设备返回设备能够返回的数据量。
  2. 设备为每个另外的字节返回 0xFF 值,直到读取请求完成。

引导寄存器映射 (BRM)#

根据 GenCP 标准,总 BRM 分为两个部分:

  • 技术中立型引导寄存器映射 (ABRM)
  • 技术特定型引导寄存器映射 (SBRM)

下一部分将介绍这两种寄存器映射。

技术中立型引导寄存器映射 (ABRM)#

技术中立型引导寄存器映射 (ABRM) 使用寄存器空间的前 64 kB。

信息

下面展示的 ABRM 与 GenCP 1.2 规范中所述的 ABRM 完全相同,但有以下例外:

  • 不使用检测信号超时寄存器。
  • 不使用消息通道 ID 寄存器。
  • 不使用访问权限寄存器。

访问这些寄存器将返回 GENCP_INVALID_ADDRESS 状态代码。

有关更多信息,请参阅 GenCP 1.2 规范的第 5 章。

表定义#

  • 宽度:寄存器大小(以字节为单位)
  • 偏移:设备 BRM 中的寄存器地址
  • 支持:M = 强制/R = 推荐/CM = 有条件的强制性(取决于功能位)
  • 访问权限:R = 只读,W = 写入,RW = 读/写
  • 描述:名称和简短描述
宽度(字节) 偏移(字节) 支持 访问 描述
4 0x00000 M R GenCP 版本
符合 GenCP 规范的版本。
64 0x00004 M R 制造商名称
包含制造商自描述名称的字符串。
64 0x00044 M R 型号名称
包含设备型号自描述名称的字符串。
64 0x00084 CM R 系列名称
包含此设备系列名称的字符串。
64 0x000C4 M R 设备版本
包含此设备版本的字符串。
64 0x00104 M R 制造商信息
包含其他制造商信息的字符串。
64 0x00144 M R 序列号
包含设备序列号的字符串。
64 0x00184 CM RW 用户定义名称
包含设备的用户定义名称的字符串。
8 0x001C4 M R 设备功能
描述设备功能的位字段。
请参阅下面的说明。
4 0x001CC M R 最大设备响应时间
最大响应时间(毫秒)。
8 0x001D0 M R 清单表地址
指向清单表的指针。
8 0x001D8 CM R SBRM 地址
指向技术特定引导寄存器映射的指针。
8 0x001E0 CM RW 设备配置
描述设备配置的位字段。
4 0x001E8 CM RW 检测信号超时
检测信号超时(以毫秒为单位)
未使用 Basler BCON for LVDS 接口。
4 0x001EC CM RW 消息通道 ID
用于消息通道的 channel_id。
Basler BCON for LVDS 接口未使用。
8 0x001F0 CM R 时间戳
最后一个锁定设备的时间(单位为 ns)。
4 0x001F8 CM W 时间戳锁定
8 0x001FC CM R 时间戳增量
4 0x00204 CM RW 访问权限
Basler BCON for LVDS 接口未使用。
4 0x00208 - - 预留
已弃用的协议字节序,请勿重复使用。
4 0x0020C CM R 实现字节序
设备实现寄存器的字节序。
65008 0x00210 M 预留寄存器空间

设备功能#

设备功能寄存器设置为 0xE09。如 GenCP 1.2 规范中所规定的一样,此值指示以下内容:

  • 可用访问权限:不可用(Basler BCON for LVDS 标准未使用)
  • 支持的时间戳:可用(Basler BCON for LVDS 标准需要使用)
  • 字符串编码:0x0 ASCII(Basler BCON for LVDS 标准需要使用)
  • 支持的 SBRM:可用(Basler BCON for LVDS 标准需要使用)
  • 支持的写入长度字段:可用(Basler BCON for LVDS 标准需要使用)

技术特定型引导寄存器映射 (SBRM)#

SBRM 必须在地址 0xFFFF 之后的制造商特定地址可用空间上开始。

表定义

  • 宽度:寄存器大小(以字节为单位)
  • 偏移:设备 BRM 中的寄存器地址
  • 支持:M = 强制/R = 推荐/CM = 有条件的强制性(取决于功能位)
  • 访问权限:R = 只读,W = 写入,RW = 读/写
  • 描述:名称和简短描述
宽度(字节) 偏移(字节) 支持 访问 描述
4 SBRM M R GenCP 版本
符合 GenCP 规范的版本。
16 SBRM + 0x04 M 预留寄存器空间
4 SBRM + 0x14 M R 最大命令传输长度
设备支持的最大命令传输长度。
4 SBRM + 0x18 M R 最大确认传输长度
设备支持的最大确认传输长度。
4 SBRM + 0x1C M RW 准备访问
将任何值写入该寄存器将重新初始化相机模块。如果相机模块当前正在采集图像,则将停止图像采集和数据传输。
4 SBRM + 0x20 M R 时钟频率
Basler BCON for LVDS 时钟频率(以赫兹为单位)。值范围是 12000000 (12 MHz) 至 84000000 (84 MHz)。
4 SBRM + 0x24 M R 每时钟周期像素数
每个时钟周期通过 Basler BCON for LVDS 接口传输的像素数。
4 SBRM + 0x28 M R 宽度
兴趣区的当前宽度(以像素为单位)。
4 SBRM + 0x2C M R 高度
兴趣区的当前高度(以像素为单位)。
4 SBRM + 0x30 M R 像素格式
当前的 SFNC 像素格式。