首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

通用工业视频图像叠加的设计与实现(2)

通用工业视频图像叠加的设计与实现(2)

本帖最后由 yuyang911220 于 2016-12-29 15:11 编辑

2.3 屏幕编辑缓冲区的控制设计
  屏幕编辑缓冲区选择用RAM,是因为用户要求叠加的均是规则的几何图形,由CPU 90C32动态计算图形各点的位置算法非常简单;用户完全可以接受。
  CPU和视频输出端都要对屏幕编辑缓冲区进行访问,其中CPU要完成对RAM的刷新,即“写”RAM;输出端仅需读RAM。也就是说,对RAM的访问可以定为“写时禁止读”,“读时禁止写”。让它们共用数据总线DB和地址总线AB,而通过控制CPU和行场计数器的地址锁存器的使能端E,来分时使用。可见,这两组地址锁存缓冲器的使能端E是互斥的,可以仅用90C32的一根PI端口I/O线来作一个“单刀双掷开关”,由CPU通过控制这根I/O线来实现总线的分时使用。所以在电路设计中,RAM的片选端CS直接接地,写使能端WR与CPU的WR相连,而读使能端OE与行/场计数器的地址锁存器的使能端E相连。当CPU要对屏幕编辑缓冲区写时,选通它的地址锁存器的使能端E,同时行场计数器的地址锁存器被禁止,RAM的读使能端也被禁止,即RAM处于“只写”状态。反之,当CPU不需要对RAM刷新时,选通行/场计数器的地址锁存器的使能端E,同时RAM的读使能也被选通,RAM处于“读”状态,并且禁止写操作。用这种“存储器双总线技术”,避免了对屏幕编辑缓冲区的冲突访问,从而保证数据的完整性,得到稳定、正确的叠加视频图像。
  CPU 90C32的典型扩展电路包括程序存储区的扩展、数据存储区的扩展、时钟电路和晶振电路的扩展。考虑到项目需求并保留一定的扩充余地,存储器ROM选用27256芯片,RAM选用61256芯片。其中除RAM(屏幕编辑缓冲区)为临界区,需要特殊设计以外,其它电路与通用的单片机扩展电路完全相同,在此不另做介绍。
  2.4 按键译码电路
  本项目中,用户在人机交互选择叠加光标的形状与大小时,仅需要四个按键,因此不必使用功能强大的8279芯片,直接扩展90C32即可。四个按键经过译码,送到90C32的P1端口,这个译码逻辑非常简单,同样用GAL实现,逻辑表达式从略。在实际使用中,用户选择一次光标的大小与形状之后,总会稳定一段时间去进行其主要工作,所以操作按键的时间对于整个系统的工作时间而言是很短的。CPU对按键的响应采用中断方式,这可以比轮询方式大大减少对CPU处理器资源的占用。在按键电路中,一共占用P1端口2根I/O线,AO、A1是译码后的按键地址(或代码);另有INT是检测是否有按键被按下的中断信号线,它与90C32的外接中断输入端相连接。通常INT为高电平,若有按键被按下,INT为低电平,CPU可响应中断。
  按键电路的设计,也选择简单、典型而可靠的通用电路实现。目前,按键是利用机械触点的合与断来作用的,当电信号通过按键时,在闭合及断开的瞬间均有抖动过程,会出现一系列的负脉冲,持续时间一般为5~10ms。按键的稳定闭合期,由操作人员的按键动作所决定,一般为十分之几秒至几秒时间。为了保证CPU对按键的一次闭合,仅做一次键输入处理,必须去除抖动影响。通常去抖影响的措施有硬、软件两种,本项目用两重 去抖来提高可靠性:硬件设计中,为每个按键在输入端加一个一端接地的电容,滤去毛刺脉冲;软件设计中,有按键去抖过程,具体思想在软件设计中详细讲述。

  3 软件实现
  由于本项目中的难点工作均用硬件实现,所以大大减少了软件设计工作量。软件主要实现系统初始化和中断处理过程,其流程图如图7所示。
  主要过程的设计思想如下所述。
  3.1 系统初始化
  初始化参数,如代表光标大小的RDS、代表光标形状的SHAPE等等;
  初始化监视器的屏幕:清零屏幕编辑缓冲区、叠加十字光标和圆形光标;
  开中断,使CPU处于可接收外部中断信号的状态。
  3.2 中断处理过程
  首先打开在CPU响应中断时关闭的中断,然后调用按键去抖过程,确认有合法按键输入后取出按键代码,刷新屏幕编辑缓冲区,并调用按键响应过程。
  3.3 按键响应过程
  四个子程序分别对应于四个按键的功能:
  KEY0:将现在屏幕上的光标尺寸放大一个单位;
  KEY1:将现在屏幕上的光标尺寸缩小一个单位;
  KEY2:改变现在屏幕上的光标形状,依次重复按此键,光标的形状依次变为圆形、方形、六边形;
  KEY3:同时叠加所有不同大小的圆形光标,这是考虑到在实际应用中,圆形光标的使用频率较其它形状更高而特设的。
  3.4 按键去抖过程
  在检测到有且仅有一个键被按下时,记录此时闭合的按键的代码,然后执行一个延时过程,如延时10ms;之后,再判断是否仍有按键闭合。若有,检测它的代码与方才记录的代码是否一致,只有二者一致时,才认为确实有按键闭合,进行按键响应处理。
  此项目已投入实际生产,运行结果令研制人员和客户满意,认为它:a)原理简单,功能齐全,性能可靠,成本低廉;b)可扩充性强,只需作少许改动,即可适应用户的更高要求:
  (1)若要求进一步提高图像叠加的精确度,可选择更高频的晶振作为行计数器的输入脉冲,必要时对行计数器电路加以扩展;同时在软件的地址处理上略加改动即可。这相当于将像素点细化,因而叠加后的图像清晰度更高。
  (2)若要求对叠加的图形加以扩充或改动,可对相应的软件“按键处理过程”做调整。若需要增加按键的数目,还要对硬件中的按键译码电路进行扩展。由于在硬件设计中已考虑到未来的扩展,目前的设计仅需作很少改动,并且可最大限度地减少占用CPU90C32的端口线。如4个按键需要3根I/O线,即2线地址线,1根中断检测线;若扩展为8个按键,只需增加1根地址线,并重写译码GAL的逻辑即可。以此类推,若扩展N个按键,需要n根I/O线,其中,
  n=[logN]+1+1
  但是,由于GAL芯片本身结构的限制,建议在按键超过8个时,选用8279扩展键盘,以更好地满足用户要求。
  (3)若要求能叠加更多类的信号,如增加要求“可选择叠加黑电平或白电平”,可对硬件设计的叠加电路及其控制部分加以修改。MAXIM公司提供的芯片MAX441是4信道视频多路开关,MAX440是8信道视频多路开关,它们的单位增益带宽更高,其他主要参数与MAX442基本一致。详细介绍请查阅《MAXIM DATABOOK1998》。

  (4)若要对视频信号进行其它加工、处理,也可由本文所述的原理与实现得到参考和启发。
继承事业,薪火相传
返回列表