使用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位字节表示4个象素。所以,每个字符需要216/4 = 54字节的数据(参见 图3 )。

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

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


图3. 字符存储器配置

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

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

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

*.mdm显示存储器
*.mcm字符存储器

Windows®记事本等文本编辑器都可以查看这些ascii文本文件。因此,每一行最后都是一个ASCII字符回车/换行序列。

显示存储器文件组织结构

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


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

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

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

*.mcm文件的一段如下面的 图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改变字符存储器就可以改变象素的颜色

字母是白色背景下的黑色显示。有一种简单的方式来转换这一颜色方案。

  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中转换象素颜色

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


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

MAX7456 OSD相关推荐

  1. max7456 C语言,用于MAX7456随屏显示器SPI

    MAX7456串行接口 MAX7456单通道单色随屏显示(OSD)发生器预装了256个字符和图形,并可通过SPI接口在线编程.通过SPI兼容串行接口可以设置工作模式.显示存储器以及字符存储器.状态(S ...

  2. 视频处理及MAX7456的图文解释

    MicroAC @MAX7456的EEPROM结构解释图! 字符表示~像素的解释: 由上图可知,字符用18*12个像素来处理,每个像素用2bit表示颜色的不同. 复位:复位有两种. 1. 2. 很明显 ...

  3. 浅析Betaflight中的OSD叠加程序【MAX7456AT7456】

    前言:想要对OSD下手已经不是头一次了,前几次都浅尝辄止.一个是能力不够,BetaFlight的代码体系太庞大了,看不懂也摘不出来. 这次要做一款带osd功能的接收机(用在遥控车上),所以又来打飞控程 ...

  4. max7456 C语言,用于MAX7456随屏显示器SPI接口的C程序

    摘要:MAX7456随屏显示(OSD)发生器具有SPI™兼容接口,本应用笔记介绍了SPI接口的工作原理,文中还包含在微控制器内逐位模拟SPI接口的控制器C程序. MAX7456支持高达10MHz接口时 ...

  5. 用于MAX7456随屏显示器SPI接口的C程序

    用于MAX7456随屏显示器SPI接口的C程序 David Fry, 应用工程师经理 摘要:MAX7456随屏显示(OSD)发生器具有SPI™兼容接口,本应用笔记介绍了SPI接口的工作原理,文中还包含 ...

  6. STM8/STM32 SPI模式的MAX7456代码

    开发环境: IAR for STM8 硬件平台: STM8S208MB 固件库版本: V2.1.0 之前四五天在做OSD随屏显示的东西,即在监视器上随屏显示科华一款UPS的运行状态,用到的OSD芯片为 ...

  7. ceph osd 相关命令

    混合osd的部署 先部署所有的ssd 在/etc/ceph.conf中最后添加ssd做osd的block大小如下: 比如部署中有两个ssd,则添加 [osd.0] bluestore_block_si ...

  8. 关于部署osd过程中:Device is in use by a device-mapper mapping问题解决

    ceph环境:12.2.1 使用古老的ceph-disk工具部署osd,仅仅prepare过程中就出现如上所示问题 Device is in use by a device-mapper mappin ...

  9. ceph osd 由于“No space left on device” 异常down,通过扩容文件系统或者显式运行osd进程解决

    文章目录 ceph版本: 环境配置: 异常问题: 问题解决: 总结 ceph版本: ceph 12.2.1 环境配置: tier_pool 16个分区大小800G 的osd容量 3副本 data_po ...

最新文章

  1. hive增量表和全量表_基于 Flink + Hive 构建流批一体准实时数仓
  2. 终于找到程序员无休止加班的原因了
  3. 页面导航的两种方式——声明式导航、编程式导航||vue-router编程式导航||router.push() 方法的参数规则
  4. vue打包配置发布路径
  5. Spark in meituan http://tech.meituan.com/spark-in-meituan.html
  6. 完美解决ALEXA工具条无法显示或显示白框
  7. 推荐一款软件(作业)
  8. 前端学习(2025)vue之电商管理系统电商系统之渲染订单列表数据
  9. 可信知识实证在UGC时代情报应用中的思考与探索
  10. 机器学习8/100天-Logistic回归原理与实现
  11. xpath java html_Java根据XPath提取HTML
  12. Set A Light 3D Studio 2.0 for Mac(3D摄影棚布光软件)
  13. DisplayTag1.2
  14. 最新2020版IDEA下载安装教程
  15. TeamTalk源码分析(1)
  16. 弗雷格的伟大历史贡献:量词的引入
  17. Xshell的一个轻量且免费的替代品ConEmu
  18. 微同城生活圈小程序源码系统+前后端+搭建教程
  19. Microsoft Cartoon Maker(微软卡通头像制作软件)使用方法详解
  20. 提高沟通效果的十个技巧

热门文章

  1. 使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建HelloWorld工程
  2. shp文件显示 c语言,上传并在地图中显示Shp文件
  3. android多个switch可,能刷安卓,任天堂 Switch 再跑个 Win10 如何?
  4. 女生可以做软件测试吗?
  5. 为什么那些美事没有实现---生活中小事有感
  6. android 名片识别软件,手机名片识别工具Android名片全能王评测
  7. win10 1073linux密码,Linux Bash on Win10 忘记密码解决
  8. 声声慢 - 程序人生
  9. ffmpeg probe一个文件的过程
  10. 2021年的EI会议论文发表难度评价