当前位置:首页 > EDA > 电子设计自动化
[导读]在高速图像采集系统中,CPU时钟资源、I/O端口资源、传输单元等都成为系统的瓶颈。本系统采用FPGA+RAM+USB的设计:FPGA硬件采样模块,有效降低采样时延和CPU时钟资源;独特的RAM时序控制与读写控制分离设计,增加了模块之间的独立性,降低了控制的复杂度;USB设计在实现高速率数据传输的同时又具有低成本、易安装等优点。

引 言
   
在低速的数据采集系统中,往往采用单片机或者DSP进行控制;而对于图像采集这种高速数据采集的场合,这种方案就不能满足需要。因此这种方案极大浪费了单片机或DSP的端口资源且灵活性差;若改用串口方式收集数据,则一方面降低了数据采集的速度,另一方面极大地耗费CPU的资源。本系统采用FPGA作为数据采集的主控单元,全部控制逻辑由硬件完成,速度快、成本低、灵活性强。为了增加缓冲功能,系统在FPGA外扩展了256Mb的RAM,不仅增大了缓冲区容量,而且极大地降低了读写频率,有效地减轻了上位机CPU的负担。在图像数据接口中,比较常见的是VGA、PCI—Express,而这些接口扩展性差、成本高。本系统采用高速的USB接口作为与上位机通信的端口,速度快、易安装、灵活性强。


1 系统框图
   
系统框图如图1所示。FPGA控制单元采用A1tera公司Cyclone II系列的EP2C5F256C6,主要由4个部分组成——主控模块、CMOS传感器接口、RAM控制器以及EZ—USB接口控制器。传感器接口负责完成SCCB时序控制,RAM控制器用于实现RAM读写与刷新操作的时序,USB接口模块完成主控模块与EZ—USB之间的数据读写;而主控模块负责对从EZ—USB部分接收过来的上位机命令进行解析,解析完命令后产生相应的信号控制各个对应模块,如CMOS传感器传输的图像格式、RAM的读写方式、突发长度等。


2 OV7620模块设计
    图像传感器采用OV7620,接口图如图2所示。该传感器功能强大,提供多种数据格式的输出,自动消除白噪声,白平衡、色彩饱和度、色调控制、窗口大小等均可通过内部的SCCB控制线进行设置。OV7620属于CMOS彩色图像传感器。它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;最高像素为664×492,帧速率为30fps;数据格式包括YUV、YCrCb、RGB三种。0V7620支持SCCB设置模式和自动加载默认设置模式,其选择由SCCB控制。本系统只需要支持SCCB模式,因此在设计的时候将SBB接地。上电后FP—GA通过SCCB总线对OV7620进行设置,系统也可接受上位机发过来命令,设置其工作模式。SCCB总线时序类似于I2C总线时序,SIO一O相当于SDA,SIO一1相当于SCL。OV7620工作于从模式,在写寄存器的过程中先发送OV7620的ID地址,然后发送写数据的目的寄存器地址,最后发送要写入的数据。

    OV7620功能寄存器的地址为0x00~0x7C,通过设置相应的寄存器,可以使它工作于不同的模式。例如,设置OV7620为连续扫描、RGB原始数据16位输出方式,需要设置寄存器0x12、Oxl3、Ox20、Ox28分别为OX2D、0x01、Ox02、0x20。另外,图像输出的关键问题是帧同步,VO7620传感器中VSYNc、HSYNC、HREF、PCLK分别表示垂直同步、水平同步、参考信号和像素输出同步,可以通过它们之间的配合使用,定位出每帧输出图像的起始位和结束位。

