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

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

3天内不再提示

通过采用FPGA XC3S200芯片实现视频采集系统的应用方案

电子设计 来源:维库电子网 作者:维库电子网 2021-03-17 09:07 次阅读

视频采集的主流实现方案有两种:一是基于ASIC,该方案一般采用意法、AMD公司的专用视频处理芯片;二是基于DSP,主要采用TIADI等公司的DSP信号处理器。它们作为辅处理器,可在主CPU控制下进行视频信号的采集压缩。随着FPGA的发展,通过SOPC技术实现视频采集已成为一种易于开发、设计灵活的方案。而这主要得益于IP复用技术的发展。在FPGA上构建复杂嵌入式系统可利用既有的功能模块及其驱动程序。该方案具有更大的集成度和灵活性,因而必将成为电子设计发展的一大趋势。

本文介绍了采用Xilinx公司的Spartan-3 FPGA实现通用视频采集系统的设计方案。该系统外接模拟PAL/NTAL制式的摄像头,就能实时采集视频信号并进行MPEG-4格式压缩编码,码流可通过USB接口传给PC机,或通过以太网接口进行网络传输。本系统选用的是Spartan-3 FPGA系列的XC3S200芯片,该芯片有4320个逻辑单元(LC)、216Kbit BlockRAM、4个数字延迟锁相环(DDL)、173个用户I/O,而且逻辑密度高、I/O多、成本低。本设计主要涉及电路板级硬件设计、FPGA片级硬件系统设计和系统软件设计。

1 板级硬件设计

FPGA在电源和配置电路的支持下,即可构成嵌入式系统的最小化系统,并能实现片内的所有功能。在此最小化系统上,就可以根据本设计的应用需求,来扩展外部存储模块、视频采集模块、USB接口模块、以太网接口模块等功能模块电路,从而形成电路板级硬件平台。该板级硬件平台的结构组成如图1所示。

通过采用FPGA XC3S200芯片实现视频采集系统的应用方案

1.1 最小化系统

该FPGA是基于SRAM存储结构的器件。每次上电时可将配置数据从外部配置存储器加载到内部SRAM中,以使其构建逻辑结构从而实现逻辑功能。配置调试模块主要包括配置存储器、配置模式跳线开关和JTAG调试端口,其中JTAG调试端口是系统开发阶段PC机与FPGA的通信接口,可用于从PC机下载FPGA配置数据,并在程序调试阶段作为联机接口。本设计采用Xilinx公司Platform. Flash系列配置存储器XCF02S,并采用14针JTAG接口。模式跳线开关可决定FPGA是由JTAG还是由配置存储器来进行配置。系统时钟模块可对XC3S200提供50 MHz高频时钟信号,它采用高稳定性的石英晶体振荡器分立元件。电源管理模块采用DC/DC变换器来为系统各元件提供需要的各种电压电流。以上部分与FPGA芯片相连即可构成嵌入式系统工作的最小化系统。

1.2 外部存储扩展

由于XC3S200的片内存储容量有限且掉电即失,因此必须配置大容量的外部储存器。本设计扩展了4MByte的flash和32MByte的SDRAM (包括一片AMD公司的AM29LV320DT90EC型Flash和两片HYNIX公司的HY57V281620HCT-PI型SDRAM)。其中Flash在系统中用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据。而SDRAM掉电数据即失,但其存取速度大大高于Flash且可读可写,因而在系统中用作程序的运行空间、临时数据及堆栈区等。

1.3 视频采集模块

TVP5150是TI公司推出的一款超低功耗的高性能混合信号视频解码芯片,可自动识别NTSC/PAL/SECAM制式的模拟信号,并将其按照YCbCr4:2:2的格式转化成数字信号,然后以8位内嵌同步信号的ITU-RBT.656格式输出。TVP5150具有价格低、体积小、操作简便等特点。FPGA对TVP5150芯片的操作是通过I2C总线实现的,数据传输连接方式采用最简单的ITU-RBT.656方式。

1.4 USB接口模块

