文献标识码: A
DOI:10.16157/j.issn.0258-7998.2015.07.010
中文引用格式: 曹峰,高伟林. 飞机座舱图形生成系统的硬件加速设计[J].电子技术应用,2015,41(7):37-39,43.
英文引用格式: Cao Feng,Gao Weilin. Hardware accelerating design at cockpit graphics generation system[J].Application of Electronic Technique,2015,41(7):37-39,43.
0 引言
战斗机座舱显示系统是飞行员了解战场态势、攻防信息、本机状态等信息,完成作战任务的重要信息来源。良好的人机界面能够让机组人员清晰、便捷地获得所需信息,有效减轻机组人员工作负荷,从而安全高效地完成飞行和作战任务。机载显示器是座舱显示系统的终端部件,其发展经历了三个时代,即机械时代、机电时代和光电时代[1]。机载显示器的布局和信息显示方式日新月异,从上世纪70年代末期开始,电子飞行仪表系统(EFIS)逐步替代原有分立式飞行仪表,实现了显示仪表的电子化、综合化,座舱显示器数量急剧减小,主显示器尺寸不断加大,分辨率不断提高,并日益朝着大屏幕化、综合化、信息化和智能化方向发展[2]。目前机载显示器分辨率最高已达UXGA(1 600×1 200@60 Hz),数据传输率为345 MB/s[3]。随着显示分辨率的提高,要处理的像素也越来越多,而所允许的处理时间却受屏幕刷新率所限制[4],传统的飞行座舱图形显示方法大多通过处理器和软件技术来实现,而对于实时信息处理系统,处理器还需要进行繁重的数据分析和数据通信工作,这将导致图形显示性能受到影响[5]。
本文提出了一种图形生成的硬件加速设计方法,利用DSP作为图形生成的主处理器完成图形运算算法,将每个像素数据置上标记信息后写入SDRAM帧存,FPGA作为协处理器根据像素数据的标记类型进行相应的数据运算处理,以此减轻DSP的运算负担,提高图形生成效率。
1 图形产生与显示系统原理
1.1 硬件组成
本设计DSP芯片采用ADI公司的TS201,其主频可达600 MHz,集成了SDRAM控制器;帧存采用了Micron公司的SDRAM器件MT48LC8M32,其容量为8 M×32 bit;FPGA采用Altera公司的EP2S30F672I4。本设计的原理框图如图1所示。
复位模块为DSP提供上电复位信号,Flash存放DSP的绘图运算程序,时钟和时钟缓冲为DSP、FPGA、SDRAM等各个器件提供工作时钟。EEPROM存放FPGA程序。
DSP根据绘图参数和指令进行作图运算,将运算结果通过其自带的SDRAM控制器写入SDRAM帧存中。FPGA以乒乓操作的方式持续地从SDRAM帧存中读出数据送至显示终端显示。
1.2 软件设计
DSP画面显示软件主要包括初始化模块和画面显示模块。初始化模块完成DSP系统寄存器、SDRAM、调色板等初始化功能,画面显示模块完成DSP的作图计算与显示等功能。画面显示功能模块框图如图2所示。
DSP与FPGA之间通过FLAG握手信号进行状态标记,TS201共有4个FLAG信号,为FLAG0~FLAG3,FLAG信号可以根据需要由DSP配置成输入或输出状态。本文中将FLAG0配置成DSP的输出信号,由DSP输出至FPGA;FLAG1配置成DSP的输入信号,由FPGA输出至DSP。DSP显示软件设计流程图如图3所示。
FLAG1初始值由FPGA置为“0”,FLAG0初始值由DSP设置为“1”。系统工作时,FPGA程序中在每个场同步信号的上升沿对FLAG0进行采样处理,并将采样值赋给FLAG1。当DSP探测到FLAG1值发生变更时,即开始启动作图运算;作图完毕后,DSP对FLAG0进行取反处理。TIME_DRAW是FLGA1与FLAG0进行异或运算后的信号,低电平持续时间即为图形生成时间。FLAG0和FLAG1的握手时序图如图4所示。
2 图形产生与显示硬件加速
机载液晶显示器需要实时产生并显示多种画面,其中又以电子式全姿态指示仪(又称天地球)和全罗盘的图形变化最为复杂。一幅典型的机载显示器画面如图5所示。其中天地球部分需要大量的色块填充,如果完全依靠软件实现填充算法,将会大大影响整个图形生成的效率,进而影响显示效果,造成画面迟滞。而飞机飞行过程中各种飞行参数的变化(如飞机的俯仰、横滚等)都需要显示画面做出快速响应以便于飞行员决策。在显示动态图形画面时,还需对帧存中的原始数据做清屏处理,否则会引起画面重影,尽管处理简单,但通过纯软件实现也非常费时[6]。
2.1 硬件填充加速设计
在图形产生与显示系统中硬件加速算法的引入从本质上而言是将绘图任务在软件与硬件之间进行重新分工,找出影响软件效率但有一定规律的适合硬件实现的算法。API标准在图形硬件的应用中扮演着非常重要的角色,其最显著的贡献是允许应用代码在不同的硬件加速平台间进行移植[7]。本文设计了一种图形消隐和色块填充API接口算法,用于对图形消隐和填充进行加速处理。
DSP写入SDRAM中的像素数据预先置上标记信息,FPGA在读出像素数据并处理时采用流水线方式完成,流水线分3个阶段,分别为标记与颜色寄存、标记状态转换、输出数据生成。流水线处理示意图如图6所示。
FPGA从SDRAM中读出数据时按照逐点逐行的次序进行,处理完一行中的所有点像素数据之后,再处理下一行数据。一般处理后的数据采取回写入帧存的方式供下一帧显示,本文采取了一种更为高效的方式,FPGA处理完当前帧像素数据后不回写入帧存,而是直接输出显示,这种方式可以使输出画面减少一帧的延时。
2.2 标记处理
标记分为4种类型:填充标记、翻转标记、结束标记、保持标记。本文采用状态机处理标记信息,使用VHDL语言描述有限状态机,可以充分发挥硬件描述语言的抽象建模能力[8]。标记处理状态机包含5种状态,分别为当前像素输出状态、填充状态、翻转状态、保持当前像素状态和结束状态,状态转移图如图7所示。
每种状态下FPGA的像素数据处理结果如下:
(1)当前像素输出:输出FPGA从SDRAM中读出的当前像素数据;
(2)填充:输出FPGA寄存的填充像素数据;
(3)翻转:输出FPGA寄存的翻转像素数据;
(4)保持当前像素:输出FPGA从SDRAM中读出的当前像素数据;
(5)结束填充:最后一次输出FPGA寄存的像素数据。
FPGA每读出一个像素数据,均根据像素标记进行状态转移操作。在当前像素输出状态下,如果读出的像素无标记,则保持在当前像素输出状态;如果读出的像素带有填充标记,则转换到填充状态。
填充状态下,如读出的像素数据无标记,则保持在填充状态下;如果读出的像素带有结束标记,则转移到结束填充状态;如果读出的像素数据带有翻转标记,则转移到翻转状态;如果读出的像素数据带有保持标记,则转移到保持当前像素状态。
翻转状态下,如果读出的像素无标记,则保持在翻转状态;如果读出的像素带有结束标记,则转移到结束填充状态;如果读出的像素带有保持标记,则转移到保持当前像素状态。
保持当前像素状态处理完毕后则根据跳转前的状态转移到填充或翻转状态。如前一状态是填充状态,则转移到填充状态;如前一状态是翻转状态,则转移到翻转状态。
结束填充状态处理完毕后则转移到当前像素输出状态。
3 试验结果
本设计中ADSP-TS201的系统时钟频率为125 MHz,内核工作频率为系统时钟的4倍频,即500 MHz,SDRAM访问的时钟频率设置为125 MHz,与系统时钟保持一致。分别采用FPGA硬件加速方式和DSP纯软件实现方式,生成图5所示的分辨率为1 024×768的典型机载画面,对图4中TIME_DRAW信号的低电平时间进行测试得到图形生成时间,图形生成时间的倒数即为图形更新帧率。两种实现方式下的效率对比如表1所示。
4 结论
本文针对机载座舱图形生成与显示系统的工作特点,提出了一种适宜FPGA硬件实现的像素消隐和填充加速方法。对图形生成算法的软硬件任务进行合理分工,DSP采用预置像素标记的方式,将图形生成算法中影响软件执行效率的画面消隐和色块填充运算分配给FPGA由状态机实现。运用本文所述图形生成硬件加速方法,绘制一幅典型的机载EFIS画面,效率较纯软件实现方式可提升两倍以上。
参考文献
[1] MOIR I,SEABRIDEG A.军用航空电子系统[M].吴汉平,译.北京:电子工业出版社,2008.
[2] 邢新强,李国超,肖锋.机载座舱显示发展趋势分析[J].飞机设计,2010,30(2):34-36.
[3] 李翠娟,陈川,张晓曦,等.几种机载视频技术要点分析与发展趋势探讨[J].航空电子技术,2012,42(1):129-131,134.
[4] 孔全存,李成贵,张凤卿.主飞行仪表图形加速显示系统的FPGA设计[J].电子技术应用,2007(4):62-64.
[5] 胡小龙,周俊明,夏显忠.飞机座舱图形显示加速系统设计及FPGA实现[J].中南大学学报,2008,39(5):1032-1048.
[6] SPITZER C R.数字航空电子技术(上)航空电子元件、软件和功能件[M].谢文涛,译.北京:航空工业出版社,2010.
[7] OISON T J.Hardware 3D graphics acceleration for mobile devices[C].Acoustics,Speech and Signal Processing,2008:5344-5347.
[8] 赵俊超.集成电路设计VHDL教程[M].北京:希望电子出版社,2002.