CoaXPress 背景

CoaXPress (简称CXP)是指一种采用同轴线缆进行互联的相机数据传输标准,主要用于替代之前的cameralink协议,常见于科学相机、工业相机、医学图像、航空防务等场景。之前这些场景都是使用cameralink接口的相机,cameralink 由于线缆的形式、传输速度等原因,已经不再适用于不断增长的数据带宽需求。

CXP是一个非对称的高速点对点串行传输协议,主要用于传输视频和静态图像,线缆多使用单条或多条同轴电缆。目前2.0标准的最高速度为单条lane 12.5Gbps,单条lane 上除了传输图像数据之外,还可以传输低速控制信号(42Mbps,用于访问相机的寄存器配置)、也可以利用该线缆对相机进行供电,这个能力称为 “Power-over-Coax”,单条线缆最长可达100m。

  • 单条同轴线缆最高12.5Gbps的线速率,可以使用单条或者多条线缆,比如4条线缆可以最高提供50Gbps的数据速率.
  • 较长的线缆长度,比如3.125 Gbps 速率下线长可以到100m,12.5Gbps速率下可以到35m,这个线缆的使用是CXP的一大特色.
  • 数据传输具备实时和低延迟的特性,且延迟等是固定的.
  • 精准实时的触发特性,支持通过同轴线缆发送触发,无需额外的线缆.
  • 可以获得灵活可靠的性能,通过使用标准的同轴线缆,比如RG59 和 RG6规格,推荐使用RG6
  • 易于集成的特性,图像、控制通讯、电源可以使用同一条线缆.
  • 线缆价格便宜Cost-effective cabling solutions
  • 支持热插拔.
  • 协议没有授权费用.

与其它图像主流接口的对比

下图是几种流行的图像传输协议标准对比,其中GigE USB3 SDI主要用于安防、手机通讯等领域,CXP、Camera link主要用于工业、科学相机,CLHS和CXP应用场景类似,线缆使用光纤传输,但是不支持线缆供电;

与PCIe接口的对比

笔者一开始接触CXP这个标准的时候,是有点抵触的,这么多的串行协议标准,为啥不直接用PCIe或者RapidIO或者其它图像协议呢。如果使用PCIe接口,相机就是一个标准的PCIe endpoint设备,容易部署,就成了标准PC计算机系统的一部分,连采集卡都不用了,只需要一个转接卡就搞定,简直YYDS啊!实际上也的确有厂商用PCIe作为相机的接口 https://www.ximea.com/ ,我们随便截图一款设备来看一下:

那么这款相机如何连接到计算机呢?

需要一条线缆、一个PCIe适配器即可,这个PCIe适配器的成本应该非常低,如下图所示,线缆可以选用同轴线缆或者光纤,PCIe协议相对于CXP而言,传输距离、实时性受到到了限制,但是如果选用光纤,PCIe接口可以增加传输距离到最高50m。PCIe接口的特点就是便宜、兼容性好,CXP的特点是实时性好、线缆简单、为图像传输专门定制,已经被各个相机厂商接受并支持。

概述

CXP是一种点对点可扩展接口, 设备和主机之间的物理介质为75Ω 同轴电缆。每一个CXP接口都包含1个MASTER连接和若干可选的扩展SLAVE连接,每一个连接都需要1条同轴线缆,通常设备会对这些连接进行编号,MASTER固定为0,SLAVE扩展接口依次递增。

每一个connection都包含如下功能,串行数据使用8b/10b编码

  • 高速串行数据(通常为Device到 Host downconnection), 最高 12.5 Gbps.
  • 低速串行数据(通常为Host 到Device upconnection), 最高 41.6˙ Mbps .
  • 供电功能Power (Host 到 Device), 最高13W.

CXP链接速度

支持从1.25Gbps到12.5Gbps,这个速度刚好是Xilinx FPGA高速串行收发器可以覆盖的范围

数据传输优先级

控制信号和图像信号共享一个cable连接的带宽,并通过优先级决定传输次序,其中为了保证触发的高实时性,将触发信号列为最高优先级,触发回应列为次优先级,其它类型都在最低优先级。

