0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何采用CY7C68013芯片设计图像采集系统

电子设计 作者:电子设计 2018-11-06 08:09 次阅读

由于图像采集系统采集的数据量大,带宽要求高,以往的图像采集系统通常使用PCI总线实现。但是计算机本身配置的PCI接口数量非常有限,而且拆装PCI接口设备需要打开机箱,一般操作人员并不具备这样的能力,导致系统应用受到限制。USB(通用串行总线)接口列可以完全解决以上难题。首先,USB2.0接口的速度已经达到480Mbps,完全可以满足图像采集系统对速度的要求。另外,USB接口是真正支持即插即用,且允许热插拨的接口,所以目前大量数据采集系统都选择使用USB2.0接口实现。

本文利用SAA7113H实现模拟视频信号解码,并借助EZ-USB FX2单片机CY7C68013将数字图像数据直接通过USB2.0接口传输到计算机,通过PC机程序实现图像的无损采集,大大简化了采集卡的硬件设计,降低了采集卡硬件要求,有效降低了图像采集卡的成本。

1 系统硬件设计

系统硬件结构如图1所示。系统主要由视频解码芯片SAA7113H、USB控制芯片CY7C68013和一块容量为1 kB的24C01EEPROM芯片组成。

如何采用CY7C68013芯片设计图像采集系统

图1 系统硬件结构

1.1 视频解码芯片-SAA7113H

SAA7113H是飞利浦公司出品的一款视频解码芯片,它的作用是将输入的模拟视频信号解码为标准的8位VPO数字信号。它可以输入4路模拟视频信号,通过I2C总线对内部寄存器的不同配置可以对4路复合视频输入进行转换,改变亮度、对比度等参数。SAA7113H兼容PAL、NTSC等多种制式,可以自动检测场频,可以在PAL、NTSC之间自动切换控制。SAA7113H解码后输出的是标准的YUV 4:2:2格式数字信号。

1.2 USB控制芯片--CY7C68013A

CYTC68013A(EZ-USB FX2)是Cypress半导体公司推出的一款USB2.0芯片,它内部集成了增强的8051内核,支持最大48 MHz的时钟频率,在相同时钟频率下,FX2的平均指令执行速度可达到标准8051的2.5倍。CY7C68013芯片内部集成了一个与8051内核相对独立的SIE(串行接口引擎),在不需要8051内核参与的情况下,通过USB端口和外部逻辑共享FIFO的方式,实现外部数据与USB端口的数据交换,大大加快了数据传输的速度,可实现的最大速度为480Mbps.

1.3 系统硬件实现

硬件连接方面,利用CY7C68013的I2C端口连接24C01,以便在系统上电后提取24C01中的信息,实现设备枚举,下载相应固件。利用CY7C 68013模拟I2C端口连接SAA7113H,对其内部寄存器进行配置,实现解码芯片初始化操作。CY7C68013工作在Slave FIFO(从属的FIFO)模式,将SAA7113H的VPO数据总线直接连接到CY7C68013的FD总线,使用CY7C68013的IOAO端口检测数字视频的场标志信号,用于实现帧同步。将CY7C68 013的SLWR*(从属写)信号量为有效,SLRD(从属读)和SLOE(输出有效)置为无效,由SAA7113H通过自身输出的27MHz同步时钟将数字视频信号以同步方式直接写入CY7C68013内部的FIFO,再通过SIE将FIFO中的数据以高速方式直接传送到PC机,实现视频数据的采集。

2 系统软件设计

系统软件设计主要包括固件程序设计、驱动程序设计和PC机采集程序3大部分。

2.1 固件程序设计

固件程序流程图如图2所示。该固件在采集卡上电后初始化CY7C68013,使其工作在Slave FIFO模式,设置总线位数为8位,以便接收SM7113H的8位数字视频信号。将EP2端点设置为批量AUTO IN传输方式,512字节4倍FIFO缓冲。一次最大传输数据包大小为512字节。利用SAA7113H的时钟信号实现同步从属FIFO写数据。

如何采用CY7C68013芯片设计图像采集系统

图2 固件程序流程图

通过模拟的I2C端口初始化SAA7113H,使其能够接收CCD摄像机的模拟视频信号,以标准的ITU656格式输出,并设置RSTO输出奇偶场标志,然后等待上位机的开始采集命令。

