应用笔记 4117

使用MAX7456存储器和评估板文件生成定制字符和图形


摘要 : MAX7456是单通道随屏显示(OSD)发生器,用户可以利用它在动态视频上叠加定制的图形。本应用笔记阐述MAX7456的存储器结构,介绍怎样使用该器件产生定制字符和图形。说明了MAX7456评估(EV)板的文件格式。文章还解释了怎样通过使用表格来轻松处理这些文件。

简介

用户可以利用MAX7456单通道随屏显示(OSD)发生器在动态视频上叠加定制图形。MAX7456不需要外部视频驱动器、同步分离器和视频开关,大大降低了系统成本。器件提供525和625线标准的256个用户可编程单色字符,能够服务于所有国家和国际市场。它很容易显示任意字体和大小的公司标识、定制图形、时间和日期等信息。本应用笔记阐述怎样利用MAX7456来生成定制字符和图形。还说明了MAX7456评估(EV)板的文件格式。

MAX7456存储器组织结构

用户定义的字符集结合输入视频流产生CVBS和OSD视频输出。最多可存储256个12 x 18象素字符,可以进行动态设置。在525线模式时,显示13行 x 30字符;在625线模式时,显示16行 x 30字符。

MAX7456 OSD含有两组存储器:显示存储器和非易失字符存储器(NVM)。

显示存储器

显示存储器(SRAM)存储480个字符地址,这些地址“指向”存储在NVM字符存储器中的字符。显示存储器中的内容可由用户编程,具有SPI™兼容串行接口。显示存储器地址对应于监视器的固定位置。请参考下面的图1,每一字符都需要两个字节。第一个字节含有字符存储器中的字符数(参考下面的讨论);第二个字节含有字符属性状态位,如图2所示,字符从左向右,自上而下排序。

图1. 显示存储器的固定位置
图1. 显示存储器的固定位置

图2. 显示存储器的字符属性状态位
图2. 显示存储器的字符属性状态位

字符存储器

非易失字符存储器存储要显示的字符或图形映射。字符存储器中的内容可由用户编程,采用SPI兼容串行接口。每一字符含有12行 x 18列象素。每一象素含有两个比特:
00 = 黑色,不透明
01 = 透明
10 = 白色,不透明
11 = 透明
因此,每个字符有12 x 18 = 216个象素。一个8位字节表示4个象素。所以,每个字符需要216/4 = 54字节的数据(参见图3)。

为方便寻址,存储器组织结构采用64字节块。每前54个字节表示一个字符。剩余10个字节没有使用。所以,字符存储器长度是64 x 256 = 16384字节。

因此,每个显示存储器地址位置包含的数值实际是对应于所选字符的64字节块地址。

图3. 字符存储器配置
图3. 字符存储器配置

评估板的图形用户界面(GUI)软件

MAX7456评估板提供GUI软件,使用户能够控制器件,下载定制图形。

和软件相关的文件组织结构形式与MAX7456存储器相似。字符存储器数据在一个文件中,而显示存储器数据在另一个文件中,这些文件的文件扩展名是:
*.mdm显示存储器
*.mcm字符存储器
Windows®记事本等文本编辑器都可以查看这些ascii文本文件。因此,每一行最后都是一个ASCII字符回车/换行序列。

显示存储器文件组织结构

下面的图4所示为.mdm显示存储器文件的一段。

图4. 显示存储器组织结构
图4. 显示存储器组织结构

在图4中,第一行给出器件类型:MAX7456。第二行给出视频标准:PAL或者NTSC。第三行显示相关字符文件的文件名:Duck.mcm。第四行及其以后各行是行对,给出屏幕上每一位置的字符,如上面的图1所示。

因此,x是图1中的字符位置,说明字符的行如下:
n = 4 + 2 × x字符数
n = 5 + 2 × x字符属性
字符属性如图5所示:

图5. 图1中字符位置的字符属性
图5. 图1中字符位置的字符属性

在这个例子中:

显示器上的字符0使用字符存储器的字符1
字符0没有闪烁、反转或者透明
显示器上的字符1使用字符存储器的字符2
字符1没有闪烁、反转或者透明
显示器上的字符2使用字符存储器的字符2
字符2没有闪烁、反转或者透明


