第29卷第4期增刊
2008年4月
仪
器
仪表学
报
V01.29No.4Apr.2008
ChineseJournalofScientificInstrument
基于FPGA的视频图像采集系统的设计与实现木
刘泽伟
解梅
(电子科技大学电子工程学院成都610054)
摘要提出并实现了一种基于Aitera
Cyclone
FPGA的嵌入式高速视频图像采集及处理系统控制模块的设计方法。在视频
图像采集及处理系统中,FPGA作为主要的控制芯片,负责获取外部视频解码芯片输入的图像数据并将数据进行存储,同时协调图像识别运算芯片DSP将数据输入到DSP中.在设计中采用VerilogHDL作为编程语言并运用了乒乓设计思想以及同步有限状态机的设计方法。经过实际测试,存系统可以稳定运行于高速图像采集环境中并在很多领域中有着广泛的应用。关键词FPGA有限状态机图像采集
ASystemDesignandRealizationforVideoImageAcquirementBased
on
FPGA
LiuZeweiXieMei
Technology
(InstitutionofElectronicsEngineering
University
ofElectronicScienceandofChinaChengdu
610054
China)
Abstract
Anembeddedsystemwhichisusedtoacquireandprocessthehiighspeedvideofrequencyimageis
on
proposedinthispaper.ThemaincontrollerofthissystemisbasedAlteraCyclone
FPGA.The
FPGAtakes
State
chargeofacquiringandtransmittingtheimagedatatothememoryandDSP.TheSynchronous
FSM(Finite
Machine)andPingpongControl
technique
ale
proposed
in
thesystemdesign.Theverilog・HDLisusedfor
canrun
programming.ByusingtheAlteraFPGA勰thecontroller,thesystemhas
a
ata
highfrequencyandthissystem
wideusageinmanydomains..
FPGA
FSM
Image
Acquirement
KeyWOrds
1
引言
高速视频图像的采集、存储以及处理被越来越
同时充分利用同步有限状态机(FSM)产生精确的时序,控制系统内部各个操作过程。
广泛的应用于国民经济的各个部门。特别是嵌入式图像处理系统在工业控制、智能交通管理、安检等领域有着广泛的应用。其中采用FPGA作为视频图像采集及处理系统的控制芯片,并采用高速数字信号处理芯片DSP作为运算核心并辅助以存储芯片的系统是一种典型的设计方式。一个稳定、实时、高速的前端图像采集及存储模块是这种图像处理系统的一个重要的组成部分。本文将重点描述图像采集模块的设计与实现。在设计中广泛采用了FPGA设计中的乒乓转换思想,保证了高速信号流的不间断传输,
・基金项目:国家自然基金编号:No.60472046珠海市产学研专项基金:PC20072023
2系统设计思想
基于FPGA芯片的高速、高集成度、编程灵活等
优点,采用硬件描述语言VerilogHDL晦’进行编程设计,可以方便的实现数据流的不问断采集;同时将所需要的图像数据进行存储,并辅助DSP芯片将图像数据传输至DSP进行算法级处理,根据不同的需要在DSP内移植不同的算法,可以灵活的实现各种
图像识别、处理等功能。本嵌入式系统采用Altera
CycloneFPGA器件作为控制核心胆’,对实时的视频
图像进行捕捉,提取其有限帧图像作为处理对象进行存储及处理,整个系统的设计框图如图l
第4期增刊刘泽伟等:基于FPGA的视频图像采集系统的设计与实现
A/D
Interface
2.数据暂存部分FIFO3.DSP接口部
4.核心控制部分ControlCore
5.
分DSPInterface
负责发送处理结果部分UART。
图1系统设计框图
系统共有4个部分组成:1.A/D转换部分2.图像存储部分,采用双SRAM作为存储器件3.系统控制部分,采用Cyclone系列FPGA作为控制核心4.图像处理部分,采用双DSP作为图像数据处理核心。其中前三部分是本论文重点描述部分。A/D转换部分作为前端负责图像数据采集及模数变换,本系统采用IPlIIILIPS公司的视频解码芯片S/认7113H来完成。存储部分采用高速SRAM,其读写周期可达到IOnsHl。考虑到外部视频数据的高速及不间断性,采用双SRAM作为存储器件,并采用乒乓控制的思想,通过FPGA的编程控制,使其进行交替的数据读写,保证数据的完整性和不间断性。图像数据处理的核心采用TI公司的TMS320C6000系列DSP芯片,通过移植不同的算法,实现对不同图像数据的处理。具有很大的灵活性和可操作性。系统的控制部分负责整个系统的数据分配、控制信号的建立与数据传输等工作,本模块与其它四个模块相连接,控制前端的数据采集,将数据进行存储,同时响应DSP的读写信号,将数据传输至DSP进行后期处理,在处理完毕以后将所期望的结果数据传输至终端PC从而完成整个操作过程。本系统采用AlteraCyclone系列FPC,A。设计过程中主要采用乒乓控制思想来完成数据流不问断的采集与传输。
3.1A/DA/D
图2FPGA编程结构框图
Interface.
Interface模块是用来和外部视频解码芯片
SAA7113H相连,其输入信号是SAA7113H芯片输出的场同步信号VS、行同步信号Hs、8位数字图像信号VPO、数据同步时钟LLCLK蟑’。此模块根据输入的行场同步信号,对有效视频图像数据进行采集。其中A/D芯片SAA7113H输出数据,每采集一帧图像都是分两场采集,采用VRLN=I模式,第一场的有效数据是从第23行开始到第309行结束。第二场有效数据从第336行开始到622行结束啼1。采用全彩色图像信号每行数据容量1440x8bit。当行参考信号和场参考信号同时处于有效状态时,数据线将在LLCLK的同步下传入8位图像数据喳1,在输入数据
有效阶段此模块输出FIFO写控制信号聒P;在行消
隐以及场消隐期间,禁止数据写入FIFO。
3.2FIF0
在系统运行过程中,前端数据的采集需要跨越两个时钟域,一个是外部的视频图像数据同步时钟LLCLK在本系统中是27姗Z,另一个时钟是FP(;A的运行时钟可达到1001吁lZ以上,所以我们设计了两个FIFO作为数据的缓存。这两个FIFo有以下几个作
3
FPGA控制模块的设计与实现
根据系统所要实现的功能以及系统的运行过
用:一是数据缓存.二是时钟隔离,因为数据跨越时钟域进行传输的时候会出现亚稳态H’,因此用双时钟异步FIFO将数据进行读写隔离,保证数据的稳定性。三是双FIFO可以实现乒乓操作,保证数据不间
程,并考虑到本系统涉及众多芯片的协调工作,在设计过程中将FPGA控制模块分为5个部分,其编程结构如图2所示.这5个部分分别是1.AD接口部分
383
断的进行采集。FIFO输出空满信号给内部控制模
第29卷
位%倥裘学报
块.内部控制模块根据这两个信号对两个FIF0进行
凄取操作。
33DSPImefface
在控制FIFO的同时,此控制模块要将读出数据写入sR柚中去。因为PAL制式信号属于隔行扫描,输出数据并不是连续的图像数据,而是第一场输出奇数行数据,第二场输出偶数行数据.因此要对接收的数据进行有效的地址编码,将它们重新整合成一幅完整的图像数据。对双sR胁的控制如同取FIFO控制一样,通过获取与释放SRAM的控制权,与DSY进行交替控制SRAM。当一十SRAM写完一帧图像的
时候,转而向第二个sR^M写^数据,同时向dspInterface发出满标志信号,并释放已经写满数
系统采刖TI公司的13tS320C6000系列DSP作为图像址理芯片,其中利用DSP的叫IF(Externa}yemoryInterface)接口”。,将FPGA毗及SiVa配置
为sBsR^6l(SynchronousBurstStaticRm),FPGA
通过读取DSPEMIF接口的nSSAOS
nSSOE
nSS眦
EA[N+2:2]ED[3l:0]等信号.根据DSP内部的时序著系,获取DSP的读爿使能信号,同时对读写地址进ti亍适当的编码,将数据青效的写入DSP以艘从DSP中读出所需要的运算结果。DSPInterFace模块主要完成以下工作(1)接收SRA^I满标志信号sramWrFinish.判断SPAId的控制权是否处于正效状盎,即sR埘没有被控¥4模块所操作。然后向DSp
发出tlJ断信号dspInt,通知DSP}4以进行读操作。(2)对EMIF接口信号进行采样并判断是台有读使能
据的SRAM的控制权,交由dspInterface模块控制。
35
U^RTUAR
r为通用异步接收值送装置,在设计模块
中用来负责和外部终端如Pc进行连接,将系统处理
结果等信总输出至外部设备,完成整个嵌入式系统最后一部分工作。术系统在UART接口方面采用RS232一C串口通信标准.通过FPGA内部编程.实现与Pc之问通信的串u电路。另外存模块设计中,我
们调用了吼artuslI的Megafunction的^LTPLL模块作为单时钟输入以后的倍频以及分频器。
信号的启动。在判断DSP开始对外部数据进行读操作时将读地址输出到所要撵作的sR枷地址u,同时给出sR^jl的读使自E信号neen0E,将数据从SRAM里面凄出并送人啉P。(3)根据SP*SR枷轩ite
C62xx/C67xx
Burstby
DsP时序刳.接收DsP写使能信号
4系统{方真结果
整个编程结构在进行编译咀后.共使用LE为
570,占用端l:l114个6通过QuartuslI的斛LViewer可以观察其内部的模块分布情况,如图3所示
dspWrfmd,根据接n时序将数据从DSP读出,井进
行进一步的姓理。
S4OontrolCote
ConeolCom模块姓编群结构中最重要的一个
控制部分,其丰璺负责坼调输入数据的存储,出及将存储数据传输至OSP进行处理。田为涉厦众多芯片的坼请工作,此模块采用有限状态机(FSm)进行乒
乓控制“,其同步时钟是FPGA的运行时钟fpgaClk。
与FIFO相连接的部分输八信号是FIFO的满/空信号fullp,emptyp输出FIFO的读使能信号rdp。在此接口使用乒乓控制,自l果一个FIFO写满.外i;}【f的saaInterfaee模块放弃这个FIFO的控制权.交由FPGA的ControlCore束j{}行控制.然后controlCore
对这个已经写满的FIFO进行读撵作,直至这个FIFO
闰3FPGA编判结构RTL桃圈
龌十整个系统接口复杂.在系统万针过程中首先是对荐个模块进行功能仿真,功能仿真无误后,然后再对各模块进行聪台仿真片中包括功能仿真、
出现空信号emptypt如此变替操作实现输入数据的
控制’~。
第4期增刊刘泽伟等:基于FPG^的视额图像采耍系统的设计目实现
综合后仿真和时序仿真。通过Quartus[[的Si邸alTapII以及SignalProbe“’进行测试程序能
乓控割数据流向的仿真图.圈6是整个编程系统的功能仿真固。
够在电路中稳定准确的运行。蚓4和圉5分别是乒
=黜{{
目4#t挎制数据*L向
n%m
回国目国
口日日日日日0Ⅱ”扯“删.墓_;。t№肿
罔;#t拄制数据讹目f2)
一一
日口日日
日B
Ⅲ∞
胃蝌回国旧圄圉吲国目吲国
》豪≥纛苷一
圈G系统仿真圈
Edition北京电子I业Hj版社2005
224—270
5结论
系统设计过程中采用了AlteraCyclone系列
【2】潘松黄继业E叭技术实用教程第=靛北京科学出
版社20∞31I
340
2Il_册1
的FPGA来控制系统的运行,使得系统设计便捷,整体电路时序耪确,运行速度高,具有很好的实时性。在系统设计过程中还可以进一步提高FPGA内部LE的利用率,以便能够增加更加复杂的控制程序井可以增加韶分图像初期处理模块,提高整个系统的运行速度。参考文献
【1lRaf"lcGor啪JcLD】目d】Ⅱ№*PreeningSecond
385
【3J夏宇闻Yerihng数字系统谩计教程北京北京航空航
*大学出版社2007129-[45307-359【4l【5l
ISSI
LS61INl0248IM
DCiletil
x
8High・speedCmo¥StaticⅢ
DigiIalDesign
Mk№l
John
F
Adv—d
w汕the
VedlogHDL北京:屯子T业Hl版社.2003105-399.16l
Wahnty
Digital
DesigⅢPrlnciplesandPractices
551.702
Third
Edidon北京:机械Tnm版社,2605
【7】CliffordE
Cmmlngs
Synthnis∞dSOiplingT%k
niq”sIhDesigningMu…fA“M胁no%Clock
Dcsi口'Is,200122-107
第29卷第4期增刊
2008年4月
仪
器
仪表学
报
V01.29No.4Apr.2008
ChineseJournalofScientificInstrument
基于FPGA的视频图像采集系统的设计与实现木
刘泽伟
解梅
(电子科技大学电子工程学院成都610054)
摘要提出并实现了一种基于Aitera
Cyclone
FPGA的嵌入式高速视频图像采集及处理系统控制模块的设计方法。在视频
图像采集及处理系统中,FPGA作为主要的控制芯片,负责获取外部视频解码芯片输入的图像数据并将数据进行存储,同时协调图像识别运算芯片DSP将数据输入到DSP中.在设计中采用VerilogHDL作为编程语言并运用了乒乓设计思想以及同步有限状态机的设计方法。经过实际测试,存系统可以稳定运行于高速图像采集环境中并在很多领域中有着广泛的应用。关键词FPGA有限状态机图像采集
ASystemDesignandRealizationforVideoImageAcquirementBased
on
FPGA
LiuZeweiXieMei
Technology
(InstitutionofElectronicsEngineering
University
ofElectronicScienceandofChinaChengdu
610054
China)
Abstract
Anembeddedsystemwhichisusedtoacquireandprocessthehiighspeedvideofrequencyimageis
on
proposedinthispaper.ThemaincontrollerofthissystemisbasedAlteraCyclone
FPGA.The
FPGAtakes
State
chargeofacquiringandtransmittingtheimagedatatothememoryandDSP.TheSynchronous
FSM(Finite
Machine)andPingpongControl
technique
ale
proposed
in
thesystemdesign.Theverilog・HDLisusedfor
canrun
programming.ByusingtheAlteraFPGA勰thecontroller,thesystemhas
a
ata
highfrequencyandthissystem
wideusageinmanydomains..
FPGA
FSM
Image
Acquirement
KeyWOrds
1
引言
高速视频图像的采集、存储以及处理被越来越
同时充分利用同步有限状态机(FSM)产生精确的时序,控制系统内部各个操作过程。
广泛的应用于国民经济的各个部门。特别是嵌入式图像处理系统在工业控制、智能交通管理、安检等领域有着广泛的应用。其中采用FPGA作为视频图像采集及处理系统的控制芯片,并采用高速数字信号处理芯片DSP作为运算核心并辅助以存储芯片的系统是一种典型的设计方式。一个稳定、实时、高速的前端图像采集及存储模块是这种图像处理系统的一个重要的组成部分。本文将重点描述图像采集模块的设计与实现。在设计中广泛采用了FPGA设计中的乒乓转换思想,保证了高速信号流的不间断传输,
・基金项目:国家自然基金编号:No.60472046珠海市产学研专项基金:PC20072023
2系统设计思想
基于FPGA芯片的高速、高集成度、编程灵活等
优点,采用硬件描述语言VerilogHDL晦’进行编程设计,可以方便的实现数据流的不问断采集;同时将所需要的图像数据进行存储,并辅助DSP芯片将图像数据传输至DSP进行算法级处理,根据不同的需要在DSP内移植不同的算法,可以灵活的实现各种
图像识别、处理等功能。本嵌入式系统采用Altera
CycloneFPGA器件作为控制核心胆’,对实时的视频
图像进行捕捉,提取其有限帧图像作为处理对象进行存储及处理,整个系统的设计框图如图l
第4期增刊刘泽伟等:基于FPGA的视频图像采集系统的设计与实现
A/D
Interface
2.数据暂存部分FIFO3.DSP接口部
4.核心控制部分ControlCore
5.
分DSPInterface
负责发送处理结果部分UART。
图1系统设计框图
系统共有4个部分组成:1.A/D转换部分2.图像存储部分,采用双SRAM作为存储器件3.系统控制部分,采用Cyclone系列FPGA作为控制核心4.图像处理部分,采用双DSP作为图像数据处理核心。其中前三部分是本论文重点描述部分。A/D转换部分作为前端负责图像数据采集及模数变换,本系统采用IPlIIILIPS公司的视频解码芯片S/认7113H来完成。存储部分采用高速SRAM,其读写周期可达到IOnsHl。考虑到外部视频数据的高速及不间断性,采用双SRAM作为存储器件,并采用乒乓控制的思想,通过FPGA的编程控制,使其进行交替的数据读写,保证数据的完整性和不间断性。图像数据处理的核心采用TI公司的TMS320C6000系列DSP芯片,通过移植不同的算法,实现对不同图像数据的处理。具有很大的灵活性和可操作性。系统的控制部分负责整个系统的数据分配、控制信号的建立与数据传输等工作,本模块与其它四个模块相连接,控制前端的数据采集,将数据进行存储,同时响应DSP的读写信号,将数据传输至DSP进行后期处理,在处理完毕以后将所期望的结果数据传输至终端PC从而完成整个操作过程。本系统采用AlteraCyclone系列FPC,A。设计过程中主要采用乒乓控制思想来完成数据流不问断的采集与传输。
3.1A/DA/D
图2FPGA编程结构框图
Interface.
Interface模块是用来和外部视频解码芯片
SAA7113H相连,其输入信号是SAA7113H芯片输出的场同步信号VS、行同步信号Hs、8位数字图像信号VPO、数据同步时钟LLCLK蟑’。此模块根据输入的行场同步信号,对有效视频图像数据进行采集。其中A/D芯片SAA7113H输出数据,每采集一帧图像都是分两场采集,采用VRLN=I模式,第一场的有效数据是从第23行开始到第309行结束。第二场有效数据从第336行开始到622行结束啼1。采用全彩色图像信号每行数据容量1440x8bit。当行参考信号和场参考信号同时处于有效状态时,数据线将在LLCLK的同步下传入8位图像数据喳1,在输入数据
有效阶段此模块输出FIFO写控制信号聒P;在行消
隐以及场消隐期间,禁止数据写入FIFO。
3.2FIF0
在系统运行过程中,前端数据的采集需要跨越两个时钟域,一个是外部的视频图像数据同步时钟LLCLK在本系统中是27姗Z,另一个时钟是FP(;A的运行时钟可达到1001吁lZ以上,所以我们设计了两个FIFO作为数据的缓存。这两个FIFo有以下几个作
3
FPGA控制模块的设计与实现
根据系统所要实现的功能以及系统的运行过
用:一是数据缓存.二是时钟隔离,因为数据跨越时钟域进行传输的时候会出现亚稳态H’,因此用双时钟异步FIFO将数据进行读写隔离,保证数据的稳定性。三是双FIFO可以实现乒乓操作,保证数据不间
程,并考虑到本系统涉及众多芯片的协调工作,在设计过程中将FPGA控制模块分为5个部分,其编程结构如图2所示.这5个部分分别是1.AD接口部分
383
断的进行采集。FIFO输出空满信号给内部控制模
第29卷
位%倥裘学报
块.内部控制模块根据这两个信号对两个FIF0进行
凄取操作。
33DSPImefface
在控制FIFO的同时,此控制模块要将读出数据写入sR柚中去。因为PAL制式信号属于隔行扫描,输出数据并不是连续的图像数据,而是第一场输出奇数行数据,第二场输出偶数行数据.因此要对接收的数据进行有效的地址编码,将它们重新整合成一幅完整的图像数据。对双sR胁的控制如同取FIFO控制一样,通过获取与释放SRAM的控制权,与DSY进行交替控制SRAM。当一十SRAM写完一帧图像的
时候,转而向第二个sR^M写^数据,同时向dspInterface发出满标志信号,并释放已经写满数
系统采刖TI公司的13tS320C6000系列DSP作为图像址理芯片,其中利用DSP的叫IF(Externa}yemoryInterface)接口”。,将FPGA毗及SiVa配置
为sBsR^6l(SynchronousBurstStaticRm),FPGA
通过读取DSPEMIF接口的nSSAOS
nSSOE
nSS眦
EA[N+2:2]ED[3l:0]等信号.根据DSP内部的时序著系,获取DSP的读爿使能信号,同时对读写地址进ti亍适当的编码,将数据青效的写入DSP以艘从DSP中读出所需要的运算结果。DSPInterFace模块主要完成以下工作(1)接收SRA^I满标志信号sramWrFinish.判断SPAId的控制权是否处于正效状盎,即sR埘没有被控¥4模块所操作。然后向DSp
发出tlJ断信号dspInt,通知DSP}4以进行读操作。(2)对EMIF接口信号进行采样并判断是台有读使能
据的SRAM的控制权,交由dspInterface模块控制。
35
U^RTUAR
r为通用异步接收值送装置,在设计模块
中用来负责和外部终端如Pc进行连接,将系统处理
结果等信总输出至外部设备,完成整个嵌入式系统最后一部分工作。术系统在UART接口方面采用RS232一C串口通信标准.通过FPGA内部编程.实现与Pc之问通信的串u电路。另外存模块设计中,我
们调用了吼artuslI的Megafunction的^LTPLL模块作为单时钟输入以后的倍频以及分频器。
信号的启动。在判断DSP开始对外部数据进行读操作时将读地址输出到所要撵作的sR枷地址u,同时给出sR^jl的读使自E信号neen0E,将数据从SRAM里面凄出并送人啉P。(3)根据SP*SR枷轩ite
C62xx/C67xx
Burstby
DsP时序刳.接收DsP写使能信号
4系统{方真结果
整个编程结构在进行编译咀后.共使用LE为
570,占用端l:l114个6通过QuartuslI的斛LViewer可以观察其内部的模块分布情况,如图3所示
dspWrfmd,根据接n时序将数据从DSP读出,井进
行进一步的姓理。
S4OontrolCote
ConeolCom模块姓编群结构中最重要的一个
控制部分,其丰璺负责坼调输入数据的存储,出及将存储数据传输至OSP进行处理。田为涉厦众多芯片的坼请工作,此模块采用有限状态机(FSm)进行乒
乓控制“,其同步时钟是FPGA的运行时钟fpgaClk。
与FIFO相连接的部分输八信号是FIFO的满/空信号fullp,emptyp输出FIFO的读使能信号rdp。在此接口使用乒乓控制,自l果一个FIFO写满.外i;}【f的saaInterfaee模块放弃这个FIFO的控制权.交由FPGA的ControlCore束j{}行控制.然后controlCore
对这个已经写满的FIFO进行读撵作,直至这个FIFO
闰3FPGA编判结构RTL桃圈
龌十整个系统接口复杂.在系统万针过程中首先是对荐个模块进行功能仿真,功能仿真无误后,然后再对各模块进行聪台仿真片中包括功能仿真、
出现空信号emptypt如此变替操作实现输入数据的
控制’~。
第4期增刊刘泽伟等:基于FPG^的视额图像采耍系统的设计目实现
综合后仿真和时序仿真。通过Quartus[[的Si邸alTapII以及SignalProbe“’进行测试程序能
乓控割数据流向的仿真图.圈6是整个编程系统的功能仿真固。
够在电路中稳定准确的运行。蚓4和圉5分别是乒
=黜{{
目4#t挎制数据*L向
n%m
回国目国
口日日日日日0Ⅱ”扯“删.墓_;。t№肿
罔;#t拄制数据讹目f2)
一一
日口日日
日B
Ⅲ∞
胃蝌回国旧圄圉吲国目吲国
》豪≥纛苷一
圈G系统仿真圈
Edition北京电子I业Hj版社2005
224—270
5结论
系统设计过程中采用了AlteraCyclone系列
【2】潘松黄继业E叭技术实用教程第=靛北京科学出
版社20∞31I
340
2Il_册1
的FPGA来控制系统的运行,使得系统设计便捷,整体电路时序耪确,运行速度高,具有很好的实时性。在系统设计过程中还可以进一步提高FPGA内部LE的利用率,以便能够增加更加复杂的控制程序井可以增加韶分图像初期处理模块,提高整个系统的运行速度。参考文献
【1lRaf"lcGor啪JcLD】目d】Ⅱ№*PreeningSecond
385
【3J夏宇闻Yerihng数字系统谩计教程北京北京航空航
*大学出版社2007129-[45307-359【4l【5l
ISSI
LS61INl0248IM
DCiletil
x
8High・speedCmo¥StaticⅢ
DigiIalDesign
Mk№l
John
F
Adv—d
w汕the
VedlogHDL北京:屯子T业Hl版社.2003105-399.16l
Wahnty
Digital
DesigⅢPrlnciplesandPractices
551.702
Third
Edidon北京:机械Tnm版社,2605
【7】CliffordE
Cmmlngs
Synthnis∞dSOiplingT%k
niq”sIhDesigningMu…fA“M胁no%Clock
Dcsi口'Is,200122-107