CoaXPress 简介
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 简介的更多相关文章
- 基于PXIe接口的CoaXpress高速相机图像采集、回放
PXIe简介 PCI eXtensions for Instrumentation or PXI is a computer-based hardware and software platform ...
- CoaXPress 时间戳 Time Stamping
背景 在CXP2.0之前,CXP没有定义Time Stamping时间戳的概念,但是用户对Time Stamping是有实际需求的,比如我们要对比多台设备拍摄同一个物体不同角度的照片,或者记录触发完成 ...
- CoaXPress 线缆和接插件的设计要求
本文的原理部分内容不仅适用于CoaXPress 协议,也同样适用于其它高速信号传输情形.在高速.低干扰信号传输时,线缆和接插件的选取是非常讲究的,我们在实际应用中经常会遇到线缆原因.阻抗匹配原因导致的 ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
随机推荐
- css3中什么时候用transition什么时候用animation实现动画
在css3中transition和animation都可以实现动画效果,但是我们什么时候用transition,什么时候用animation. 当有事件触发动画的时候我们就用transition.比如 ...
- (1/2)Canvas的交互&存为图片-基本篇
前言 公司的产品同学看到朋友圈疯传的这张图后.一拍脑袋,决定做个H5版本的来推广一波. 需求如下: 文字变成可以点击的,而且还要能够变色(闪瞎有木有) 中间的姓名换成用户的微信头像 点击button后 ...
- 安卓性能测试之Lint测试
pre { direction: ltr; color: rgba(0, 0, 10, 1); text-align: left } pre.western { font-family: " ...
- error: failed to push some refs to 'git@gitee.com:xxxx'
出现错误的主要原因是向上仓库的一些文件(README.md,LICENSE等文件)不在本地代码目录中 git pull --rebase origin master 通过这行命令, 可以解决 注释福利 ...
- SpringMVC异常(404,接收参数类型转换错误)
内容 一.异常信息 HTTP Status 400 - type Status report message description The request sent by the client wa ...
- css3 calc浏览器中显示Invalid propety value
在写前端页面样式中使用calc 显示Invalid property value 后来查了文档之后才发现是自己的格式不对 我的写法: .clac { width:calc(100%-112px); } ...
- Taro开发微信小程序遇到的问题和解决方法
1.scroll-view 置顶, 给设置scroll-top为0无效问题? 解决方案: 不触发置顶问题,需要给scroll-top一个设置接近0的随机数,Math.random() 2.scroll ...
- 利用es6解构赋值快速提取JSON数据;
直接上代码 { let JSONData = { title:'abc', test:[ { nums:5, name:'jobs' }, { nums:11, name:'bill' } ] } l ...
- c++对c的拓展_编译检测的增强
一:全局变量检测增强:c++编译对全局变量的声明定义有严格区别 //c中全局变量的声明及定义 //c++中全局变量的声明及定义 //c++全局变量写成下列形式则报错 in ...
- JDK1.8.0_181的无限制强度加密策略文件变动(转载)
JDK1.8.0_181的无限制强度加密策略文件变动 原文地址 https://my.oschina.net/my1313677/blog/3109613 作者 葉者 日常记录 2019/09/23 ...