CoaXPress 接口相机的控制方法--2
接上一篇 《CoaXPress 接口相机的控制方法--1》 https://www.cnblogs.com/xingce/p/15902246.html
这里再介绍一下具体是如何完成相机寄存器读写的,FPGA和软件分别要做什么工作
FPGA部分
硬件
要完成与CXP相机的对接,首先需要对应的前端信号处理硬件+FPGA 解码IP,目前可以提供对应硬件和IP的厂商非常少,我们的系统采用了以色列合作伙伴KAYA的FMC子卡和CXP HOST IP,博客不方便上传文档,有感兴趣的可以移步到kaya官网查询相关信息。
FMC子卡

组装后

CXP HOST IP
IP负责完成CXP所有协议层的细节,我们不需要过分关心底层,只需要关注IP对用户的接口即可,我们对IP做了一些封装,使其可以在block design中很方便的进行调用。其中主要分为cxp link trigger(负责控制CXP LINK的触发信号)、ky_cxp_control(负责完成CXP Endpoint的寄存器读写控制)、ky_cxp_dma(负责传输解码后的图像像素数据)。

ky_cxp_control接口到axi_lite接口
在ARM的大力推动下,AXI总线已经成为了系统设计的首选接口,再Xilinx的FPGA 系统设计中也广泛使用,因此我们需要将ky_cxp_control转到axi_lite,然后就可以方便的接到我们的pcie to axi系统中去.

软件部分
软件部分需要对应的PCIe驱动,完成对axi_lite的寄存器访问,即可最终实现对cxp相机寄存器的访问,从而控制相机系统,这部分各个厂商都有自己的做法,是一个较为常见,但是又不容易做好、做稳定的地方,我们这里不展开描述
CoaXPress 接口相机的控制方法--2的更多相关文章
- CoaXPress 接口相机的控制方法--1
GenICam 介绍 简而言之,GenICam 定义了一个通用的相机接口,使得应用程序的编写.相机的控制可以与具体的型号解耦,这样就可以设计出通用的软件完成对不同相机的控制.我们实际使用的CoaXPr ...
- 基于PXIe接口的CoaXpress高速相机图像采集、回放
PXIe简介 PCI eXtensions for Instrumentation or PXI is a computer-based hardware and software platform ...
- CY7C68013 USB接口相机开发记录 - 第一天:资料下载
一直觉得从头开发一套东西出来会极大的提升自己的自信心,能够最大化的开发自己的潜能.所以在犹豫很久之后决定学习下CY7C68013 USB接口相机的开发. 通过在网上查找多份资料后,觉得工欲善其事必先利 ...
- CY7C68013 USB接口相机开发记录 - 第四天:上位机编写1
前面学习了USB相机硬件固件.设备驱动,可以实现USB设备识别.数据发送的功能.然后,非常重要的一部分,USB设备发出的数据,我要怎么接受,怎么查看发送的数据是否是正确的.网上百度了下,大部分人都使用 ...
- CY7C68013 USB接口相机开发记录 - 第三天:固件修改
上篇说了驱动怎么配置,这篇记录下对应的设备固件怎么配置.首先看下我们工程结构: 摘自官方文档AN61345 STARTUP.A51是建立工程时自动生成的文件,下面所有文件都是手动添加的.对于下面的几个 ...
- CY7C68013 USB接口相机开发记录 - 第二天:驱动修改
上次写了资料的下载,并对资料进行了分类,分完类看起来就比较清晰.同时通过强大的百度,也可以得到不少资料. 这里对比较关键的几个文件进行罗列: 一.驱动相关 cyusb.inf: 修改CYUSB.INF ...
- Android三种播放视频的方式
在Android中,我们有三种方式来实现视频的播放: 1.使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型. 2.使用VideoView来播放. ...
- RelativeLayout.LayoutParams.addRule()方法
1.应用场景 在使用RelativeLayout布局的时候,通常在载入布局之前在相关的XML文件中进行静态设置即可.但是,在有些情况下,我们需要动态的设置布局 的属性,在不同条件下设置不同的布局排列方 ...
- 121-基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 机器人主板
基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 一.板卡概述 本系统基于最先进的DSP技术,构建一个全高清的视频编解码系统,采用TI的芯片.借助TI的DaVin ...
随机推荐
- 更快的Maven构建工具mvnd和Gradle哪个更快?
Maven 作为经典的项目构建工具相信很多人已经用很久了,但如果体验过 Gradle,那感觉只有两个字"真香". 前段时间测评了更快的 Maven 构建工具 mvnd,感觉性能挺高 ...
- github与gitlab创建新仓库
github创建新仓库 然后根据下一页的命令提示进行即可 gitlab创建新仓库 git init git remote add origin git@***.***.**.**:user/proje ...
- 【经验总结】CodeBlocks使用mingw64
CodeBlocks使用 标签:c++ 一.安装并配置mingw-w64 使用中发现CB默认的编译器版本过低,c++11的一些东西无法使用,比如string中的stoi函数,因此尝试安装新版本的编译器 ...
- 【刷题-LeetCode】238. Product of Array Except Self
Product of Array Except Self Given an array nums of n integers where n > 1, return an array outpu ...
- Cesium入门6 - Adding Imagery - 添加图层
Cesium入门6 - Adding Imagery - 添加图层 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com ...
- linux解析映射文件与自动加载脚本
目录 一 :解析映射文件 1.解析文件的由来之主机名: 2.解析映射文件(DNS) 二:磁盘挂载文件 三:开机自动加载脚本 一 :解析映射文件 1.解析文件的由来之主机名: 无论是在局域网还是在INT ...
- K8S访问机制
pod -> endpoint -> service -> namespace -> svc.cluster.local .....在 a 名称空间,访问 b 名称空间的 b1 ...
- python采用json.dump和json.load存储数据
#!/usr/bin/python # -*- coding: UTF-8 -*- import json numbers = [2,3,4,7,11,13] filename = 'numbers. ...
- ☕【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南
前言介绍 在Java编程语言中,操作文件IO的时候,通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于Mapp ...
- JS中的堆内存与栈内存
在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.Undefined.Nul ...