当前位置: 首页 > news >正文

Crosslink-NX器件应用连载(9): USB3.0相机

作者:Hello,Panda

大家晚上好,很久没有分享设计案例了,实在是太忙了,精力十分有限,今天分享一个CrosslinkNX系列器件用作USB3.0相机的案例。其实就是分享一下使用CrosslinkNX器件设计USB3.0相机主要有两种方案:

(1)传统方案:使用LCFCL通用器件(LIFCL-40或LIFCL-17)+USB桥接芯片(如5Gbps USB桥芯片Cyusb3014,10Gbps USB桥芯片CYUSB4013等);

(2)新方案:使用LIFCL-33U实现小封装低功耗USB3.2 5Gbps USB通信。

方案一:使用LIFCL通用器件+USB桥接芯片

LIFCL-40 FPGA有两组2.5Gbps 4-Lane MIPI硬核,也可接入多Lane的LVDS、SubLVDS、SLVS接口的Sensor,经过简单的流水线处理,比如彩色相机的ISP,黑白相机的非均匀性校正、降噪等处理后经USB桥接芯片送到PC机显示和保存和进一步二次开发。因此,就存在两种情况:

(1)接入Sensor的数据量比输出USB3.0有效数据带宽大很多,这种情况就需要添加DDR缓存(必须是LIFCL-40 BGA256及以上封装才支持DDR3-1066 16bit)来进行丢帧处理来适配带宽,这种情况只能使用LIFCL-40 FPGA芯片。

(2)带宽小于USB3.0有效数据带宽,这种情况只需要使用内部的Large RAM缓存数行来缓冲PC端读取USB3.0接口不稳定带来的些许数据阻塞即可,这种情况可以使用LIFCL-40或LIFCL-17,且LIFCL-17因有更大的内部Large RAM而更佳。这两种情况的,实现这两种情况的结构见下图1所示。

图1 使用LIFCL通用器件+USB桥接芯片方案图

该案例实现Lattice官方有评估板,USB桥接芯片使用CYUSB3014 8-bit总线模式,外挂RAM缓存芯片采用2片8bit HyperRAM芯片,板载配备的CMOS图像sensor为IMX224。

方案二:LIFCL-33U器件

这是Lattice新推出的器件,具有33K的逻辑资源和USB3.2/5Gbps物理层,实际上就是把原来MIPI硬核的资源用到USB上来了,阉割掉了MIPI硬核。因此,接入MIPI接口的Sensor时只能用到最高1.25Gbps的Lane速率,接入LVDS、SubLVDS、SLVS接口的Sensor时最高1.2Gbps,均要求在硬件信号完整性设计得极为理想的情况。该器件84 WLCSP(3.1×7.4mm)和104fcCSP(5.5×8.5mm)两种封装,第一种封装可用IO仅44个,可用作差分对输入的只有13对,104引脚封装的52个IO,稍富余一些。

根据Lattice提供的USB23 IPCore的资源利用情况,Registers使用了5064,LUTs使用了7392,EBRs使用了26个(共64个),因此还有一定的资源剩余来做一些Pipeline的计算,但也仅此而已。根据资源的情况来看,使用LIFCL-33U器件一般限制到了1080P的图像或其他的数据采集业务(如LVDS接口的ADC数据采集)。但是,它们有及其优秀的功耗和面积,特别适合在有低功耗和小体积硬性要求的设备上使用。

下图2是USB23 IP的应用框图,它例化实现了一个USB3.0物理层、Endpoint逻辑和一个RISC-V的CPU软核。

图2 LIFCL-33U实现USB3.0框图

熊猫君也自制硬件对此方案进行了尝试,下图3是熊猫君LIFCL-33U USB Camera的硬件原理图。

图3 LIFCL-33U的硬件原理图

好了,夜深了。各位技术大神们早点安歇。下次分享再见,希望能给大家的研发工作带来帮助。

相关文章:

  • 私有云和多云管理平台 | Cloudpods v3.11.4 正式发布
  • CSS学习笔记之高级教程(五)
  • 目标检测-AnyLabeling标注格式转换成YOLO格式
  • BottomSheetDialog高度自适应,布局RecyclerView使用问题
  • Mac下删除系统自带输入法ABC,正解!
  • Mysql中表的常用约束
  • 从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件
  • RabbitMQ启动报错:Error during startup: {error, {schema_integrity_check_failed,
  • 我是大学生,应该选系统运维方向,还是web开发方向?
  • 31|HTTP3:甩掉TCP、TLS 的包袱,构建高效网络
  • flask 之JWT认证实现
  • 系统安全及其应用
  • 一种用于异质结高电子迁移率晶体管(HEMTs)的紧凑型漏电流模型,其中包括双子带的二维电子气(2DEG)密度解
  • Zookeeper复习
  • 力扣2106.摘水果
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Apache Spark Streaming 使用实例
  • CSS 提示工具(Tooltip)
  • css选择器
  • Effective Java 笔记(一)
  • Javascript编码规范
  • MYSQL 的 IF 函数
  • Otto开发初探——微服务依赖管理新利器
  • Redux 中间件分析
  • vue:响应原理
  • 初识 beanstalkd
  • 基于webpack 的 vue 多页架构
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 开源SQL-on-Hadoop系统一览
  • 批量截取pdf文件
  • 数组大概知多少
  • 新版博客前端前瞻
  • 学习Vue.js的五个小例子
  • 字符串匹配基础上
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 阿里云ACE认证之理解CDN技术
  • 从如何停掉 Promise 链说起
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​浅谈 Linux 中的 core dump 分析方法
  • #android不同版本废弃api,新api。
  • #include<初见C语言之指针(5)>
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)svelte 教程:hello world
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C++17) optional的使用
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (ZT)一个美国文科博士的YardLife
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)Linq学习笔记
  • .Net实现SCrypt Hash加密
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)