当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要:针对主飞行显示仪对图形处理和显示的苛刻要求,采用基于仪器总线和扩展总线的高速阵列信号处理板的设计模式,提出了一种基于硬件加速的PFD图形显示设计方法。该方法实现了图形分层双缓存交替切换、图形填充、图形合成和多通道DMA像素引擎,提高了PFD图形生成和显示的实时性和可靠性。实践证明,该设计显著解决了PFD图形显示系统中的速度瓶颈。
关键词:主飞行显示仪 图形分层 图形填充 图形合成 FPGA

主飞行显示仪PFD(Primary Flight Display)包含了至关重要的安全飞行信息[1],它包括被安装在与传统“T”型配置的模拟仪表及相同屏幕位置上的飞行仪表。PFD通常直接在飞行员的正前方。随着航空电子技术的快速发展,传统的CRT显示终端逐步被光栅式图形显示器LCD所替代。然而,光栅式图形显示系统在显示图形前,需要大量的各种运算,如图形扫描变换、反走样、图形旋转及其他的特殊算法操作[2]。随着显示分辨率的提高,要处理的像素也越来越多,而所允许的处理时间却受屏幕刷新率所限制。因此,怎样实时生成并准确显示逼真图形画面,是对嵌入式PFD设计者的一个极大的挑战。而基于PC机的传统图形生成和图形显示方式,又过于复杂且存在安全隐患。鉴于这种情况,参考文献[3-5]虽然提出了一些解决方法,但实际效果并不是很明显。本文采用基于仪器总线和扩展总线的高速阵列信号处理板的设计模式,提出了一种基于硬件加速的PFD图形显示设计方法。该方法实现了图形分层双缓存交替切换、图形填充、图形合成和多通道DMA像素引擎,提高了PFD图形生成和显示的实时性和可靠性。文中以Quartus Ⅱ5.0 和Modelsim_Altera 5.6e为开发、仿真和综合的平台,在Altera公司的Cyclone Ⅱ系列FPGA上成功下载并运行。
1 整体设计方案
在PFD显示系统中,要同时显示多个画面,如姿态指引画面、全罗盘画面、导航地图画面及飞行视景等。每个画面的处理算法都有其特殊性,如在姿态指引画面中,显示画面需要根据飞机参数的变化实时更新,要求在地平线上填充蓝色背景(蓝色表示天空),而在地平线下填充绿色(绿色表示大地)。随着飞机姿态的变化,地平线将在边界线内改变大小及方向,画面上的蓝色和绿色区域将重新分配,这种天地区域的动态重新填充是个非常费时的工作。此外,姿态指引画面还需要叠加一些字符(俯仰角度等),这些字符需要随着地平线一同旋转。可见,姿态指引画面是电子主飞行仪中最为耗时的画面之一[4]。而全罗盘画面则侧重于字符、线段的绘制和旋转变换,反走样运算任务十分繁重。在导航地图画面生成和处理中,数据量和处理量都比较大,如位置显示、飞行航迹生成等。针对不同图形画面的处理算法,本文设计了大规模阵列处理机模型,其主飞行仪表显示系统整体设计框图如图1所示。该设计采用共享外部总线和分布式并行处理相结合的系统结构。每个处理板通过仪器背板总线互相连接,提供了共享外部总线的结构;而相邻板之间也有一套扩展总线,提供了局部共享总线的结构。这样,板间既可通过背板总线直接交换数据,也可以通过扩展总线以DMA方式进行数据传输。另外,每个板内,DSP通过局部总线连接一个容量较大的SDRAM作为全局共享外部存储器,而FPGA通过局部总线连接一个容量较小的双口RAM作为局部共享存储器。这些全局和局部存储器可以作为板间或DSP间数据交换的大型缓冲区。从图形或图像处理算法实现上考虑,这种结构既可满足流水线式的并行算法,也可以满足分布式的并行算法(同一算法分布到多个处理器同时执行)。


2 FPGA的设计
针对每块板的不同处理功能,对FPGA进行了不同的算法设计。以板0#为例作一介绍。图2为FPGA的各种接口与系统其他部分的关系。


2.1 总线接口设计
系统有两套总线:仪器总线和扩展总线。仪器总线仿VXI总线设计,采用双排欧式插座设计,模拟信号和数字信号分开在各自的插座之上,提高了电磁兼容性。模拟部分主要包括:飞行传感器调理信号和系统模拟电源。数字部分采用基于多板分布式并行处理机制的共享式总线结构,主要包括:24位地址总线、16位数据总线、模块功能选择与控制总线、以及时钟和触发信号等;扩展总线采用基于板间流水线处理机制的链式结构,主要包括:20位地址总线、8位数据总线和控制总线。总线接口中,读写控制、地址译码、中断及DMA控制、时钟和握手信号均由FPGA实现。限于篇幅,具体设计细节不再赘述。
2.2 帧存控制模块
帧存控制模块由交叉多路转换器Cross-MUX、读写控制器和地址发生器组成。系统上电复位时,首先将变化频繁、数据量小的前景与变化缓慢或不变、数据量大的背景图形分开存储于高速SRAM中,每3片SRAM组成全彩色(R、G、B)图形帧存(这样的图形帧存共有3组)。其中,SRAM3为背景帧存,SRAM1和SRAM2为前景帧存。将前景帧存设计为双缓存轮流切换方式,当其中一组写入生成图形数据时,另一组则正被读出数据到图形合成模块,图形生成与显示并行进行。
2.3 图形合成模块
图形合成模块支持一层到四层的图形合成,通过设置合适的图形开始点和结束点(包括竖直和水平)来完成控制。公式(1)、(2)、(3)分别给出了其控制模型。式中,Plx为当前lx层像素的灰度值,介于0~255之间;x为层

