新闻中心

EEPW首页>嵌入式系统>设计应用> 基于DSP与FPGA的全姿态指引仪的设计

基于DSP与FPGA的全姿态指引仪的设计

作者: 时间:2010-07-12 来源:网络 收藏

  3 图形信息分层处理与显示技术

  3.1画面初始化图形分层

  图形区域主要分为三种类型:一是背景区域,数据量大,但在图形变化过程中不随参数变化而改变;二是填充区域,数据量大,并且在图形变化过程中随着参数变化而不断改变;三是动态的字符与刻度信息,数据量小频繁变化又不同于填充区域。根据图形的特性,系统上电后首先进行画面的初始化,将图形分为背景层、填充层和动态字符层,背景层包括不随参数改变的背景、刻度和字符等,填充层即天地球区域,动态字符层包括动态字符和直线区域。区域填充过程对动态字符层的处理和背景层相同,因而将该层和背景层构成的区域称为非填充区域。图形的分层靠图形区域标志位来区分,为0表示为非填充区域,为1表示为填充区域,区域标志位后跟随着该点颜色信息。在画面初始化中将天地球轮廓上点的坐标存为数组,以方便根据地平线的位置和角度来标记天地球填充区域的边界。在画面初始化后的轮廓重新生成过程中,背景层便不再改动,动态字符层信息因数据量小可每次都将改变了的部分擦除和重写。根据参数生成带有填充区域边界标记信息的填充层与背景层和动态字符层的叠加信息,就生成了一幅完整的图形轮廓。图2表示图1(a)所示显示画面的分层结果,(a)、(b)和(c)分别为背景层、填充层和动态字符层。



  3.2 天地球区域的轮廓生成

  因为天地球的位置和形状固定,跟随参数变化的是其区域的颜色信息,因而轮廓生成的任务就是根据变化的参数重新标记填充区域边界的颜色信息,以便根据边界点的颜色信息确定区域内像素点的颜色。在初始化画面生成天地球边界时,建立边界数组存储边界点的位置以方便其颜色信息的标记。在DSP接收到一组飞行参数后,根据俯仰角和侧滚角重新赋给天地球的边界和地平线以颜色信息。这种方法可以节省大量时间以满足系统的实时性要求。

  3.3 天地球区域的硬件填充

  区域填充一般可以归为两大类:扫描转换和种子填充。其中边标志填充算法和扫描线种子填充算法分别是这两类中较为常用和高效的算法,边标志填充算法更适合于硬件和固件实现。故选用边标志填充算法完成区域填充,编程逻辑使用Verilog HDL实现。

  具体思路如下:(1)DSP读取双口RAMl中存储的已经由l预处理了的信号,生成一些直线、圆弧,如线段AB、弧线AC,在DSP进行图形生成的同时,对需要填充的图形进行边标志的标定,并通过双口RAM2送至SRAMl(或SRAM2)中(说明需要参照结构原理框图),(2)填充工作由FPGA2实现,FPGA2并行地从SRAM2(或SRAMl)读入像素,并进行标志识别与操作,实现边标志填充算法。算法具体描述如下:

  (1)设立边标志,该功能由DSP完成,是在生成天地球填充轮廓的过程中,同时给边界和地平线做上标记,画面除了背景色以外需要填充蓝色和褐色两种颜色(一些特殊情况,如俯仰角大于90°或者小于-90°,则只需填充蓝色或褐色)。因此天地球的填充需要设立蓝色边标志和褐色边标志。

  (2)像素操作,该功能由FPGA2完成,由布尔状态量确定和输出颜色确定两部分组成。FPGA2把已打上边标志的图形数据从帧存(SRAMl或SRAM2)中读出,对每条扫描线,依从左到右的顺序,逐个访问该扫描线上的像素,对于像素具有蓝色和绿色标志的,分别定义一个布尔状态量flag_blue和flag_green来指示当前像素点的状态,若点在需要填充的蓝色(或绿色)区域内,flag_blue(或flag_green)为真,反之,若点在填充区域外,flag_blue(或flag_green)为假;每当当前被访问的是被打上蓝色边标志edge_blue(或绿色边标志edge_green)的像素时,fl-ag_blue(或flag_green)取反;对未打任何边标志edge_no的像素,flag_blue(或flag_green)不变。算法确定输出颜色时,对于所访问的像素,根据flag_blue(flag_green)标志把相应的颜色Blue(Green)输出显示,否则,则直接把背景色Background输出显示。



评论


相关推荐

技术专区

关闭