D0I:10.13374/j.issnl00I63.2006.09.018 第28卷第9期 北京科技大学学报 Vol.28 No.9 2006年9月 Journal of University of Science and Technology Beijing Sep·2006 利用FPGA和USB总线的视频图像的采集与 处理系统设计 周剑波巩宪锋王长松 孙宏林 北京科技大学机械工程学院,北京100083 摘要构建了以FPGA为核心芯片的高速图像采集与处理系统,图形采集频率可达13.5Mz· 在该系统中,采用了视频A/D芯片SAA7111A将电视信号转换成数字信号,并由FPGA作为控制 器将数字信号存入SRAM中,以便进行处理,提取有用数据;系统还采用了EZUSB2131Q芯片来 进行处理后的数据与PC机的传输. 关键词视频图像:信号处理:FPGA;VHDL:EZUSB:视频A/D 分类号TP391 传统的基于ISA,PCI等总线的图像采集卡 据存储模块SRAM、EZUSB接口模块和PC机应 已经应用非常广泛,但速度慢、处理功能简单,对 用程序组成.FPGA程序用VHDL语言编写,整 于特殊要求往往需要后续处理部分·因此,本文 体框图如图1所示· 构建了一种高速图像采集系统,它主要由FPGA CCD SRAM[SRAMPC机 (field programmable gate array)、视频A/D芯片 SAA7111A FPGA EZUSB SAA7111A以及USB总线构成.该系统可以根 据需要进行现场可编程,具有通用性好、成本低等 图1硬件系统结构框图 优点,在FPGA中利用硬件描述语言VHDL编 Fig.1 Hardware system structure diagram 程实现.FPGA可以在数据采集系统中取代单片 机和DSP对数据采集过程进行控制, 2 视频信号的A/D转换 PHILIP公司的视频A/D芯片SAA7111A具 SAA7111A提供了4个模拟输入通道,可以 有四路视频输入,抗混滤波、梳状滤波都被集成到 编程选择使用其中的一个或多个通道.视频信号 芯片内部,带来了极大的方便,但系统内部锁相环 输入芯片后,一路经过缓冲器从A0UT引脚输 技术的集成使得可靠性和设计复杂度都有极大的 出,这个信号作为视频监控信号,以检测是否有视 降低, 频信号输入:另外一路信号经过模/数转换后产生 CYPRESS的EZUSB2131QC芯片是针对 数字色度信号和亮度信号,分别进行亮度信号处 USB1.1协议开发的,兼容全速和低速传输,功能 理和色度信号处理,亮度信号处理的结果,一路 高度集成化,该芯片集成了一个增强型8051处 送到色度信号处理器,以进行综合处理,产生灰度 理器、一个“智能型”串行接口引擎(SIE)、一个 信号Y和UV信号,格式化后从数据线VP0[15: USB收发器、集成I2C总线控制器、片上RAM和 00]输出,其中高8位为Y、低8位为UV;另一路 FIFOO 进入同步分离器,经过PLL产生相应的行同步信 1 图像采集与处理系统设计 号HS和场同步信号VS,同时数字PLL驱动时 钟发生器模块,从而产生视频信号工作频率为27 系统由视频AD芯片、FPGA控制模块、数 M伍的LLC和13.5M伍的LLC2时钟信号). SAA7111A正常工作需要对内部32个寄存 收稿日期:2005-07-16修回日期:2005-09-07 基金项目:国家高技术研究“863计划”资助项目(N。 器正确配置,通过I2C总线由EZUSB AN2131Q 2003AA312100) 写入SAA7111A的内部寄存器. 作者简介:周剑波(1981一),男,顾士研究生:王长松(1948一), 男,教授,博士
利用 FPGA 和 USB 总线的视频图像的采集与 处理系统设计 周剑波 巩宪锋 王长松 孙宏林 北京科技大学机械工程学院北京100083 摘 要 构建了以 FPGA 为核心芯片的高速图像采集与处理系统图形采集频率可达13∙5MHz. 在该系统中采用了视频 A/D 芯片 SAA7111A 将电视信号转换成数字信号并由 FPGA 作为控制 器将数字信号存入 SRAM 中以便进行处理提取有用数据;系统还采用了 EZUSB2131Q 芯片来 进行处理后的数据与 PC 机的传输. 关键词 视频图像;信号处理;FPGA;VHDL;EZUSB;视频 A/D 分类号 TP391 收稿日期:20050716 修回日期:20050907 基金 项 目:国 家 高 技 术 研 究 “863 计 划” 资 助 项 目 ( No. 2003AA312100) 作者简介:周剑波(1981—)男硕士研究生;王长松(1948—) 男教授博士 传统的基于 ISAPCI 等总线的图像采集卡 已经应用非常广泛但速度慢、处理功能简单对 于特殊要求往往需要后续处理部分.因此本文 构建了一种高速图像采集系统.它主要由 FPGA (field programmable gate array)、视频 A/D 芯片 SAA7111A 以及 USB 总线构成.该系统可以根 据需要进行现场可编程具有通用性好、成本低等 优点.在 FPGA 中利用硬件描述语言 VHDL 编 程实现.FPGA 可以在数据采集系统中取代单片 机和 DSP 对数据采集过程进行控制. PHILIP 公司的视频 A/D 芯片 SAA7111A 具 有四路视频输入抗混滤波、梳状滤波都被集成到 芯片内部带来了极大的方便但系统内部锁相环 技术的集成使得可靠性和设计复杂度都有极大的 降低. CYPRESS 的 EZUSB2131QC 芯 片 是 针 对 USB1∙1协议开发的兼容全速和低速传输功能 高度集成化.该芯片集成了一个增强型8051处 理器、一个“智能型” 串行接口引擎(SIE)、一个 USB 收发器、集成 I2C 总线控制器、片上 RAM 和 FIFO [1]. 1 图像采集与处理系统设计 系统由视频 A/D 芯片、FPGA 控制模块、数 据存储模块 SRAM、EZUSB 接口模块和 PC 机应 用程序组成.FPGA 程序用 VHDL 语言编写.整 体框图如图1所示. 图1 硬件系统结构框图 Fig.1 Hardware system structure diagram 2 视频信号的 A/D 转换 SAA7111A 提供了4个模拟输入通道可以 编程选择使用其中的一个或多个通道.视频信号 输入芯片后一路经过缓冲器从 AOUT 引脚输 出这个信号作为视频监控信号以检测是否有视 频信号输入;另外一路信号经过模/数转换后产生 数字色度信号和亮度信号分别进行亮度信号处 理和色度信号处理.亮度信号处理的结果一路 送到色度信号处理器以进行综合处理产生灰度 信号 Y 和 UV 信号格式化后从数据线 VPO[15: 00] 输出其中高8位为 Y、低8位为 UV;另一路 进入同步分离器经过 PLL 产生相应的行同步信 号 HS 和场同步信号 VS同时数字 PLL 驱动时 钟发生器模块从而产生视频信号工作频率为27 MHz 的 LLC 和13∙5MHz 的 LLC2时钟信号[2]. SAA7111A 正常工作需要对内部32个寄存 器正确配置通过 I2C 总线由 EZUSB AN2131Q 写入 SAA7111A 的内部寄存器. 第28卷 第9期 2006年 9月 北 京 科 技 大 学 学 报 Journal of University of Science and Technology Beijing Vol.28No.9 Sep.2006 DOI:10.13374/j.issn1001-053x.2006.09.018
Vol.28 No.9 周剑波等:利用FPGA和USB总线的视频图像的采集与处理系统设计 .887. 冲模块、消除抖动模块、SAA7111A接口模块、 3 FPGA控制模块 SRAM接口模块、实时插入结束标识模块、缓冲 经过对系统功能的分析和划分,可以将设计 模块FIFO、多路选择器DATA-MUX、数据处理 划分为若干个子模块,每个子模块通过内部握手 模块DATA-Proc等几个部分,如图2所示,模块 信号相互关联并完成相对独立的功能,最后将子 之间通过中间信号进行通讯,从而实现数据的传 模块组合起来就能得到系统级的功能芯片,将 输和控制, FPGA划分为以下几个功能子模块:输入信号缓 From SAA7111A Input_Buffer Sraml_Interface To_Sram! SAA_Interface Data Mux Data_Proc Fifo To_EZUSB LLC2 DLL Insert_Flags Sram2_Interface To_Sram2 Reset Debounce 图2FPGA内部结构框图 Fig-2 FPGA inside structure diagram 3.1SAA-INTERFACE模块 接口模块SRAM-INTERFACE的主要功能 SAA-INTERFACE模块的主要功能是接收 是完成与SRAM存储器的接口工作,由于采用 来自SAA7111A的数据信号和状态信号,实现 了两片SRAM,所以FPGA中的SRAM接口模块 FPGA与视频A/D芯片SAA7111A的接口,并根 也应该有两个,该模块根据当前状态做出判断,从 据这些信号产生相应像素灰度信息的存储地址, 而对SRAM发出相应的控制信号和地址信号,完 在时钟信号LLC2的控制下,完成数据在SRAM 成数据的写入和读出工作, 中的存储写入地址和读出地址及对两片SRAM 3.3 INSERT-FLAGS模块 进行乒乓操作的指示信号的生成 为了在上位机显示所采集到的图像,除了需 分析SAA7111A输出的状态信号的时序图, 要相应的像素信息外,还必须提供行同步信号和、 可以分析得到以下结论: 场同步信号,本系统没有另外提供专门的行同步 (1)每行图像共有864个像素,其中0~719 信号、帧同步信号,而是通过在恰当的时刻插入标 为有效像素、720~863为水平消隐阶段,在消隐 识数据的方法来代替视频流的行同步信号和帧同 期间的像素为无效像素[] 步信号 (2)每行图像起始条件是:场参考信号 INSERT-FLAGS模块将在行结束时,将自 VREF为逻辑1'时,HREF产生一个上升沿,每 定义的行结束标识插入到数据流中;在帧结束时, 行图像结束条件是:HREF信号的出现下降沿, 将帧结束标识插入到视频流中,从而为上位机实 当VREF为逻辑O'状态时,处于场消隐阶段,此 现对图像信息的再现和处理创造了方便条件 时为无效图像 3.4DATA-MUX模块 (3)每帧图像起始的条件是:RTS0为逻辑 DATA-MUX模块实现了对数据的流向的 ‘1'期间,VREF产生一个上升沿,而每帧图像结 控制和数据处理工作.它接收来自SAA7111A的 束的条件是:RTS0为逻辑‘O'期间,VREF产生 原始数据VP0和实时插入的行、帧结束标识信号 一个下降沿]. VPO-FLAGS,并产生最终的连续的含有场、帧结 由于复合视频信号CVBS是由隔行扫描的方 束标识的数据流VPO-ALL,并控制VPO-ALL 式得到的,而计算机显示器是逐行扫描来显示图 的流向.当WR1RD2为逻辑‘1'时,VPO-ALL 像的,所以写入SRAM的数据必须隔行写入,而 写入SRAM1,同时将已经存储到SRAM2的数据 读出SRAM的数据必须逐行读出.读取SRAM 读出到DATA-Proc模块中;当WR1RD2为逻辑 时,由于奇偶场己经“隔行”写入SRAM中,所以 0'时,VP0-ALL的数据写入SRAM2中,同时 只需要逐行顺序读取即可, 将SRAM1的数据读出到DATA-Proc模块 3.2SRAM-INTERFACE模块 中3
3 FPGA 控制模块 经过对系统功能的分析和划分可以将设计 划分为若干个子模块.每个子模块通过内部握手 信号相互关联并完成相对独立的功能.最后将子 模块组合起来就能得到系统级的功能芯片.将 FPGA 划分为以下几个功能子模块:输入信号缓 冲模块、消除抖动模块、SAA7111A 接口模块、 SRAM 接口模块、实时插入结束标识模块、缓冲 模块 FIFO、多路选择器 DATA— MUX、数据处理 模块 DATA—Proc 等几个部分如图2所示.模块 之间通过中间信号进行通讯从而实现数据的传 输和控制. 图2 FPGA 内部结构框图 Fig.2 FPGA inside structure diagram 3∙1 SAA-INTERFACE 模块 SAA—INTERFACE 模块的主要功能是接收 来自 SAA7111A 的数据信号和状态信号实现 FPGA 与视频 A/D 芯片 SAA7111A 的接口并根 据这些信号产生相应像素灰度信息的存储地址 在时钟信号 LLC2的控制下完成数据在 SRAM 中的存储写入地址和读出地址及对两片 SRAM 进行乒乓操作的指示信号的生成. 分析 SAA7111A 输出的状态信号的时序图 可以分析得到以下结论: (1) 每行图像共有864个像素其中0~719 为有效像素、720~863为水平消隐阶段在消隐 期间的像素为无效像素[2]. (2) 每 行 图 像 起 始 条 件 是:场 参 考 信 号 VREF 为逻辑‘1’时HREF 产生一个上升沿.每 行图像结束条件是:HREF 信号的出现下降沿. 当 VREF 为逻辑‘0’状态时处于场消隐阶段此 时为无效图像[2]. (3) 每帧图像起始的条件是:RTS0为逻辑 ‘1’期间VREF 产生一个上升沿.而每帧图像结 束的条件是:RTS0为逻辑‘0’期间VREF 产生 一个下降沿[2]. 由于复合视频信号 CVBS 是由隔行扫描的方 式得到的而计算机显示器是逐行扫描来显示图 像的所以写入 SRAM 的数据必须隔行写入而 读出 SRAM 的数据必须逐行读出.读取 SRAM 时由于奇偶场已经“隔行”写入 SRAM 中所以 只需要逐行顺序读取即可. 3∙2 SRAM-INTERFACE 模块 接口模块 SRAM—INTERFACE 的主要功能 是完成与 SRAM 存储器的接口工作.由于采用 了两片 SRAM所以 FPGA 中的 SRAM 接口模块 也应该有两个该模块根据当前状态做出判断从 而对 SRAM 发出相应的控制信号和地址信号完 成数据的写入和读出工作. 3∙3 INSERT-FLAGS 模块 为了在上位机显示所采集到的图像除了需 要相应的像素信息外还必须提供行同步信号和、 场同步信号.本系统没有另外提供专门的行同步 信号、帧同步信号而是通过在恰当的时刻插入标 识数据的方法来代替视频流的行同步信号和帧同 步信号. INSERT —FLAGS 模块将在行结束时将自 定义的行结束标识插入到数据流中;在帧结束时 将帧结束标识插入到视频流中从而为上位机实 现对图像信息的再现和处理创造了方便条件. 3∙4 DATA-MUX 模块 DATA—MUX 模块实现了对数据的流向的 控制和数据处理工作.它接收来自 SAA7111A 的 原始数据 VPO 和实时插入的行、帧结束标识信号 VPO—FLAGS并产生最终的连续的含有场、帧结 束标识的数据流 VPO—ALL并控制 VPO—ALL 的流向.当 WR1RD2为逻辑‘1’时VPO— ALL 写入 SRAM1同时将已经存储到 SRAM2的数据 读出到 DATA—Proc 模块中;当 WR1RD2为逻辑 ‘0’时VPO—ALL 的数据写入 SRAM2中同时 将 SRAM1 的 数 据 读 出 到 DATA— Proc 模 块 中[3]. Vol.28No.9 周剑波等: 利用 FPGA 和 USB 总线的视频图像的采集与处理系统设计 ·887·
·888 北京科技大学学报 2006年第9期 3.5DATA-Poc数据处理模块 数据总线通讯[6], DATA-ProC模块用于对采集的数据进行处 为了使用快速同步方式传输数据,需对2131 理,根据项目要求,其工作主要是对信号进行滤波 进行如下设置: 和边缘提取,从而提取有效数据,减少数据的传输 (1)能使S0F中断,使51内核能接受S0F 量.为了减少工作量,采用了Xilinx公司的Sys- 中断,从而保证1ms传输一桢数据 temGenerator软件来设计这部分模块[, (2)本系统使用了等时传输IN8端点,所以 SystemGenerator是Xilinx公司和Mathworks 须设置INIS0VAL为00000001”. 合作开发的FPGA辅助设计工具,只需在 (③)设置IN8端点将使用的等时FIF0的大 Simulink中完成模型的搭建,启动SystemGenera~ 小.为了加快数据传输的速度,这里设置该FIF0 tor,就能自动生成VHDL源程序及其他一些工程 的大小为1024. 文件,并将系统模型映射到目标器件FPGA上进 (4)设置寄存器PORTACFG,设置PA口第 行硬件实现[] 4位和第5位复用功能.其复用功能是快速等时 3.6FF0模块 传输的FRD和FWR信号. 视频信号进入PGA的时钟为13.5MHz, (5)设置寄存器FASTXFR,使能快速等时传 而USB接口芯片的时钟为12Mz,两者时钟速 输方式,设置FRD低电平有效,并且设置了 率不匹配.这就出现了异步时序设计问题,由于 nFRD的宽度和相位, 需要进行跨时钟领域的数据传输,必须在FPGA 为了响应SOF中断,需要在中断响应函数 和EZ-USB之间加入缓冲数据单元.这个缓冲器 ISR-Sof()中编写数据处理程序,将数据传送到 一般由异步First-In FirstOut(FIFO)实现.异 内部寄存器IN8DATA,另一方面清除SOF中断 步FFO在每个写时钟时写入数据,而用每一个 请求和USB中断请求,以便程序能对下一个SOF 读时钟时读出数据,这两个时钟是异步的, 做出正确的响应 FIFO的工作原理是:在写时钟的上升沿,当 写允许有效时,将写数据总线上的数据写入双口 5PC机应用程序 RAM中写地址对应的存储单元中;而始终将读地 EZUSB通用驱动程序GPD(general purpose 址对应的双口RAM中的数据输出到读数据总线 driver)用来和EZUSB外设接口的通用设备驱动 上,在读允许有效时,输出数据 程序,为应用程序访问EZUSB硬件提供了途径. 4 EZUSB模块 EZUSB开发包提供了默认的驱动程序文件 EZUSB.SYS7. 在系统中,EZUSB2131主要完成两方面的工 对于应用程序而言,调用CreateFile()来打开 作:完成对SAA7111A的配置和基于快速同步传 输方式的数据传输, 设备并取得访问设备驱动程序的句柄,用户程序 为了使视频解码芯片SAA7111A正常工作 使用函数DeviceloControl()来提交控制码,并为 必须通过℃总线对其内部的寄存器进行正确的 CreateFile()函数返回的设备句柄设置I/O缓冲 配置,当通过C配置SAA7111A时,写入数据 区 格式为:首先为起始信号,然后是7位的从机地址 连接到主机的EZUSB设备,GPD为其创建 和方向位(0'表示写入SAA7111A寄存器,‘1 一个链接符.调用函数CreateFile(),实质上就是 表示读出相应寄存器)共8位数据,此时从机应该 获取驱动程序产生的目标设备句柄,EZUSB开 向主机发送一位响应信号,然后是从机中被写入 发包中提供了I/0控制码,使用这些I/0控制码 的寄存器的地址和从机的响应信号,然后才是要 能非常方便地实现USB通讯,当使用快速传输 写入子地址寄存器的的数据,最后是结束信号, 方式时,需要将IOCTL-EZUSB-START-ISO- USB总线支持4种数据传输方式:控制传 STREAM,IOCTL-EZUSB-READ-ISO-BUFFER, 输、中断传输、等时传输和块传输,EZUSB系列 IOCTL-EZUSB-STOP-ISO-STREAM等控制码 的2131Q支持快速等时传输方式,为了提高数据 提供给函数DeviceloControl(),从而实现开启等 传输的速度,应用这种方式进行数据传输,能够使 时传输、读取等时传输数据、停止等时传输等 FPGA内部的FIFO模块直接与EZUSB内部的 功能
3∙5 DATA-Proc 数据处理模块 DATA—Proc 模块用于对采集的数据进行处 理根据项目要求其工作主要是对信号进行滤波 和边缘提取从而提取有效数据减少数据的传输 量.为了减少工作量采用了 Xilinx 公司的 SystemGenerator 软件来设计这部分模块[4]. SystemGenerator 是 Xilinx 公司和 Mathworks 合作 开 发 的 FPGA 辅 助 设 计 工 具只 需 在 Simulink 中完成模型的搭建启动 SystemGenerator就能自动生成 VHDL 源程序及其他一些工程 文件并将系统模型映射到目标器件 FPGA 上进 行硬件实现[5]. 3∙6 FIFO 模块 视频信号进入 FPGA 的时钟为13∙5MHz 而 USB 接口芯片的时钟为12MHz两者时钟速 率不匹配.这就出现了异步时序设计问题.由于 需要进行跨时钟领域的数据传输必须在 FPGA 和 EZ—USB 之间加入缓冲数据单元.这个缓冲器 一般由异步 First—In—First—Out (FIFO)实现.异 步 FIFO 在每个写时钟时写入数据而用每一个 读时钟时读出数据这两个时钟是异步的. FIFO 的工作原理是:在写时钟的上升沿当 写允许有效时将写数据总线上的数据写入双口 RAM 中写地址对应的存储单元中;而始终将读地 址对应的双口 RAM 中的数据输出到读数据总线 上在读允许有效时输出数据. 4 EZUSB 模块 在系统中EZUSB2131主要完成两方面的工 作:完成对 SAA7111A 的配置和基于快速同步传 输方式的数据传输. 为了使视频解码芯片 SAA7111A 正常工作 必须通过 I 2C 总线对其内部的寄存器进行正确的 配置.当通过 I 2C 配置 SAA7111A 时写入数据 格式为:首先为起始信号然后是7位的从机地址 和方向位(‘0’表示写入 SAA7111A 寄存器‘1’ 表示读出相应寄存器)共8位数据此时从机应该 向主机发送一位响应信号.然后是从机中被写入 的寄存器的地址和从机的响应信号然后才是要 写入子地址寄存器的的数据最后是结束信号. USB 总线支持4种数据传输方式:控制传 输、中断传输、等时传输和块传输.EZUSB 系列 的2131Q 支持快速等时传输方式为了提高数据 传输的速度应用这种方式进行数据传输能够使 FPGA 内部的 FIFO 模块直接与 EZUSB 内部的 数据总线通讯[6]. 为了使用快速同步方式传输数据需对2131 进行如下设置: (1) 能使 SOF 中断使51内核能接受 SOF 中断从而保证1ms 传输一桢数据. (2) 本系统使用了等时传输 IN8端点所以 须设置 INISOVAL 为“00000001”. (3) 设置 IN8端点将使用的等时 FIFO 的大 小.为了加快数据传输的速度这里设置该 FIFO 的大小为1024. (4) 设置寄存器 PORTACFG设置 PA 口第 4位和第5位复用功能.其复用功能是快速等时 传输的 FRD 和 FWR 信号. (5) 设置寄存器FASTXFR使能快速等时传 输方式设置 nFRD 低电平有效并且设置了 nFRD 的宽度和相位. 为了响应 SOF 中断需要在中断响应函数 ISR—Sof ()中编写数据处理程序将数据传送到 内部寄存器 IN8DATA另一方面清除 SOF 中断 请求和 USB 中断请求以便程序能对下一个 SOF 做出正确的响应. 5 PC 机应用程序 EZUSB 通用驱动程序 GPD(general purpose driver)用来和 EZUSB 外设接口的通用设备驱动 程序为应用程序访问 EZUSB 硬件提供了途径. EZUSB 开 发 包 提 供 了 默 认 的 驱 动 程 序 文 件 EZUSB.SYS [7]. 对于应用程序而言调用 CreateFile()来打开 设备并取得访问设备驱动程序的句柄.用户程序 使用函数 DeviceIoControl()来提交控制码并为 CreateFile()函数返回的设备句柄设置 I/O 缓冲 区. 连接到主机的 EZUSB 设备GPD 为其创建 一个链接符.调用函数 CreateFile()实质上就是 获取驱动程序产生的目标设备句柄.EZUSB 开 发包中提供了 I/O 控制码使用这些 I/O 控制码 能非常方便地实现 USB 通讯.当使用快速传输 方式时需要将 IOCTL—EZUSB—START —ISO— STREAMIOCTL—EZUSB—READ—ISO—BUFFER IOCTL—EZUSB—STOP—ISO—STREAM 等控制码 提供给函数 DeviceIoControl()从而实现开启等 时传输、读取等时传输数据、停止等时传输等 功能. ·888· 北 京 科 技 大 学 学 报 2006年第9期
Vol.28 No.9 周剑波等:利用FPGA和USB总线的视频图像的采集与处理系统设计 .889. 于传输当前处理后的数据量已经足够,采用 6 结论 EZUSB2131芯片已经可以完成,如果需要传输 系统采用FPGA作为采集处理部分,可以提 更大数据量,可以采用CPYRESS公司USB2.0 高系统处理的速度,大大增强系统的灵活性和适 芯片cy7c68013代替.该实例还可应用于实时数 应性.具体表现为: 据采集、音频及压缩视频数据传输等领域 (1)系统性能得到大大提高:由于采用双 SRAM作为数据交换区,FPGA采用乒乓技术传 参考文献 输数据,提高了传输的速度, [1]EZ-USB Manual Technical Reference.Cypress.2000 (2)系统的适应性与灵活性强,由于采用 [2]Data Sheet of SAA7111A.Phlips.1998 [3]牛风举,刘元成,朱明程.基于IP复用的数字IC设计技 FPGA可编程逻辑器件采集与处理数据,对于不 术.北京:电子工业出版社,2003:41 同的视频图像信号,只要对FPGA逻辑稍作修 [4]孙航.Xiim可编程逻辑器件的高级应用与设计技巧.北 改,便可实现信号采集. 京:电子工业出版社,2004 (③)设计结构简单,调试方便.FPGA的外围 [5]王诚,薛小刚,钟信潮.FPCA/CPLD设计工具一Xilinux 硬件电路简单,在硬件设计中,可以大大地减小硬 ISE使用详解.北京:人民邮电出版社,2005 [6们马伟.计算机USB系统原理及其主/从机设计.北京:北京 件设计的复杂程度 航空航天大学出版社,2004 FPGA技术和USB的组合,数据处理能力得 [7]颜荣江,EZ-USB2100系列单片机原理,编程及应用.北 到了极大的提高,且有利于系统升级,本设计用 京:北京航空航天大学出版社,2002 Design of an image sampling and processing system based on FPGA and USB bus ZHOU Jianbo,GONG Xianfeng,WANG Changsong,SUN Honglin Mechanical Engineering School.University of Science and Technology Beijing.Beijing 100083.China ABSTRACT This paper designed an high-speed image sampling and processing system based on FPGA, whose image"sampling frequency was 13.5 MHz.In the system the video A/D chip SAA7111A was em- ployed to convert video data into digital signal,and the digital signal was storied in RAM by FPGA for next processing to obtain the useful data.In addition,the EZUSB2131Q chip was used to transmit the processed data between PC and FPGA. KEY WORDS video image:signal processing:FPGA;VHDL:EZUSB:video A/D
6 结论 系统采用 FPGA 作为采集处理部分可以提 高系统处理的速度大大增强系统的灵活性和适 应性.具体表现为: (1) 系统性能得到大大提高.由于采用双 SRAM 作为数据交换区FPGA 采用乒乓技术传 输数据提高了传输的速度. (2) 系统的适应性与灵活性强.由于采用 FPGA 可编程逻辑器件采集与处理数据对于不 同的视频图像信号只要对 FPGA 逻辑稍作修 改便可实现信号采集. (3) 设计结构简单调试方便.FPGA 的外围 硬件电路简单在硬件设计中可以大大地减小硬 件设计的复杂程度. FPGA 技术和 USB 的组合数据处理能力得 到了极大的提高且有利于系统升级.本设计用 于传输当前处理后的数据量已经足够采用 EZUSB2131芯片已经可以完成.如果需要传输 更大数据量可以采用 CPYRESS 公司 USB2∙0 芯片 cy7c68013代替.该实例还可应用于实时数 据采集、音频及压缩视频数据传输等领域. 参 考 文 献 [1] EZ—USB Manual Technical Reference.Cypress2000 [2] Data Sheet of SAA7111A.Phlips1998 [3] 牛风举刘元成朱明程.基于 IP 复用的数字 IC 设计技 术.北京:电子工业出版社2003:41 [4] 孙航.Xilinx 可编程逻辑器件的高级应用与设计技巧.北 京:电子工业出版社2004 [5] 王诚薛小刚钟信潮.FPGA/CPLD 设计工具———Xilinux ISE 使用详解.北京:人民邮电出版社2005 [6] 马伟.计算机 USB 系统原理及其主/从机设计.北京:北京 航空航天大学出版社2004 [7] 颜荣江.EZ—USB 2100系列单片机原理、编程及应用.北 京:北京航空航天大学出版社2002 Design of an image sampling and processing system based on FPGA and USB bus ZHOU JianboGONG XianfengWA NG ChangsongSUN Honglin Mechanical Engineering SchoolUniversity of Science and Technology BeijingBeijing100083China ABSTRACT This paper designed an high-speed image sampling and processing system based on FPGA whose image-sampling frequency was13∙5MHz.In the system the video A/D chip SAA7111A was employed to convert video data into digital signaland the digital signal was storied in RAM by FPGA for next processing to obtain the useful data.In additionthe EZUSB2131Q chip was used to transmit the processed data between PC and FPGA. KEY WORDS video image;signal processing;FPGA;VHDL;EZUSB;video A/D Vol.28No.9 周剑波等: 利用 FPGA 和 USB 总线的视频图像的采集与处理系统设计 ·889·