本文主要是介绍Coaxpress,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
加入头条有段时间了,一直想写点什么,这次就从本人的工作开始,介绍一些和FPGA 相关的应用开发案例。第一期介绍一下fpga 实现coaxpress 协议开发。
Coaxpress 协议介绍
介绍Coaxpress 协议之前,先提下JIIA ,日本工业成像协会 (JIIA) 是一家总部设在日本的组织旨在领导工业成像技术创新。JIIA为与工业成像相关的组织推广全球社区,从而促进全球工业成像标准和产品的开发。由于日本工业成像公司占据广泛的市场,JIIA获得了独特的优势,成为了工业成像技术的领先开发商。这些类别包括工业相机、输入设备、图像处理器、图像处理软件、光学仪器、照明设备以及测量和分析机器。
CoaXPress (CXP) 是全球领先的专业和工业成像应用中的高速成像标准,应用包括机器视觉、医学成像、生命科学、广播和国防。
CoaXPress是一个将摄像头连接到桢抓板的接口。它结合了同轴电缆的简易性和最先进的高速串行数据技术,这实现了每根电缆高达12.5 Gbps数据速率,以及同一电缆中的设备控制和电源。CoaXPress是一种点对点可扩展接口。相机和帧抓板之间的物理介质是75 Ω同轴电缆。
系统介绍
1.Coaxpress 系统大概如下:
这里有几个概念,Device/Host/link
Device是相机端,面帧/线阵相机,产生图像数据,通过connection 送到host 端,同时受host 控制
Host 是主控端,接受device的mulit/single link data,,数据率可以达到12.5Gbps,恢复图像数据,另外通过link 下发控制trigger 信号,以及访问device 内部的bootstrap & manufacturer-specific register space ,数据率40.3Mbps/20.83Mbps,再就是通过connection 为device 提供max13W的供电能力。
link 是有单个或者多个connection 组成的数据传输链路,其中每个device 必须有一个master connection,另外的extension connection option。connection 是由两端的接插件BNC/Micro-BNC/DIN1.0/2.3和75Ω的电缆组成,最高速度下可以传输40m
coaxpress 链接示意图
2.cxp 里面的high speed 数据一般是由device 这边发起,low speed 数据 由host 这边发起。device 主控芯片FPGA transceiver 输出高速信号经过一个均衡器输出到BNC/micro-BNC,同时这个均衡器输出一个LF_OUT信号给FPGA ,这个LF_OUT 信号就是low speed 信号。这个均衡器一般用的是microchip 的EQCO系列芯片。相应的在host 这边也有一个均衡器,输出高速信号,同时也会接受LF_IN。
coaxpress 数据流
3.协议用一组K 码来做识别和对齐,无论高速还是低速信号,如下图。数据传输前都是需要经过8B/10B 编码,以word 为单位组织。
K code
4.packet 类型主要有以下几种:
coaxpress packet type
- I/O : host 发起的trigger以及device 返回的ack
- stream : 图像数据
- control:host 发起的读写控制命令,Test /heartbeat
我们以一个stream packet 大概介绍下其组成结构,如下图:
stream data packet
首先是发送K27.7x4 标识packet 起始,0x01 是表示这是stream data packet. stream ID 是当前传输的stream ID,在multi-streams 中来区别不同的数据。packet Tag 是一个包的循环计数。DsizeP是stream data word length ,后面紧跟着就是数据。同时需要对数据做crc ,附在数据后。最后发K29.7 x4 表示packet 结束。
上面对Coaxpress 数据传输部分做了大概介绍。还有很多细节,比如 热插拔/识别,上电速度协商,支持GenICam等。
协议FPGA实现
下面截几张图show 下自己写的coaxpress 调试:
device & host
image header packer
上图是device cxp device 发出来的数据以及K_ind,可以看到,没有数据时,发送的BC3C3CB5 idle code 后面7C 是stream marker 01是image header ,这是在一帧开始时发出来的。
image line marker
这是image 一行数据发送的过程,在行前面有个line marker
host 解析恢复出来的图像数据
上图是host cxp 协议根据transceiver 过来的数据解析,恢复V/H data 信号。
这篇关于Coaxpress的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!