康明星
摘 要:给出了一种基于MAX7456的OSD系统的设计和实现方法,该方法利用ARM7进行配置和控制,并通过RS232及RS485接口实现配置参数的在线修改,可实现在视频信号中叠加显示字符、汉字及用户自定义图形。
关键词:ARM7;OSD;MAX7456;视频监控
中图分类号:TN919.8 文献标志码:A 文章编号:2095-1302(2014)03-0052-02
0 引 言
当前视频监控技术广泛应用在国民经济生活的各个领域,在公共安全、交通、监狱、机房等需要大规模集中监控的应用场合,面对动辄多达数百路、乃至上千路的视频信号,对各路视频信号来源进行标识以便有效区分各路视频信号,具有重要的工程应用价值。同时,许多人机界面和视频播放场合也需要能够叠加各种图文信息的技术。OSD是指在视频信号中叠加字符或图形,从而在指定屏幕位置与图像信号同时显示,属于视频叠加技术的一种[1]。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个用户可编程字符,字符大小为12×18像素,可对每个字符进行闪烁、反色和背景控制等操作[2]。MAX7456带输出衰减补偿功能,具有状态(STAT)寄存器、显示存储器数据输出(DMDO)寄存器和字符存储器数据输出(CMDO)寄存器,用户可通过SPI接口灵活设置MAX7456的各项参数,比如设置字符类型、尺寸等显示参数。
系统原理框架如图1所示,采用意法半导体公司的ARM7微控制器STM32F103C8T6单片机对MAX7456进行参数配置和控制,该ARM7为32位微控制器,最高工作频率72 MHz,具备工业级稳定性,内置64 KB FLASH和20KB SRAM存储空间,充足的存储空间足以满足MAX7456缓存需求;外设资源非常丰富,配有多达3路UART及2路SPI接口,便于与其他系统交互,提供多种接口供用户对系统进行参数预设值和在线修改。
图1 系统原理框图
1.2 系统电源电路设计
从数据手册可知,MAX7456采用5 V供电,最大电流约为200 mA。为扩展系统输入电压范围,可采用LM2576-5稳压芯片提供5 V电压供给MAX7456。ARM7则采用3.3 V供电,但其工作电流不大,为简化设计,可采用SPX3819-3.3对5 V电源降压产生3.3 V电压供给ARM7,同时也实现了MAX7456与ARM7的电源隔离。SPX3819是一款低压差稳压芯片(LDO),其满载(500 mA)情况下的压降也仅为340mV。具体电源电路设计如图2所示。
图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读入第一个字节,以确定正在执行的操作类型。
图3所示为MAX7456写入数据的时序图[3],当CS片选引脚置低时,开启SPI传输,在时钟信号SCLK上升沿采集SDIN输入数据,高8位为目标寄存器的地址码,低8位为写入的数据值;当CS置高时,数据被锁存到输入寄存器。如果在数据传输期间片选信号置高,则本次写入操作失败,最终数据不会被写入目标寄存器。
图3 MAX7456写数据的时序图
图4所示为MAX7456读取数据的时序图[3],当CS置低时,开启SPI传输,从SDIN依次输入7位目标寄存器的地址码,此时SDOUT的输出没有意义,地址码输入完成后,被选中的目标寄存器的数据从SDOUT输出。CS置高时,结束本次操作。
图4 MAX7456读数据的时序图
2.2 OSD程序流程图
不同的实际应用场合,所需的程序各有不同,本文给出一种基本的程序设计流程,系统上电复位之后,ARM7先初始化相关I/O、UART及SPI接口等,接着检测是否需要配置MAX7456。之后ARM7进入睡眠模式,在此模式下,来自RS232、RS485接收中断信号及MAX7456的LOS引脚触发的外部中断信号均可以唤醒ARM7,执行相应的中断处理程序,比如接收到来自RS232接口的指令后,便可根据指令更改MAX7456的显示参数。其程序流程图如图5所示。
图5 程序流程图
3 结 语
本系统采用ARM7为控制核心实现对MAX7456的参数配置和控制,用户自定义的字符数据存储在ARM7中,并可通过RS232和RS485进行在线更改。本文首先介绍了基于MAX7456的OSD系统硬件电路设计方法,并给出了具体的设计电路图,接着分析了MAX7456接口时序,给出了程序流程图。本文所述方案经过了实际测试,验证了其可行性和可靠性,具有实际应用价值。
参 考 文 献
[1]孙泓波,顾红,苏为民.视频字符叠加技术的发展及四种实现方案[J].电子技术应用,2000(11):44-46.
[2]匡炎.基于FPGA和DSP的图像采集处理系统的研究与实现[D].广州:华南理工大学,2010.
[3]MAXIM. MAX7456 datasheet[EB/OL].[2010-10-23].http://www.21icsearch.com/pdf-DE71981B8F687F0C/MAX7456.html.
[4]吴川,杨冬.基于UPD6464的视频字符叠加技术的研究[J]. 电子技术,2010(2): 18-20
[5]费莉梅.网络视频录像机OSD子系统软件设计[D].杭州:浙江大学,2012.
图3所示为MAX7456写入数据的时序图[3],当CS片选引脚置低时,开启SPI传输,在时钟信号SCLK上升沿采集SDIN输入数据,高8位为目标寄存器的地址码,低8位为写入的数据值;当CS置高时,数据被锁存到输入寄存器。如果在数据传输期间片选信号置高,则本次写入操作失败,最终数据不会被写入目标寄存器。
图3 MAX7456写数据的时序图
图4所示为MAX7456读取数据的时序图[3],当CS置低时,开启SPI传输,从SDIN依次输入7位目标寄存器的地址码,此时SDOUT的输出没有意义,地址码输入完成后,被选中的目标寄存器的数据从SDOUT输出。CS置高时,结束本次操作。
图4 MAX7456读数据的时序图
2.2 OSD程序流程图
不同的实际应用场合,所需的程序各有不同,本文给出一种基本的程序设计流程,系统上电复位之后,ARM7先初始化相关I/O、UART及SPI接口等,接着检测是否需要配置MAX7456。之后ARM7进入睡眠模式,在此模式下,来自RS232、RS485接收中断信号及MAX7456的LOS引脚触发的外部中断信号均可以唤醒ARM7,执行相应的中断处理程序,比如接收到来自RS232接口的指令后,便可根据指令更改MAX7456的显示参数。其程序流程图如图5所示。
图5 程序流程图
3 结 语
本系统采用ARM7为控制核心实现对MAX7456的参数配置和控制,用户自定义的字符数据存储在ARM7中,并可通过RS232和RS485进行在线更改。本文首先介绍了基于MAX7456的OSD系统硬件电路设计方法,并给出了具体的设计电路图,接着分析了MAX7456接口时序,给出了程序流程图。本文所述方案经过了实际测试,验证了其可行性和可靠性,具有实际应用价值。
参 考 文 献
[1]孙泓波,顾红,苏为民.视频字符叠加技术的发展及四种实现方案[J].电子技术应用,2000(11):44-46.
[2]匡炎.基于FPGA和DSP的图像采集处理系统的研究与实现[D].广州:华南理工大学,2010.
[3]MAXIM. MAX7456 datasheet[EB/OL].[2010-10-23].http://www.21icsearch.com/pdf-DE71981B8F687F0C/MAX7456.html.
[4]吴川,杨冬.基于UPD6464的视频字符叠加技术的研究[J]. 电子技术,2010(2): 18-20
[5]费莉梅.网络视频录像机OSD子系统软件设计[D].杭州:浙江大学,2012.
图3所示为MAX7456写入数据的时序图[3],当CS片选引脚置低时,开启SPI传输,在时钟信号SCLK上升沿采集SDIN输入数据,高8位为目标寄存器的地址码,低8位为写入的数据值;当CS置高时,数据被锁存到输入寄存器。如果在数据传输期间片选信号置高,则本次写入操作失败,最终数据不会被写入目标寄存器。
图3 MAX7456写数据的时序图
图4所示为MAX7456读取数据的时序图[3],当CS置低时,开启SPI传输,从SDIN依次输入7位目标寄存器的地址码,此时SDOUT的输出没有意义,地址码输入完成后,被选中的目标寄存器的数据从SDOUT输出。CS置高时,结束本次操作。
图4 MAX7456读数据的时序图
2.2 OSD程序流程图
不同的实际应用场合,所需的程序各有不同,本文给出一种基本的程序设计流程,系统上电复位之后,ARM7先初始化相关I/O、UART及SPI接口等,接着检测是否需要配置MAX7456。之后ARM7进入睡眠模式,在此模式下,来自RS232、RS485接收中断信号及MAX7456的LOS引脚触发的外部中断信号均可以唤醒ARM7,执行相应的中断处理程序,比如接收到来自RS232接口的指令后,便可根据指令更改MAX7456的显示参数。其程序流程图如图5所示。
图5 程序流程图
3 结 语
本系统采用ARM7为控制核心实现对MAX7456的参数配置和控制,用户自定义的字符数据存储在ARM7中,并可通过RS232和RS485进行在线更改。本文首先介绍了基于MAX7456的OSD系统硬件电路设计方法,并给出了具体的设计电路图,接着分析了MAX7456接口时序,给出了程序流程图。本文所述方案经过了实际测试,验证了其可行性和可靠性,具有实际应用价值。
参 考 文 献
[1]孙泓波,顾红,苏为民.视频字符叠加技术的发展及四种实现方案[J].电子技术应用,2000(11):44-46.
[2]匡炎.基于FPGA和DSP的图像采集处理系统的研究与实现[D].广州:华南理工大学,2010.
[3]MAXIM. MAX7456 datasheet[EB/OL].[2010-10-23].http://www.21icsearch.com/pdf-DE71981B8F687F0C/MAX7456.html.
[4]吴川,杨冬.基于UPD6464的视频字符叠加技术的研究[J]. 电子技术,2010(2): 18-20
[5]费莉梅.网络视频录像机OSD子系统软件设计[D].杭州:浙江大学,2012.