admin管理员组文章数量:1566222
2023年12月30日发(作者:)
基于T35F324的FPGA开发板图像采集显示系统方案
1.前言
个人觉得易灵思的TriOn系列比钛金系列FPGA,就目前而言,更适合做图像显示相关应用,以T35和巨60为例,主要原因如下表所示:
系列
Trion
T35
40nm
硬核
硬核
低
钛金
Ti60
16nm
软核
软核
更低
工艺
DDR3
MIPI
功耗
易灵思如果专注图像细分领域,毕竟大部分客户还是用DDR和MIPI,因此我觉得钛金系列的架构真的脑袋被驴踢了,DDR和MIP1用硬核才是正确的选择!
另外,钛金系列FPGA相对推出时间不够,目前IP也不成熟。以T35为例,DDR硬核IP在EfinityInterface中直接可以调用DDRIP并设定相关参数,但是钛金系列Ti60还没有包含到工具链中,这让拿不到一手资源的FPGAer就很尴尬,虽然可以理解不集成到IDE中,可以更快的迭代前提不成熟的版本。
TSTUT20
T35TSSTBST120
■∙
1
YJM
MtIM
"3]
j。・可∙nXn,
°(Mft)
Mtauaxa
I IP11W
π
4
I
nr
■
»
MIM
3
Mt1)
11
I叼
ISO
二
■大50r
1VM(TKW1)
,IH
2J0
IUOKMfefH1
AicujetWinIM1R ∙1∙ ■It 2∏ 2TX JT1 m ]RX)11 兼容@01⑥MT 拨动开关BMW0V5生0等模 底板串口 DC3-40用户接口,兼容CraZyfpg>iomEfin1tyT3SF324-Cor∙V1.1一«... M2X>S12 FPQABOa1Q Efint MIP1摄像头r 兼容树莓派r OV5640 M1P1TX/RX接口,山谷0.8mm40P接口 J20230515 如上图所示,T35F324的FPGA开发板,我都做了快半年了,一直没有做一个基于视频图像的像样点的DCm0,甚是惭愧。为了给当下煎熬的大家送点福利,我打算分2步走,如下: DVP相机+DDR3+1VDS-1CD实时显示系统 MIPI相机+DDR3+1VDS-1CD实时显示系统 前者更关注DDR3硬核、1VDSTX,以及进行并口相机的配置与图像采集,完成实时图像采集、缓存、显示系统;后者则借用1)的基础,更关注MIP1相机的开发,进一步把易灵思FPGA进行图像采集的优势,发挥一下。 当然这过程肯定还是有不少的坑,有些坑只有自己趟过,才有发言权。 设计详解 言归正传,我们开始干正事:基于T35的摄像头采集、存储、显示系统的介绍。 首先是FPGA时钟网络 这里涉及到DDR控制器的时钟,1VDSTX的快慢时钟,系统时钟,以及外设驱动时钟等,大致示意图如下: 由于Trion的P11是能输出3个时钟,因此将2个P11都用上了,一个产生IOOMHZ的系统时钟,48/168M的1VDS慢/快时钟,另一个P11产生DDR的驱动时钟400MHz,以及外部饯感圈的驱动时钟27MHz.另外,还有一个从传感器输入的像素时钟74.25MHz,作为视频流的同步时钟。 其次是硬核的配置 这里用到了DDR与1VDSTX硬核。关于DDR硬核的使用,外部使用的是三星的K4B4G1646E-BYMA,4G16bit容量。 在Interface中配置DDR控制器相关参数,如下图所示: 04⅞e1onhfiurxionAfMnced0p(• SCirrt防M CoeNroMrt Se⅛(tConAgiMMtonRewf K4H4 S MfWMNy IMW1S mtK4(MG1M61 Drm1ty ∙D9 C1ose 1rwM≠MMn(FOMySen1ng Modeeditor me∙dOptiomContro1AHOAXII∙∙ 1∙∙ g :使融2ecooυα也可以DiSabIe(nβb*rQHibrMton •EruiMeUtefRnK EnabAeAesef CaHXWion AxiOO χ∣o InveftAK1C1ockInput SturedRe MastetRM¢(RnN^n⅜e Dddv1RSTN UtctRMetPim Sequent«vRpwtPinManw Ddrα.S≡ Sequence*SU<1PinNjme Ddrar1CFG-SeQUAin B1ockFdH AddrBRcMyPW1Niime O O O Mrar1MADY。 O AddreuVJMPtnMMneMraf1_AVM" O OAddrE()1X>)BusMiimeDdrCtrIAADORO 其实软件包含了颗粒的型号,因此配置还是挺简单的,对于用户接口,InterfaCe提供的是标准的AX1接口,其他的都是在硬核中,用户不需要例化,非常的简单。 关于1VDSTX的使用,主要是PORT的配置,以TXo为例,InterfaCe配置如下图所示: 4βMHz 这里特别需要注意的是,P111设置tx_fastc1k时,需要90度响铃;另外,Efinity的1VDS是1SB的,也就是先至1SB,这在InterfaCe的说明文档中有解释,如下图所示: MngDataandC1ockRe1atk)nshφWidthof7(Para11e1C1ockDivis 另外,在1024*6001VDS手册中,1VDS时钟有一定的相位关系,如下所示,在7bit数据传输时,时钟为I1ooOI1 8bit1VDSinput -: ______ / i / , <ΞXΞXΞXΞDGDGDGΞX≡X≡)GΞ√GΞXΞΞXΞΞXΞΞXΞΞXΞΞ)GΞXΞO(ZtZDCDCZ)GDGDGDGdCΞ3 Note:SupportDEtimingmodeon1y,SYNCmodenotsupported 所以如上这部分代码,如下所示: 接着是相机的驱动 目前采用的AROI35是车规常用的130万全局曝光黑白相机,成像质量非常好,相关的参数如下所示:w1r∙w1r∙wirev ue; 1«_“,, 9,1cd.b1ue{J ,1ed 1cd- ∙∙∙(gRa∙*1faιM∙fgWM∙1gn 1v<«_v s1v {c∙(e]1c∙(i](<*I0]. AR0135AT 1∕3∙inch1.2MpCMOSD1aIKIImaqe SenSWitHGIobaTshuUer∣ O*∙C0pUV, TheAIWUSATtemON!⅛*κua*iuκ1πf<∙.1∕‰- OHS∙Eiconductoc aκ⅛I2MPCMOSdι∣ft∙1tmageMntotw«h・e∙cu*e>pι%eiarra⅛ofI2O uMHa0ota1IhUnaiorM VMkdMk∖.acβ⅛nf1rg⅛>pmode,andhrth、idM>endMf∏0cframem«doIt»p∙t*ffwnaMMeιtv*κ^ιaM*∣⅛ħM**wwrwtu1 I⅛e ARDI3MTpr0⅛κnr¾∙a04nan1⅜dear,∙1arpm⅝prχm1ιt>•∣M∙mIuG3tUaMMaI*⅞⅛o3MIetaaae**Aet*IhrPCdK1chnκ*iπvawt⅛αn∣rM<∣rtκa1Mna‹Inde/MMw* oθ*t ∣∙GAM∙*∙ CAMM1AI T∙∙1.κrtPtRFOAMAMCSRM1AMETtRS ORDERiMOMFORMATIOM・4MM**•«*M ∙∣taφt,. MtBr MM⅞MM FMtMMM ueo(H>se(V)∙,… • 0NS∙M∙M⅛dM⅛MtKIGCw ISM ITBw* (⅛MMwβct1 Cai*.~Arw MmcffFW • Sφcfκ∙<1( M4IU∣MMiDa1UNKC OtA rA • HDVa⅛α(73⅜M> VMMr” QBMS⅝MV 2C*URange ‰4CWMf • O* OutM*WO««ΠM∙mM∣ M2»MH1 CUM • RMMH-ta*1gpβ Paratei • 、e・iIIχ∣cπuι∣II1>∣wIM HSP1tt-M F*tm∙AM∙FMBR∙WMMΠg • >I.∙.∙,..∙II;∙':r M*∙9・ ApμMcMM>ra 4JntvM⅞> •、-h∙1*hr βt • S¢aaMgMκħ∣arVMMM 8N⅝ ・7。 • 79^fΛOVtdvoΛp0ιαMMNB D∣mβa∙cA›W H1« 我曾在《FPGA设计技巧与案例开发详解》一书中详细介绍了如何使用FPGA驱动CMOS摄像头,因此这里不再描述细节,给出框图如下: AROI35相机 像素时钟〉 灰度图 CropSJ 1280*720视频流 像采集 1024*6∞ 传感器初 始化 AX1读写 模块 这里在进行相机的初始化后,捕获输入的并行视频流数据;另外为了适配后面1024*600的1VDS1CD,再捕获数据后,直接Crop到1024*600分辨率。接着将数据送入AXI读写模块,将DVP转成AXI后写入DDRo 最后是视频流的缓存与显示 这一步其实和相机的数据缓存比较类似,无非是用一样的时序反着走一遍:即采用AX1从DDR中读取数据,转成并口后,送给后续的1CD驱动模块,再通过1vDS送给1CD显示,框图如下所示: 1024*6∞ 1VDS1CD 最后,汇总整个时钟、DDR、相机、1CD驱动显示的框图,基于T35的摄像头采集、存储、显示系统,如下图所示: 一12M[ -48M-168M P112 ---- 25Mr 400M -27M- 驱动时钟 像素时钟、 相机图像采集与CrOP 1CD时序AXI时序驱动 Pd1SOEU *pMo-S *p∙×E 传感器初始化 由于该趟的坑,都已经趟过一遍了,这里我们不得不再静下心来再分析讨论一下,这个设计中遇到的最大的坑一一DDR3的AXI接口竟然是SharedRead/WriteAddressChanne1,配置与接口代码如下所示: Biodtfdftor •Ad^anccdOpttcmContro1AWO∙∙ √Cf>3b*eTvge10AMQodIkφutRnMameAxCCk Z6 Shared2dKmAddrettOunneI *6t∙MpunwSsvw1KeadOtUOumRH WivteDaiUiChAnnef • je 3S ■■ 41 HZ 44 .■ 47 48 output (∏∙J MeCtr1-WO-O output Ume1 .∙ OUIpUt o<ι (»«•1 DdrCtr1W1>sτ∙ output output DdrCtr1IZbfUXDθ Input >CADY.∂ ./∕(O){Wf ・/∕(0)1Wr1te) " //∕<0>(Wr •//(O)JWfHe1 .//(I)IWfIWj •〃⑴IgW1 ■/∕<1)(RVM>∣ ■//(1)Iβej .//(O){ReMJ∣ ■//(1>(Prαd1 ID DaU OJIdStrQbMT»v«i1Id) DetβIJ1St 0«t4YdUd ID D3t414St MM・VAIId DataReedy Re‰po∙tM //DOftoutOQtfOf⅜PputoutpAXI4・1InejutOUtpM【11⑹(_8MEt O∣ 1AADMGMr output (soutput IIM ME1Wd6 Addr一W ■//(0)(Mdrc5j./∕JO)1AdAddie‰⅞ drc‰).//(O)μdth^¼! AιM∙rSOvM⅜t1 AddressBurstsize .//(0)iAddre5: ■〃⑼IACM31 «//(O)IAddrCTj ,/HO)IAddtes1 Addftr‰⅛6∣ιrMtyρ^ Addm¼1ocMtype AddfessVa1id Addt∙H∙‰81⅜dy Oper>teType9-ReadI-WrHc :Wr加0M4∣12h0f81ι¾M4meMtOrtJKkMAJ) O output [1output 1nρvtout put :91 DdrCtr1AIOCK.∙ 1ID.Θ MrCYf1A^∣M>V_ODdr■∕Z(1){A<¼∣C4∙fc} X"IJTYPtJ //(O)IMdres1 WntvIO∣H>∣0 WriteUBtAnNameOdKtrtWIΛ¼IO O WHteBayPtnMaeetMfOΠ.VΠCADV.O O :5加SnobM∣tSd>∣8MNMWCWfa>1wsτ*o O WtitcViMΛΛ∙Mmr Dd<λtO-0 O Input input Input Input output Input IM [unoj MfCtrtPXO6 MX31M0A1AJ ∙ DdrCtr1PYA1ID.0 DdrCtr1,WEΛDV.0 .∙ 那就意味着,虽然AX1 IT:∙] input .Θ ■"U)1*n,E1 ResponseWriteID 1πpvt DdrCtrIjrrMIO6 Re‰0gsv41Id ∙/∕(∣)IAnwiRpf: 可以做到读写通道独立,output •∕Z(O)fAnwRer) Re^pcn^e∙rΛdy DdrCtr1,∣W1ADV.0 M 但我不能同时发起读命令与写命令。如果AX1读写通道是完全独立的,则我们可以这样设计,即读归读,写归写,设计相对简单。 但是现在竟然AX1的读写地址通道是Shared,我被惊讶到了,毕竟做了七八年芯片,AX1也是手抬过很多遍,Shared地址通过的阉割版,还是有点不适应,毕竟当读写冲突的时候,必须做仲裁,同时也需要更大的FIFO,还缓存读写通道的数据。 tnei 图像 视频数据 WR-FIFO DDR3 控制器 3.总结 花了九牛二虎之力,搞定了1280*720@60HZ的AROI35采集,然后裁剪成1024*600后,与1024*600的1CD显示数据仲裁读写DDR(加入读写仲裁,且读数据优先,),最后得到的效果是这样的: 这里,我还是不解,易灵思的DDR控制器,如果是买的,那SynoPSyS应该是标准的AXI;或者如果是买的DDRPHY+自研的控制器,那应该至少遵循标准,为什么会出一个阉割版本的AX1接口呢? 百思不得其解,但这也无法阻碍我们前进。在不久的将来,我将写基于易灵思FPGA的MIPI相机采集显示开发详解。 黄飞
版权声明:本文标题:基于T35F324的FPGA开发板图像采集显示系统方案 内容由热心网友自发贡献,该文观点仅代表作者本人,
转载请联系作者并注明出处:https://www.elefans.com/xitong/1703901296a77053.html,
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
鲲鹏服务器运行windows系统 内容精选 换一换 当您发现云服务器的运行速度变慢或云服务器突然出现网络断开的情况,则可能是云服务器的带宽和CPU利用率过高导致。如果您已经通过云监控服务创建过告警任务,当CPU或带宽利用率高时,系统会自动发 将ros包移植到Windows 10系统 在移植之初,读者需要先在Windows系统中安装好ROS系统,本教程安装的melodic版本,为 Windows 构建 ROS 项 Linux和Windows系统下安装深度学习框架所需支持:Anaconda、Paddlepaddle、Paddlenlp、pytorch,含GPU、CPU版本详细安装过程 1.下载 Anaconda 的安装包 An 有用户将电脑系统升级到了windows11系统版本以后。觉得win11系统非常不好用,后悔升级。那么升级到win11还能退回win10吗?今天小编就针对用户不同的升级情况,给 问题描述 Windows系统目录下文件夹汇总。 总结 1、C:WINDOWSAll Users文件夹 所有用户文件夹,里面记录了Windows 98系统缺省登录时的桌机文件和开始菜单的内容。 在iOS系统,使用Url Scheme框架在APP间互相跳转和传递数据,本文只介绍如果检测和跳转。 Url Scheme框架 如果你想知道ios设备中是否安装QQ这个软件,我 1、镜像 2、Linux系统安装在虚拟机上安装,系统类型的选择 系统设置 硬盘:40G 内存:2G CPU:2核 Linux系统安装 3、搭建本地仓库# 创建目录,挂载镜像 mkdirdvd mountdevcdromd 虽然微软官方提供了方便的APP Store安装方式,和自动的命令安装方式,单由于国内限制因素,导致官方网速巨慢,而且很不稳定。 这不得不迫使我们探索一 目录 一、Java的各个常用版本:二、Java各个版本的通俗理解三、介绍完以上三个版本的区别之后,我们来介绍**Java SE开发工具包的下载方法**四、JDK的安装五、配置系统环境变量& 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 Windows查看139、445端口的方法二、关闭445端口的方法三、关闭139端口的方 Windows kerbores认证 目录下载MIT安装包修改krb5.ini配置用户名和密码认证测试keytab认证测试浏览器配置访问相关的webUI界面 目录 介绍windows如何使用用户名和密码进行kerbores认证 下载MI 文章目录 1. 按2. 软件介绍2.1. 界面预览2.2. 服务列表选项2.3. 功能特性 3. 使用说明3.1. 禁止自动更新3.2. 恢复自动更新 4. 软件下载 1. 按 Windows 10的自动更新最多只能暂停35天&# 一:Windows系统下将MAC系统的可执行dmg文件转换为ISO文件 1. Windows系统下载并安装UltraISO软件;UltraISO链接 2. 打开文件,选中下载 1.OpenCV官网,下载最新的版本是OpenCV4.1.0 https:opencv2.点击页面上的Release,进入网址 https:opencvreleases 可以看到最新的版本为OpenCV-4.1.0,点 1.安装Docker for Windows 下载 Docker官方下载地址 安装需要Windows10专业版或者企业版,其他或者之前的版本需要使用Docker Toolbox安装 安装完成后在cmd或powershell或gi 目录 为什么安装centos系统下载centos镜像centos官网centOS Linux和centOS Stream区别项目终止日期(EOL)上游 vs 下游CentOS LinuxCentOS Stream更新频率阿里云镜像源安装ce 漏洞影响的范围: WinRAR < 5.70 Beta 1Bandizip < = 6.2.0.0好压(2345压缩) < = 5.9.8.10907360压缩 1,下载JDK 从Oracle官网下载JDK安装包,我使用的版本是jdk1.8.0_161。 2,配置JDK环境变量 在C盘创建java文件夹,运行J 访问Python官网【https:www.python】 点击Windows 这里显示的就是Python2和3下载,我们选择3 翻到页面最底部,就会出现下载列表 这里我们点击进行下载 下载好的文件如图所示,双击运行 怎样把任意exe程序注册成windows系统服务(手动注册服务) 1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http:www.cr173softnwf4v/KWdcamera(umitcwuaκ⅛MMMOCPmMCCaMIDI. 更多相关文章
xp系统鲲鹏服务器系统重装,鲲鹏服务器运行windows系统
Windows 10下安装ROS系统并执行ROS功能包
Linux和Windows系统下:安装Anaconda、Paddle、tensorflow、pytorch,GPU[cuda12.4、cudnn]、CPU安装教学,多版本cuda11.2 自由切换
升级win11后怎么退回win10?保持原有win10系统不变
Windows系统目录下文件夹汇总
苹果iOS系统下检查第三方APP是否安装及跳转启动
linux安装oracle11g图形,完美简单详细,图形安装Oracle11g(Oracle Linux系统)
win10离线安装WSL2 Ubuntu20.04系统
(超详细)JAVA SE开发工具包(JDK)在Windows系统中的下载、安装和配置的方法
【Windows系统】查看和关闭139、445端口的方法
windows系统进行Kerberos认证并配置浏览器访问(MIT Kerberos Ticket Manager )
禁止系统更新 Windows Update Blocker v1.5 便携版
Windows系统下将MAC系统的可执行dmg文件转换为ISO文件 & 安装到虚拟机的MAC系统上
Win10(64位)系统中OpenCV4.1.0的下载及安装
在Windows10系统中使用Docker搭建gitlab-ce
如何在windows上安装centos单系统,以及安装事项和 centOS Linux和centOS Stream区别
2021-08-27 网安实验-Windows系统渗透测试之WinRAR代码执行漏洞
在windows系统中配置JAVA环境
2019.8 Win系统 从下载到安装 Python3 详细教程
怎样把任意exe程序注册成windows系统服务(手动注册服务)
推荐文章
热门文章
在Debian下安装输入法的过程
22小时前无影云电脑Linux如何修改密码
17小时前电脑系统的重装
12小时前如何高效调试代码
7小时前Mongodb从这里开始
7小时前Docker安装Harbor
2小时前Windows安装repo的真正解决方案
39分钟前最新文章
window redis版本下载
14分钟前自制 Windows Hello
15分钟前小米手机肿么还原时钟
1月前15000流明是多少瓦
1月前一般普通投影机功率多大?
1月前坚果V9投影机具体参数?
1月前80后90后_高一作文
2月前ZXMVC8900(V3
2月前
发表评论