关键词:在屏显示(OSD) 数字视频监控图像和字符叠加
随着银行客户终端ATM自动提未机的推广使用,其安全防范工作显得越来越重要,难度也越来越大。因此,针对ATM的数字视频监控系统便应运而生。数字视频监控系统常常采用在屏显示(On Screen Display,OSD)技术实现人机界面。在屏显示技术就是在图像上叠加文字,使显示屏幕为用户提供更多的附加信息。在ATM监控中,银行对OSD功能有着特殊的要求:
(1)将ATM机号、时间、日期、卡号、数据叠加在所录视频图像上,并且要在每个画面上叠加上镜头的地信息。这些信息叠加以后就成为图像的一部分,作为视频图像的说明,便于进行监控和查询。
(2)在回放或者监控时要提供友好的用户菜单,用来进行系统的设置和查询等操作。这些菜单信息只是给用户提供交互的信息,不破坏图像的完整性,并且不随图像数据传输和存储。
本文针对ATM监控系统对OSD功能的要求,在自行设计的一款ATM监控设备中用不同的方法实现了两种OSD功能。所采用的方法经济、实用,具有普遍意义,也可以推广到其它的数字视频监控系统中。
1 系统简介
本监控系统是一个基于嵌入式CPU和新型MPEC-4硬件编、解码芯片的系统,提供两路视频输入。为了节约成本,两路视频信号复合成画中画进行压缩编码,由嵌入式CPU从PCI接口对压缩数据进行存储和传输。其输出端提供实时的视频输出和画中画回放数据输出。系统硬件结构图如图1所示。
视频A/D转换器选用PHILIPS公司的SAA7113H,通过I2C总线进行寄存器管理,输出标准ITU656接口数据。
画面分割芯片选用A.LOGICS公司的AM-204M五画面分割器,通过对其寄存器的编程实现两路视频信号的画中画叠加。在实际应用中,主画面监控整个提款机终端,子画面监控出钞口。这款芯片还具有OSD功能,用它可实现图像附加信息的叠加。
模拟开关用来选择视频是输出压缩前的实时视频还是回放录像文件的视频,用两片FAIRCHILD公司的74LVT16245总线驱动芯片来实现这部分功能。一片接压缩编码前的数据,另一片接回放的视频数据,两片芯片的输出接在一起送到D/A芯片去实现视频的显示。单片机控制74LVT16245的使能端,根据需要让其中一片74LT16245输出视频数据,实现输出视频的选择。这样,通过对单片机编程,就可以控制在监视器上输出实时视频还是回放录像文件的视频。
视频D/A转换器选用PHILIPS公司的SAA7121,通过I2C总线进行寄存器管理、输入ITU656接口数据、输出模拟视频。
要想使OSD叠加的信息能作为图像的一部分,即图像的附加信息(如日期等)存储到文件中,必须将信息叠是模拟视频输入端,将信息直接和模拟视频叠加后再进行A/D视频转换。另一个是在画面分割器后端的数字视频上叠加信息。这两种方法要用到不同的OSD芯片,虽然效果较好,但增加了设备的成本和电路板的尺寸。在实际的设计中,选用了一款带有OSD功能的画面分割芯片AM-204M,直接在画面分割芯片中叠加字符信息,较好地解决了这个问题。
要实现作为用户操作界面信息的OSD信息的叠加,这里把这部分OSD功能加在视频D/A芯片的复合视频广播信号(CVBS)的输出上。这部分OSD功能提供信息给用户,不破坏图像数据的完整性。由于菜单所需要的信息较多,并且本系统主要是针对国内用户,要求用汉字菜单,所以选用的OSD芯但要提供汉字信息,而且要有足够的汉字库。事实上目前市场上大多数的OSD芯片都只能提供简单的字符信息叠加。通过综合的比较,终选用了FUJISU公司的MB90092芯片。
这里采用单片机AT89C55WD控制画面分割芯片和MB90092芯片实现OSD叠加。所需要的时间信息由单片机通过时钟芯片获得,ATM的机号和卡号从单片机的串行口获得。用户通过接口菜单的一些设置信息,完成单片机与嵌入式CPU的通信。单片机和两个用作OSD的芯片的连接如图2所示。
2 用画面分割芯片实现OSD字符的叠加
OSD字符的叠加由A.LOGIC公司的画面分割芯片AM-204M实现。AM-204M有较强的OSD功能,可实现字符OSD和位图OSD功能。实际上它的OSD功能通过其内部的只读存储器和随机存储器两部分完成。只读存储器存储了128个常用的字符,包括字母和标点符号等,在出厂前一般都已经设定好了。随机存储器中可以存储64个字节,用户可以编程设定这部分字符,灵活运用这部分存储器的内容可以实现多种格式的OSD信息。每屏显示的字符容量是34列×22行。字符采用彩色显示,在一个屏幕内多可同时显示三种颜色。在625线的系统中,字符大小为20×24点阵时就可以有较好的效果。
2.1 画面分割芯片主要控制管脚说明
单片机通过操作画面分割的HOST接口就可以对寄存器进行管理,以此来实现OSD功能。面画分割芯片AM204M主要接口管脚如下:
ADEN:芯片地址使能输入,下降沿取地址数据。
WREN:芯片写使能输入,上升沿有效。
RDEN:芯片读使能输入,低电平有效。
MDATA[7:0]:并行数据口,是单牒同对AM-204M进行读写操作的数据口。
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被忽略。
接口时序应注意以下几点:
(1)为了保持字节同步,在串行数据传输之前,CS管脚应当先设成高,然后设成低。
(2)除了刚上电时,在串行传输之前,都应当强制SCLK管脚为高电平。
用汇编语言实现的写一个字节程序如下:
WRITE_1BYTE:
SETB _CS
CLR _CS
MOV R6,#8
WR1:
CLR SCLK
RRC A
MOV SIN,C
SETB SCLK
DJNZ R6,WR1
SETB _CS
程序中加入NOP指令是为了满足MB90092对时序时间的要求。
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监控设备的不同模块中。设计中考虑了实用和经济两个因素,从实际的产品来自,性能稳定可靠,具有很普遍的应用价值。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。