《基于T35F324的FPGA开发板图像采集显示系统方案.docx》由会员分享,可在线阅读,更多相关《基于T35F324的FPGA开发板图像采集显示系统方案.docx(11页珍藏版)》请在第一文库网上搜索。
1、基于T35F324的FPGA开发板图像采集显示系统方案1.前言个人觉得易灵思的TriOn系列比钛金系列FPGA,就目前而言,更适合做图像显示相关应用,以T35和巨60为例,主要原因如下表所示:系列Trion钛金T35Ti60工艺40nm16nmDDR3硬核软核MIPI硬核软核功耗低更低易灵思如果专注图像细分领域,毕竟大部分客户还是用DDR和MIPI,因此我觉得钛金系列的架构真的脑袋被驴踢了,DDR和MIP1用硬核才是正确的选择!另外,钛金系列FPGA相对推出时间不够,目前IP也不成熟。以T35为例,DDR硬核IP在EfinityInterface中直接可以调用DDRIP并设定相关参数,但是钛金
2、系列Ti60还没有包含到工具链中,这让拿不到一手资源的FPGAer就很尴尬,虽然可以理解不集成到IDE中,可以更快的迭代前提不成熟的版本。TSTUT20T35TSSTBST120YJMMtIM3j。可nXn,1I.AJCRAM(Mft)nrMtauaxa4MIMI叼ISOIIP11WI3二大50r,IH2J01VM(TKW1)Mt1)IUOKMfefH1111ItAicujetWinIM1RiomEfin1tyT3SF324-CorV1.1一.M2XS1220230515兼容01MT拨动开关BMW0V5生0等模MIP1摄像头Jr兼容树莓派rOV5640M1P1TX/RX接口,山谷0.8mm40
3、P接口如上图所示,T35F324的FPGA开发板,我都做了快半年了,一直没有做一个基于视频图像的像样点的DCm0,甚是惭愧。为了给当下煎熬的大家送点福利,我打算分2步走,如下:DVP相机+DDR3+1VDS-1CD实时显示系统MIPI相机+DDR3+1VDS-1CD实时显示系统前者更关注DDR3硬核、1VDSTX,以及进行并口相机的配置与图像采集,完成实时图像采集、缓存、显示系统;后者则借用1)的基础,更关注MIP1相机的开发,进一步把易灵思FPGA进行图像采集的优势,发挥一下。当然这过程肯定还是有不少的坑,有些坑只有自己趟过,才有发言权。2.FPGA设计详解言归正传,我们开始干正事:基于T3
4、5的摄像头采集、存储、显示系统的介绍。首先是FPGA时钟网络这里涉及到DDR控制器的时钟,1VDSTX的快慢时钟,系统时钟,以及外设驱动时钟等,大致示意图如下:由于Trion的P11是能输出3个时钟,因此将2个P11都用上了,一个产生IOOMHZ的系统时钟,48/168M的1VDS慢/快时钟,另一个P11产生DDR的驱动时钟400MHz,以及外部饯感圈的驱动时钟27MHz.另外,还有一个从传感器输入的像素时钟74.25MHz,作为视频流的同步时钟。其次是硬核的配置这里用到了DDR与1VDSTX硬核。关于DDR硬核的使用,外部使用的是三星的K4B4G1646E-BYMA,4G16bit容量。在I
5、nterface中配置DDR控制器相关参数,如下图所示:04e1onhfiurxionAfMnced0p(SCirrt防MCoeNroMrtSe(tConAgiMMtonRewfK4H4SMfWMNyD9mtK4(MG1M61C1oseIMW1SDrm1ty1rwMMMn(FOMySen1ngModeeditormedOptiomContro1AHOAXIIg2ecoo也可以DiSabIe(nb*rQHibrMtonEruiMeUtefRnKEnabAeAesefCaHXWionMastetRM(RnNneDddv1RSTNOUtctRMetPimSequentvRpwtPinManwDdrr
6、i.CFC.SQ.RSTOSequence*SU1PinNjmeDdrar1CFG-SeQUAinOB1ockFdHtomContro1AXJoAn1:使融oAxiOOInveftAK1C1ockInputSturedRek1)BusMiimeDdrCtrIAADOROO其实软件包含了颗粒的型号,因此配置还是挺简单的,对于用户接口,InterfaCe提供的是标准的AX1接口,其他的都是在硬核中,用户不需要例化,非常的简单。关于1VDSTX的使用,主要是PORT的配置,以TXo为例,InterfaCe配置如下图所示:4MHz这里特别需要注意的是,P111设置tx_fastc1k时,需要90度响铃
7、;另外,Efinity的1VDS是1SB的,也就是先至1SB,这在InterfaCe的说明文档中有解释,如下图所示:MngDataandC1ockRe1atk)nshWidthof7(Para11e1C1ockDivis另外,在1024*6001VDS手册中,1VDS时钟有一定的相位关系,如下所示,在7bit数据传输时,时钟为I1ooOI18bit1VDSinput-:/i/,XXXDGDGDGXX)GGXXXXX)GXO(ZtZDCDCZ)GDGDGDGdC3Note:SupportDEtimingmodeon1y,SYNCmodenotsupported9,1cd.b1ueJ1cd-ree
8、n,t,1cd.redi1itw1rw1rwirevrir,1ed:1U1ue5i2ue;1_“,(gRa*1faMfgWM1gn1vKtvHIvIvds1vtta.C1k.DATAti_DATAU1DAMt2.OAfAtiQATAc(e1c(i(*I0.,dii)(tf2:9fd2(1j(O)1td(1)1SB所以如上这部分代码,如下所示:接着是相机的驱动目前采用的AROI35是车规常用的130万全局曝光黑白相机,成像质量非常好,相关的参数如下所示:AR0135AT13inch1.2MpCMOSD1aIKIImaqeSenSWitHGIobaTshuUerO*C0pUV,TheAIWUSAT
9、temON!*ua*iu1fp%eiarraofI2OQftO(VIi4pwdfarkm1rfNprrfamMetndfeuMHa0ota1IhUnaiorMnwf4v/KWdcamera(umitcwuammmoCPmMCCaMIDI.VMkdMk.acnf1rgpmode,andhrth、idMendMf0cframemdoItpt*ffwnaMMetv*am*M*wwrwtu1IeARDI3MTpr0nra04nan1dear,1arpmprm1tM.iouMmIuG3tUaMMaI*o3MIetaaae*Aet*IhrPCdK1chn*ivawtnrMse(V),ISMITBw*Cai
10、*.ArwMmcffFWOtArAVMMr”QBMSMV2C*URange4CWMfOutM*WOMmMM2MH1CUMParateiHSP1tt-MF*tmAmFmBRWMMgM*94JntvMt*t7VnsMCF)tnkM*aae8Nm7。DmacAWH1T1.rtPtRFOAMAMCSRM1AMETtRSORDERiMOMformatiom4MM*Mtat,.FMtMMM 0NSMMdMMtKIGCw(MMwct1vhMv Scf O*wIMI.,.II;:rra、-h1*hr SaaMgMarVmmm 79fOVtdvop0MMNB我曾在FPGA设计技巧与案例开发详解一书中详细介绍了如
11、何使用FPGA驱动CMOS摄像头,因此这里不再描述细节,给出框图如下:AROI35相机像素时钟1280*720视频流灰度图像采集CropSJ1024*6AX1读写模块传感器初始化这里在进行相机的初始化后,捕获输入的并行视频流数据;另外为了适配后面1024*600的1VDS1CD,再捕获数据后,直接Crop到1024*600分辨率。接着将数据送入AXI读写模块,将DVP转成AXI后写入DDRo最后是视频流的缓存与显示这一步其实和相机的数据缓存比较类似,无非是用一样的时序反着走一遍:即采用AX1从DDR中读取数据,转成并口后,送给后续的1CD驱动模块,再通过1vDS送给1CD显示,框图如下所示:1024*61VDS1CD最后,汇总整个时钟、DDR、相机、1CD驱动显示的框图,基于T35的摄像头采集、存储、显示系统,如下图所示:一12m25MrP112驱动时钟像素时钟、相机图像采集与CrOP传感器初始化-48M-168M400M-27M-1CD时序驱动AXI时序控制Pd1SOEU*pE*pMo-S由于该趟的坑,都已经趟过一遍了,这里我们不得不再静下心来再分析讨论一下,这个设计中遇到的最大的坑一一DDR3的AXI接口竟然是Share