学海荡舟手机网

主页 > 实用文摘 > 教育文摘_02 > > 详细内容

一种基于单片机控制的数字视频混合器_单片机论文

摘要:介绍一种基于at89c8252单片机的数字视频混合器的硬件构成和软件设计。实际应用表明,该数字视频混合器操作方式简单灵活、可靠性高,有较好的市场价值。

    关键词:at89c8252单片机 视频混合器

近几年,数字电视技术发展很快,数字视频混合器可以将两路或多数数字视频信号按照一定的算法混合成一路或多路数字视频信号。作为数字视频信号的基本处理单元,该混合器在数字电视节目的编辑制作和播控传输系统中具有举足轻重的作用。

本文介绍的基于单片机控制的数字视频键控混合器具有以下特点:内含两级串联的键控混合器,可以在主信号中键两入两路附加数字信号,如时钟台标或各种字幕标识;可以远程遥控,也可现场按键控制;可以随时更新和保存系统配置,改变系统功能和技术参数;该系统稳定可靠,对掉电、死机等异常现象有自复位能力。

整个系统包括硬件和软件两部分,硬件包括数字混合部分和单片机控制部分。

图1 数字混合硬件框图

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兼容,而且适合远距离传输数据。

图2 单片机控制电路

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到saa7121的27~2a存储器,pc发送0x9 0xc 0x4 0x27 0x0 0x21 0x1d 0x0 0x13。

图3 主程序流程图

    在单片机的串口中断子程序中,根据接收到的命令长度判断是否接收到一个完整的命令格式。如果接收到一个完整命令格式就设置标志位flg1(如图3)根据这个标志位进入主程序中处理pc命令的程序,由接收到的命令号识别各种pc发送命令。例如,1号命令是显示附加数字信号1并且点亮1号led,0xc号命令是写saa7121存储器等。依据接收到的校验和,可以判断接收pc数据的正确性,防止对混合器的错误操作。

用vb6.0设计软件,读写pc的串行口。本文波特率为9600bps,单片机的定时器/计数器2(t2)设定在波特率发生器的工作方式。

3.3 访问tmc2081

tmc2081提供微处理器i/o口,包括读/写控制r/w、片选cs、寄存器选择控制a[2:0]、数据i/o口d[7:0]。通过微处理器i/o口可以访问tmc2081的内部控制存储器,完成对芯片的配置。读写时序如图4。

参数tpwlcs、tsa、tsd、thd、tpwhcs、tha、tdom的最短要求时间都是ns级。用at89s8252软件编程可以模拟该端口的读写时序配置tmc2081。

本系统用到两片tmc2081,标记为tmc2081_0和tmc2081_1。at89s8252的p3.6连tmc2081_0/1的r/w,p2.3连tmc2081_0的cs,p2.4连tmc2081_1的cs,p2[2:0]连tmc2081_0/1的a[2:0],p0[7:0]连tmc2081_0/1的d[7:0](如图2)。读写tmc2081_0的a通道存储器的程序如下:

mc2081_0 equ p2.3

tmc2081_1 equ p2.4

r_nw equ p3.6

mov a,#00h

lcall waddrtmc2081_0 ;选中a通道控制寄存器

mov a,#01h

lcall wdatmc2081_0 ;写01到a通道控制寄存器

mov a,#00h

lcall waddrtmc2081_0 ;选中a通道控制寄存器

lcall rdatmc2081_0 ;读a通道控制寄存器的内容

waddrtmc2081_0:写控制寄存器地址

setb tmc2081_1

setb tmc2081_0

setb r_nw

clr r_nw

orl p2,#00000111b

clr tmc2081_0

setb r_nw

mov p0,a

setb tmc2081_0

ret

wdatmc2081_0: 写数据到控制寄存器

setb tmc2081_1

setb tmc2081_0

setb r_nw

clr r_nw

anl p2,#11111101b

clr tmc2081_0

setb r_nw

mov p0,a

setb tmc2081_0

ret

rdatmc2081_0;读控制寄存器数据

setb tmc2081_1

setb tmc2081_0

setb r_nw

anl p2,#11111101b

clr tmc2081_0

mov a,p0

setb tmc2081_0

ret

3.4 键控功能

有两个按键1,2。按下1号键,1号led亮并且显示附加数字信号1;再按1号键,1号led灭并且附加数字信号1不显示,恢复背景信号。2号键也同样,这样可同时显示两个附加数字信号。信号显示或不显示的过程必须在场消隐的第6个下降沿完成,才能保证显示或不显示的过程不影响背景信号。

行同步在p3.3,场消隐连计数器1(t`1),按键1、2连p1.6、p1.7,p1.4和p1.5向混合器发出控制电平(如图2)。单片机主程序中以查询方式检测是否有按键按下。如果有,进入按键处理程序,先等待行同步的一个降沿,然后启动计数器t1计数场消隐的下降沿,计数器t1溢出后p1.4或者p1.5取反,向混合器发出控制电平。本系统没有让同步触发外部中断1子程序,只是简单地查询下降沿,实际结果表明查询方式更可靠、方便。

图4 (a)微处理器接口写时序;(b)微处理器接口读时序

    3.5 i2c接口

i2c总线是philips公司提出的串行通信协议。通过串行数据线(sda)和串行时钟线(scl)传输数据。数据传输率最快为400kbps。本系统用p1.0和p1.1代表sda和scl,软件模拟i2c协议。

本系统充分利用了at89s8252的内部资源,不需要外围设备,节省了空间。软件编程简单、实用。这种基于单片机控制的键控数字视频混合器已由师慧公司产品生产成kcm-d2000 digital key control mixer。实际应用表明该混合器工作稳定、方便,已经取得较好的市场价值。