实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!

2024-04-19 09:28

本文主要是介绍实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CSI总线介绍与优势

CSI(CMOS sensor parallel interfaces)总线是一种用于连接图像传感器和处理器的并行通信接口,应用于工业自动化、能源电力、智慧医疗等领域,CSI总线接口示意图如下所示(以全志科技T3处理器的CSI0为例)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

高带宽:CSI总线支持高速数据传输,可以满足多通道高速AD数据的传输需求。

开发难度低:CSI总线采用并行数据和控制信号分离方式,时序简单,FPGA端接口开发难度低。

低成本:CSI总线采用并行传输方式,FPGA端使用资源少,对FPGA器件资源要求低。

国产ARM + FPGA架构介绍与优势

近年来,随着中国新基建、中国制造2025规划的持续推进,单ARM处理器越来越难胜任工业现场的功能要求,特别是如今能源电力、工业控制、智慧医疗等行业,往往更需要ARM + FPGA架构的处理器平台来实现例如多路/高速AD采集、多路网口、多路串口、多路/高速并行DI/DO、高速数据并行处理等特定功能,因此ARM + FPGA架构处理器平台愈发受市场欢迎。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创龙科技SOM-TLT3F是一款基于全志科技T3四核ARM Cortex-A7处理器 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核全国产工业核心板,ARM Cortex-A7处理单元主频高达 1.2GHz。核心板ARM、FPGA、ROM、RAM、电源、晶振、连接器等所有元器件均采用国产工业级方案,国产化率100%。

全志T3为准车规级芯片,四核ARM Cortex-A7架构,主频高达1.2GHz,支持双路网口、八路UART、SATA大容量存储接口,同时支持4路显示、GPU以及1080P H.264视频硬件编解码。另外,创龙科技已在T3平台适配国产嵌入式系统翼辉SylixOS,真正实现软硬件国产化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

国产ARM + FPGA的CSI通信案例介绍

本章节主要介绍全志科技T3与紫光同创Logos基于CSI的ARM + FPGA通信方案,使用的硬件平台为:创龙科技TLT3F-EVM工业评估板。

该案例实现T3(ARM Cortex-A7)与FPGA的CSI通信功能。案例使用的CSI0总线,最高支持分辨率为1080P@30fps,数据位宽为8bit,如下图所示。CSI0理论传输带宽为:1920 x 1080 x 8bit x 30fps ≈ 59MB/s。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

功能框图与程序流程图,如下图所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ARM端案例csi_test案例说明

ARM端案例csi_test主要功能如下:
(1)基于Linux子系统V4L2;
(2)通过CSI总线,采集指定帧数数据;
(3)计算总耗时;
(4)打印平均采集速率,并校验最后一帧图像的数据。

FPGA端案例parallel_csi_tx案例说明

FPGA端案例parallel_csi_tx主要功能如下:

(1)将测试数据(0x00~0xFF)写入FIFO;

(2)从FIFO读出数据,按行与帧的方式、1024x512的分辨率,通过CSI总线发送至ARM端。

案例测试演示

FPGA程序将CSI_PCLK设置为65MHz,测试数据写入FIFO的时钟FIFO_WR_CLK设置为59MHz。由于FPGA端需将数据写入FIFO再从FIFO读出后发送,每一行与每一帧之间的间隔时间会受FIFO写入的速率影响,因此CSI通信的实际理论传输带宽应为:(59MHz x 8bit / 8)MB/s = 59MB/s。从上图可知,本次实测传输速率约为52.4MB/s,误码率为0,接近理论通信速率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这篇关于实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917153

相关文章

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编