基于USB3.0高速图像数据传输系统设计

  • 格式:pdf
  • 大小:2.09 MB
  • 文档页数:5

㊀2019年㊀第3期仪表技术与传感器Instrument㊀Technique㊀and㊀Sensor2019㊀No 3㊀基金项目:国家自然科学基金项目(61727804)收稿日期:2018-05-16基于USB3.0高速图像数据传输系统设计王国忠,刘㊀磊,储成群,任勇峰,焦新泉(中北大学,电子测试技术国家重点实验室,山西太原㊀030051)㊀㊀摘要:为了解决图像采集系统中实时数据的高速缓存与传输问题,提出了一种基于高数据带宽㊁大容量的DDR2SDRAM存储器和支持突发传输的USB3.0数据传输接口的设计方案㊂在硬件设计中,采用CYUSB3014作为USB3.0的控制芯片实现FPGA与上位机之间高速图像数据传输,以及采用DDR2SDRAM作为缓存器;在逻辑设计中采用手动DMA模式对数据流进行控制,避免数据的堵塞,提高了可靠性㊂经验证,该系统工作稳定,能有效解决海量图像数据的缓存与传输问题㊂关键词:高速缓存;DDR2SDRAM;USB3.0;手动DMA;可靠性中图分类号:TP274㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1002-1841(2019)03-0106-04DesignofHighSpeedImageDataTransmissionSystemBasedonUSB3.0WANGGuo⁃zhong,LIULei,CHUCheng⁃qun,RENGYong⁃feng,JIAOXin⁃quan(ScienceandTechnologyonElectronicTestandMeasurementLaboratory,NorthUniversityofChina,Taiyuan030051,China)Abstract:Inordertosolvetheproblemofcacheandtransmissionofreal⁃timedataintheimageacquisitionsystem,adesignschemebasedonhighdatabandwidth,largecapacityDDR2SDRAMmemoryandUSB3.0datatransmissioninterfacesupportingbursttransmissionwasproposed.Inthehardwaredesign,CYUSB3014wasusedasthecontrolchipofUSB3.0torealizehighspeedimagedatatransmissionbetweenFPGAanduppercomputer,andDDR2SDRAMwasusedasbuffer.Inthelogicdesign,theman⁃ualDMAmodewasusedtocontrolthedataflow,soastoavoiddatablockageandimprovereliability.Itisverifiedthatthesystemworksstablyandcaneffectivelysolvetheproblemofcacheandtransmissionofmassiveimagedata.Keywords:cache;DDR2SDRAM;USB3.0;manualDMA;reliability0㊀引言随着大数据智能化时代的到来,以及工业4.0的提出,智能化系统对图像分辨率的要求越来越高,即图像采集系统需要传输的数据量越来越大㊂数据传输的速度和缓冲区的大小是图像采集系统中非常重要的一部分,如果缓冲的速度与传输的速度不匹配的话,就会使数据丢失或者堵塞,因此需要对整个系统进行综合设计㊂1㊀总体方案设计系统总体方案设计如图1所示,由图像采集模块㊁数据处理模块㊁数据传输模块3部分组成㊂图像采集模块采集模拟数据,并转化为数字图像数据传输给数据处理模块;数据处理模块接收图像数据,经处理后转存到缓冲芯片DDR2SDRAM中,同时接收上位机下发命令,把数据实时上传;数据传输模块把数据上传到上位机软件进行图像显示,并负责上位机与FPGA之间的通信㊂本系统采用MT9P031图像传感器作为本系统数据采集模块,把高速图像数据实时上传给数据处理模块[1]㊂数据处理模块把数据重新编帧后转存到DDR2SDRAM中㊂数据传输模块采用USB3.0传输,把图像数据实时上传到上位机软件,在数据编码方面,USB3.0采用了安全性更高的8b/10b编码,使用这种编码方式可以保持电路中的直流平衡,从而提高可靠性;在逻辑设计中,采用手动DMA模式,提高了传输速度,同时提高了数据传输的正确率以及可靠性[2]㊂2㊀系统硬件电路设计2.1㊀FPGA硬件设计FPGA作为整个系统的硬件控制核心,是整个系统数据传输的中转站,其主要功能是实现各模块之间的数据交换和接口时序等协调控制㊂同时FPGA既要实现与USB控制芯片CYUSB3014连接,也要与DDR2连接,因此本系统选择I/O口丰富㊁内部资源多㊁处理速度快的EP3C40F484C6N作为控制中心㊂该芯片内部具有较多的RAM容量,利用IP核可以搭建逻辑控制模块,如FIFO缓冲模块,PLL锁相环等㊂㊀㊀㊀㊀㊀第3期王国忠等:基于USB3.0高速图像数据传输系统设计107㊀㊀图1㊀总体方案设计2.2㊀DDR2硬件电路设计本系统为了防止有效数据在FIFO中积累而丢失,设计了外置DDR2SDRAM缓冲模块,用来存储海量的图像数据㊂图2为DDR2与FPGA的硬件连接图㊂选用MT47H128M16RT-25EC作为DDR2的芯片,其内存为2Gbit,数据位宽为16bit,内部有8个块,能以内部控制总线4倍的速度工作,还能以外部总线4倍的速度进行读写操作㊂CK和CKN为时钟差分线,在他们的相交处均有数据传输,即在CLK的上升沿和下降沿均有数据传输㊂A[13:0]为列地址,BA[2:0]为块地址,对DDR2进行数据读写时,首先发送要读取或写入的具体地址㊂D[15:0]为16位数据线㊂CKE,ODT,CS分别为DDR2的控制信号线,对DDR2进行读写操作时,首先要激活时钟使能信号线(CKE)和片选信号线(CS),ODT为一种新技术叫片内终结电阻,通过控制该信号,来实现对匹配电阻的值及其开关状态进行控制,从而达到读写信号的完整性㊂RAS,WE,CAS为命令信号线,通过这3条命令FPGA控制图2㊀DDR2与FPGA硬件连接图DDR2的读写㊂采用UDQS和UDQSN㊁LDQS和LDQSN作为双向差分信号线,写数据时由FPGA发出,读数据时由DDR2发出,可以减少信号间串扰的影响,同时减少信号输出脉宽对工作电压和温度稳定性的依赖㊂UDM,LDM在进行突发传输时,可屏蔽掉不存储的数据[3]㊂2.3㊀USB3.0的硬件电路设计本系统采用CYUSB3014作为USB3.0的控制芯片,该芯片具有高度集成的灵活特性,具有一个可进行数据并行读写的通用可编程接口GPIFⅡ,其内部同时集成了USB3.0和USB2.0物理层(PHY)以及32位ARM926EJ-S微处理器,具有强大的数据处理能力㊂GPIFⅡ接口可进行8位㊁16位㊁32位数据传输,可实现与FPGA之间无缝连接;GPIFⅡ为一种可编程状态机,其接口即可作为主控制器也可作为从器件,并行和串行接口均可通过该接口实现㊂本系统将CY⁃USB3014配置为32位并行的SLAVEFIFO模式,实现与FPGA之间的高速图像数据传输,FPGA通过GPIFⅡ接口可访问其内部32个缓冲区[4]㊂图3为USB3.0周围的硬件电路㊂如图3所示,GPIFⅡ的32位数据总线直接与FPGA的I/0口相连,而在CYUSB3014内部GPIFⅡ直接连接到了DMA通道上㊂SLCS为片选信号,系统开始工作时被激活㊂PKTEND为短包数据发送结束信号,当一包数据结束时该信号有效㊂FLAGA和FLAGB为DMA通道对应的缓冲区空满状态的标志信号,由CYUSB3014芯片发出,FPGA接收㊂SLWR为写使能信号,当通过USB3.0读取数据时,该信号使能有效,GPIFⅡ随之将数据通过DMA通道存入到对应的缓冲区中㊂SLOE为读使能信号,即FPGA发出读请求时,该信号使能有效同时驱动数据总线DQT翻转㊂A(1ʒ0)为线程选择信号,通过改变它的数值,对GPIFⅡ内部的4个独立进程进行选择,从而实现选用那个DMA通道进行数据传输㊂㊀㊀㊀㊀㊀108㊀InstrumentTechniqueandSensorMar2019㊀图3㊀USB3.0硬件电路图SLRD为读请求信号,当该信号有效时,FPGA读取GPIFⅡ接口的数据㊂PCLK与FPGA的CLK相连,提供最高可达100MHz的接口频率㊂图3中的24FC1025T-I/SN是容量为1024KB的EEPROM,用于存储USB3.0的固件程序,通过I2C总线与CYUSB3014相连㊂而I2C总线是由一条数据线和一条时钟线构成,根据I2C总线规范,总线空闲时必须为高电平,所以本设计通过2.21kΩ电阻连接至3.3V电源上拉㊂NCP361SN1G为过压保护芯片,CYUSB3014的VBUS引脚的最大输入电压为6V,而在USB接口上VBUS的供电电压最大可达9V,因此为了保护CYUSB3014的VBUS免受损坏,本设计增加了过压保护芯片㊂同时为了使输入电压稳定,在VBUS串联一个2.2μH的电感㊂使用2.2μH的电感与105电容并联,同时将USB插座上的 屏蔽 引脚接地,实现隔离屏蔽的作用㊂本系统选用四通道的SP3010-04UTG作为SSRX+㊁SSRX-㊁SSTX+㊁SSTX-的外部ESD器件,它具有高性能㊁低电容的特性,其保护电平为ʃ8kV接触放电和ʃ15kV气隙放电[5]㊂3㊀逻辑设计3.1㊀DDR2读写逻辑设计DDR2SDRAM的读写控制是整个系统的关键㊂在系统上电后,DDR2SDRAM内部需要进行一系列复杂的初始化操作,才能开始正常工作㊂具体操作为:预充电ң空命令ң配置外部寄存器ң空命令ң配置内部寄存器ң预充电ң空命令ң自动刷新ң空命令ң开始接收命令㊂在正常开始工作,每次读写切换和行㊁块地址变化时,必须通过预充电来关闭当前读写的存储单元,同时在进行新的操作时,需要先激活要读写的存储单元所在的地址[6]㊂由于DDR2SDRAM只有一套数据㊁地址和控制总线,在某一时刻只能读或者写,因此本文采用输入FIFO和输出FIFO对DDR2SDRAM进行分时复用读写控制[7]㊂DDR2SDRAM的读写逻辑控制如图4所示,通过判断DDR2SDRAM内部的控制信号,来控制FIFO的读写㊂当上位机发出采集命令时,图像采集前端配置完寄存器之后开始采集图像数据,DDR2SDRAM控制器通过监测场同步信号的到来,把图像数据不断存入输入FIFO中,当FIFO中达到一次突发传输数据量2KB时,DDR2SDRAM控制器发出写命令,并一次性读完输入FIFO中的所有数据,DDR2SDRAM控制器不断监测输入FIFO的数据量并发出写命令㊂因为图像数据有场消隐和行消隐的时间,在图4㊀DDR2逻辑设计图㊀㊀㊀㊀㊀第3期王国忠等:基于USB3.0高速图像数据传输系统设计109㊀㊀此期间对DDR2SDRAM进行写操作,且写的速率比较快,因此在一定系统时钟条件下,图像采集前端不会出现数据堵塞㊂当上位机发出读取数据的命令时,DDR2SDRAM控制器首先检测输入FIFO的状态,在空信号有效时DDR2SDRAM一次性向输出FIFO写入2KB数据,此时用户通过输出FIFO进行数据读取㊂当FIFO中的数据即将读完时,DDR2SDRAM一次性向输出FIFO写入2KB数据,然后通过USB3.0把图像数据不断上传到上位机,其实际传输速度达390MB/s,因此不会出现丢数的情况㊂3.2㊀USB3.0数据传输的逻辑设计本系统采取手动DMA传输模式,用来将GPIFⅡ接口连接至内部缓冲器和USB3.0数据传输接口,通过手动DMA模式可以控制图像数据的传输速度,从而保证了数据的可靠传输㊂该模式可以把其中2个线程中共32个缓冲器分别分配到输入和输出DMA通道上,缓冲器的容量通过USB3.0的传输速度来设置㊂图5为DMA通道的设计图[8]㊂如图5所示,设计中只用了GPIFⅡ4个线程中的2个,线程0和线程1,并且采用了默认的对应关系,套接字0与线程0相对应;套接字1与线程1相对应[9]㊂线程的切换是FPGA通过控制USB_A0和USB_A1信号来实现,当为00时,选择线程0;当为01时,选择线程1㊂套接字是外部硬件与内部缓冲区之间的桥梁,即套接字可以看作是外设的接口,每个硬件模块有其固定的图5㊀DMA通道的设计图套接字㊂其中每个描述符存有缓冲区的地址和缓冲区的容量,以及指向下一个描述符的指针㊂在逻辑设计中,将USB_FLGA和USB_FLGB均设置为低电平有效,故当其为低电平时,它们指示缓冲区进入满状态[10]㊂本设计FPGA通过从设备FIFO控制USB3.0进行突发传输,图6为32位数据总线突发传输的逻辑分析仪截图,在突发传输过程中,为了保证数据连续输出,USB_RD和USB_OE始终保持有效,只要一行图像数据写入完成,就对DDR2SDRAM进行读操作㊂这样一来DMA缓冲区就不会出现满状态,即整个过程USB_FLGA和USB_FLGB一直为高电平,为了避免DMA通道的失锁以及对上次数据的清空处理,本设计采用了每次重新写入数据时,再次激活GPIFⅡ接口的思想,即USB_CS信号在USB_WR从低电平变为高电平时,重新被激活㊂图6㊀突发传输的逻辑图4㊀结果分析及验证本系统图像采集模块采集到的图像分辨率为2048ˑ1536,帧频为21fps,且显示为256级8位灰度图像,因此每秒采集的数据量为63MB(2048ˑ1536ˑ21B)㊂DDR2工作在125MHz时钟下,其传输速度峰值高达500MB/s(125MHzˑ2Bˑ2),通过逻辑分析仪发现突发传输1行图像数据需要512个系统时钟,而DDR2自动刷新㊁预充电㊁状态信息等消耗50个系统时钟,因此DDR2实际平均数据吞吐量为500MB/sˑ512/(512+50)ʈ456MB/s㊂USB3.0数据传输速度为390MB/s,通过理论分析,本系统可以正常工作㊂而且经过长时间重复测试,在没有上位机引起其他开销的情况下,采集的图像如图7所示㊂其画面清晰㊁流畅,且实时性较好,证明了本系统能够实时进行图像数据上传,且稳定可靠㊂5㊀结束语本设计中,采用了占用资源少㊁支持热插拔㊁可连接多个设备的USB3.0数据总线和缓冲速度快的DDR2缓冲器,设计了高速图像传输系统,大幅提高了图像数据的传输速度和存储空间,在逻辑设计中采用了手动DMA模式,实现了海量图像数(下转第113页)㊀㊀㊀㊀㊀第3期马灵威等:水中总磷小型自动化检测系统的关键技术研究113㊀㊀图6㊀磷酸盐检测标准工作曲线表1㊀系统重复性的测量结果序号0.5mg/L磷酸盐的测量值相对偏差/%10.498-0.420.493-1.430.471-5.840.519+3.850.470-6.04㊀结论本文基于钼酸铵分光光度法,设计了基于朗伯比尔定律的总磷光学检测系统,实现了对磷酸盐溶液的准确检测;基于顺序注射法,设计了重复性好㊁试剂消耗量少的流路控制系统,可以实现溶液的自动进样和流动检测㊂研究了温度对光学检测系统的影响,对日后应用于在线监测具有参考意义㊂最后,对系统进行了曲线标定和重复性测量的实验,实验结果表明,研制的总磷自动化检测系统具有良好的线性和重复性,并且具有体积小㊁操作简单㊁试剂消耗量少的优点,对总磷的在线监测具有重要意义㊂参考文献:[1]㊀BAIY,TONGJH,BIANC,etal.Microcobaltelectrodesfordetectionoftotalphosphorusinwater[J].MicroNanoLett,2012,7(12):1176-1179.[2]㊀应海佳,杨慧中.总磷在线检测技术的探索[J].光谱实验室,2012,29(2):912-917.[3]㊀陶艳,王利丹,刘卫海等,在线水质分析仪器应用技术的前景[J].现代工业经济和信息化,2015(12):70-71.[4]㊀DONGT,TONGJH,BIANC,etal.Experimentalstudyandkineticanalysisofoxidant-freethermal⁃assistedUVdiges⁃tionutilizingsupportednano-TiO2photocatalystfordetectionoftotalphosphorous[J].ChineseJ.Chem.Eng.,2015,23(1):93-99.[5]㊀LIL,BIANC,TONGJH,etal.UVC-thermalcoupleddiges⁃tionwithoutoxidantforthedetectionoftotalphosphorus[J].KeyEngineeringMaterials,2015:645-646,847-852.[6]㊀谷晓明,郝龙腾,王庆飞,等顺序注射平台-分光光度法测定水中总磷[J].中国环境监测,2014,4(30):151-154.[7]㊀魏康林,魏宁,陈明.基于超声辅助消解与光谱分析的水质总磷快速在线监测系统[J].化工自动化及仪表,2015,42:530-536.[8]㊀ESTELAM.Flowanalysistechniquesforphosphorus:anoverview[J].Talanta,2005,66:307-331.作者简介:马灵威(1992 ),硕士研究生,主要研究方向为微纳生物化学传感器与系统㊂E⁃mail:malingwei1992@163.com通讯作者:边超(1978 ),副研究员,博士,主要研究领域生化微传感器㊁微电子机械系统等㊂E⁃mail:cbian@mail.ie.ac.cn(上接第109页)据的传输,确保了高清图像的实时显示㊂图7㊀图像截图参考文献:[1]㊀周剑敏,谢文雷,葛斌,等.基于ECP3的视频采集系统硬件设计[J].科技资讯,2014,12(4):12-14.[2]㊀王健.基于USB3.0的高速数据传输系统关键技术研究[D].太原:中北大学,2014.[3]㊀陈雨,陈科,安涛.高速图像处理系统中DDR2-SDRAM接口的设计[J].现代电子技术,2011,34(12):104-107.[4]㊀郑志波,江贵平.基于USB3.0高清内窥镜摄像系统的设计[J].电子技术应用,2016,42(3):67-70.[5]㊀匡鹏,刘冲,王永纲.基于FPGA和USB3.0的通用数据传输系统设计[J].微型机与应用,2017,36(7):26-28.[6]㊀韩刚.用于高速图像处理的DDR2SDRAM控制器[J].西安邮电大学学报,2015,20(4):58-61.[7]㊀刘杰,赛景波.基于DDR2SDRAM乒乓双缓冲的高速数据收发系统设计[J].电子器件,2015,38(3):650-654.[8]㊀宋中喆,裴东兴,杨少博.基于USB3.0接口的高速数据传输系统设计[J].现代电子技术,2017,40(4):159-162.[9]㊀杨翠翠,朱向东,李帆.基于USB3.0协议的PC与FPGA通信系统的设计[J].电子科技,2014,27(10):136-138.[10]㊀岳孝忠,裴东兴,王健.基于USB3.0接口高速数据采集系统的设计[J].电子器件,2015,38(1):140-143.作者简介:王国忠(1993 ),硕士研究生,研究方向为数据采集存储㊂E⁃mail:1032309619@qq.com刘磊(1985 ),硕士,工程师,现从事自动控制领域研究㊂。