基于FPGA的线阵CCD图像采集与显示系统设计*

2016-03-18 05:41周敬东沈飘海
电子技术应用 2016年6期
关键词:双口子系统芯片

周敬东,沈飘海,王 雷

(湖北工业大学 农机工程研究设计院,湖北 武汉 430068)

基于FPGA的线阵CCD图像采集与显示系统设计*

周敬东,沈飘海,王 雷

(湖北工业大学 农机工程研究设计院,湖北 武汉 430068)

色选机广泛应用于工农业产品检测中,其设计技术涉及图像采集、处理与显示,常见的设计方案为FPGA+ DSP/ARM+PC。该方案结构复杂,成本高昂。设计了一种在FPGA中实现线阵CCD图像信号采集并显示的系统。添加图像处理算法后,色选机的主要设计技术将被集成在一片FPGA芯片中。详细阐述了图像采集与显示的逻辑设计,并通过软硬件调试验证了设计的正确性。该系统结构简单、成本低廉,经过适当移植,可应用于安检、医疗影像等领域。

FPGA;线阵 CCD;图像采集;图像显示

0 引言

伴随着半导体制造工艺的进步,现场可编程门阵列(Field Programmable Gate Array,FPGA)器件的设计技术也取得飞跃性的发展[1]。凭借日益丰富的片内资源以及固有的并行处理能力,FPGA的应用范围已经超出通信行业,逐渐扩大到数字信号处理、硬件加速[2-4]、汽车电子等领域。色选机通过对被测物体的图像进行处理,判断被测物体是否符合要求,实现筛选[5],其电子系统涉及图像采集、信号处理、图像显示、串口通信等。FPGA可实现上述功能。与常见的FPGA+ARM/DSP+PC方案相比,在 FPGA内实现图像采集、处理与显示可简化色选机系统结构,提高经济性。本设计搭建了实现图像采集、图像处理与图像显示的完整的硬件平台,完成了图像采集与图像显示的逻辑设计,并预留了充裕的 FPGA片内资源,留作图像处理模块使用,具有较高的实用性。

1 系统设计

如图1所示,本系统由图像采集子系统与图像显示子系统组成。图1中大虚线框内的各模块均为FPGA内部逻辑设计模块,细箭头表示控制信号流向,空心粗箭头表示图像信号流向。采集子系统包括RS232通信芯片、总线缓冲器、线阵电荷耦合器件(Charge Coupled Device,CCD)传感器、CCD缓冲放大器、CCD模数转换器、双口随机存取存储器(Random-Access Memory,RAM)模块和图像采集模块。显示子系统包括同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)、视频解码芯片、视频图形阵列(Video Graphics Array,VGA)监视器、图像缓存模块和图像显示模块。顶层控制模块统一控制图像信号的采集、缓存与显示。下文分别就两个子系统进行阐述。

图1 系统组成

1.1 图像采集子系统设计

图1中,CCD采用东芝公司生产的TCD2566BFG彩色线阵图像传感器。该型传感器灵敏度高,暗电流小,采用两相 5 V时钟脉冲驱动,含有 3行彩色光电二极管阵列与1行黑白光电二极管阵列,每行阵列中光电二极管数量为5 340个[6]。FPGA采用Altera公司生产的Cyclone III型 EP3C5E144C8芯片。该芯片内含 5136个 LE、46个M9K Block、23个乘法器,以及 414K片内 RAM[7]。串口通信芯片为MAXIM公司生产的MAX3232。

图像采集模块完成采集子系统的核心功能——驱动CCD传感器。该模块接收外界指令,配置CCD行频及每英寸点数(Dots Per Inch,DPI),产生 CCD时钟脉冲与控制信号。模块由驱动子模块、单口RAM子模块以及RS232子模块构成。驱动CCD传感器前,应先在驱动子模块内设置好CCD的行频与DPI。设置过程如下:单口RAM加载.mif文件进行初始化,在不同的地址预存不同的配置信息。用户根据实际需要,通过RS232子模块,向单口RAM子模块发送不同的读取地址。读取出的不同配置信息传输至驱动子模块,驱动子模块据此向 CCD传感器发送不同频率的时钟脉冲,达到改变行频与 DPI的目的。参照CCD技术手册,驱动子模块还产生CCD传感器所需的控制信号,经过总线缓冲器传输给 CCD传感器,实现驱动。驱动 TCD2566BFG需要10路信号,如图2所示。