注意,.mdm文件长度取决于视频标准。如果选择了PAL,文件将含有480个行对;在NTSC中,文件含有390个行对。

字符存储器文件的组织结构

*.mcm文件的一段如下面的图6所示。

图6. 显示存储器组织结构
图6. 显示存储器组织结构

第一行给出器件类型。第二行及其以后各行定义了上面图3所示的象素。在这个例子中,字符0的每一象素被设置为“01”,即,透明。

字符存储器说明

并不需要将字符0的每一位设置为“01”。当器件上电时,显示存储器复位后默认为指向字符0。因此,上电时,通过的输入视频并没有错误的叠加图像。器件正确初始化后,将叠加显示正确的字符。

象素为什么显示为灰色或透明

如果在字符存储器中将象素定义为透明(存储器中为“01”或者“11”),那么它可以根据其他条件显示为透明或灰色。

影响象素的条件有三个:
  1. 字符级,由显示存储器中每一个字符集的属性位定义。
  2. 全局级,在视频模式寄存器的背景位(第7位,Reg 01)中定义。
  3. 外部同步检测器的状态。
位也可以是透明的,它取决于输入视频同步检测的状态。真值表如表1所示,假定象素在象素级被定义为透明。如果不透明,象素将显示为黑色或者白色,与任何其他设置无关,当然,假设OSD显示器是打开的。

表1. 灰色象素的字符属性
External Sync Detect
(1 = Yes, 0 = No)
Global Background Mode Character Level Attribute Pixel Appearance
0 X X Gray
1 0 0  
1 0 1  
1 1 X Gray

如果象素显示为灰色,那么,可以通过地址位置90H至9FH的寄存器RB0至RB15逐行设置其亮度。

转换字符存储器文件中的象素颜色

理解了评估板文件的结构后,可以很容易地将象素转换为黑色、白色或透明。

Excel等程序很容易转换字符存储器文件。例子之一如下面的图7所示,装入到评估板软件中时,其字幕如下所示。

图7. 使用Excel改变字符存储器就可以改变象素的颜色
图7. 使用Excel改变字符存储器就可以改变象素的颜色

字母是白色背景下的黑色显示。有一种简单的方式来转换这一颜色方案。
  1. 将.mcm文件装入到Excel中。作为文本文件,打开.mcm文件就可以将其导入。记住,必须将行作为文本来处理,否则,会去掉前导零。因此,在导入过程中,将列数据格式设置为文本。
  2. 为保护格式,最好将数值列复制到新的表格中。
  3. 使用Excel MID功能将行分成4 x 2字符。
  4. 如此,转换两个字符值。
  5. 重新构建行。
  6. 将组合后的列替换原始文件中的列,保存。
  7. 为检验结果,将新的.mdm文件装入到评估板软件中。
在这个例子中,所有黑色字符转换为白色,所有白色字符转换为透明。这样:

"00"成为"10"—黑色转换为白色
"10"成为"01"—白色转换为透明
"01"未变—透明不变

在Excel中很容易实现颜色转换。结果被返回至原始文件,以保留格式。

Excel公式比较简单,如下所示,A列是原始数据。

B列 = MID(Ax, 1, 2) 选择字符1开始的两个字符
C列 = MID(Ax, 3, 2) 选择字符3开始的两个字符
D列 = MID(Ax, 5, 2) 选择字符5开始的两个字符
E列 = MID(Ax, 7, 2) 选择字符7开始的两个字符
F列 = IF(Bx="00","10",IF(Bx="10","01",Bx))
G列 = IF(Cx="00","10",IF(Cx="10","01",Cx))
H列 = IF(Dx="00","10",IF(Dx="10","01",Dx))
I列 = IF(Ex="00","10",IF(Ex="10","01",Ex))
以"10"替代"00",或者以"01"替代"10"
J列 = CONCATENATE(F2,G2,H2,I2) 重新构建新字

J列被复制到原始文件,并保存,以保留格式(图8)。

图8. 上面的公式用于在Excel中转换象素颜色
图8. 上面的公式用于在Excel中转换象素颜色

一旦装入到评估板软件中,新文件如图9所示。

图9. Excel中被改变后的象素颜色
图9. Excel中被改变后的象素颜色

可以下载AN4117.zip,找到上面的Excel表格以及评估板相关文件。