2.4 像素引擎模块
像素引擎模块产生像素时钟输入信号CLK、行同步信号/Hsync、场同步信号/Vsync、数据使能信号/DE、扫描方向选择信号DPSR和R、G、B数据控制信号,控制LCD屏显示全彩色图形或图像。
2.5 图形填充模块
图形填充算法[6]的效率高低,直接影响到图形显示系统的加速程度。设计高效的填充算法犹为重要。本系统设计了一种基于形态学膨胀算子的多种子填充算法。膨胀算子具有天然并行运算能力,易于FPGA硬件实现,并且改进算法后,填充速度大幅度提高。图形填充模块由结构元素生成器、膨胀处理器和位置计数器组成。
2.5.1 结构元素生成器
形态学图形膨胀算法,是用结构元素对图形某邻域窗口进行的处理[7]。本设计采用的是3×3的方形结构元素,每次需要读取9个数据。为此,在FPGA内部定义了寄存器和FIFO,将相关的图形灰度数据进行存储,以使其在一个时钟周期内,以流水线的方式形成填充所需要的一个结构元素窗口。流水线的方式,加快了数据处理速度。结构元素窗口形成模块框图如图3所示。图中,w22为结构元素原点,如图4所示。


2.5.2 膨胀处理器
参考文献[8]中膨胀处理器的设计方法是:从3×3窗口读取的数据w11、w12、w33…w33中,挑出数值最大的元素并把它输出,采用两两比较排序算法,共需要12级比较。由于多级比较器的传输迟滞,最大工作频率受到限制。本系统中将多种子呈多条水平线分布,种子值为1,待填充区域为0,结构元素的w22在滑动时,只与0或1比较,比较结果若为1,则直接实现8邻域填充。这一方法简化了比较过程,提高了系统带宽和处理速度。在填充区域为320×480像素时,其最大工作频率可以达到80.12MHz(而参考文献[8]在填充区域为120×120像素时,其最大工作频率为62.751MHz),加速效果比较明显。
2.5.3 位置计数器
位置计数器根据行、列位置标志来确定滑动窗口(结构元素)在图形数据阵列中的位置。图形边界根据位置计数器的值查表得到,边界判断比较迅速。
图形填充模块的状态迁移图如图5所示。本设计根据需要设定了六个状态:Idle、ReadFIFO、Comp、WriteRAM、Boundary、Bd_P。这六个状态根据窗口位置是否有种子而进行转换,从而完成图形填充。


以上描述中,结构元素与种子比较、像素点的填充、边界判断等内容可有多种表达算法,特别是种子预置、边界判断和边界填充,有待进一步研究。
3 仿真及实验结果
图6是仿真和实验结果。图6(a)是图形分层双缓存交替切换、图形填充、图形合成和多通道DMA像素引擎的时序仿真图;图6(b)是实验结果图。对800×600的屏,刷新率可达47.6Hz,即21ms/帧;对320×480的区域,填充一次约花费2.86ms。
本文提出的基于仪器总线和扩展总线的高速阵列信号处理板的整体设计模式,具有较强的图形处理和数据吞吐能力。基于硬件加速的PFD图形显示设计,提高了PFD图形生成和显示的实时性及可靠性,也显著提高了图形质量,使显示画面更加逼真。经设计和部分调试表明:该方案具有较好的工程实用性和易扩展性。


参考文献
[1] CAMPBELL C B.Advanced integrated general aviation primary flight display user interfaced design,development andassessment.Digital Avionics Systems Conference,2002,21:1045-1-10A5-12.
[2] PAETH A.A Fast algorithm for general raster rotation.Graphics Interface,1986,(5):77-81.
[3] READ B C.Developing the next generation cockpit displaysystem.IEEE,1996.
[4] HANDLEY S J,ALLERTON D J.The designed of an EFISattitude indicator for a flight simulator[A].ICA-S[C], 1994:282-292.
[5] ZHU Yaodong Dong,ZHANG Huanchun,JING Yazhi.Anew design method of combined graphics display system in
aircraft cockpit[J].Journal of Nanjing University of Aeronautics & Astronautics,2002.
[6] ROGERS D F.Procedural elements for computer graphics(Second Edition).Beijing:China Machine Press,2002:82-119.
[7] GONZALEZ R C,RICHARD E.Woods digital image processing(Second Edition).Beijing:Publishing House of Elec- tronics Industry,2005:420-450.
[8] 李雷鸣.基于DSP和FGPA的全姿态指示器填充算法研究及硬件实现技术.硕士学位论文.南京:南京航空航天大学,2004: 29-43.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

hmi是Human Machine Interface 的缩写,"人机接口",也叫人机界面。人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介, 它实现信息的内部形式与人类可以接受形式之间的转换...

关键字: HMI 人机界面 系统

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计
关闭
关闭