基于FPGA的阵列相机的实时监测和大容量存储

Home    Catalog    Featured    基于FPGA的阵列相机的实时监测和大容量存储

王淇泽,兰明辉,井璐琦

 

 

第一部分 设计概述 /Design Introduction

 

1.1 设计目的

随着人们对于图像质量,视场,视距的要求越来越高,单目相机往往不能 满足人们的需求,因此我们设计了阵列相机组,以此来获得更大的视场,视距 和多角度的即时显示,同时提供同步存储功能,以便后期的下载和为各类图像 处理算法提供完整的数据流。

1.2 应用领域

阵列相机可用作户外大角度全景和超远景监控等系列安防专用相机,极大 地扩展了安防监控范围并大幅提高现有的安防等级能力。 阵列相机可用作大视场超高清摄像机,不仅可帮助用户获得前所未有的超 高清图像数据,更能通过后期图像处理,为用户提供更多层次的全方位个性化 视觉体验,同时也可以为用户提供更加智能、可靠的安防布控。

1.3 适用范围

本作品适用于对于实时监控视场大、图像分辨率要求高,视距远的场合, 在此类场合中,作品可以完全发挥优势,帮助使用者迅速方便获得各个视角的即时图像和实时存储。同时,为进行后续的各类图像处理算法构建了一个完整 的硬件平台。

 

第二部分 系统组成及功能说明 /System Construction & Function Description

 

2.1 系统介绍

本系统由我们自主设计 PCB,布局布线,由第三方厂商制版焊接完成了最 终的系统的搭建,具体分为 NVIDIA TX1 + A7 100t 交互处理模块,Sparton6 转接模块,226 探测器接收模块,A7 35t 相机数据处理模块,A7 35t 数据存 储模块和上位机模块。我们自订了基于高速同步串口发送的指令集,完成从 PC 到 TX1 到 100T 到 Sparton6 到 35T 的阵列级联控制;TX1 与 100T 通过基于 XDMA 的 PCIE 协议完成指令和数据的交互;100T 到 Sparton6 到 35T 通过 高速同步串口完成指令的下行,基于高速串口串并转化 SERDES 原语完成数据 上行;通过 35T 以 SPI 协议配置 Sony IMX226 相机工作在 Slave 模式下,并 4000*3000@20 的工作模式,通过 ISERDES 解串相机数据在 35T 的 DDR3 中 进行降采样缓存和原图缓存,然后根据指令读出缓存数据进行通向 100T 方向 的显示回传或者进行本地 TF 卡模块的存储以便后续的下载;最后完成了 10 个 相机的同步显示和其中任意 1 个相机 1080P 显示;并外接 SDI 输出同步 1080P 显示,在上位机上通过下发指令可以实时的调整曝光,一定范围的每个 相机的视场等相机参数,同时完成了 TF 卡的实时存储,下载,查询,清空等功能。

2.2 各模块介绍

2.2.1 GPU + A7 100t 交互处理模块

本模块完成了整个 FPGA 系统的主控和与 GPU 之间的通信,首先 PC 通过 TCP 协议和 TX1 在操作系统层次完成了指令和相关数据交互的简单交互,TX1 和 100T 之间通过 PCIE 驱动和 XDMA IP 进行通信,在这一部分,其中 AXI4 通道完成数据的传输,AXI4-Lite 通道完成指令的下发和当前 FPGA 状态的轮 询;在本模块将 PC 的指令根据指令集通过高速同步串口发出,对于回传的数 据通过 ISERDES 解串并在 100T 的 DDR3 中缓存,最终搬运到 GPU,再到 PC,在这部分同时也完成 SDI 的外接同步输出。这部分还设计支持外挂在 TX1 上的 USB,HDMI 等接口便于调试。

2.2.2 Sparton6 转接模块

本模块在整个系统中有两个,每个模块共有 6 个 LVDS 接口,其中一个和 100T 部分连接剩下的 5 个接口分别连一个相机前端模块,共连接 10 个;这部 分通过指令集中的参数来完成指令下行的转接和回传数据的转接,同时通过 Sparton6 中的原语 ISERDES 和 OSERDES 完成最开始的通道矫正。

2.2.3 IMX226 探测器接收模块

本模块完成 Sony IMX 226 相机的外围电路设计和 SPI 的配置接口,35T 通过连接件去以 SPI 协议配置相机工作在 4000*3000@20fps 的 Slave 模式 下,相机数据输出模式为 10 通道的串行 LDVS 相机数据输出。

2.2.4 A7 35t 相机数据处理模块