图2 TCD2566BFG时序图

图2中,SW1为彩色模式与黑白模式选择信号;SW2为时间延迟积分(Time Delay Integration,TDI)功能选择信号;SCG为存储清除栅(Storage Clear Gate)脉冲信号;SH为转移栅(Shift Gate)脉冲信号,其为高电平时,转移栅下势阱允许 MOS电容中的信号电荷包转移到模拟移位寄存器中,为低电平时,二极管进入光积分状态[8]。时钟 Φ1A与 Φ2A为三行彩色光电二极管阵列的驱动时钟,频率均为35 MHz,相位差为180°。时钟Φ1B与 Φ2B为一行黑白光电二极管阵列的驱动时钟,CCD工作在彩色模式时维持低电平。Φ1A、SCG、SH、RS、CP可利用计数器产生其波形。对 Φ1A取反可得 Φ2A。复位信号 RS与电平钳制信号 CP的占空比为1:8。关键源代码如下(pixel_counter为140 MHz时钟下的18位计数器):

CCD被正常驱动后,产生的模拟图像信号,经过缓冲放大器传输至CCD专用模数转换器AD9945。AD9945完成图像信号的模数转换,并将采集到的一行数字图像信号写入片内双口RAM中。至此,采集子系统完成CCD图像信号的采集。

1.2 图像显示子系统设计

显示子系统中,图像缓存模块与图像显示模块完成显示子系统的核心功能,即缓存图像与显示图像。图1中,SDRAM采用 Hynix公司生产的 HY57V64820HG芯片,位宽 8 bit,内含 4个 Bank,总存储空间为64 MB,用于缓存双口RAM输出的图像信号[9]。视频解码芯片采用Analog Devices公司生产的 ADV7123KSTZ140,最高数据吞吐率为330 MS/s[10],可将数字图像信号转换为VGA标准时序的模拟图像信号。

1.2.1 图像缓存模块逻辑设计

当CCD传感器工作在300DPI模式下且行频为3 500 Hz时,其每秒钟产生的数据量为9.345 MB,小于 VGA(1366×768@60Hz)每秒钟显示的数据量73.764 MB,因此有必要对CCD图像数据进行缓存,当缓存的图像数据达到VGA一帧的数据量时,再将数据发送至视频解码芯片进行显示。显然,FPGA片内 RAM无法提供足够的存储空间,使用片外SDRAM很有必要。

图像缓存模块内含图像裁剪、片内FIFO以及SDRAM控制器3个子模块。

在缓存图像之前,需要对图像信号进行裁剪,使其符合VGA标准时序。TCD2566BFG传感器工作在300DPI模式下,输出图像一行像素点数量为2 670,工作在600DPI模式下,一行像素点数量则为5 340。对于1 366× 768分辨率的监视器,每行能够显示的最大像素点数量为1 366点。为此,对双口RAM输出的图像数据进行了裁剪:即300DPI模式下,每读取双口RAM数据一次,读取地址递增 2;600DPI模式下,每读取一次数据,读取地址递增4。经过裁剪后,实际显示的图像每行为1 335像素,在首尾各添加15点空白像素后,图像信号符合VGA显示标准时序。采用多监视器或高分辨率监视器显示,也可以解决 CCD图像与监视器每行像素点数量不同的问题。

图像信号从双口 RAM输出的时钟频率是40 MHz,而SDRAM读写数据的时钟频率为100 MHz。因此,在SDRAM控制器两端各例化一片异步先进先出(First In First Out,FIFO)存储器,实现图像数据的异步读写。SDRAM工作在页读写模式,突发长度512 B。读写FIFO位宽 8 bit,深度1 024 word,利用其先入先出与可同时读写的特性,可实现一帧图像的持续写入与读出。图像缓存模块的工作流程如图3所示。

