OSD技术在ATM数字视频监控系统中的应用
2008-09-17
作者:闫红刚 戚文芽
摘 要: 介绍了一种用于ATM自动提款机的数字视频监控" title="数字视频监控">数字视频监控系统,从经济实用的角度出发,在系统的前、后端分别实现了OSD功能。前端叠加的OSD信息作为图像的说明和补充,并且随视频流传输和存储;后端叠加的OSD提供了友好的用户界面,不影响图像的完整性。
关键词: 在屏显示(OSD) 数字视频监控 图像和字符叠加
随着银行客户终端ATM自动提款机的推广使用,其安全防范工作显得越来越重要,难度也越来越大。因此,针对ATM的数字视频监控系统便应运而生。数字视频监控系统常常采用在屏显示(On Screen Display,OSD)技术实现人机界面。在屏显示技术就是在图像上叠加文字,使显示屏幕为用户提供更多的附加信息。在ATM监控中,银行对OSD功能有着特殊的要求[1~3]:
(1)将ATM机号、时间、日期、卡号、数据叠加在所录视频图像上,并且要在每个画面上叠加上镜头的地点信息。这些信息叠加以后就成为图像的一部分,作为视频图像的说明,便于进行监控和查询。
(2)在回放或者监控时要提供友好的用户菜单,用来进行系统的设置和查询等操作。这些菜单信息只是给用户提供交互的信息,不破坏图像的完整性,并且不随图像数据传输和存储。
本文针对ATM监控系统对OSD功能的要求,在自行设计的一款ATM监控设备中用不同的方法实现了两种OSD功能。所采用的方法经济、实用,具有普遍意义,也可以推广到其它的数字视频监控系统中。
1 系统简介
本监控系统是一个基于嵌入式CPU和新型MPEG-4硬件编、解码芯片的系统,提供两路视频输入。为了节约成本,两路视频信号复合成画中画进行压缩编码,由嵌入式CPU从PCI接口对压缩数据进行存储和传输。其输出端提供实时的视频输出和画中
画回放数据的输出。系统硬件结构图如图1所示。
视频A/D转换器选用PHILIPS公司的SAA7113H,通过I2C总线进行寄存器管理,输出标准ITU656接口数据。
画面分割芯片选用A.LOGICS公司的AM-204M五画面分割器,通过对其寄存器的编程实现两路视频信号的画中画叠加。在实际应用中,主画面监控整个提款机终端,子画面监控出钞口。这款芯片还具有OSD功能,用它可实现图像附加信息的叠加。
模拟开关用来选择视频是输出压缩前的实时视频还是回放录像文件的视频,用两片FAIRCHILD公司的74LVT16245总线驱动芯片来实现这部分功能。一片接压缩编码前的数据,另一片接回放的视频数据,两片芯片的输出接在一起送到D/A" title="D/A">D/A芯片去实现视频的显示。单片机控制74LVT16245的使能端,根据需要让其中一片74LVT16245输出视频数据,实现输出视频的选择。这样,通过对单片机编程,就可以控制在监视器上输出实时视频还是回放录像文件的视频。
视频D/A转换器选用PHILIPS公司的SAA7121,通过I2C总线进行寄存器管理、输入ITU656接口数据、输出模拟视频" title="模拟视频">模拟视频。
要想使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实现[4]。AM-204M有较强的OSD功能,可实现字符OSD和位图OSD功能。实际上它的OSD功能通过其内部的只读存储器和随机存储器两部分完成。只读存储器存储了128个常用的字符,包括字母和标点符号等,在出厂前一般都已经设定好了。随机存储器中可以存储64个字符,用户可以编程设定这部分字符,灵活运用这部分存储器的内容可以实现多种格式的OSD信息。每屏显示的字符容量最大是34列×22行。字符采用彩色显示,在一个屏幕内最多可同时显示三种颜色。在625线的系统中,字符大小为20×24点阵时就可以有较好的效果。
2.1 画面分割芯片主要控制管脚说明
单片机通过操作画面分割器的HOST接口就可以对寄存器进行管理,以此来实现OSD功能。画面分割芯片AM204M主要接口管脚如下:
ADEN:芯片地址使能输入,下降沿取地址数据。
WREN:芯片写使能输入,上升沿有效。
RDEN:芯片读使能输入,低电平有效。
MCSB:芯片选择,低电平有效。
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所示。
3 用OSD芯片实现用户菜单的叠加
MB90092是用CMOS工艺制成的OSD可编程大规模集成电路芯片,可用于计算机控制的录像机、VCD等的屏幕字符显示。该芯片有视频信号输入输出功能,可作为一种通用的OSD芯片,完成视频信号与字符的叠加显示[3]。芯片可外接2M字节的ROM,支持24×32点阵显示方式,可在屏幕上叠加一个主屏幕和一个子屏幕,主屏上叠加12×24个汉字。它有视频信号输入脚,在其内部可完成视频信号与汉字信号的叠加,直接输出复合视频信号。MB90092内部可自行产生同步信号" title="同步信号">同步信号,无需外加视频信号和同步信号;可直接输出汉字信号至监视器,在监视器上显示不同背景颜色、不同汉字颜色的文本,利用此特点可设计系统的设置菜单。字库芯片采用AT27C080,该芯片的存储容量为1M字节,可存储8K汉字。国标所规定的一、二级汉字均可包含,每个字占用128字节。汉字点阵为24×24。为适应MB90092,每个汉字的24~31字节、56~63字节、88~127字节应为空白。
3.1 芯片主要管脚功能说明和接口时序
当TEST脚输入低电平时,这个管脚能被用作芯片的RESET端。
芯片的片选端,低电平有效。也可以用它来释放power-on reset。
SCLK:时钟输入端,输入读数据时钟。
SDA:串行数据输入端。
外部行同步信号输入端,当对芯片内部寄存器进行适当设置时,这个管脚也可以作为复合同步信号输入端。
VOUT:复合视频输出端(输出信号的峰-峰值为2V)。
VIN:复合视频信号输入端,用于叠加显示,要求信号的峰-峰值为2V。
EXS和XS:外接晶体端,为芯片内部的图像提供振荡时钟,选用NTSC制式时,外接14.31818MHz的晶体;选用PAL制式时,外接17.734475MHz的晶体。
EXD和XD:连接外部的LC时钟振荡电路,为字符的产生提供打点时钟,一般为6MHz或7MHz,据此确定电感、电容数值。
MB90092采用指令方式控制,外部单片机可以通过串行接口向MB90092发送指令,每个指令由两个字节组成。第一个字节的前5位为命令码,其余位和第二个字节为数据。指令能实现对字符显示的各种控制,MB90092共有13种指令和两种保留指令,具体功能见表2。
MB90092与外部单片机的接口有自己独特的时序,如图4所示。首先,片选有效,在每个时钟的上升沿,DATA数据的1bit进入MB90092内部的串行移位寄存器,8bit为一个字节;然后和SCLK分别为高,作为一个字节的结束;接着发送下一个字节。在串行传输" title="串行传输">串行传输中,时钟用来对收到的bit计数,通过强制为高,可以复位串行传输。通过强制从高到低,清除复位,使得随后的8bit数据是一个字节数据。如果在8bit数据中间变高,则这个数据是无效的。
如图4所示,数据A被写入内部寄存器,数据B被忽略。
接口时序应注意以下几点:
(1)为了保持字节同步,在串行数据传输之前,管脚应当先设成高,然后设成低。
(2)除了刚上电时,在串行传输之前,都应当强制
SCLK管脚为高电平。
用汇编语言实现的写一个字节程序如下[5]:
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对时序时间的要求。
3.2 汉字叠加与缓冲放大模块
在视频监控中,视频流经过解码,使视频D/A转换模块输出的模拟视频信号叠加上菜单汉字信息,然后经缓冲放大后输出到监视器上。图5为视频汉字叠加与缓冲放大原理图。
对图5进行如下说明:
(1)图5中同步分离由LM1881完成,分离出复合同步信号送到字符叠加芯片供字符叠加使用。
(2)输出缓冲放大采用OPA2354芯片。它的INA-管脚上的调节电阻分别为620Ω和330Ω。
3.3 使用MB90092应注意的问题
(1)程序开始时,要输入CS四次去清除上电复位,然后所作的设置才是有效的。
(2)如果选择外同步方式,只有当外同步信号存在时,MB90092才能接收控制命令。为了防止当视频信号由“无”切换到“有”时监视器上产生字符丢失的情况,屏幕上叠加的所有字符每隔0.2秒要更新一次。这样就不会发生字符丢失的现象。
(3)改动屏幕上的字符时,必须先清理内存区域,否则屏幕会出现乱码及一些预料不到的显示。清屏包括子屏清除和主屏清除。如果没有用到子屏,只要在开始时清一次子屏就可以了(所谓清屏,就是在屏幕上相应位置写空格字符)。
(4)上电复位后,为了有效设置屏幕及字体的各种属性、行距、显示位置等,先选择内同步方式,待设置完成后,再设定为外同步方式;否则,设置时如无外同步信号,所有的设置均为无效设置。
(5)由于视频信号频率较高、频带较宽,因而当两路视频信号相距较近时,容易产生串扰。为了尽量减少串扰,制板时需做到以下几点:
·各种视频信号间用较粗的地线隔开,视频走线尽量短而粗;
·模拟地和数字地分开,只在电源处单点相连;
·设计开关电源时,应使交流电与直流低压之间相距较远,且用地线隔开;直流低压与开关管的调整电路之间要用光耦隔开。
本文给出了两种实现OSD的方法,分别用于ATM监控设备的不同模块中。设计中考虑了实用和经济两个因素,从实际的产品来看,性能稳定可靠,具有很普遍的应用价值。
参考文献
1 梁春燕,谢剑英.智能大厦的视频监控系统设计.测控技术, 1999;18(10):30~34
2 胡师彦.基于视频监控系统的运动监测.电子产品世界, 2001(11):11~14
3 MB90092 Data Sheet. FUJITSU Corporation,1998
4 AM-204M Data Sheet.A. LOGICS Corporation,2002
5 孙涵芳,徐爱卿.MCS-51系列单片机原理用应用. 北京: 北京航空航天大学出版社,1997.12