USB接口模块选用PHILIPS公司的高性能USB接口芯片PDIUSBD12。该芯片完全符合USB1.1规范,可支持DMA传输,并可通过高速8位并行接口和FPGA进行通信,其最高并行接口速率可达到2 MB/s。

1.5 以太网接口模块

该模块采用Realtek公司生产的高度集成的以太网控制器RTL8019AS。RTL8019AS支持IEEE802.3标准和8位或16位数据总线。其内置16KB的SRAM可用于收发缓冲。在全双工模式时,其收发可同时达到10Mbps。RTL8019AS可支持10Base5、10Base2、10BaseT,并能自动检测所连接的介质。本设计采用RTL8019AS跳线接口模式,并通过16位数据总线连接FPGA。

2 片级硬件系统设计

在Spartan-3上构建嵌入式系统的基础是MicroBlaze IP核。这是一种用硬件描述语言在FPGA内部实现的32位微处理器,采用RISC指令集和Ha rvard体系结构。可根据不同的外设和存储器配置进行定制,并可以针对应用来调整处理器系统架构。在Spartan-3系列芯片上进行该配置大约占用500 Slices。该IP核具有32个32位通用寄存器和2个专用寄存器。其32位宽的指令系统能支持3个操作数和两种寻址方式,而其独立的32位指令和数据总线则可与IBM的OPB总线完全兼容。通过模块中的LMB总线,其32位指令和数据可直接与片内的块存储器相连。此外,该IP核还具有高速的指令和数据缓存(Cache)、三级流水线结构、32位地址总线、硬件调试逻辑、8个输入和8个输出的快速链路(FSL)接口等。MicroBlaze软处理器的内部功能结构如图2所示。

在FPGA上设计嵌入式系统时,可在最低层硬件资源上开发片内外设IP核,或利用已开发的IP核搭建嵌入式系统的硬件部分,然后开发IP核的设备驱动、应用接口(API)和应用层(算法)。通过标准总线接口将局部存储器总线(LMB)和片内外设总线(OPB)连接到片内外设IP核,MicroBlaze处理器就可以和各种外设IP核及片内BlockRAM相连。该开发工具提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库来编写自己的应用软件和算法程序即可。对于用户自己开发的IP核,则需要自己编写相应的驱动和接口函数。利用MicroBlaze处理器构建的基本嵌入式系统如图3所示。

在FPGA上实现嵌入式系统,主要是构建片内MicroBlaze处理器,并为处理器添加片内外设以实现硬件模块功能,同时应添加片内外设与芯片外部引脚的连接。在开发片内外设的同时,应开发外设功能的底层驱动程序,然后在MicroBlaze处理器上实现系统应用程序。这是个软件与硬件协同开发的过程。以MicroBlaze处理器为核心的系统开发可使用Xilinx公司提供的EDK(Embedded Development Kit)。该EDK提供有一个集成开发环境XPS(Xilinx Platform. Studio),它同时集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试器等工具。在此环境下调用各种工具即可完成软硬件协同开发的整个流程。EDK提供有多种与MicroBlaze处理器相关的功能IP核,其中包括OPB 10/100M以太网控制器、PLB/OPB SDRAM控制器、UART中断控制器、定时器及其它外围设备接口等资源。使用EDK中的系统硬件平台设计向导(Base System Builder Wizard)可进行MicroBlaze处理器的配置,而使用添加外围设备向导(ImportPeripheral Wizard)则可调用既有IP核以生成片内设备,并与处理器总线相连。

