1 引言
多媒体电视系统作为多媒体技术的重要分支,尤其是多媒体电视节目制作的技术设备,已经发展到相当高的水平。在满足实时输入、输出的条件下,视频数据流压缩比的降低,使图像的技术质量得以提高。目前,在军事、工业和医学领域还存在着大量的非标准的视频系统,而高清晰度的图像质量在这些领域又是必不可少的。因此,标准视频信号转换和处理系统应运而生。现存较多的是以单片机为控制核心的标准视频制式TV-VGA之间的视频转换系统。由于单片机处理时有特有的指令周期,且外围I/O引脚较少、不能灵活配置〔4〕,这类系统转换速度较慢,功能比较单一,图像质量不太高。而现场可编程逻辑器件FPGA正好能弥补单片机的这些缺憾,实现多种制式视频信号之间的实时、高质量的视频图像转换。
2 系统设计原理简介
不同制式视频信号间的根本区别在于扫描方式和行场频率不同。标准VGA 采用逐行扫描, 在一帧内实现对图像的完全扫描; 标准电视信号(以PAL制为例)采用隔行扫描, 利用视觉暂留, 将奇偶场恢复成一帧完整图像。而非标准视频流则无一定规律。因此, 视频转换的基本思路是将非标准视频信号经模数转换成数字信号, 在存储器中缓存,变频读出或经过数字信号处理, 再通过数模转换恢复成标准视频流。本系统设计思路框图如图1 所示。

从原理可以看出, 只要数据读出速度高于写入速度, 就不会使图像产生突变现象, 从而达到实时处理的目的。设计中, 存储器采用2片512K×8 bit 的FIFOAL440, 它采用DRAM 工艺, 最高时钟可达80MHz,是专用的视频存储器。逻辑主控单元选用Altera公司出品的FLEX10K50E 实现, 其门数达到5 万个, 处理速度最高可达220MHz, 很适合高速数据流处理。同步恢复采用74ACT715, 它可按编程数据产生隔行或逐行的电视行场同步信号, 非常适合于多制式输出系统。而视频恢复编码部分采用的是专用数字图像处理芯片DSPAL128, 其内置的高集成化数字处理器, 可以将逐行扫描数字信号直接恢复成标准电视信号和S-VIDEO 输出。
3 系统设计实现
整个系统大体框架如图2 所示, 图中虚线部分均由FPGA 实现。

3. 1 单片机接口模块
FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
系统中有FIFO ,AL128 的I2C 参数和74ACT715的初始化参数及数模、模数时钟分频参数共计90 个,为避免出现繁琐的判断语句, 设计中采用FPGA 内置ROM 结构。其原理图如图3 所示。

图3单片机译码原理图
FPGA 将单片机送来的机器地址(00H~5AH )译码成芯片地址, 芯片地址总共10位, 高2位用来判断配置何种芯片, 低8位用来判断配置该芯片中第N个寄存器。再结合单片机送来的数据线和读写控制线来决定对该寄存器进行读或写操作以及写入的数据。
74ACT715 的配置参数为12位, 配置中用两个连续的地址分别记录其高4位和低8位数据。其中, 57H~5AH为只读地址, 相应数据将控制数模、模数时钟的频率。
3. 2 I2C 配置及时钟控制模块
I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。由于连接到I2C 总线的器件有不同种类的工艺(CMOS、NMOS、双极性),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VCC的相关电平决定,每传输一个数据位就产生一个时钟脉冲。
本系统FPGA 的一个重要功能就是对芯片初始化和I2C 参数配置。I2C 总线是一种由飞利浦公司开发的接口总线, 利用一条数据线sdata 和一条时钟线sclk 在主从器件间进行串行通信。飞利浦公司制定了标准I2C协议, 但是, 工业上依然使用很多非标准I2C器件, 本系统的FIFO、AL128 均为非标准I2C 器件, 故要对它们分别进行配置, 利用FPGA 的逻辑控制及内置MUX 可以在不同读写时序间灵活切换, 达到对多个芯片的全双工同步数据传输。实现原理图如图4 所示。

图4总线切换控制原理图
同时, 由系统实现原理分析可知, 视频制式变换的关键在于扫描频率变化, 即,AD采样时钟频率和DA图像恢复时钟频率。这部分数字频率在系统中是由外部锁相环(PLL) 和FPGA 中的可变分频计数器实现的。其原理图如图5 所示。

图5数字锁相环原理图
与普通锁相环不同的是, 利用FPGA 的可编程性, PLL的参考频率可以由单片机配置的分频数随意更改, 使数字频率合成电路有较高的稳定性、灵活性和灵敏度。
3. 3 FIFO 控制模块
考虑到非标准视频信号一帧图像数据量太大, 一块FIFO 放不下, 同时, 电视信号都采用隔行扫描, 数据流将按奇偶场交替输出, 故设计中用两块FIFO A、B 分别存放图像的奇偶帧, 但在图像恢复时为逐行扫描方式, 这就涉及到在两块FIFO 间交替读出数据的问题。设计中, 用两个场同步信号Vsync 间的行同步信号Hsync 做判断, 决定两块F IFO 的读写, 使数据按ABAB…… 逐行读出。该部分代码段如下, 仿真时序图见图6.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ctrl IS
PORT (
vsync, hsync : IN STD_LOGIC;
fifoa_en, fifob_en:OUT STD_LOGIC
);
END ctrl;
ARCHITECTURE behav OF ctrl IS
SIGNAL fifo_en: STD_LOGIC;
BEGIN
PROCESS (hsync, vsync)
BEGIN
IF vsync=''0'' THEN
fifo_en<= ''1'
ELSIF hsync''event AND hsync=''0'' THEN
fifo_en<= not (fifo_en);
END IF;
END PROCESS;
fifoa_en<= fifo_en WHEN vsync=''1'' ELSE ''1'
fifob_en<= not (fifo_en) WHEN vsync=''1'' ELSE ''1'
END behav;

图6仿真时序图
在时钟方面, FIFO 写入时钟与AD 采样时钟相等,FIFO 读出时钟与DA 恢复像素时钟相等。实时处理运动帧时, 为不在两场之间出现跳动现象, 读出时钟要高于写入时钟。在实际应用中, 为了产生分频率1024×768, 刷新频率为60 Hz 的VGA 图像, 读出时钟高达46MHz,这样的高速数据处理就必须满足一定的时延要求。以50MHz 时钟为例, 数据与时钟间的最大时延不能超过10ns (像素时钟20ns, 半周期为10ns)。经过FGPA 的Quartus 综合分析, 时钟与数据间的最大延时为3.7ns, 满足系统时延要求。一般地, 这一数据是系统最坏情况下的延时, 实际系统延时将小于仿真数据。
4 结束语
在数字电路设计中, FPGA 发挥了越来越重要的作用, 随着FPGA 向高密度、低成本方向发展, 目前的一个趋势是把系统级功能放到FPGA 器件中。本文介绍的视频转换系统以FPGA 作为系统主控元件, 不但大大减少了电路版尺寸, 而且增强了系统可靠性和灵活性。在实际测试中, 将非标准隔行视频信号(1024行, 50Hz 场频) 成功地转换成了高清晰度的VGA 图像和标准PAL 电视图像。目前, 该系统已应用于某医院监视系统。