基于MAX7456的OSD系统设计与实现
扫描二维码
随时随地手机看文章
引言
当前视频监控技术广泛应用在国民经济生活的各个领域, 在公共安全、交通、监狱、机房等需要大规模集中监控的应 用场合,面对动辄多达数百路、乃至上千路的视频信号,对各 路视频信号来源进行标识以便有效区分各路视频信号,具有 重要的工程应用价值。同时,许多人机界面和视频播放场合也 需要能够叠加各种图文信息的技术。OSD是指在视频信号中 叠加字符或图形,从而在指定屏幕位置与图像信号同时显示, 属于视频叠加技术的一种。OSD的实现主要包括3种方式: 第一是基于计算机视频编解码技术的软件实现方式,其特点 是需要计算机的支持,占用一定的CPU资源,但显示参数的 改动方便,OSD功能本身不需要额外的成本开销;第二是基 于FPGA或DSP的嵌入式系统实现方式,通过在FPGA内置 OSD软核,或者在DSP中运行OSD算法来实现,这种实现 方式在一些采用嵌入式解决方案的视频服务器、网络摄像机 上比较常见;第三是基于OSD专用集成芯片的硬件实现方式, 单片OSD器件可省去大量外围电路,可有效降低系统设计复 杂度和成本,但显示内容的多样性受限。
本文给出了基于MAX7456和ARM7的OSD系统设计 方案,包括硬件设计与软件设计两大部分,并通过实际制作 验证了方案的可行性。
1系统硬件设计
1.1系统总体设计
MAX7456是美信(MAXIM)公司推出的集成了 EEROM的单通道、单色OSD芯片,其内部EEROM预置了 符合NTSC和PAL制式的256个用户可编程字符,字符大小 为12X18像素,可对每个字符进行闪烁、反色和背景控制等操作。MAX7456 带输出衰减补偿功能,具有状态 (STAT)寄存器、显示存储器数据输出 (DMDO) 寄存器和字符存储器数据输出 (CMDO) 寄存器,用户可通过 SPI 接口灵活设置MAX7456 的各项参数,比如设置字符类型、尺寸等显示参数。
系统原理框架如图 1 所示,采用意法半导体公司的ARM7 微控制器 STM32F103C8T6 单片机对 MAX7456 进行参数配置和控制,该 ARM7 为 32 位微控制器,最高工作频率72 MHz,具备工业级稳定性,内置 64 KB FLASH 和 20 KBSRAM 存储空间,充足的存储空间足以满足 MAX7456 缓存需求 ;外设资源非常丰富,配有多达 3 路 UART 及 2 路 SPI 接口,便于与其他系统交互,提供多种接口供用户对系统进行参数预设值和在线修改。
1.2 系统电源电路设计
从数据手册可知,MAX7456 采用 5 V 供电,最大电流约为 200 mA。为扩展系统输入电压范围,可采用 LM2576-5稳压芯片提供 5 V 电压供给 MAX7456。ARM7 则采用 3.3V 供电,但其工作电流不大,为简化设计,可采用 SPX3819-3.3 对 5 V 电源降压产生 3.3 V 电压供给 ARM7,同时也实现了MAX7456 与 ARM7 的电源隔离。SPX3819 是一款低 压差稳压芯片(LDO),其满载(500 mA)情况下的压降也仅为340 mV。具体电源电路设计如图 2 所示。
1.3 MAX7456电路设计
MAX7456自身时钟可工作在27 MHz,其SPI接口最高 工作频率为10 MHz,而ARM7的SPI时钟最大可以达到18 MHz(此时系统时钟为72 MHz),足以满足MAX7456的需求。 在本系统设计中,ARM7作为SPI通信主机(Master), SPI 通信所用的时钟信号由ARM7的SPI单元输出。为避免因对 MAX7456进行读写操作导致OSD输出图像出现瞬间变暗现 象,ARM7读写MAX7456内部寄存器前,先检测MAX7456 的VSYNC引脚,只有该引脚电平为低,才对MAX7456内部 显示存储区进行写操作。ARM7的每个I/O引脚均具备中断 功能,MAX7456的LOS引脚接在ARM7的PA0,而PA0具 备唤醒功能,当MAX7456出现丢失同步时,LOS输出置高以 唤醒ARM7,再由ARM7进行相应出错处理。这样一来,不 需要配置MAX7456时,ARM7可处于低功耗模式。
1.4接口电路设计
所用ARM7外设接口丰富,集成了 3个UART、2个 SPI、1 个 CAN,其中 SPI1 用来与 MAX7456 通信,UART1 用于同PC或其他系统进行RS232通信,UART2用作RS485 接口。考虑到带云台的视频监控场合,云台的控制大多采用 RS485,因此设计上预留RS485接口,使得OSD系统可部署 在监控现场,用户远程即可配置MAX7456的显示参数。从 接口转换的角度来看,ARM7可理解为协议转换器,用户通 过RS232和RS485发送配置MAX7456显示叠加字符的指令, ARM7对指令进行解读,转换为MAX7456寄存器操作必须 遵循的一系列指令组合,再通过SPI接口进行传输。
2系统软件设计
2.1 MAX7456 接口时序
MAX7456的SPI命令长度为16位:高8位(MSB)代 表寄存器地址,低8位(LSB)代表数据,即不管是读还是写 命令,都需要先从SDIN引脚输入地址码,之后再根据是读还 是写来读取或者写入后续8位数据。MAX7456对同一个寄存 器进行读操作和写操作,其对应的寄存器地址是不同的。使 能SPI通信之后,MAX7456从SDIN读入第一个字节,以确 定正在执行的操作类型。
SDIN输入数据,高8位为目标寄存器的地址码,低8位为写 入的数据值;当CS置高时,数据被锁存到输入寄存器。如果 在数据传输期间片选信号置高,则本次写入操作失败,最终 数据不会被写入目标寄存器。
图4所示为MAX7456读取数据的时序图[3],当CS置低 时,开启SPI传输,从SDIN依次输入7位目标寄存器的地址码, 此时SDOUT的输出没有意义,地址码输入完成后,被选中的 目标寄存器的数据从SDOUT输出。CS置高时,结束本次操作。
2.2 OSD程序流程图
不同的实际应用场合,所需的程序各有不同,本文给出 一种基本的程序设计流程,系统上电复位之后,ARM7先初 始化相关I/O、UART及SPI接口等,接着检测是否需要配置
MAX7456。之后ARM7进入睡眠模式,在此模式下,来自 RS232、RS485接收中断信号及MAX7456的LOS引脚触发 的外部中断信号均可以唤醒ARM7,执行相应的中断处理程 序,比如接收到来自RS232接口的指令后,便可根据指令更 改MAX7456的显示参数。其程序流程图如图5所示。
3结语
本系统采用ARM7为控制核心实现对MAX7456的参 数配置和控制,用户自定义的字符数据存储在ARM7中,并 可通过RS232和RS485进行在线更改。本文首先介绍了基于 MAX7456的OSD系统硬件电路设计方法,并给出了具体的 设计电路图,接着分析了 MAX7456接口时序,给出了程序流程图。本文所述方案经过了实际测试,验证了其可行性和可靠性,具有实际应用价值。
20211120_6197cf641c6f5__基于MAX7456的OSD系统设计与实现