以FPGA为核心的逻辑控制模块的数据采集系统
3.3 控制模块
控制模块由control_enable模块和control_interface模块组成主要负责图像采集模块和显示接口模块的同步和使能。当解码芯片配置完成后,从CONFIGURACION_OK输入使能信号,启动该模块,同时通过href和odd信号启动图像采集模块和显示接口模块,href=1表示SAA7113H通过VPO传输像素数据;odd=1表示奇数场,odd=0表示偶数场。
3.4 像素存储模块
图像的一帧为720×625提取其中的有效像素640×576存入SDRAM中,再读出480行数据进行格式转换和显示。
由于SDRAM每个单元为16位,所以将一个Y和一个Cb或Cr合存在一个地址空间中,即两个时钟周期产生一个地址。SDRAM有4端口模式,2个用于将FIFO中的数据写SDRAM,2个用于将数据读到FIFO中,读写采用的时钟不同,写时钟采用解码芯片的27MHz,而渎时钟采用VGA的25MHz,由于SDRAM的读写速度为50 MHz,时钟频率不同,不能直接写入,因此需要一个FIFO将数据暂时储存,再将其写到SDRAM中。
此处关键问题是隔行扫描到逐行扫描的转换。SAA7113H是先奇数场后偶数场的顺序输出,即隔行输出,而VGA显示是逐行显示的,因此要进行去隔行操作。利用对SDRAM的读写地址的控制能够有效解决隔行到逐行的转换问题,数据写入SDRAM是将隔行数据写入到SDRAM的0-640× 576的地址空间中,其中640×23-640×310为1、3、5、…奇数场的有效数据,640×336-640×623为2、4、6、…偶数场的有效数据。两场数据分别通过不同的FIFO读出,格式转换时交叉读取两个FIFO中的数据,这样读出的数据即1、2、3、4、…逐行数据。
3.5 格式转换模块
要将摄像头采集的图像显示在显示器上,需进行数据的格式转换,将YUV格式的数据转换成RGB格式的数据。YUV 4:2:2格式的数据两个相邻的像素共用一对Cb和Cr分量,所以在进行格式转换时要先解交织,即一次从FIFO中提取相邻的两个像素数据,将Cb和Cr各复用一次,使得YUV变成4:4:4格式,然后进行格式的转换。将转换好的数据存放在reg_RGB中,VGA显示的时候交叉读取这两个寄存器中的数据。转换公式如下所示
由于在FPGA中进行浮点运算较困难,因此可将式(1)中的各系数转化为整数在进行运算,采用将各系数放大1 024倍的方法,得到r、g、b后再除以1 024,放大后的公式为
根据上述公式得到r、g、b。然后将结果均右移10位完成除法运算,得到RGB值。由于r、g、b均为8位,取值范围为0~255,而运算过程较易生成负数和超过255的正数,因此运算结果需将负数取0,超过255的正数取为255。此方法虽然会引入误差,但对最终图像的显示效果不会有较大影响。
3.6 显示接口模块
由interface_vga负责图像的显示,从reg_RGB寄存器中读取转换好的数据,对这两个像素的读取由一个转换电路负责在两个寄存器之间切换。显示接口模块将r、g、b以及hsync、vsync一起发送给编码芯片THS8134,通过VGA显示出来,hsync和vsyne分别是行和场同步信号。在仿真中,选用CycloneⅡEP2C20Q240C8芯片,用QUARTusⅡ8.0进行综合与仿真。图4是对显示接口模块的仿真。由仿真结果可以看出,行同步和场同步符合时序要求。
4 结束语
实现了一种基于CycloneII系列FPGA与视频信号处理芯片SAA7113H的嵌入式图像采集系统。系统结构简单系、统稳定、功耗低、成本低、速度快以及接口方便,可以满足视频监控系统等的需要。图像采集系统中采用FPGA作为采集控制部分,可以提高系统处理的速度及系统的灵活性和适应性,对于不同的视频图像信号,只要在FPGA内对控制逻辑稍作修改,便可实现信号采集。
- 针对状态机的综合优化策略(06-05)
- 基于CPLD的电子秤逻辑接口设计(06-05)
- PLC的产生、定义、特点与分类(12-16)
- 70PR02可编程逻辑控制处理模块(12-02)
- 基于PLC的火力发电厂现地控制单元的研究(09-20)
- 基于AT89C55单片机的PLC研究(01-19)