触发精度

触发信号拥有最高传输优先级,对于20.83Mbps的控制信号链接速度而言,触发信号从HOST到达DEVICE会有固定3.4us的延迟,外加± 4 ns 的精度,如果是 41.6Mbps ,则延迟为1.7us,外加± 2ns的精度。

那么这个固定延迟和精度数据是如何得出的呢?

如下图所示,一个触发的package要占据7个字符(对于20.83Mbps(1个周期48 ns)速率来说,1个字符对应10bit,共480ns,那么7个字符共计7*480 = 3360ns = 3.4us),为了准确的DEVICE端恢复触发信号的位置,在发射端和接收端需要内置一个480/240 = 2 ns精度的计数器,用该计数器的值恢复出触发信号的准确位置,该计数器值通过触发包的最后3个字符传递。

Power Over Cable

每条线缆可以最大提供13W的供电,电压为24V。13W对于大多数单lane的设备而言是足够的,如果有4条lane则可以提供最大52W的功率,如果相机需要更大功耗,可以选择外供电。HOST应对配备DEVICE 识别功能并检察是否有短路情形,避免设备损坏。

具体实现时,在线缆上提供一个24V DC 电压即可,具体要求和实现会在后续博文中说明

CoaXPress 简介的更多相关文章

  1. 基于PXIe接口的CoaXpress高速相机图像采集、回放

    PXIe简介 PCI eXtensions for Instrumentation or PXI is a computer-based hardware and software platform ...

  2. CoaXPress 时间戳 Time Stamping

    背景 在CXP2.0之前,CXP没有定义Time Stamping时间戳的概念,但是用户对Time Stamping是有实际需求的,比如我们要对比多台设备拍摄同一个物体不同角度的照片,或者记录触发完成 ...

  3. CoaXPress 线缆和接插件的设计要求

    本文的原理部分内容不仅适用于CoaXPress 协议,也同样适用于其它高速信号传输情形.在高速.低干扰信号传输时,线缆和接插件的选取是非常讲究的,我们在实际应用中经常会遇到线缆原因.阻抗匹配原因导致的 ...

  4. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  5. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  6. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  7. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  8. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  9. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

随机推荐

  1. 【uniapp 开发】手绘签名组件

    代码如下: <template> <view class="content"> <button type="primary" @t ...

  2. 使用element UI el-upload组件实现视频文件上传及上传进度显示方法总结

    实现效果: 上传中: 上传完成: 代码: <el-form-item label="视频上传" prop="Video"> <!-- acti ...

  3. Wireshark-过滤器-数据包解析

    目录 过滤器 数据包解析 参考 推荐阅读: https://www.cnblogs.com/zwtblog/tag/计算机网络/ 过滤器 显示过滤器 和 捕获过滤器,俩者使用非常类似. 在Wiresh ...

  4. 使用pyttsx3实现简单tts服务

    操作系统:Windows 10_x64 python版本:Python 3.9.2_x64 pyttsx3版本: 2.90   pyttsx3是一个tts引擎包装器,可对接SAPI5.NSSS(NSS ...

  5. Python入门-程序结构扩展

    deque双端队列 #双端队列,就是生产消费者模式,依赖collections模块 from collections import deque def main(): info = deque((&q ...

  6. JdGrid排序问题

    JdGrid排序问题 js代码 function gridList() { var $gridList = $("#gridList"); $gridList.dataGrid({ ...

  7. LC-76

    给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意: 对于 t 中重复字符 ...

  8. typora简单使用手册

    typora简单使用手册讲解`` 下载网站 网址:https://typoraio.cn/ 苹果电脑:https://typora.en.softonic.com/ 正版呢当然是收费 破解版自行百度 ...

  9. socket套接字模块及黏包现象

    一.socket套接字模块 socket概念 socket层 理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模 ...

  10. git设置忽略提交文件

    直接在idea进行操作 1.找到想要忽略提交的文件,点击右键,然后如下操作: 2.然后就会发现被忽略的文件名变成了灰色,在项目最下方会生成ignore文件夹 3.文件夹内可以看到我们忽略的文件 4.注 ...