本模块完成对于相机数据的解串并将数据缓存在 35T 的 DDR3 中,对于 DDR3 中的缓存我们分为 3 部分区域:降采样区域,原图区域,其他信息区 域,降采样区域读出后返回给 Sparton6 来实时显示,原图区域读出后进行 TF 卡的写入;将数据通过 OSERDES 发送出去连接到 Sparton6 部分的一个端口 上。同时在本模块完成了动态调整相机参数,基于 SD3.0 协议的 TF 卡写入, 数据流的降采样,仲裁和前端主控状态机的实现等多个功能。

2.2.5 A7 35t 数据存储模块

本模块将 DDR3 的原图数据读出写入 4 张 TF 卡中,4 张卡并行写入以提高 写入带,并在接收到下载指令后将数据读出并回传,对于这部分我们自己做了 一个简易的文件系统便于 TF 的管理和控制;TF 卡工作在在 SD 模式下的 UHSI Operation Modes 下 SDR104 模式;

2.2.6 上位机模块

该模块在 QT 环境下,完成了基于 TCP 的 PC 和 TX1 之间的通信和用户界 面搭建;

 

第三部分 完成情况及性能参数 /Final Design & Performance Parameters

 

3.1 完成情况:

目前预计的各个功能基本完成,当由于硬件设计的一些问题和焊接物料的 质量和焊接工艺的一些问题,整个系统的不是特别的稳定,偶尔会出现一些问 题,当大部分时间都是可以正常工作;主要完成 10 个相机实时显示和任意 1 个相机的 1080P 显示,外接 SDI 同步显示;实时调整曝光,视场范围,并进行 实时存储,下载,查询余量,清空等功能;

3.2 性能参数:

 

第四部分 总结 /Conclusions

 

4.1 主要创新点

(1)本系统的控制基本全部由 FPGA 控制实现并且 PCB 都是自主设计, 可以达到较高的速度和完全自主的控制,充分的使用了 FPGA 的特性,用最少 的成本搭建了一个较大的系统;

(2)本系统所有的数据流都是自主控制的,裸露的,我们可以将这套系统 作为一套基本的传输控制系统,在后续的改良版中,可以做各种各样的升级;

(3)本系统使用纯逻辑控制 4 张 TF 的读写,并自订了一个简易的文件系 统,TF 卡可以跑在一个较高的速度;并且使用 LVDS 串行传输,速度快,稳定 性好;

(4)本系统自订了一个阵列相机控制的指令集,在理论上可以支持更多级 和更多目的阵列系统控制;

(5)本系统采用了 GPU+FPGA+PC 的构架,在后续的设计中,可以进行 丰富的图像处理工作,比如 FPGA 预处理数据,GPU 加速,PC 跑算法等,具 有较强的完备性和可升级性;

4.2 可扩展之处

(1)硬件设计中存在很多问题,比如过多的接插件导致成品率低,FLASH 固化芯片不稳定,端接电阻不匹配,供电不稳定等很多问题都导致了系统的稳 定性下降,在以后的设计中可以修正。

(2)相机工作的模式可以继续提升,包括帧率的提升,这需要更大的 DDR3 带宽,SERDES 速度和硬件稳定性,实现更高的帧率,同时由于在设计 之初没有注意到 226 是卷帘式曝光且工作在 Slave 模式下,所以目前的曝光的 积分时间调整只能工作在室内和室外两种模式下,可动态调整的是增益值;如 果需要改良可以通过让相机工作在 Master 模式下,实现更大的曝光范围调 整; (3)TF 没能跑到理论支持的最高带宽下,后期可以通过完善硬件设计或 者工作在 DDR 模式下,提高写入带宽,使写入帧率提升;

(4)目前的 GPU 只是进行了简单的数据搬运,没有利用其图像处理的能 力,后续可以在 GPU 上完善各种各样的图像处理算法,因为数据在 GPU 上是 完全裸露的;

4.3 心得体会

我们在竞赛之前就在实验室开始准备这套系统的搭建,从 PCB 的设计到系 统理论构架再到实现经历了太多的困难和改版,不断的遇到问题,解决问题, 改进问题,在目前的硬件条件下做到了我们能做到的最好,但仍然还有很多问 题和不足的地方;同时我们也收获了很多,大量的 RTL 代码编写,尤其是中途 出现 FPGA 资源不够用时,通过各种各样的方式去优化代码来降低资源利用 率,极大的锻炼了我们的代码能力;软硬件系统的交互和配合让我们对于数字 系统的设计和操作系统的认识等各个方面都有了很大的提升;在组装阶段更是 折磨人,反复的测试和更换让我们筋疲力尽,深刻体会到了一个好的硬件设计 有多么重要;好在最后的结果我们自己是满意的,完成了这个对于我们来说复 杂和庞大的系统,几个月下来大家都成长了很多,也将很多理论知识真正的转 化为了实践,总之,是累并快乐着!最后也要感谢实验室其他人的帮助和指导!

 

 

2020年2月3日 10:06
浏览量:0
收藏