视频通路模块
本设计中将DM642的3个视频端口VP0VP1VP2均设置为8-bit BT.656模式,其中VP0和VP1采用单通道方式,将通道A用于视频采集;VP2采用双通道方式,通道A和B均用于视频采集。因此,最多可以同时采集4路模拟视频信号。在BT.656视频捕获模式下,FIFO空间总共为2560KB且如下分配:1个1280Byte的FIFO专用于存储Y采样数据;2个640Byte的FIFO分别用于存储Cb和Cr数据。
采用4片飞利浦公司的SAA7113解码芯片来实现4路模拟视频输入的转换。SAA7113支持6路复合视频信号CVBS或1路S端子(S-Video)输入,输出为带离散同步信号的8bit4:2:2YCbCr格式或者带内嵌同步信号的8bitBT.656格式的数字视频信号。
在视频回放部分,编码器选用1片飞利浦公司的SAA7121,其可将数字亮色信号(YUV)或数字RGB信号等数据转换成CVBS,S-VIDEO,RGB等模拟信号输出,支持PAL/NTSC制式,并且支持VGA及高清晰HDTV输出。编解码器与DM642的引脚连接图如图2所示。
DM642中的I2C接口不支持高速模块,因此在本设计中所使用的I2C总线速率最高为400kbit/s。本设计中采用了TI的4bit 2选1切换器SN74CBT3257使DM642可以每次选择接收一组I2C数据。由于SAA7113只能配置两个不同的设备地址,一条I2C总线中不能同时连接4个SAA7113,因此须将I2C总线切分成IIC0和IIC1。具体连接方式见图3。
软件设计
设置DM642内部模块的配置参数,包括VPort视频端口参数配置,SDRAM及FLASH寄存器配置;I2C总线参数配置;编解码芯片内部寄存器配置等。
系统上电初始化,DM642通过内部软件模拟I2C总线时序,配置好SAA7113内部寄存器,设置其工作方式;之后DM642向CPLD发送采集指令,双方通过HOLD、HOLDA握手信号,实现总线控制交接,此时CPLD获得总线控制权,然后打开SAA7113的输出,对采集到的视频数据进行写控制;当一帧视频数据写入SDRAM帧缓存器后,CPLD关闭SAA7113视频输出,放弃总线控制权,并发送中断信号给DM642;DM642重新获得控制权后,对采集到的视频数据使用特定算法进行图像处理,并将处理后的视频数据缓存在SDRAM中,同时配置SAA7121内部寄存器,设置其工作方式,此时将SDRAM中缓存的图像数据送入SAA7121进行D/A转换,并经过并口送VGA显示器进行图像显示;DM642在图像处理完毕后即重新发出开始采集命令,进行下一帧数据的采集。