图3 FIFO与SDRAM读写流程图

图像经过裁剪后,即可传输进SDRAM内。SDRAM正常读写数据前必须进行初始化,以设置突发长度、列地址控制器(Column Address Strobe,CAS)潜伏期和操作模式。SDRAM初始化完毕后,即拉高wrfifo的写使能。图像数据以 40 MHz的频率从双口 RAM向 wrfifo写入,直到写完一帧 VGA图像后才拉低 wrfifo写使能。当 wrfifo内部数据大于 512 word(半满)时,则拉高 wrfifo的读使能,读出图像数据,以100 MHz的频率写入 SDRAM。SDRAM完成一页(512 B)数据的写入后,暂时关闭 wrfifo的读使能以及SDRAM的写使能,当 wrfifo内部数据量再次大于 512 word时,则再一次读取数据,写入 SDRAM。重复该过程,持续向SDRAM写入图像数据。SDRAM内部写满一帧图像后,开始读SDRAM过程。检测rdfifo内部数据量,小于 512 word时,拉高 SDRAM读使能,以100 MHz频率向rdfifo写入图像数据。读完SDRAM内一页数据时,暂时关闭SDRAM读使能以及rdfifo写使能,等待VGA显示请求。收到 VGA模块的显示请求后,拉高rdfifo的读使能,数据以 85.5 MHz的频率传输至显示模块。凭借FPGA的并行特性,缓存模块在每一个时钟上升沿都可检测 rdfifo的内部数据量。在 rdfifo读出数据到VGA过程中,一旦检测到rdfifo内部数据量小于512 word,即拉高 rdfifo的写使能,在读取数据的同时,写入数据。上述过程可实现一帧图像数据的连续写入和读出。由于系统采用的 SDRAM无法同时进行写和读两种操作,因此本文采用了两片 HY57V64820HG进行乒乓操作:SDRAM1进行读出操作,向ADV7123KSTZ140输出信号时,SDRAM2则从双口RAM写入数据;反之亦然。通过乒乓操作,实现了图像帧与帧之间的连续传输。

1.2.2 图像显示模块逻辑设计

VGA是IBM公司于1987年提出的一个使用模拟信号的显示标准。在1 366×768@60 Hz模式下,扫描一帧图像需要16.7 ms,其中实际显示图像的时间为12.3 ms。图像扫描过程从左往右,从上往下。设置一个计数器记录扫描的位置。当扫描至一行图像的左端点时,则开始将一行图像信号传输至视频解码芯片,扫描至右端点时,则停止图像信号的传输。纵向扫描的原理与此相似。图像显示模块还生成视频解码芯片需要的时钟脉冲、行场同步信号以及消隐信号。图像显示模块关键源代码如下:

2 软硬件综合调试

利用 FPGA集成开发环境 QuartusII11.0软件自带的 Signal Tap工具,可以检测 FPGA内部信号的真实值。将逻辑设计的顶层模块文件在 QuartusII11.0软件中全编译,生成.sof文件,利用JTAG接口将文件烧录进FPGA在线调试。驱动模块输出的驱动信号以及双口 RAM输入的数字图像信号如图4所示。对比技术手册时序图,Signal Tap抓取的信号表明,驱动线阵CCD所需的10路信号被正确地产生了。结果如图4中的DATA_R、DATA_G、DATA_B信号所示,FPGA成功接收到了由线阵CCD产生的数字图像信号。图像采集子系统完成了设计目标。图像在监视器上显示结果如图5所示。线阵 CCD传感器需以特定速度扫描被测物体才能得到二维图像。测试中,被测物体油茶果匀速通过 CCD传感器下方,CCD传感器保持固定。显示设备为通用即插即用监视器,分辨率1 366×768。显示画面稳定,无失帧,无噪点。

