Linux camera驱动开发(ARM、FPGA、DDR共享总线)

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

抛开arm soc不谈,处理图像的方法基本就是fpga,或者是fpga+mcu,或者是zynq这种fpga、ddr、arm可以一起访问的芯片。但是三种方法里面,最简单的还是zynq这种芯片,其他三种方式,各有各的问题。

1、纯fpga意味着需要硬编码一切

以图像处理为例,中间少不了图像的采集和显示。既然如此,那么不管是camera的读取,还是lcd、hdmi的显示都需要fpga来完成。当然camera和lcd的显示,中间的速率还不一定完全匹配,这个时候就需要fpga来处理ddr的初始化。**这就意味,我们在编写业务之前需要做一大堆的准备工作,其中就包括了复杂度很高的ddr初始化。**难度是肉眼可见的。

2、fpga+mcu能弥补,但不多

除了fpga处理图像之外,有的时候还需要处理一些额外的工作。比如图像显示的时候,有些情况下需要截图,需要进行回显,需要进行上下图片的切换。甚至,图片保存的时候,还需要放到tf卡里面,需要一个文件系统来交互。这种情况下如果再去用fpga实现,就不合适了。此时为了不增加过多的成本,mcu倒是一个不错的办法。

虽然fpga已经占据了全部的ddr资源,这个时候fpga和mcu之间就只能通过spi这类总线来进行联系。这样一来,mcu就可以处理一些人机交互的事情,比如资源配置、图片保存、文件信息提示、图形界面等等,这部分都可以mcu来完成。不过mcu也有自己的缺陷,那就是内部ram空间有限,就算访问ram,只能是速率不高的sram。此外,mcu无法支持复杂的usb和tcp/ip协议栈,这些都是它的缺点。

3、fpga+arm+ddr

**zynq最为客户着想的地方,就是fpga、arm、ddr相互之间都可以通过总线进行访问,使用上非常方便。**基于这一点,适合fpga来做的,就可以fpga来做;适合arm来做的,就arm来做。不仅如此,zynq由于cpu频率高,还可以跑linux,这样就可以用好usb、tcp/ip,使用上十分的方便。

哪怕不是用linux,只是用arm跑一个bare mental系统,也是非常合适的。很多的产品,或者是应用,从效率考虑本身是非常适合fpga来处理的,但是中间处理过程中也会涉及到一些配置或者是算法,这个时候就可以把这些算法或者是配置单独写成一个ip。数据部分,直接dma从ddr拷贝到ip,ip处理完了结果直接发给cpu,让cpu再去做后面的工作。不管是lcd直接显示,还是通过lwip网络协议栈发出去,都是非常方便的。这里是所以让ip实现算法,而不是让cpu来做,一部分是因为处理不过来,一部分是因为实时性要求。

4、zynq为后续的soc创造可能

虽然类zynq的应用场景很多,但是对图像来说,它还是无法实现编解码、npu、gpu处理这些功能的。所以哪怕是当前zynq做不了这些,也是可以通过后续接一个soc芯片来继续处理的。当然,如果实在不需要zynq里面的arm,换一个纯fpga处理,也是可以的。

相关推荐
阿图灵10 小时前
OpenCV 绘图五件套:画圆、文本、线段、矩形与椭圆
图像处理·人工智能·python·opencv·计算机视觉·绘图
Terasic友晶科技13 小时前
【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(二)——修改Quartus工程(GHRD工程)
fpga开发·terasic·agilex 5 soc·ghrd工程
sramdram13 小时前
FPGA系统SRAM外扩芯片选型与工程应用要点
fpga开发·sram·fpga系统·外扩芯片·sram外扩芯片
成都佳洋光电科技有限公司14 小时前
一文了解机器视觉成像
图像处理·人工智能·工业相机·工业镜头·短波红外
星月夜语14 小时前
2026 TPAMI | StarIR:空间-频域融合的高效图像复原
图像处理·深度学习·计算机视觉
爱吃火鸡面呀15 小时前
图片拼接与答题卡判断对错:从图像处理到自动判卷的完整实践
图像处理·人工智能
明德扬16 小时前
FPGA下载成功但上电不运行怎么查?配置Flash、启动模式与电源时序
fpga开发·fpga
努力搬砖的小H16 小时前
FPGA应用技巧之DDR3读写自检方案设计与IP仿真总结
经验分享·功能测试·fpga开发·modelsim·ddr3
Jaixln_HRF16 小时前
率能SS8837T 单通道1.8A/12V H桥电机驱动芯片,低功耗睡眠模式120nA,用于摄像机/玩具/机器人
驱动开发·嵌入式硬件·机器人·硬件工程
bingcheby17 小时前
PS通过AXI总线控制PL的LED灯实验之四---编程下载调试
驱动开发·fpga开发·iar