视频收集的干流完结计划有两种:一是根据ASIC,该计划一般采意图法、AMD等公司的专用视频处理芯片;二是根据DSP,首要选用、ADI等公司的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所示。

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是公司推出的一款超低功耗的高性能混合信号视频解码芯片,可主动识别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模块的高度复用又使得本体系具有规划周期短,风险投资小和规划本钱低一级优势。