一种单片机实现的嵌入式视频切换器

2006-05-07 15:49:37来源: 电子技术应用

1.1 单片机控制器

    89C51单片机是ATMEL公司生产的8位单片机,采用CMOS工艺,与Intel的8051单片机在管脚功能上完全兼容。该控制器采用P0口作为矩阵切换数据的输出口;P1口用来对矩阵切换发出/UPDATE、/CE等控制命令;P2口用来设置该控制器在整个会议电视系统中的地址。由硬件来设置控制器的地址可以增强系统的可靠性,方便软件的设计。

1.2 通讯接口部分

    通讯接口可以根据实际安装的不同需要,提供RS-232标准和RS-485标准,其波特率可由用户编程设定。这部分电路主要由MAX202E(+5V RS-232接收发送器)、MAX491和光电耦合器件6N137构成。

1.3 复位与看门狗电路

    采用MAX813L作为电源监视和看门狗电路。当电源上电、掉电时,该芯片都可提供复位电平,并且当其WDI管脚不能采集到翻转信号时,就会发送200ms的复位脉冲。单片机控制器采用P3.2脚定时向看门狗电路发送电压翻转信号,以示系统正常工作。当由于外部干扰或其他原因导致死机时,看门狗电路会自动发出复位信号。

1.4 I2C总线数据存储器

    I2C总线是由Philips公司提出的串行通讯接口规范,使用串行数据线(SDA)和串行时钟线(SCL)来进行主从器件之间的数据传输。I2C总线上的数据传输率可达100Kbit/s,快速方式下可达400Kbit/s。在I2C总线传输中,开始和停止条件定义如下:当SCL为高时,SDA由高变为低为开始条件;当SCL为高时,SDA由低变为高为停止条件(如图2)。SDAH和SCL都是双向传输线,SDA线上的数据在时钟高期间必须是稳定的,只有当SCL线上的时钟信号为低时,数据线上的状态才可以改变(如图3)。输出到SDA线上的每一个字节必须是8位,每次传输的字节不受限制,每个字节必须有一个应答位。

    在该控制器中,采用的串行E2PROM芯片是X24C04,SCL和SDA分别接单片机的P3.6和P3.7脚数据的读写完全由软件控制。

1.5 矩阵切换电路

    矩阵切换电路以16×8为基本单元,可根据实际需要扩充为32×8、64×8、128×16等不同规模。控制电路可通过参数的设定控制不同规模的切换电路。所采用的芯片AD8111是一种高速视频切换矩阵,具有260MHz的视频带宽。AD8111可在并行或串行模式下工作,八个输出通道可任选十六路视频输入中的一路。并行模式(本次所用的为并行模式)下,在信号/UPDATE为高,/CE为低的条件下,当CLK为高时控制器发出更新数据,在CLK由高变低时,AD8111通过A0~A2和D0~D4管脚分别将数据送至输出和输入寄存器。其中A0~A2表示选中的输出;D0~D3为所对应的输入;若D4=1,则A0~A2表示的输出为选通状态,否则输出为高阻态。当/UPDATE由高变为低时,选中的输出与输入连通,矩阵的更改完成。

2 软件设计

    根据会议电视系统的整体要求,软件主要由主程序和串口中断服务子程序组成。编程时着重考虑了以下几方面:对整个控制器正确地初始化;对上级主控命令正确地分析、判断、处理;对矩阵的正确更新,对数据的及时保存(主程序流程如图4)。

2.1 主机控制命令

    主机发出的控制命令有两种。第一种是定长的,包含8个字节(见图5)。C3H是开始字节,5AH表示结束;地址1、地址2表示控制器在整个系统中所处的位置;数据1、数据2包含了对矩阵输入输出更新的具体信息;优先级代表了本次命令的优先级别,00H级别最高;校验字节为前6个字节之和。第二种命令是分组控制命令,长度不定(见图6),C5H 表示第二种控制命令的开始;地址1、地址2同第一类控制命令;数据0是本次分组命令所控制的输出通道;数据1至数据n是本次分组中的输入通道;校验字节为前几个字节之和对FFH取余;55H 表示本次命令的结束。

2.2 主程序

    控制器在没收到主机发送的控制命令时,会一直运行于主程序之中。主程序主要完成对系统的初始化;定时向看门狗电路发送电压翻转信号;对主机的控制命令发送回传信息。

    在初始化时,先从存储器中读取信息,判断读出的数据是否超出了矩阵的输入输出范围。若数据无误,则按此信息(一般是上次关机时控制器的状态)初始化矩阵。若发现某一数据有误,则按预先的约定初始化矩阵。控制器在向主机返回命令之前要判断回响标志,若标志为“1”,则调用回响主机的子程序,否则会跳过这一步,继续向看门狗电路发送电压翻转信号,以示其工作正常。

2.3 串口中断服务子程序

    一旦控制器检测到串口有数据到来,就会发出中断请求信号。单片机在执行完当前的指令后,会转向服务子程序(流程如图7)。在子程序内要完成对主控命令的判断、分析、处理,完成对矩阵的更改及信息的保存等任务。中断服务子程序也是软件设计的核心部分与难点之处。在接收完主机发送的命令之后,要处理的事务有:

    (1)判断命令是否正确。这包括判断命令是否正确;检查命令是第一类还是第二类。若是第一类命令,要检查其起始、结束字节和校验字节是否正确;输入输出是否在规定的范围之内。若是第二类命令,要保存分组信息,开启记时器。若检查有一点不对,将放弃该命令,恢复现场,退出服务子程序。

    (2)在确认命令正确无误后,要检查对应的输出是否被锁定。若锁定标志为“0”,则直接更改矩阵;若输出被某一主控命令锁定,那么就要比较新接收到命令的优先级与锁定的优先级的高低,高于锁定的优先级则可以更改矩阵,否则更改失败。

    (3)在更改矩阵之后,要及时地将更新信息写入存储器。并且将回响主机的标志置为“1”。

    退出中断服务子程序后,对主机命令的回响有两种情况。若更改成功,则将主控命令按相反的顺序返回主机;若因优先级低而更改失败,则将锁定的高优先级返回主机,防止主机继续发送此控制命令。

2.4 记时器中断子程序

    记时器中断子程序是用来实现分组功能的。控制器接收到主机的第二类命令时,记时器开始记时,然后每隔3分钟该组中的输出通道就会轮流接通所选中的输入,直到主机发出取消本次分组的命令。

3 可靠性分析

    为了提高整个系统的可靠性,设计时主要采取了以下措施:

    · I2C总线连接的E2PROM使得象在突然掉电这样的异常情况下,能保存住现场信息。

    ·看门狗电路具有自动复位的功能。

    ·通过光电耦合与主机的通讯,增强了抗干扰能力。

    ·应答式的数据通讯,再加上校验字节保证了通讯的可靠性。

    ·软件设计时对控制命令一系列的判断检查,能够确保对矩阵的正确更新,防止误操作。

    该控制器设计思路巧妙,充分利用了所选器材的资源,成本低廉。实际应用表明,该控制器工作稳定,容错能力强,具有很高的实用价值。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/control/200605/1631.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved