使用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.显示存储器的固定位置。

存储器

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

字符记忆

非易失性字符存储器存储要显示的字符或图形图像。字符存储器的内容可通过SPI兼容串行接口进行用户编程。每个字符由 12 个水平 x 18 个垂直像素组成。每个像素由两个位表示:

00 = 黑色,不透明
01 = 透明 10 = 白色,不透明
11 = 透明
 

因此,每个字符有 12 x 18 = 216 像素。一个 8 位字节描述四个像素。因此,每个字符需要 216/4 = 54 字节的数据。(请参阅图 3。

存储器

图3.字符内存配置。

为了使寻址更容易,内存以 64 字节的块进行组织。前 54 个字节中的每一个都描述一个字符。剩余的 10 个字节未使用。因此,字符存储器的长度为 64 x 256 = 16384 字节。

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

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

MAX7456评估板提供GUI软件,允许用户控制器件并下载自定义图形。

与软件相关的文件组织类似于MAX7456的存储器。字符存储器的数据保存在一个文件中,而显示存储器的数据保存在另一个文件中。这些文件的文件扩展名是:

*.mdm 显示内存 *.mcm 字符内存
 

这些 ascii 文本文件可以使用任何文本编辑器(如 Windows® 记事本)查看。因此,每行都以 ASCII 字符返回/换行序列结尾。

显示内存文件的组织

.mdm 显示内存文件的一部分如图 4 所示。

存储器

图4.显示内存组织。

在图4中,第1行给出了器件类型:MAX7456。第 2 行给出视频标准:PAL 或 NTSC。第 3 行显示关联字符文件的文件名:Duck.mcm。第 4 行及以下行是行对,它们在屏幕上的每个位置提供字符,如上面的图 1 所示。

因此,其中 x 是图 1 中的字符位置,描述字符的行由下式给出:

n = 4 + 2 × x 字符数
n = 5 + 2 × x 字符属性

字符属性如图 5 所示:

存储器

图5.字符位置的字符属性如图 1 所示。

在此示例中:

显示中的字符 0 使用字符记忆中的字符 1。
字符 0 不闪烁、反转或透明
显示中的字符 1 使用字符记忆中的字符 2。
字符 1 不闪烁、反转或透明
显示中的字符 2 使用字符记忆中的字符 2。
字符 2 不闪烁、反转或透明
等。

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

字符记忆文件的组织

下面的图 6 显示了 *.mcm 文件的一段。

存储器

图6.显示存储器的组织。

第 1 行给出了设备类型。第 2 行及以下行定义了像素,如上图 3 所示。在此示例中,字符 0 的每个像素都设置为“01”,即透明。

人物记忆提示

不必将字符 0 的每个位都设置为“01”。但是,当设备通电时,显示存储器将默认重置为指向字符 0。因此,在上电时,输入视频将通过,没有错误的叠加。正确初始化设备后,普通字符可以正常覆盖。

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

如果字符存储器中将像素定义为透明(内存中的“01”或“11”),则根据其他几种情况,它可以显示为透明或灰色。

有三个条件会影响像素:

字符级别,由显示存储器中每个字符集的属性位定义。

全局级别,在视频模式寄存器的背景位中定义(位 7,Reg 01)。

外部同步检测器的状态。

位也可以是透明的,具体取决于输入视频同步检测的状态。真值表如表 1 所示,它假设像素在像素级别定义为透明。如果不透明,则像素将显示为黑色或白色,与任何其他设置无关。当然,也假设 OSD 显示设置为打开。

 

外部同步检测(1 = 是,0 = 否) 全局背景模式 角色级别属性 像素外观
0 X X 灰色
1 0 0  
1 0 1  
1 1 X 灰色

 

如果像素显示为灰色,则可以使用地址位置 90H 到 9FH 中的寄存器 RB0 到 RB15 逐行设置亮度。

转换字符内存文件中的像素颜色

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

字符内存文件很容易通过Excel等程序转换。下面的图 7 中显示了这方面的一个示例。加载到评估板软件时,标题如下所示。

存储器

图7.可以使用 Excel 更改字符内存来更改像素的颜色。

标题字体为白色背景上的黑色。有一种简单的方法可以转换此配色方案。

将 .mcm 文件加载到 Excel 中。作为文本文件,只需打开即可导入.mcm文件。请记住,这些行必须被视为文本,否则将删除前导零。因此,在导入过程中将列数据格式设置为文本。

若要保留格式,最好将值列复制到新的电子表格中。

现在使用 Excel MID 功能将行切成 4 x 2 个字符。

在此之后,转换两个字符值。

重建线路。

现在,将原始文件中的列替换为组装的列,然后保存它。

为了证明所取得的成就,将新的.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))



将“00”替换为“10”或将“10”替换为“01”
列 J = 连接(F2,G2,H2,I2) 重建新单词

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

存储器

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

加载到评估软件后,新文件如图9所示。

存储器

图9.更改后的像素颜色在 Excel 中的显示方式的图示。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分