基于DSP与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输出显示。
3.4 滚动刻度和字符处理
代表俯仰角的刻度和度数都在天地球区域内实时的滚动,它与填充区域外面的移动刻度和字符的区别是:刻度和字符不能超出填充区域,否则会擦除其它天地球外的重要信息。对于这个问题可以通过以下方法解决:在初始化分层时标记了的填充区域内,选择一种与填充区域外的各种颜色和填充区域内小飞机标记颜色值不同的一种颜色数据来代表填充区域内的滚动字符和刻度。每次写前判断如果在填充区域外则不要写,如果在填充区域内且非标志信息则写出该字符或刻度,也就是如果刻度滚动到区域外则不再显示,但其位置信息仍然根据参数变动。擦除时,根据位置信息判断像素点是不是移动刻度和字符的颜色,如果是就擦成填充区域的原始数值,否则保持不变。这样就实现了既不把字符写道填充区域外,也不会将填充区域外的信息元擦除。其程序流程图如图3所示。
4 结束语
通过将图形分层处理,只根据参数改变其填充层和动态字符层信息,减少了DSP轮廓生成的运算量。又按照硬件系统结构特点将图形运算由DSP软件标记轮廓,FPGA硬件完成区域填充的方法,显著加快了区域填充速度,使得画面显示取得效果良好。这种图形处理方法对其它类似的图形处理应用场合具有很好的借鉴意义。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)