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

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处理,也是可以的。

http://www.jsqmd.com/news/458327/

相关文章:

  • Linux将多条指令合并为一条执行
  • C++多态:动态绑定的核心机制
  • 初识MySQL · 库的操作
  • 细聊2026年科学仪器展会服务,实验室仪器展会怎么选择靠谱的 - 工业品牌热点
  • Flutter 组件 native_shuttle 的适配 鸿蒙Harmony 实战 - 驾驭极致原生通讯性能、实现鸿蒙端 Dart 与 ArkTS 之间的高频底层穿梭方案
  • Flutter 组件 conventional 适配鸿蒙 HarmonyOS 实战:约定式提交标准,构建自动化版本治理与 CI/CD 质量治理架构
  • 本地GEO推广好用吗,湖南有哪些值得推荐的渠道商 - 工业设备
  • 基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)
  • Harmonyos应用示例40. 复习和关联:知识网络图
  • 【Linux】Linux第一个小程序 - 进度条
  • 从实验室到万吨产线:青岛福尔蒂以校企联合将博士论文转化为抗静电母粒量产方案
  • 用实力说话!降AIGC软件 千笔AI VS 文途AI,本科生专属推荐
  • 5 分钟手把手教你打造 AI 知识库!附 OpenClaw「龙虾」养成指南(建议收藏)
  • 存储过程(SQL)
  • openclaw 常用命令
  • 【Linux】深入浅出 Linux 自动化构建:make 与 Makefile 的实用指南
  • C语言进阶指南(类型转换、整型提升)
  • 显卡(Graphics Processing Unit,GPU)架构详细解读
  • 学生成绩管理系统(MySQL)
  • 基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(下)
  • 完美解决org.mybatis.spring.MyBatisSystemException nested exception is org.apache.ibatis.reflection.Refl
  • 【C语言-第33章 标准输入输出】-002篇
  • 深度解析 Android 开发(影像类 APP 方向)职位:技术全景、面试指南与职业进阶
  • 最新SQL Server 2022保姆级安装教程【附安装包】
  • 【C语言-第34章 字符与字符串的输入输出】-001篇
  • Flutter 组件 genkit 的适配 鸿蒙Harmony 实战 - 驾驭大模型开发套件、实现鸿蒙端 AI 智能流式响应与提示词工程自动化方案
  • Epson M-G366PDG惯性测量单元:精准导航与卓越性能的理想选择
  • 福尔蒂技服团队驻厂年支持1860+工时,一次性良品率达99.27%
  • 基于Java+SSM+Django小工程预算系统(源码+LW+调试文档+讲解等)/小型工程预算软件/小型工程项目预算工具/简易工程预算系统/工程预算软件小型版/小型工程成本估算系统
  • 给SQL server数据库表字段添加注释SQL,附修改、删除注释SQL及演示