本系统的片内主要功能模块包括视频接口模块、环形缓冲区、码流两级FIFO缓冲区、MPEG-4编码器、Flash控制器、SDRAM控制器、10/100M以太网控制模块、USB控制模块等。其中视频接口模块是MicroBlaze处理器与TVP5150的接口。MicroBlaze处理器对TVP5150的控制驱动程序可从TVP5150驱动程序模板移植而来,可用于实现TVP5150采集方式的配置,并将采集的视频信号以4:2:0YUV格式存储到环形缓冲区里。环形缓冲区是片内与MicroBlaze处理器总线相连的SRAM存储空间的一部分,其中数据队列的首尾指针是由MicroBlaze处理器程序维护的。采用开发工具提供的FIFO模板可对其深度、位宽、读写时钟、满标志等参数进行设定,并将两个FIFO相连以构成两级FIFO,然后将其入口与MPEG-4编码器的输出相连。FIFO的先一级与MicroBlaze处理器总线相连可支持DMA读取。MPEG-4编码器是Xilinx公司授权的MPEG-4 Simple Profile编码器IP核,它接受环形缓冲区里未压缩的4:2:0YUV格式视频信号并可将其生成MPEG-4Simple Profile格式压缩码流。MPEG-4编码器与MicroBlaze处理器总线和两级FIFO输入相连,可为EDK提供其驱动程序。Flash控制器、SDRAM控制器、10/100M以太网控制器的实现软件在EDK中已提供,其与处理器总线的连接也在向导工具中自动设定,其驱动程序就包含在其中。由于片外采用了高度集成的USB控制器,而片内的USB控制模块只是MicroBlaze处理器总线与引脚的直接相连,故其驱动程序只是参考PDIUSBD12的一般驱动程序在EDK软件平台上的移植。

本系统的片内外设与MircoBlaze处理器的连接如图4所示,其中箭头表示视频数据的流向。

3 系统软件设计

系统中的MicroBlaze处理器对TVP515 0和PDIUSBD12的控制驱动程序可根据其通用驱动程序在EDK软件平台上移植生成。利用Xilinx公司提供的IP核可以搭建FPGA片内硬件平台,同时可获得底层硬件驱动程序的支持,然后在此基础上进行系统应用程序的开发。

外部模拟视频信号经TVP5150转换为数字视频信号后,即可进入FPGA并通过视频接口模块直接排列到内部环形缓冲区数据队列的队尾。

当MircoBlaze处理器接收到MPEG-4编码器可用中断时,系统将检测环形缓冲区是否为空。非空时,可将数据队列的头部数据取出送给MPEG-4编码器,同时启动编码器编码。

视频信号经过编码器编成视频原码流后,即可进入FPGA内部二级FIFO缓存。当FIFO先一级满时向MircoBlaze处理器发出数据输出中断请求。

MircoBlaze处理器响应来自FIFO的中断后,可将FIFO先一级数据取出并以USB或以太网接口输出,然后清空FIFO先一级。

依据上面的工作过程,MircoBlaze处理器的应用程序包括以下几部分:

(1)系统复位初始化

即禁止外部中断,初始化各驱动程序,清空环形缓冲区和两级FIFO,检测USB接口、以太网接口连接以决定用何种方式输出,然后启动对TVP5150的控制并进行数据采集,最后启用外部中断。

(2)编码器可用中断服务

编码器完成一帧数据编码即可向MircoBlaze处理器发出中断,然后由MircoBlaze处理器控制编码器向环形缓冲区提取数据,并在环形缓冲区耗尽时等待一定时间;

(3)码流可输出中断服务

当两级FIFO先一级所准备输出的码流满时,可向MircoBlaze处理器发出中断,然后在MircoBlaze处理器控制下,将该码流交付给USB或以太网输出接口API并由底层驱动输出,最后再清空FIFO先一级。

图5所示是其应用程序流程图。

4 结束语

本设计介绍了基于Spartan-3 FPGA实现通用视频采集系统的实现方案。本系统的设计依赖于专用的设计软件和IP模块。由于采用了SOPC技术,该系统可裁减、可扩充、可升级,而多层次IP模块的高度复用又使得本系统具有设计周期短,风险投资小和设计成本低等优势。

