Linux camera驱动开发(特殊的cpu+fpga芯片)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

在soc前面添加一个fpga开发板,专门用来对接sensor。然后再用fpga对接soc,这不是一个新鲜的做法。只是现在有一种soc,它内部本身就集成了fpga,这样fpga和soc里的cpu本身就可以直接通过总线直接沟通,非常方便。

1、集成fpga+cpu的优势

**fpga和cpu集成到一个die里面,最主要的优势,就是总线通信速度快、方便。**如果没有总线的集成,那么fpga和soc大体上只能通过类似mipi csi2 rx/tx这样的接口进行通信。如果是简单的应用,fpga拿到图像之后就可以直接送给lcd/hdmi,非常方便,soc的cpu部分做一些简单的配置即可。

复制代码
https://ax7010-20231-v101.readthedocs.io/zh-cn/latest/7010_S2_RSTdocument_CN/22_OV5640%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84%E9%87%87%E9%9B%86%E6%98%BE%E7%A4%BA%E4%B8%80_CN.html

2、集成fpga+cpu的缺点

相比较分离式的fpga、soc,如果两颗die集成在一起,本身的soc的选项要少不少。因为假设是分离式的模式,fpga可以任意选择,soc也可以任意选择。但如果是集成在一起,不管是国产品牌,还是外资品牌,选择的面要少很多。

另外,从价格方面来说,一般集成fpga+soc的芯片要贵不少,尤其是fpga资源比较多的soc,这方面表现得特别明显。此外,为了尽量减少芯片面积,提高性价比,很多soc会阉割掉很多soc功能,比如说isp、编码、解码、npu,这样一来处理就不是很方便。

3、优先dvp接口处理

一开始用fpga处理sensor的时候,不妨用dvp的形式进行处理。dvp相比较mipi,物理意义比较明确,配置相对简单不少。等到可以独立设置dvp接口的时候,再转到mipi,也是可以的。

4、没有isp如何处理

前面讨论到,很多集成fpga的soc内部是没有isp的,这种情况下就可以用这两种方法处理。一种是,前期选择sensor的时候,就尽量选择带isp的sensor,这样后期数据处理的时候,就不再需要isp追加处理了。另外一种,就是可以考虑用来处理一些不需要isp处理的场合,比如带全局快门的工业相机,这样哪怕没有isp,也不是很大的缺点。

5、多摄像头处理

fpga相比较cpu,除了延迟低,速度快之外,另外一个优点,就是它可以支持多摄像头处理,数量上没有限制。在工业场景里面用的比较多的双目摄像头,就是其中很明显的一个代表。本身这类集成fpga的芯片,cpu性能就不是很高。这个时候就可以通过对接多个sensor,直接网络送出去的形式来处理。因为这样一来,不仅速度快,还可以有效解决cpu效率低的问题,把芯片当成是一个放大版的多sensor处理器即可。

复制代码
https://ax7010-20231-v101.readthedocs.io/zh-cn/latest/7010_S2_RSTdocument_CN/23_OV5640%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84%E9%87%87%E9%9B%86%E6%98%BE%E7%A4%BA%E4%BA%8C_CN.html

6、自定义算法加速

和分离式fpga一样,集成式的架构也可以做一些算法的加速。**由于本身就集成了cpu,因此一旦发现效率不ok,就可以把算法快速迁移到fpga侧来完成,重新搭建一下框图即可。**整个过程要比分离式的结构,容易、便捷很多。对于图像这类应用,能迁移到fpga,就尽量用fpga处理,cpu本身对算法做一些补充即可,这是我们喜欢用fpga处理图像的根本原因。

相关推荐
不怕犯错,就怕不做16 分钟前
Linux-Sensor驱动移植与调试(转载)
linux·驱动开发·嵌入式硬件
LCMICRO-133108477461 小时前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
电子科技圈5 小时前
从进迭时空K3看RISC-V CPU与Imagination GPU协同:如何构建高性能SoC能力
大数据·图像处理·人工智能·嵌入式硬件·边缘计算·智能硬件·risc-v
抠脚学代码7 小时前
Linux开发-->驱动开发-->字符设备驱动框架(2)
linux·运维·驱动开发
charlie1145141918 小时前
嵌入式Linux驱动开发(3)——内核模块机制 - Linux 的插件系统
linux·运维·开发语言·驱动开发·嵌入式硬件·学习
军军君019 小时前
【人工智能/AI】项目实战二:AI视频生成产品汇总(非完全)
图像处理·人工智能·计算机视觉·ai作画·视觉检测·文心一言
抠脚学代码9 小时前
Linux开发-->驱动开发-->设备树
linux·驱动开发·设备树
尤老师FPGA10 小时前
Framebuffer的讲解
fpga开发
狠学嵌入式11 小时前
被WPS气晕,因此做了个免费的pdf与图片处理网站
图像处理·pdf·免费·pdf合并·pdf处理·免费工具网站
FPGA的花路13 小时前
ZYNQ 程序固化与升级指南
fpga开发·vitis·一键烧录脚本·zynq程序构成