3 RAM时序控制模块
    RAM控制器接口主要用于实现RAM的基本操作时序,如充电(刷新)时序、模式设置时序、读写时序等。读写命令由主控模块发出,由控制器具体执行。系统采用Hy—nix公司的HY57V561620F(L)T(P),可实现256 Mb的大容量数据存储。
    时序控制器由一个有限状态机(FSM)实现,其状态转换图如图3所示。加电复位200μs后,对RAM的所有块进行预充电,充电操作的引脚电平如表1所列。充电完成后经tRP刷新所有块,延迟tRFC后进入模式设置状态。在模式设置状态中,需要对RAS延迟、突发长度等进行设置,延迟tMRD后进入空闲状态,等待主控单元的读写命令。在空闲状态中,每隔64 ms需要对RAM中所有行刷新。在本设计中定时刷新模块设计成一个计数器,计数脉冲选自控制器本身的时钟。由于RAM要求两次刷新的最大时间间隔不超过64 ms,假设系统的时钟频率为1O0MHz,则时钟周期约为0.01μs,并且要在64 ms内要完成全部8 192行的刷新,所以最大计数应该为781次(64 ms/8192/0.01μs)。系统采用700次的计数脉冲产生刷新请求。

    RAM控制器的读写地址与读写控制信号均由主控单元产生,主控单元结构框图如图4所示。PLL用于产生RAM控制器和缓冲区的时钟(系统设计为100 MHz);CMD命令解析模块实现对上位机发送过来的命令解析并产生相应的控制信号,如CMOS传感器控制、RAM突发长度控制等。为了降低读写RAM的频率,系统设计了一个8×16位的FIFO。当8个像素的数据存入FIFO后,FIFO向RAM控制器发送写请求(W_req);与此同时,写地址发生器产生写地址,由RAM控制器产生写数据的时序。读写地址发生器是一个递增的计数器,每次的读写地址是上次的地址加BL(突发长度)。由于PCLK的最高频率可达9.2 MHz(640×480×30),而RAM的时钟频率是100 MHz,每次写入一个像素的数据需要5个时钟周期(考虑RAS延迟),这样写操作耗费整个时钟周期的50%;加入FIF0后,读写的突发长度均是8,可降低耗费的时钟周期至10%左右。


4 EZ—USB传输控制器
    CY7C68013是Cypress公司的EZ—USB FX2系列芯片,引脚连接图如图5所示。该系列芯片集成了USB2.O收发器、串行接口引擎(SIE)、带8.5 KB片上RAM的增强型8501、16 KB的RAM、4 KB的FIFO存储器、I/O口、数据总线、地址总线和通用可编程接口(GPIF);共有3种接口模式——端口模式、从属FIFO接口模式和GPIF接口模式。在端口模式下,所有I/O引脚都可作为805l的通用I/O口,作为最基本的数据传输模式,其数据传输主要由固件程序完成,需要CPU的参与,因此数据传输速率比较低。在从属FIFO接口模式下,外部逻辑或外部处理器可以直接与FX2端点FIFO相连。GPIF接口模式使用PORTB和PORTD构成通向4个FX2端点FIF0(EP2、EP4、EP6和EP8)的16位数据接口。GPIF作为内部的主控制器与FIFO直接相连,并产生用户可编程的控制信号与外部接口进行通信。后两种模式数据的传输通过执行USB本身的协议来完成,微处理器不参与数据传输,从而使数据的传输速率大大地提高。

    本方案采用从FIFO方式,由FPGA提供读写时钟,EZ—USB的CPU不参与数据传输。其中端点FIFO相当于FPGA的外部RAM,数据的读写分别由读写控制器完成。如果数据从EZ_USB读入到FPGA中,首先要检测CON控制线的状态,若有数据要读,分配FIFOADR=00,使FIFO指针指向输出端点,使能SLOE使之数据输出,然后采样数据线上的数据,读得的数据送入命令解析模块解析;如果是数据从FPGA写入到EZ_USB中,则设置FIFOADR使之指向输入端点,拉低SLWR,将内部数据总线接到外部数据总线上,这样就完成了一次数据的写入。
    除上述设计外还需要对EZ_USB模块本身进行设置,这部分属于固件开发部分。Cypress公司为固件开发提供了一个固件库和固件框架,都是在集成开发环境下开发的,固件库提供了一些常量、数据结构和函数来简化用户对芯片的使用。将代码在Keil C51环境中进行编译;编译通过后,将固件代码下载到单片机中。这部分主要完成相关寄存器的设置和波形文件的编写。

结 语
    通过以上设计很好地解决了高速数据在采样、传输过程中的瓶颈,并以很短的时延真正实现了高速图像数据的采集。由于其低成本、易安装的特性,拥有广阔的市场前景,可以应用于电话会议、远程医疗和远程教学等需要高清图像传输的领域。本设计的创新点在于,它适应了不同的图像数据的应用需求,实现了多种速率的读写模式,可以是实时的突发长度读写和高速的全页读写。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