【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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处理图像的根本原因。