摘要:介绍了外置式usb无损图像采集卡的设计和实现方案,它用于特殊场合的图像处理及其相关领域。针对图像传输的特点,结合fpga/cpld和usb技术,给出了硬件实现框图,同时给出了fpga/cpld内部时序控制图和usb程序流程图,结合框图和部分程序源代码,具体讲述了课题中遇到的难点和相应的解决方案。
a/cpld正在向sram存储数据,此时用we1作为sram(odd)的片选信号ce1,用we2作为sram(even)的片选信号ce2;当lingpai为低电平期间,表示usb正在从sram读取数据,此时用oe1作为sram(odd)的片选信号ce1,用oe2作为sram(even)的片选信号ce2。
图2 fpga/cpld内部时序控制
下面阐述fpga/cpld如何对数据传输进行控制,这部分是个难点(如图2所示)。这里只讨论如何对奇数场的数字视频信号进行控制,对偶数场的控制类似于对奇数场的控制,本文不再多述。当lingpai为高电平时,表示fpga/cpld向sram存储奇数场图像数据,此时时钟为llc2。wwW.133229.Com当场同步信号vref、行同步信号href、奇偶场标志信号rts0为高电平时,改变相应sram的地址信号,并且把数字视频信号输出以内部的缓冲器vi,当lingpai为低电平时,表示usb正在从sram读取奇数场图像数据,此时时钟为frdclk。fpga/cpld内部用addresschange记录lingpai的变化,当发现有lingpai变化时,表示读取数据变成了存储数据或者存储数字变成了读取数据,此时需要把sram的地址值变成0。成verilog中灵活运用了非阻塞型过程赋值(参见下面的源程序),解决了这个技术难点。此外,需要把从saa711a输出的数字视频信号先放在缓冲器vi[7:0]中,在lingpaiall为高电平时,通过vo[7:0]输出到sram,保证存储数据的可靠同步性。这部分verilog源程序如下: