一种基于51单片机控制的数字视频混合器
近几年,数字电视技术发展很快,数字视频混合器可以将两路或多数数字视频信号按照一定的算法混合成一路或多路数字视频信号。作为数字视频信号的基本处理单元,该混合器在数字电视节目的编辑制作和播控传输系统中具有举足轻重的作用。
本文介绍的基于单片机控制的数字视频键控混合器具有以下特点:内含两级串联的键控混合器,可以在主信号中键两入两路附加数字信号,如时钟台标或各种字幕标识;可以远程遥控,也可现场按键控制;可以随时更新和保存系统配置,改变系统功能和技术参数;该系统稳定可靠,对掉电、死机等异常现象有自复位能力。
整个系统包括硬件和软件两部分,硬件包括数字混合部分和单片机控制部分。
1 数字混合部分
输入的数字信号有背景信号、键控信号和填充信号,输出三路数字信号和一路模拟信号。数字混合部分的硬件框图如力1。
串行数字视频输入处理器GS9020A专门设计来接收SMPTE 259M的串行数字信号。它具有错误检测和处理能力,保证了串行数据的完整性;可以直接与GS9035A或者GS9025A连接,提供8位并行口和I2C串行口与外部微处理器通信。本系统通过I2C总线读取、配置GS9020A状态。
TMS2081是数字视频处理器,以GBR、YCB、CR或者彩色序列格式,按比例混合数字视频。α通道控制下,按M=(α)V1+(1-α)V2(0≤α≤1)完成同时淡出及淡入功能。TMS2081提供微处理器I/O口。
错误检测和处理协处理器GS9021根据SMPTERP-165执行错误检测和处理,可与GS9002、GS9022或者GS9032串行数字编码器接口,产生行同步、场消隐和场序列信号。提供8位并行口和I2C串行口与外部微处理器通信。本系统通过I2C读取、配置GS9021状态。
CMOS芯片SAA7121是数字视频编码器,将数字亮度和色差信号同时编码成CVBS和S-视频模拟信号,也支持NTSC-M、PAL B/G和子标准。输入信号可以是YCBCR(CCIR 656)或者MPEG解码数据;对Y、C和CVBS有三个数据转换器。基本编码函数由副载波生成、彩色调制和同步信号内插组成。SAA7121提供I2C总线接口,可按主动方式或从动方式工作。本系统通过I2C接口配置SAA7121。
2 单片机控制部分
基于单片机的控制电路如图2所示。其完成如下功能:与PC串行通信,传输命令和数据;通过8位并行接口读写TMC2801;通过I2C总线读写SAA7121、GS9020A和GS9021;保存、更新系统配置数据;键控功能,按键完成显示或不显示附加数字信号。
2.1 AT89S8252单片机
AT89S8252是ATMEL公司的8位CMOS单片机,与MCS-51系列兼容。主要特片:8K字节的FLASH程序存储器(ROM),2K字节的片内EEPROM,256字节的内部数据存储器(RAM),三个16位的定时/计数器,提供SPI串行接口和看门狗定时器。
选用AT89S8252的原因是:片内EEPROM可以保存数据且掉电不丢失;看门狗具有掉电、死机等异常现象自复位能力,可以提高混合器的稳定性;与MCS-51系列兼容。
2.2 通信接口
通信接口提供RS-485标准,接口电路主要由MAX488(RS-485接收发送器)构成。RS-485标准不仅与RS-232兼容,而且适合远距离传输数据。
3 软件设计
根据单片机控制功能的要求,软件有主程序和串口中断子程序两部分,主程序流程图如图3所示。编程侧重点是:混合器初始化;键控功能;对PC命令的判断和执行;更新系统配置及对数据的保存。
3.1 访问EEPROM和看门狗设置
AT89S8252有看门狗和EEPROM控制寄存器WMCON。
;写一字节
SETB WMCON.3 ;访问EEPROM使能
SETB WMCON.4 ;写EEPROM使能
MOVX @DPTR,A ;写一字节,寻址范围0000H~07FFH
JNB WMCON.1$ ;WMCON.1,准备下一次访问
CLR WMCON.4
CLR WMCON.3 ;MOVX指令可以访问外部数据存储器
从EEPROM读字节与写过程相似。
WMCON.0是看门狗使能位,WMCON.1是看门狗复位位(单片机复位后为1),WMCON.5~7可以设定看门狗的时钟周期(16~2048ms)。如果在看门狗的时钟周期内,没有设置看门狗复位位或者没有关闭看门狗,内部复位信号会复位单片机。
3.2 与PC串行通信
PC与单片机通信的数据格式有三种:命令长度+命令号;命令长度+命令号+读数据字节数N+首地址+校验和;命令长度+命令号+写数字字节数N+首地址+数据1+…+数据N+校验和。命令长度、命令号、读u20889写数据字节数N、首地址和数据n(1≤n≤N)都是一字节,用16进制表示。命令长度整个命令格式字节数。校验和=命令号+读数据字节数N+首地址,或者校验和=命令中+写数据字节数N+首地址+数据1+…+数据N。例如:显示附加数字信号1并且1号LED亮,PC发送0x02 0x01;读1号TMC2081的00~03控制存储器,PC发送0x5 0xB 0x4 0x0 0xF;写0x0 0x21 0x1D 0x0到SAA
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)