在收到PC机开始图像采集命令后,固件程序首先通过IOAO端口检查SAA7113H的奇偶场信号。如果外部模拟视频信号源未连接,该信号将一直维持高电平。固件在一段时间等待并确认外部视频信号未连接的情况下,向PC机回传设备尚未准备好的信息,否则一直清空FIFO,将FIFO中已有效据清除,直到奇场信号到来,固件回送设备准备好信息给PC,以实现视频图像帧同步采集。图像数据传输过程将由SIE完全控制,固件不参与传输操作。

2. 2 驱动程序设计

Cypress开发包中提供了一个通用驱动程序,即cyUSB.sys,该驱动程序符合Windows硬件质量实验室WHQL标准,系统直接使用该驱动程序实现图像数据采集。由于CY7C68013采用的是软配置的方案,芯片中并没有提供用于永久存放固件程序的存储器,固件程序需要在每次上电后通过外部存储器加载或从PC机下载到内部RAM中。驱动程序主要实现固件程序的装载功能,以便系统上电后,可以自动从PC机下载固件到CY7C68013,然后使用通用驱动程序完成采集卡的设备重枚举。

在Cypress提供的开发包中包含了一个固件下载驱动模板,即EZ-Loader Driver.系统固件下载驱动主要依赖它来实现。具体的步骤为:

1)利用hex2c.exe将Intel HEX格式文件转换成C代码数组。

2)将所有的EZ-Loader Driver文件连同子文件复制到一个新建的目录中。并利用第一步得到的C代码数组替换EZ-Loader Driver中firmwa re.c中的数组。

3)在WindowsXP DDK中使用build命令在新建目录中创建固件下载驱动程序。

4)改写驱动安装信息文件。

2.3 PC机采集程序

PC机采集程序用Visual Studio.net 2003调用CyAPI函数库实现。为提高图片采集速度,程序使用两个线程分别实现图像数据采集和图像甄别和处理。程序总流程图如图3所示。

如何采用CY7C68013芯片设计图像采集系统

图3 PC和谐总流程图

每次启动采集程序时,系统通过创建USBDeviee实例获得设备句柄,并尝试打开USB设备。当点击程序界面开始采集按钮后,程序通过USB控制端点发送一个开始采集信号,并要求采集卡回传一个设备状态信号。如果设备提示无模拟视频信号连接,则提示用户连接。如果设备准备好,则开始接收图像数据。

由于USB主控制器工作于Slave FIFO模式,采集卡上传到上位机的数据量固定为27MB/S,如果上位机没能及时接收数据必然会导致图像数据丢失,所以程序中使用一个线程(线程1)以异步方式做图像数据接收,实际效果非常好。线程1主要代码如下:

如何采用CY7C68013芯片设计图像采集系统

SAA7113H输出的是隔行视频信号,每秒25帧图像,一帧图像需要分两次传输,先传输全部奇场(奇数行)数据,然后传输全部偶场(偶数行)数据,采集卡中将SAA7113H的输出设置为标准YUV4:2:2数据,分辨率为720x576.系统将所有的解码数据不做任何处理直接传送到PC机,数据格式如图4所示。其中,"80 10…"为消隐数据。"FF 00 00 SAV"为一行数据块的开始标志,作为奇场有效行,SAV的值为8X,作为偶场有效行,该值为CX."FF 00 00 EAV"为一行数据块结束标志,作为奇场有效行结束,EAV的值为9X,作为偶场有效行结束,该值为DX.作为720像素的YUV4:2:2数据,每行一共有720x2=1 440个字节,PC程序需要从所有的数据中找出每一行中有效的1 440个字节数据,并按照实际行顺序将奇场行相偶场行数据重新组合,转换成RGB24位像素点并最终写入BMP文件,实现图像的采集、显示和保存。

如何采用CY7C68013芯片设计图像采集系统

图4 YUV4:2:2数据格式

数据查找及重组过程中,PC程序会根据YUV4:2:2数据格式做数据块判别,如果发现有出错数据程序会做自动抛弃处理,在对采集数据要求非常严格及单张采集间隔时间较长的场合,程序将发送重新采集信号给采集卡,再一次采集。系统实际使用过程中发现,数据出错情况很少出现,且重发请求后可以得到正确数据。

3 结论

利用本方案设计的图像采集卡可以实现图像的连续采集,并最终以bmp图像格式保存,采集速率每秒最大25帧,适用于所有支持PAL模拟视频格式的摄像机及监控摄像头的图像无损采集,具有成本低、图像清晰等特点,在光学显微镜序列切片图像采集系统中得到了很好的应用。另外,系统经过简单修改后也可实现4个复合视频源输入的分时采集功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    445

    文章

    47477

    浏览量

    407885
  • usb
    usb
    +关注

    关注

    59

    文章

    7377

    浏览量

    257472
  • 计算机
    +关注

    关注

    19

    文章

    6617

    浏览量

    84032
