引言
在面向工业现场和车载式的嵌入式视频应用中,往往由于恶劣的客观条件造成系统工作的故障率大幅上升。例如公交车内安装的移动电视终端,因环境较差,夏天温度较高时,会直接影响到设备运行的稳定性和使用寿命。另外,车辆电源的波动较大,从点火的4~8 V到加油门的38 V,导致了图像输出不稳定,出现闪断现象,经常导致系统故障。根据成都和北京两个城市移动数字电视的使用情况来看,故障率高达7.5%,这对整个运营都造成了很大程度的影响。由于以往系统在设计时使用了微处理器内置LCD控制器直接与液晶屏接线的方式,因此出现故障时不便于设备的及时维修和部件更替,给车载式视频终端的推广带来很大的障碍。目前,已有一些厂家专门提供台式车载液晶显示器或车载/便携式TFTLCD模组。由于通用性的设计,这些显示器和LCD模组均为VGA接口,因此,笔者提出了系统目标板与显示器部件两者分立的VGA接口的设计方案,使得车载视频系统的易维护性、通用性、稳定性等方面都得到提高,并且同样适用于工业现场。
1 VGA接口
VGA(Video Graphics Adapter (Array))信号类型为模拟类型。VGA接口是由IBM公司提出的目前广泛使用的显示接口。它采用非对称分布的15脚连接方式,其工作原理是将显存内以数字格式的图像(帧)信号在视频DAC部件里经过模拟调制转换成模拟高频信号,然后再输出到成像设备。这样,VGA信号在输入端就不必像其他视频信号那样经过矩阵解码电路的换算,所以VGA的视频传输过程是最短的。VGA接口具有许多优点,如无串扰、无电路合成分离损耗等。
最初,VGA以其支持在640×480的分辨率下同时显示16种色彩或256种灰度,在320×240分辨率下可以同时显示256种颜色的良好特性得到广泛支持;之后,更高分辨率的SVGA、XVGA等标准在此基础上被提出,接口上都兼容VGA标准。习惯上把所有这种接口标准都称为“VGA接口”。其引脚定义如表1所列。
VGA颜色信息已经是模拟信号,所以显示器并不关心所显示的颜色深度,也不关心图像的分辨率;显示器只能根据帧同步和行同步信号来决定所显示图像的刷新频率。如果两种不同的分辨率,如640×480和800×600,有着相同的行频和帧频,那么它们对VGA接口来说是相同的模式。
表1 VGA接口的引脚定义
2 嵌入式平台VGA视频接口的实现
2.1 实现原理
STR912FW44负责视频解码,并把解码后的帧数据以16位色的点为单位送SRAM显示存储器。除此之外,STR912FW44还提供点频给THS8134作为工作时钟。该点频需要通过计数处理以产生行频和帧频。笔者使用了1片FPGA实现该部分功能。同时,FPGA还产生消隐信号、行频信号和场频信号。消隐信号、场频信号和M1、M2的接地,配置了THS8134工作于RGB模式。FPGA以多路选择器的方式控制双通道SRAM显存(事实上SRAM是由两个独立的芯片组成,当STR912FW44向其中一个SRAM写数据时,另一个用于读出数据),把SRAM中的帧数据以16位色的点为单位依次读取并与一个固定的8位数值混合成24位数值送往视频DAC芯片THS8134。数/模转换后的ARPr、AGY、ABPb三路模拟信号以及行频和帧频信号,共同送往DB15连接器以提供给显示部件。整体设计原理如图1所示。图中的“综合总线”由地址总线、数据总线和控制信号线组成。
图1 整体设计原理框图
2.2 STR912FW44在设计中的应用
STR912FW44是STR91xF系列ARM9微控制器的一款,它整合了一个32位的ARM966ES内核,片内集成512 KB Flash ROM,96 KB的SRAM空间可用来存储数据或者代码,其丰富的外围设备构建了一个理想的嵌入式微控制器。它有很广阔的应用前景,比如点对面的终端、工业自动化、安全和监控、自动贩卖机、通信网关、串行协议转换和医疗设备。ARM966ES的内核能够表现出DSP设备的优秀品质——高速处理能力,音频算法库,支持成像等。
笔者在设计中使用STR912FW44做视频解码,扩展2片256K×16位的SRAM作为显示存储器,将解码后的帧数据送往SRAM等待读取。STR912FW44的P8和P9两个GPIO端口用来传送16位色彩深度的图像数据,但由于THS8134是8位3通道的DAC芯片,因此另外用P6端口提供一个可编程的数值与前面的16位色深数据共同组成24位色深值送往DAC芯片。该8位数值作为调色板数据分别提供给RGB三个通道红色3位、绿色3位、蓝色2位高端的数据。
STR912FW44内置的定时器可以为视频DAC芯片THS8134提供48 MHz的工作时钟。除此之外,其PHY_CLK引脚亦可向外设提供一个24 MHz的工作时钟,只需按手册配置其相应工作寄存器即可。
2.3 DAC芯片THS8134的应用
THS8134是TI公司生产的用于视频/图形应用的通用高速三路DAC芯片。该器件工作在5 V模拟供电,3~5 V数字供电的条件下,其最高采样速率可达到80 Msps。THS8134由3个8位D/A转换器组成,在视频应用中可由附加电路提供两电平或三电平的同步信号和消隐信号,而且可以控制同步是在Y/G上还是3个通道都带同步。支持3×8位4∶4∶4、2×8位4∶2∶2或1×8位4∶2∶2 YpbP/RGB输入模式。
这块芯片工作模式的配置是通过对M1、M2、BLANK、SYNC以及SYNC_T引脚的控制来实现的。必须要有合适的输入控制信号,才能在输出的模拟视频上带有合适的同步头。其中M1、M2为工作模式控制信号,用来选择数字视频信号的输入方式和模拟输出信号的同步头叠加格式;BLANK用来控制输出消隐,无论是否有输入;SYNC控制D/A输出信号同步的宽度;SYNC_T控制三电平同步的正同步头宽度。后3个控制信号可由附加电路控制产生。在优先级方面,SYNC和SYNC_T高于BLANK, 即一旦SYNC或SYNC_T有效,则在模拟视频输出信号上叠加相应的同步信号,而不管BLANK是否有效。
这里只希望THS8134工作在RGB模式。根据手册,应当配置M1=0,M2_INT=0。其中,M1直接对应引脚的电平,所以直接把M1接地即可;而M2_INT是内部信号,它需要在SYNC引脚的上升沿依据M2引脚进行配置。笔者在设计中把帧同步信号frame_freq和SYNC连接,把M2信号直接接地,这样每次在帧同步信号的上升沿配置M2_INT=0,在下降沿配置INS3_INT=0,即把同步信号叠加在绿色通道上,从而实现了RGB模式的配置。该部分的电路原理如图2所示。
图2 基于THS8134的视频DAC部分的电路原理图
2.4 双通道显存的设计
由于STR912FW44片内只有96 KB的SRAM,而解码后的帧数据占用的空间往往比较大,远远超过96 KB的容量,因此必须扩展片外SRAM用作显示存储。在扩展显存时应当注意这样两个问题:
一是STR912FW44向SRAM显存写数据和显存数据被读出提供给THS8134的操作时序应避免冲突,这里笔者使用了1片FPGA来实现双通道显存的设计。同一时间内,一片用于写操作、另一片用于读操作;之后切换,前一片读、后一片写,循环往复。既提高了读写效率,又避免了时序冲突。
二是要计算所需要的容量,要根据解码后帧图像的大小决定所选择SRAM的大小。一般来说,显存的容量应当能够装下3帧数据,这样在容错处理方面就比较宽裕。
2.5 时序的控制
时序控制的重点在于点频、行频和帧频的控制。点频可由STR912FW44内置的定时器产生,这里定义其频率为45 MHz。行频和帧频可以利用对点频的计数来产生。例如大小为1024×768的帧,理论上可以按照每计数1024个点频信号的上升沿产生一次行频有效信号,同理对行频计数,每计数768个行频信号的上升沿产生一次帧频有效信号。但实际上,应当考虑到行回扫和场回扫期间不应对点频信号计数,并且此时应当使消隐信号有效。
结语
在以往的嵌入式开发中,大多是做TFT视频接口的设计,很少有VGA接口的设计和实现。本文结合工程实例,基于STR912FW44微控制器和高速视频DAC芯片THS8134构建了面向VGA接口标准的视频应用平台的硬件电路,描述了嵌入式平台VGA接口视频开发的设计方法,讲述了实现原理和设计要点。为面向车载以及工业现场视频终端的开发提供了很好的参考和借鉴。