摘要:MB90092是日本FUJITSU公司生产的用CMOS工艺制成的OSD(On Screen Display)可编程大规模集成电路芯片,文中介绍了MB90092的功能特点、引脚排列及工作时序,给出了MB90092与AT89S52的接口电路与编程设计方法。
关键词:MB90092;OSD;视频字符叠加;AT89S52
近年来,各种数字视频监控系统已经在高速公路、电力、银行等领域得到了非常广泛的应用。数字视频监控系统常常采用在屏显示(On Screen Display,OSD)技术来实现人机界面的交互。实际上,在屏显示技术就是在视频图像上叠加文字,从而使显示屏幕能够为用户提供更多的附加信息。
MB90092是日本FUJITSU公司推出的一款用CMOS工艺制成的专用视频字符叠加芯片。MB90092内部集成了显示内存(VRAM)、外挂字库接口和视频信号发生器,外部只需连接少量的元件就可以显示汉字和图形。它功能强大,接口简单,编程方便,可方便的嵌入各种数字视频监控系统中,因而可广泛的应用于各个行业和各种领域。
1 引脚排列及内部结构
MB90092采用80脚QFP封装形式,其引脚排列如图1所示,各引脚功能说明如下:
1脚(IC):内部色彩产生模式设置端;
2脚(VOC):字符间隔信号输出;
3脚(VOB):字符/背景信号输出;
5,6,7脚(B,R,G):色彩信号输出;
8脚(CS):片选信号,低电平有效;
9脚(SCLK):时钟输入端,在时钟脉冲的上升沿读入数据;
10脚(SIN):串行数据输入端;
12脚(EXHSYN):器件外部水平同步信号输入端口;
13脚(EXVSYN):器件外部垂直同步信号输入端口;
14(HSYNC):水平同步信号输出端;
15脚(VSYNC):垂直同步信号输出端;
16脚(VBLNK):垂直空格信号输出端;
17,18脚(EXS,XS):这两个引脚可用于外接石英晶体振荡器,NTSC制式时接14.31818MHz?PAL 制式时接17.734475MHz;
20脚(FSCO):内部色彩脉冲输出端;
21脚(CBCK):外部色彩脉冲输入端;
22脚(PDS):色彩脉冲比较输出端;
31脚(YOUT):亮度信号输出端;
32脚(YIN):叠加显示亮度信号输入端;
34脚(COUT):饱和度信号输出端;
35脚(CIN):叠加显示饱和度信号输入端;
37脚(VOUT):复合视频信号输出端;
38脚(VKIN):背景级别控制输入端;
39脚(VKOUT):背景级别控制输出端;
40脚(VIN):需要叠加显示的复合视频信号输入端;
43脚(READ):读外部字库控制端,低电平有效;
44~51脚(DA0~DA7):外部字库数据输入端;
53~61(63~64,66~75脚,ADR0~ADR20):外部字库地址输出端;
77脚(TSC):外部字库操作总线控制端,当该引脚为低电平时,ADR0~ADR20及READ引脚呈现高阻状态;
78脚(TEST):测试信号输入端;
79,80脚(EXD,XD):接外部LC振荡电路;
19,25~28脚(NC):空脚;
11,42,62,76脚(Vcc):电源输入端(+5V);
4,23,52,65脚(Vss):接地端;
41脚(AVcc1):复合视频信号模拟电源;
33脚(AVcc2):亮度和色度信号模拟电源;
24,29,30,36脚(AVss):模拟地。
MB90092的内部结构如图2所示,它主要由串行输入控制电路、NTSC/PAL信号发生器电路、显示存储器控制电路、显示存储器VRAM、字库读操作控制电路、输出控制电路、视频信号合成器及模拟开关组成。
2 主要功能特点
MB90092的主要功能特点如下:
●可提供双屏显示功能,主屏和子屏可单独或重叠显示;
●主屏显示容量:24字符×12行(最多288个字符);
●字符大小有标准(24×32点阵)、双倍宽、双倍高、双倍宽×双倍高、四倍宽×双倍高等多种模式;
●字符颜色:每个字符可单独设置8种不同的颜色和8种背景色;
●显示位置可任意设置成水平方向和垂直方向,同时可设定行距;
●既有复合视频信号和Y/C分离视频信号输入,也有复合视频信号、Y/C分离视频信号和RGB数字视频信号输出;
●内部视频信号发生器可支持NTSC或PAL制式,并可选择逐行或隔行扫描方式;
●可通过CS、SCLK、SIN 三个引脚与外部控制系统进行通信;
●可通过串行输入控制模块接收外部命令和数据并经解码器解码后送到各寄存器中;
●NTSC/PAL信号发生器可产生NTSC/PAL系统时钟信号;
●显示存储器控制模块可产生每一模块的控制时钟信号;
●可用显示存储器VRAM存储字符代码、字符颜色、字符背景颜色、特征及行控制信息;
●字体存储器控制模块可通过地址和READ信号读取外部字体存储器中的字体数据;
●可通过输出控制模块处理从CGROM取来的字符数据,同时产生字符的边界、背景等信号;
●视频信号合成器在内部同步信号的控制下产生视频信号和亮度信号;
●模拟开关可用来选择是将外部视频信号还是内部视频信号与字符信号合成。
3 MB90092的工作时序
MB90092视频字符叠加芯片在工作时,主要通过CS?片选)、SCLK(串行时钟)、SIN(串行数据)三个引脚来接收外部控制指令和显示数据。MB90092的每条指令都由两个字节组成,其中第一个字节的高5位是命令码,其余位和第二字节是数据。图3所示是MB90092的外部接口时序图。
当CS引脚为低电平时,MB90092在每个时钟的上升沿从最低位开始由SIN引脚一位一位读取数据。读完一个字节后,CS和SCLK引脚置为高电平, 然后CS引脚变为低电平并开始读取下一个字节。为了保持字节同步,在开始传输串行数据之前,CS引脚应先置为高电平,然后再置为低电平。另外,除刚上电时外,在串行数据传输之前,SCLK引脚都应强制设为高电平。
该单片机通过串行数据口向MB90092发送指令,每个指令由两个字节组成。第一个字节的前5位为命令码,其余位和第二个字节为数据。通过这些指令可实现对字符显示的各种控制。MB90092共有13种指令和两种保留指令,其具体功能如表1所列。
表1 MB90092指令集
指令号 | 第一字节 | 第二字节 | 功能 | ||||||||||
指令代码/数据 | 数据 | ||||||||||||
76543 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
0 | 10000 | VSL | RAS | RA7 | 0 | RA6 | RA5 | CA4 | CA3 | CA2 | CA1 | CA0 | VRAM地址设备 |
1-1 | 10001 | MA | MB | AT | 0 | CG | CR | CB | MC | BG(GR) | BR(BS) | BB(MD) | 主屏字符控制1 |
2-1 | 10010 | M9 | M8 | M7 | 0 | M6 | M5 | M4 | M3 | M2 | M1 | M0 | 主屏字符控制2 |
1-2 | 10001 | SMA | SMB | 0 | 0 | SCG | SCR | SCB | SMC | SGR | SDC | SMC | 子屏线控1 |
2-2 | 10010 | SM9 | SM8 | SM7 | 0 | SM6 | SM5 | SM4 | SM3 | SM2 | SM1 | SM0 | 子屏线控2 |
1-3 | 10001 | OF1 | OF0 | 0 | 0 | 0 | 0 | 0 | PC | PG | PR | PB | 主屏线线1 |
2-3 | 10010 | G2 | G1 | G0 | 0 | SOC | VD | DG | KC | KG | KR | KB | 主屏线控2 |
3 | 10011 | FIL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | VRAM写控制 |
4 | 10100 | IE | IN | EB | 0 | EO | CM | ZM | NP | P2 | P0 | DC | 屏幕控制1 |
5 | 10101 | KID | APC | GYZ | 0 | BH2 | BN1 | BN0 | W3 | W2 | W1 | W0 | 屏幕控制2 |
6 | 10110 | G2 | G1 | G0 | 0 | SOC | VD | DG | N3 | N2 | N1 | N0 | 主屏线控3 |
7 | 10111 | EG | LP | FO | 0 | 0 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 | 主屏垂直位置 控制 |
8 | 11000 | SC | 0 | FC | 0 | 0 | X5 | X4 | X3 | X2 | X1 | X0 | 主屏水平位置 控制 |
9 | 11001 | 0 | 0 | GRM | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 汉字显示控制 |
10 | 11010 | 0 | 0 | RB | 0 | BK | CC | BC | UC | UG | UR | UB | 颜色控制 |
11 | 11011 | SG2 | SG1 | SG0 | 0 | 0 | SCC | SBC | SGC | SBG | SBR | SBB | 子屏控制 |
12 | 11100 | SGA | 0 | SY7 | 0 | SY6 | SY5 | SY4 | SY3 | SY2 | SY1 | SY0 | 子屏垂直位置 控制 |
13 | 11101 | 0 | SX8 | SX7 | 0 | SX6 | SX5 | SX4 | SX3 | SX2 | SX1 | SX0 | 子屏水平位置 控制 |
14 | 11110 | - | - | - | 0 | - | - | - | - | - | - | - | 保留 |
15 | 11111 | - | - | - | 0 | - | - | - | - | - | - | - | 保留 |
4 与单片机的接口电路
MB90092 与单片机的连接仅需3条线,即 CS、SCLK、SIN?因此只需占用微处理器的3个I/O口。图4是MB90092与ATMEL公司的AT89S52单片机的连接电路。
在图4中,MB90092的片选信号由AT89S52的P1.1提供,串行时钟由P1.2提供,指令和数据则从AT89C52的P1.3端口读取。下面给出的是用C语言编写的发送一字节的源程序代码:
#include <reg52.h>
#include <absacc.h>
sbit CLK_A =P1^2;
sbit DAT_A =P1^3;
sbit CS_A1 =P1^1;
void function SendByteA1(byte dataA1)
{
byte i,n;
i=1;
CLK_A=HIGH;
CS_A1=LOW;
for(n=1;n<=8;n++)
{
DAT_A=dataA1&i;
i<<=1;
_Nop();
CLK_A =LOW;
_Nop();?
_Nop();?
CLK_A=HIGH;
}
CS_A1=HIGH;
}
5 结束语
在使用MB90092芯片时,应当注意以下几点:
(1)在开始进行串行数据传送时,为保持字节同步,应先将CS脚置高,然后再置低。
(2)在叠加新字符前,应先释放内存,也就是先执行一条清屏指令,否则可能会出现乱码及一些预料不到的显示。
(3)上电后,在发送串行数据前,应强制使SCLK脚变高。
(4)在设计印制板时,视频走线应尽量短而粗,模拟地和数字地应分开,且只在电源处单点相连,以防止产生干扰。