收藏 人收藏

    评论

    相关推荐

    求助 cy7c68013 slavefifo

    本帖最后由 飘髯水巾 于 2013-3-4 14:16 编辑 小弟是一个新手,刚刚接触CY7c68013,遇到了这样一个问题。我想做一个数据采集卡。现在想做一个简单的验证,FPGA控制
    发表于 03-03 10:34

    求大侠帮忙 CY7C68013 与CPLD通信问题

    现在要用 CY7C68013 USB芯片 和 CPLD 做一个数据采集模块,68013怎么和CPLD通信呢? CPLD接收AD采集过来的数据
    发表于 03-05 09:32

    cy7c68013

    上位机通过cy7c68013控制另一台PC的鼠标,上位机与cy7c68013通过串口连接,另一端通过USB连接。
    发表于 03-10 17:16

    CY7C68013 与labview通信错误

    本人想用labview给cy7c68013做个上位机,其中cy7c68013的板子是一个实现MT9M001摄像头的图像采集,主控用的是altera的EP4CE10F17
    发表于 05-16 10:28

    CY7C68013特性简介

    轻松实现相应功能。USB2.0桥接芯片有***的FT232H,FT2232H,还有南京沁恒的CH372B或者CH375等,还有Cypress公司的CY7C68013,笔者打算采用CY7C680
    发表于 08-01 09:44

    CY7C68013与CMOS传感器之间的连接

    嗨,大家好,我尝试使用CY7C68013来获取图像传感器数据。但是我对CY7C68013和CMOS传感器之间的硬件连接感到困惑。CMOS具有以下接口:SysCLK(in)曝光(in)LyIOLL有效
    发表于 11-30 16:14

    CY7C68013枚举怎么检测

    我怎么知道CY7C68013是枚举的?我需要发送通知的硬件(通过固件),USB电缆已被拔出。 以上来自于百度翻译 以下为原文How can I tell that the CY7C68013
    发表于 03-20 12:25

    哪个CY7C68013芯片方便与GPIF接触?

    我想加一个512K×16位的FIFO芯片CY7C68013的GPIF,其中FIFO芯片Cypress方便立即同GPIF?你能推荐一个给我吗? 以上来自于百度翻译 以下为原文I want
    发表于 03-22 09:08

    如何在Keil C环境下编译CY7C68013的大型固件代码?

    亲爱的各位,CY7C68013Runa固件可能大于8kb/16kb吗?如何在Keil C环境下编译CY7C68013的大型固件代码?我想用CY7C68013的8051来控制CD和数据
    发表于 04-30 14:11

    USB20微控制芯片CY7C68013电子资料

    概述:单一芯片集成式USB2.0收发器、智能SIE和增强型8051微处理器,CY7C68013内部集成了一个增强型的51内核,其指令集与标准的8051兼容。CY7C68013提供了一个串行接口引擎(SIE),负责完成...
    发表于 04-14 07:27

    基于CY7C68013的高速数据传输系统该如何去设计?

    本文介绍一种基于CY7C68013的高速数据传输系统的设计方案。
    发表于 06-02 06:08

    基于USB芯片CY7C68013A的上位机

    3.4.5条 程序procedure中对于“程序”的定义进行了规定。基于USB芯片CY7C68013A的上位机C++程序。该程序结合相应的CY7C68013固件程序配合使用可以完成PC
    发表于 08-06 09:58

    基于CY7C68013的USB数据采集系统

    本文介绍了高速USB2.0芯片CY7C68013的特点。设计出一种主要由CY7C68013与Altera公司EP1C6芯片构成的USB2. 0数据
    发表于 09-14 14:33 133次下载

    基于CY7C68013的CCD图像传输系统

    针对面阵CCD 图像的特点,提出了一种基于CY7C68013图像实时传输系统系统从面阵CCD 模块中直接获取数字
    发表于 05-17 17:36 100次下载
    基于<b class='flag-5'>CY7C68013</b>的CCD<b class='flag-5'>图像</b>传输<b class='flag-5'>系统</b>

    采用CY7C68013芯片系统固件程序设计

    采用CY7C68013芯片系统固件程序设计。
    发表于 01-22 14:10 31次下载