图4 Signal Tap信号截图

图5 图像信号显示效果

3 结论

Signal Tap抓取的信号波形和监视器显示的画面表明系统基本上实现了设计目标,即使用FPGA芯片完成CCD图像信号的采集和显示,证明了系统软硬件设计的正确性。全编译结果显示,FPGA内部 LE只使用了44%。利用剩余的资源,可以对图像信号进行图像处理,处理结果通过串口传输至筛选执行机构,执行筛选动作。配合不同的 CCD传感器,该系统可广泛应用于安检、医疗影像、遥感测绘等领域,具有较高的实用价值。

[1]杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息学报,2010,32(3):714-727.

[2]RUBIN G,OMIELJANOWICZ M,PETROVSKY A.Reconfigurable FPGA-based hardware accelerator for embedded DSP[C].14th International Conference on Mixed Design of Integrated Circuits and Systems,2007:147-151.

[3]POSSA P,SCHAILLIE D,VALDERRAMA C.FPGA-based hardware acceleration:A CPU/accelerator interface exploration[C].Electronics Circuits and Systems(ICECS),201118th IEEE International Conference on.IEEE,2011:374-377.

[4]ZARIFI T,MALEK M.FPGA implementation of image processing technique for blood samples characterization[J]. Computers&Electrical Engineering,2014,40(5):1750-1757.

[5]温强,胡明明,桑楠.基于彩色线阵 CDD的大米色选算法[J].农业机械学报,2008,39(10):105-108.

[6]TOSHIBA.TCD2566BFG[Z].2012.

[7]ALTERA.Cyclone III Device Handbook[Z].2011.

[8]王庆有.CCD应用技术[M].天津:天津大学出版社,2000.

[9]HYNIX.HY57V64820HG[Z].2002.

[10]ANALOG DEVICES.ADV7123[Z].2010.

Design of linear CCD image acquisition and display system based on FPGA

Zhou Jingdong,Shen Piaohai,Wang Lei
(Research and Design Institute of Agricultural Mechanical Engineering,Hubei University of Technology,Wuhan 430068,China)

Color separator which utilized image acquisition,processing and display techniques was widely used in industrial and agricultural product testing.The common solution consisted of the FPGA,DSP/ARM and PC was complicated and expensive.This paper designed a system in which CCD image acquisition and display were implemented in one single FPGA chip.With FPGA-based image processing algorithms,image processing could also be integrated into this FPGA chip.Logic design of image acquisition and display was elaborated and it′s correctness was verified by both software and hardware testing.Above all,this system was simple and economical.After a proper transplant,this system could also be adopted in security checks and medical imaging.

FPGA;linear CCD;image acquisition;image display

TP752

:ADOI:10.16157/j.issn.0258-7998.2016.06.017

周敬东,沈飘海,王雷.基于 FPGA的线阵 CCD图像采集与显示系统设计[J].电子技术应用,2016,42(6):63-66.

英文引用格式:Zhou Jingdong,Shen Piaohai,Wang Lei.Design of linear CCD image acquisition and display system based on FPGA[J].Application of Electronic Technique,2016,42(6):63-66.

2015-11-30)

周敬东(1973-),男,博士,副教授,主要研究方向:机电一体化技术。

湖北省自然科学基金(2014CFB583)

沈飘海(1990-),男,硕士研究生,主要研究方向:机电一体化技术。

王雷(1986-),男,博士,讲师,主要研究方向:农业机器人、模式识别与智能系统。

猜你喜欢
双口子系统芯片
不对中转子系统耦合动力学特性研究
芯片会议
关于射频前端芯片研发与管理模式的思考
GSM-R基站子系统同步方案研究
双口RAM在航天伺服系统中的应用
驼峰测长设备在线监测子系统的设计与应用
Matching mechanism analysis on an adaptive cycle engine
多通道采样芯片ADS8556在光伏并网中的应用
高效的双CPU系统安全数据交互机制的应用
车载ATP子系统紧急制动限制速度计算