责任编辑:gt

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

    关注

    544

    文章

    7682

    浏览量

    344363
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593199
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409134
收藏 人收藏

    评论

    相关推荐

    基于FPGA视频解码芯片的实时图像采集系统设计

    基于FPGA视频解码芯片的实时图像采集系统设计,介绍了CCD图像传感器和ADV7181B解码芯片
    发表于 11-17 13:59

    怎么在Xilinx Spartan-3 XC3S200 FPGA中使用鼠标

    说的是一个Xilinx Spartan-3 XC3S200 FPGA,如上所述)标题)。基本上,我想要一个实际工作的源代码,或者一个网站,任何有用的东西,所以我可以继续这样做。您需要知道的任何问题
    发表于 01-28 09:37

    采用FPGA实现数字视频转换接口设计

    引言   本文从实际应用的角度出发,采用FPGA作为主控芯片,设计了一款数字视频接口转换设备。 该设备针对于MT9M111这款数字图像传感器产生的ITU-R BT.656格式数据进行
    发表于 05-05 09:29

    如何使XC3S200 FPGA以理想的占空比输出时钟?

    亲爱的,我的朋友, 我发现XC3S200 FPGA会降低时钟占空比。当我将占空比为50.3%的时钟输入FPGA时,如果我进行如下连接,则占空比变为约53%:时钟输入引脚 - > BUFG-
    发表于 05-09 12:44

    XC3S200配置出现问题

    嗨,我用基于ARM的微控制器和XC3S200创建了一块电路板。 FPGA在Slave Parallel模式下编程,配置过程(使用.bit文件)似乎没问题:在INIT_B上没有发出错误信号,DONE在
    发表于 05-20 09:56

    基于FPGA与DSP的视频处理系统设计

      本系统采用基于FPGA与DSP协同工作进行视频处理的方案实现
    发表于 06-19 06:12

    请问s3不支持AXI怎么办?

    嗨!我想在EDK 13.2下用xc3s200 fpga创建一个微型光泽系统在EDK中,似乎AXI取代了旧的PLB和OPB总线。但是s3不支持AXI。那么,我该怎么办?我必须下载一些旧版
    发表于 06-24 06:08

    采用FPGA实现多普勒测振计信号采集系统设计

    针对遥感系统的工作环境特点、待处理信号的频谱特征以及系统信噪比等要求,综合比较多种信号采集系统方案的优缺点,本文提出了一种基于
    发表于 06-24 07:16

    如何采用Spartan-3 FPGA实现通用视频采集系统的设计?

    本文介绍了采用Xilinx公司的Spartan-3 FPGA实现通用视频采集
    发表于 06-08 06:34

    基于FPGA和TOE架构实现多路采集与切换系统方案

    的高精度模数转换芯片AD7609BSTZ,它是一款18位、8通道、真差分、同步采样模数数据采集系统(DAS),最高吞吐率达200kS/s。该
    发表于 07-12 08:30

    一种基于DSP与FPGA实现场发射平板显示器视频信号处理系统方案

    摘要:数字视频信号处理涉及对高速实时视频信号的传输和处理,要求相关电路系统具有强大的数据处理能力。介绍一种以DSP和FPGA器件为核心构建的场发射平板显示器
    发表于 02-25 16:39 53次下载

    基于XC3S200的通用视频采集系统的设计

    本设计介绍了基于Spartan-3FPGA实现通用视频采集系统实现
    发表于 11-23 15:33 3400次阅读

    基于FPGA和SAA7113芯片视频采集监控方案

    提出了基于 FPGA视频监控系统整体实现方案。首先介绍了在FPGA中设计I2C总线配置模块对
    发表于 11-24 15:39 2637次阅读
    基于<b class='flag-5'>FPGA</b>和SAA7113<b class='flag-5'>芯片</b>的<b class='flag-5'>视频</b><b class='flag-5'>采集</b>监控<b class='flag-5'>方案</b>

    如何使用FPGA和ARM设计和实现多路视频采集系统

    提出了一种基于FPGA+ARM的多路视频采集系统的设计与实现方法。该视频
    发表于 11-19 15:51 21次下载
    如何使用<b class='flag-5'>FPGA</b>和ARM设计和<b class='flag-5'>实现</b>多路<b class='flag-5'>视频</b><b class='flag-5'>采集</b><b class='flag-5'>系统</b>

    如何使用FPGA实现超长CIS图像采集系统的设计

    介绍一种用于印制电路板孔径孔数检测机的新的基于FPGA 的超长CIS 图像采集系统,该系统由三个CIS(接触式图像传感),两个A/D(数/模)转换
    发表于 01-26 15:57 10次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>超长CIS图像<b class='flag-5'>采集</b><b class='flag-5'>系统</b>的设计