3.2 天地球区域的轮廓生成 因为天地球的位置和形状固定,跟随参数变化的是其区域的颜色信息,因而轮廓生成的任务就是根据变化的参数重新标记填充区域边界的颜色信息,以便FPGA根据边界点的颜色信息确定区域内像素点的颜色。在DSP初始化画面生成天地球边界时,建立边界数组存储边界点的位置以方便其颜色信息的标记。在DSP接收到一组飞行参数后,根据俯仰角和侧滚角重新赋给天地球的边界和地平线以颜色信息。这种方法可以节省大量时间以满足系统的实时性要求。 3.3 天地球区域的FPGA硬件填充 区域填充一般可以归为两大类:扫描转换和种子填充。其中边标志填充算法和扫描线种子填充算法分别是这两类中较为常用和高效的算法,边标志填充算法更适合于硬件和固件实现。故选用边标志填充算法完成区域填充,编程逻辑使用Verilog HDL实现。 具体思路如下:(1)DSP读取双口RAMl中存储的已经由FPGAl预处理了的信号,生成一些直线、圆弧,如线段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输出显示。 |