以FPGA为核心的逻辑控制模块的数据采集系统
1 视频解码器SAA7113H
SAA7113H是Philips公司的一种增强型视频输入处理器,内部有一系列寄存器,寄存器的读、写通过I2C总线完成。包括一个双通道的模拟预处理电路、可编程静态增益和自动增益控制电路、时钟生成电路、数字多标准解码电路、亮度、对比度、饱和度控制电路和I2C总线控制电路。SAA7113H需外接24.576 MHz晶体,内部锁相环PLL可输出27 MHz的时钟。自动检测50 Hz和60 Hz的场频,可在PAL、NTSC两种制式之间自动转换。具有4路模拟视频信号输入,通过内部寄存器的不同配置可以实现4路信号的转换;输入可以是4路CVBS或2路Y/C信号或1路Y/C信号2路CVBS,输出为标准ITU656 YUV4:2:2格式的VPO数据总线(8-bit)。SAA7113H模拟部分和数字部分采用+3.3V,数字I/O接口兼容+5V。
2 系统总体方案及工作原理
系统选用ALTEra公司的CycloneⅡ系列中的EP2C20Q240C8为系统的硬件平台,该芯片内部有18752个LE,26个乘法器和4个锁相环等。视频解码芯片采用Philips的SAA7113H。系统主要由SAA7113H图像采集接口模块、I2C总线配置模块、控制模块、像素存储模块、格式转换模块和显示接口模块组成。设计中利用VHDL语言在QUARTusⅡ下进行编程和调试。系统基本结构如图1所示。
3 主要模块功能介绍
3.1 SAA7113H图像采集接口模块
该模块负责视频图像的采集并将模拟视频信号转换为数字视频信号,为后面的视频处理做准备。该模块与SAA7113H的VPO数据总线、RTS0、RTS1、及LLC相连,RTS0和RTS1分别配置为行同步和场同步信号,只有在这两个信号同时有效时,输出数据是有效图像数据,否则是消隐信号。有效的视频信号分为奇数场和偶数场,共576行有效数据,其中奇数场有效数据为23~310行,偶数场有效数据为336~623行,其余
为垂直控制信号。
SAA7113H的VP0总线输出数据的频率是27 MHz,在每个LLC的上升沿输出1 Byte有效数据。标准ITU YUV 4:2:2格式视频信号的每个像素都有各自的亮度分量Y,每两个相邻的像素公用一对的色差数据Cb和Cr。在存储像素数据时,可认为每两个连续字节表示一个像素,当需要格式转换或进行其他的处理时,要一次提取两个相邻的像素的数据,进行相应处理。其中,每行有数据864个采样点中有效数据720个,消隐期间数据144个。在完整的一帧图像数据中第一场的消隐EAV为FF 00 00 BX,第一场消隐SAV为FF 00 00 AX;第一场有效数据SAV为FF 00 00 8X,有效数据EAV为FF 00 00 9X,其他场类推。奇数场有效数据阶段的SAV为“FF 00 00 80”,偶数场有效数据阶段的SAV为“FF 00 00 C7”。在每个时钟的上升沿读取8位数据,当检测到一行数据的开始标志FF 00 00 XY时,检测到SAV或EAV信号,提取H、F、V信号。然后开始对图像数据进行解码,根据8位数据自带的信息,判断该数据是Y、Cb还是Cr,从而得到Y、Cb、Cr各分量。
3.2 I2C总线配置模块
该模块通过I2C总线协议对SAA7113H进行配置,时钟频率为20 kHz。通过该模块完成SAA7113H配置。配置模块如图2所示。
其中,inICio_conf信号表示启动对SAA7113H进行配置,高电平有效。clk为时钟信号。reset为外部复位信号高电平有效。SCL和SDA为SAA7113H配置信号。CONFIGURACION_OK表示解码芯片配置好以后输出一个控制信号给控制模块,以启动数据采集。
SAA7113H的寄存器地址从00H开始,只有01H~05H前端输入配置部分,06H~13H、15H~17H解码部分,40H~60H常规分离数据部分,这些可读写,其余为保留地址或只读寄存器,将需要配置的寄存器数据存在查找表con_data中,并用count表示当前对哪个寄存器配置,配置时逐个写入寄存器。 根据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所示。
- 针对状态机的综合优化策略(06-05)
- 基于CPLD的电子秤逻辑接口设计(06-05)
- PLC的产生、定义、特点与分类(12-16)
- 70PR02可编程逻辑控制处理模块(12-02)
- 基于PLC的火力发电厂现地控制单元的研究(09-20)
- 基于AT89C55单片机的PLC研究(01-19)