OSD技术在ATM数字视频监控系统中的应用
MDATA[7:0]:并行数据口,是单牒同对AM-204M进行读写操作的数据口。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.2 芯片OSD的写RAM接口时序
AM-204M有几个专用的寄存器,用于对OSD功能(包括OSD开关、位置、背景等)进行管理。设计人员可以自定义一些字符或者汉字放在RAM内用于显示,芯片的RAM可一次写入64个字符。图3是通过HOST接口往RAM存储器中写一个字符的时序。图中D0-D7是一个字符的二进制点阵信息。
ROM存储的128个字符占用的CODE(oram_data[7:0])的地址范围为00~7F。而RAM写入的64个字节占用的CODE地址从80开始,为一个连续的地址空间。在系统工作时,AT89C55单片机首先要得到叠加的信息,然后从字符存储区中取出相应的字符,叠加到屏幕上的适当的区域。字符的RAM表如表1所示。
表1 字符在RAM中的位置与编码的对应关系
字 符 | 代 码 | 地 址 |
第1字符 | 80h | 00 |
第2字符 | 81h | 01 |
… | … | … |
第64字符 | BFh | 63 |
3 用OSD芯片实现用户菜单的叠加
MB90092是用CMOS工艺制成的OSD可编程大规模集成电路芯片,可用于计算机控制的录像机、VCD等的屏幕字符显示。该芯片有视频信号输入输出功能,可作为一种通用的OSD芯片,完成视频信号与字符的叠加显示。芯片可外接2M字节的ROM,支持24×32点阵显示方式,可在屏幕上叠加一个主屏幕和一个子屏幕,主屏上叠加12×24个汉字。它有视频信号输入脚,在其内部可完成视频信号与汉字信号的叠加,直接输出复合视频信号。MB90092内部可自行产生同步信号,无需外加视频信号和同步信号;可直接输出汉字信号至监视器,在监视器上显示不同背景颜色、不同汉字颜色的文本,利用此特点可设计系统的设置菜单。字库芯片采用AT27C080,该芯片的存储容量为1M字节,可存储8K汉字。国标所规定的一、二级汉字均可包含,每个字占用128字节。汉字点阵为24×24。为适应MB90092,每个汉字的24~31字节、56~63字节、88~127字节应为空白。
3.1 芯片主要管脚功能说明和接口时序
IC:当TEST脚输入低电平时,这个管脚能被用作芯片的RESET端。
CS:芯片的片选端,低电平有效。也可以用它来释放power-on reset。
SCLK:时钟输入端,输入读数据时钟。
SDA:串行数据输入端。
EXHSYN:外部行同步信号输入端,当对芯片内部寄存器进行适当设置时,这个管脚也可以作为复合同步信号输入端。
VOUT:复合视频输出端(输出信号的峰-峰值为2V)。
VIN:复合视频信号输入端,用于叠加显示,要求信号的峰-峰值为2V.
EXS和XS:外接晶体端,为芯片内部的图像提供振荡时钟,选用NTSC制式时,外接14.31818MHz的晶体;选用PAL制式时,外接17.734475MHz的晶体。
EXD和XD:连接外部的LC时钟振荡电路,为字符的产生提供打点时钟,一般为6MHz或7MHz,据此确定电感、电容数值。
MB90092采用指令方式控制,外部单片机可以通过串行接口向MB90092发送指令,每个指令由两个字节组成。第一个字节的前5位为命令码,其余位和第二个字节为数据。指令能实现对字符显示的各种控制,MB90092共有13种指令和两种保留指令,具体功能见表2。
表2 MB90092指令集
命令号 | 功 能 |
0 | VRAM地址设置 |
1-1 | 主屏字符控制1 |
2-1 | 主屏字节控制2 |
1-2 | 了屏线控1 |
2-2 | 子屏线控2 |
1-3 | 主屏线控1 |
2-3 | 主屏线控2 |
3 | VRAM写控制 |
4 | 屏幕控制1 |
5 | 屏幕控制2 |
6 | 主屏线控3 |
7 | 主屏垂直位置控制 |
8 | 主屏水平位置控制 |
9 | 汉字显示控制 |
10 | 颜色控制 |
11 | 子屏幕控制 |
12 | 子屏垂直位置控制 |
13 | 子屏水平位置控制 |
MB90092与外部单片机的接口有自己独特的时序,如图4所示。首先,CS片选有效,在每个时钟的上升沿,DATA数据1的bit进入MB90092内部的串行移位寄存器,8bit为一个字节;然后CS和SCLK分别为高,作为一个字节的结束;接着发送下个字节。在串行传输中,时钟用来对收到的bit计数,通过强制CS为高,可以复位串行传输。通过强制CS从高到低,清除复位,使得随后的8bit数据是一个字节数据。如果在8bit数据中间CS变高,则这个数据是无效的。
如图4所示,数据A被写入内部寄存器,数据B被忽略。
javascript:window.open(this.src);" style="cursor:pointer;"/>
接口时序应注意以下几点:
(1)为了保持字节同步,在串行数据传输之前,CS管脚应当先设成高,然后设成低。
(2)除了刚上电时,在串行传输之前,都应当强制SCLK管脚为高电平。
用汇编语言实现的写一个字节程序如下:
WRITE_1BYTE:
SETB _CS
NOP
CLR _CS
MOV R6,#8
WR1:
NOP
CLR SCLK
RRC A
MOV SIN,C
NOP
NOP
SETB SCLK
DJNZ R6,WR1
NOP
SETB _CS
RET
程序中加入NOP指令是为了满足MB90092对时序时间的要求。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3.2 汉字叠加与缓冲放大模块
在视频监控中,视频流过解码,使视频D/A转换模块输出的模拟视频信号叠加上菜单汉字信息,然后经缓冲放大后输出到监视器上。图5为视频汉字叠加与缓冲放大原理图。
对图5进行如下说明:
(1)图5中同步分离由LM1881完成,分离出复合同信号送到字符叠加芯片供字符叠加使用。
(2)输出缓冲放大采用OPA2354芯片。它的INA-管上的调节电阻分别为620Ω和330Ω。
3 使用MB90092应注意的问题
(1)程序开始时,要输入CS四次去清除上电复位,然后所作的设置才是有效的。
(2)如果选择外同步方式,只有当外同步信号存在时,MB90092才能接收控制命令。为了防止当视频信号由"无"切换到"有"时监视器上产生字符丢失的情况,屏幕上叠加的所有字符每隔0.2秒要更新一次。这样就不会发生字符丢失的现象。
(3)改动屏幕上的字符时,必须先清理内存区域,否则屏幕会出现乱码及一些预料不到的显示。清屏包括子屏清除和主屏清除。如果没有用到子屏,只要在开始时清一次子屏就可以了(所谓清屏,就是在屏幕上相应位置写空格字符)。
(4)上电复位后,为了有效设置屏幕及字体的各种民属性、行距、显示位置等,先选择内异步方式,待设置完成后,再设定为外同步方式;否则,设置时如无外同步信号,所有的设置均为无效设置。
(5)由于视频信号频率较高、频带较宽,因而当两路视频信号相距较近时,容易产生串扰。为了尽量减少串扰,制板时需做到以下几点:
*各种视频信号间用较粗的地线隔开,视频走线尽量石头则粗;
*模拟地和数字地分开,只在电源处单点相连;
*开关电源时,应使交流电与直流低压之间相距较远,且用地线隔开;直流低压与开关管的调整电路之间要用光耦隔开。
本文给出了两种实现OSD的方法,分别用于ATM监控设备的不同模块中。设计中考虑了实用和经济两个因素,从实际的产品来自,性能稳定可靠,具有很普遍的应用价值。