新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA的数据嵌入式图像采集系统

基于FPGA的数据嵌入式图像采集系统

作者:时间:2012-08-27来源:网络收藏

根据I2C总线传输的时序,总线控制器的状态机分为空闲状态、启动状态、传输状态、应答状态和停止状态。Idle状态表示总线空闲状态,SCL和SDA都为高电平,若clk=1则进入Start状态。Start状态表示总线启动,此时保持SCL为高电平,将SDA由高电平变为低电平,从而启动传输。Data_trans状态中一次传1 Byte数据。在本状态中,1 Byte数据的传输过程为将时钟线变为低电平,然后将数据放在数据线SDA上。再将时钟线变为高电平,让接收方进行数据接收。传输完1 Byte后进入Hold。Hold状态用来表示应答阶段,主要是产生一个时钟脉冲,让接收方对1 Byte的数据产生应答信号。在此状态中进行对本次数据连续传送是否完毕进行判断。如未传输完则继续到Start状态进行下一次数据的传输,并将count-1。Stop状态表示数据传输结束。在SCL高电平期间将SDA由低转为高。然后输出一个配置完成的信号。寄存器配置状态机如图3所示。

本文引用地址:http://www.eepw.com.cn/article/190003.htm

h.JPG


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显示的时候交叉读取这两个寄存器中的数据。转换公式如下所示
i.JPG
由于在中进行浮点运算较困难,因此可将式(1)中的各系数转化为整数在进行运算,采用将各系数放大1 024倍的方法,得到r、g、b后再除以1 024,放大后的公式为
j.JPG
根据上述公式得到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是对显示接口模块的仿真。由仿真结果可以看出,行同步和场同步符合时序要求。

a.JPG



4 结束语
实现了一种基于CycloneII系列与视频信号处理芯片SAA7113H的。系统结构简单系、统稳定、功耗低、成本低、速度快以及接口方便,可以满足视频监控系统等的需要。中采用作为采集控制部分,可以提高系统处理的速度及系统的灵活性和适应性,对于不同的视频图像信号,只要在FPGA内对控制逻辑稍作修改,便可实现信号采集。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