摘要:介绍了EPSON公司的视频接口芯片SED1356,及嵌入式系统中视频接口电路设计的基本原理及其软硬件实现,给出了本设计的结论。
关键词:嵌入式系统 视频显示接口 SED1356芯片
目前,在很多嵌入式系统的设计中需要将图像数据转换成视频信号在终端上显示。这就需要设计一个基于嵌入式系统的视频显示接口,以便把图像数据转换成适合终端显示要求的信号,并控制其在终端上的显示。由于嵌入式系统便携式的特点,要求视频显示接口电路不但功能强、性能好,而且还要体积小、重量轻,同时要考虑性价比。在实际系统设计中,选择了EPSON公司的视频接口芯片SED1356来设计视频显示了接口电路。
1 SED1356芯片简介
SED1356是适用于多种CPU和显示设备的彩色LCD和CRT/TV的显示控制芯片。它共而114个寄存器,可以灵活地设置显示方式,功能非常强大,主要用于低功率、低价位的嵌入式系统,如移动通信、手提电脑、商务自动化等。
1.1 SED1356的结构及工作原理
该芯片的内部结构框图如图1所示。来自系统总线的图像数据被磅到主机接口单元。如果数据是由摄像机之类的媒体捕捉到传送进来的,则通过媒体插件接口单元接收后才送往主机接口单元。主机接口单元根据寄存器的设置对图像数据进行处理,通过存储控制单元送往外部DRAM。外部DRAM内的数据则通过LCD通道,经LCD调色板和LCD接口送往LCD显示设备;也可通过CRT/TV接口转换成模拟信号送往CRT或TV。图1中的2D加速器的作用类似于微机中的DMA,可以提高数据传送速度,以加快图像的刷新速率。
1.2 SED1356的特点
(1)显示缓冲存储器为16位的DRAM,可以通过寄存器来设置多种存储器类型。其速率对于EDO-DRAM可达40MHz(即80MByte/s),对于FPM-DRAM可达25MHz(即50Mbyte/s)。存储器容量一般选择512KB(256×16bit)或2MB(1M×16bit)。另外可以通过寄存器编程改变存储控制接口单元的输出时序,使之与存储器匹配。
(2)支持多种CPU接口,包括EPSON E0C33、ENC MIPS VR41xx、Hitachi SH-4/SH-3、PC Card(PCMCIA)/StrongARM等在内的13种接口标准。
(3)可以同时输出数字信号(在LCD上显示)和模拟信号(在TV或CRT上显示),支持4/8/15/16bpp的颜色深度,最多可达64K之多的颜色值,最大达800×600的分辨率。支持TV的NTSC制式和PAL制式。在 NTSC制式中支持从400×396到752×484的多种分辨率。
(4)有一个灵活的时钟管理机制,对内存时钟、总线时钟和TV的电扫描时钟可以灵活地进行调整。它共有三个输入时钟:CLKI、CLKI2、BUSCLK。内部需要的5个时钟:BUSCLK、MCLK、LCD PCLK、CRT/TV PCLK、Mediaplus CLOCK都由三个输入时钟CLKI、CLKI2、BUSCLK进行分频运算得到。
(5)可以通过设置寄存器对图像的显示进行灵活多样的选择。可以在内存储存的多个光标图像中,选择其中的一个;可以设定光标在屏幕上的位置;可以对显示图像进行90°、180°、270°的翻转;可以在内存中储存一个比实际图像大的虚拟图像,而屏幕就相当于一个窗口,可以移动它来显示虚拟图像的一部分;在SED1356内部的20数据加速器可以实现数据块的快速写、读、移动、填充等操作,以加速显示图像的刷新。
2 系统设计原理
本系统原理如图2所示。整个电路的设计以芯片SED1356为核心。CPU将图像数据通过总线传给控制芯片SED1356。在CPU命令的控制下,SED1356将图像数据写入EDO-DRAM中,此后则可以通过对SED1356的各个寄存器进行设置,以实现各种不同的显示要求,然后输出符合求的模拟或数字的显示信号。模拟信号可以送至TV或CRT显示,数字信号可以送至LCD上显示。另外可以通过媒体插件接口(MediaPlug Interface)将摄像机等视频采集设备采集到视频信号直接送往SED1356进行处理,再送至显示设备。这在监视系统中有着广泛的应用。
3 硬件实现
硬件电路的实现如图3所示,电路分四部分:
第一部分是SED1356与CPU总线的接口,包括地址信号AB[2:0],数据线D[15:0],控制线WE0、WE1、RD、RD/WR、WAIT、RESET以及总线时钟BUSCLK。其中CPU地址总线的高位作片选信号。信号M/R用作选择读写的是存储器还是寄存器。
第二部分是SED1356和DRAM之间的接口,包括16根数据线和11位地址线(2M寻址空间),以及读写控制线WE、RAS。因为数据线是16位的,所以还有高低字节选择信号LCASE、UCASE来确定读写的是高字节还是低字节。
第三部分是SED1356同显示设备的连接。送往CRT/TV的是RED、 GREEN、BLUE,分别输出红、绿、蓝的模拟色度值,同时还有水平回扫信号HRTC和垂直回扫信号VRTC,另外还需要外接内部DAC的参考电流,是从引脚IREF输入的。而SED1356同LCD的连接因为输出的是数字信号,所以仍包括16位数据线,另外还有帧脉冲信号FPFRAME和行脉冲信号 FPLINE及输出允许信号DRDY。
最后是时钟信号。三时钟信号BUSCLK、CLK1、CLK2都外接晶体震荡器。由这三个时钟信号经过运算可以得到SED1356所需的八个内部时钟。
4 软件设计
软件设计包括两部分:一是对寄存器进行设置以实现特定的功能;另一个是系统主机CPU向SED1356发送命令,控制图像信号的显示。
4.1 寄存器设置
SED1356具有丰富的可编程功能,内部有114个寄存器,对这些寄存器的设置可以实现许多功能。寄存器设置程序如下,这些操作在图像显示之前进行。
Registers_Proc()
{
VIDEO_INIT1();
//初始化操作,设置内部时钟、DRAM参数,显示模式等
set_vode(NTSC_752_484);
//设置NTSC制式的分辨率为752×484
bpp=set_bpp(8);
//设置颜色值为8位,即可以表示出256种颜色值
set_dram_start_addr(0x00000000);
//设置DRAM的初始地址为0x00000000。
Set_virtue_image(376);
//设置虚拟图像宽度为376个像素,而实际图像可以是该虚拟图像的一部分
set_LUT(0,0,0,255);
//设置调色板值,本参数位置为0的调色板的R、C、B值分别为0,0,255
enable_cursor();
//打开光标显示
set_cursor_position(0,0);
//设置光标位置为屏幕左上角
}
4.2 图像显示控制流程
当对寄存器进行设置完毕后,就可以在CPU的控制下显示图像了。如果显示的是一幅静止的图像,则将其发送到显存即可,显示屏就会按事先的设置显示图像。如果要连续显示图像,一般把显存分为两部分,一部分保存当前显示的图像,另一部分接收下幅图像数据,然后轮流交替,其流程如图4所示。
本系统在GPS系统中得到成功应用,已经达到以下技术指标:
·可以在PAL制式和NTSC制式之间转换(需要设置两个不同的晶振)。
·使用2M内存,储存多幅图画,并且可以在各幅图画之间互相转换。
·可以改变分辨率,可以在400×396到752×484(NTSC制)改变。
·可以选择16色、256色、真彩色等多种颜色。
·对于16色和256色可以设置调色板,用以对显示颜色进行设置。
·可以设置鼠标的图像和颜色,并可以随时调鼠标在屏幕上的位置。
·显示静止图像时,可以通过寄存器开启SED1356,内建闪烁滤波器,以减小图像抖动,使图像显示效果更好。但在显示连续图像时,为满足动画速率要求应将其关闭。
本系统的设计虽然是针对GPS的具体应用,但其设计方法在嵌入式系统的视频显示接口设计中具有通用性,对相关的电路设计有一定的参考价值。