郑悦 黄子硕 陈康 张孟
摘 要:随着航空技术的发展,座舱图形画面的复杂程度及显示信息量不断增加,传统的编程开发方式由于开发周期长、移植性、继承性及灵活性差,已不能满足其发展要求。文章提供一种基于IData人机界面开发工具及Vxworks操作系统的座舱图形显示软件开发方式,此种方式具有简单、通用、标准、移植性好、继承性好的特点。重点介绍开发流程及关键技术,并开发了一种飞行显示器画面。结果显示,该方法开发的座舱图形画面显示清晰、流畅,系统运行性能稳定。
关键词:座舱显示;IData;Vxworks;人机交互
座舱显示系统作为座舱中重要的人机交互接口,融合了大量的显示信息,如姿态、空速、高度等重要的飞行数据[1],担负着飞机从起飞到着陆过程中飞行参数的指示及导航信息的显示工作,对飞行员在飞行过程中了解飞机姿态、位置等信息有巨大的作用。座舱显示系统是航空电子实现综合化、数字化和智能化的核心与关键[2],对实现航空电子系统功能的综合化、提高飞机的作战能力和减轻飞行员的任务负荷起着重要作用。
传统的座舱图形显示软件多采用Visual C++和OpenGL,Vaps等开发环境,采用人工编程的方式完成,代码繁琐,工作量大,需投入大量的人力物力,开发周期长,实现困难。随着航空技术的发展,座舱图形显示软件的开发周期缩短,平台也多样化,传统的开发方式灵活性差,对不同平台的移植性及继承性差,这就急需一种简单、通用、标准、移植性好的座舱图形显示软件开发方式。本研究将重点介绍基于IData人机界面开发工具及Vxworks嵌入式开发平台的简单、通用、标准、移植性好的座舱图形显示软件开发方式。
1 IData图形画面开发
1.1 IData概述
IData是Quantium 3D公司开发的基于Open GL的人机界面开发工具。IData采用人机交互的方式创建仪表,并实时响应程序变量及控制逻辑,能够快速开发动态交互式图形。IData是一个高效的基于工具的人机界面开发及配置环境,具有跨平台的优势,支持将应用程序配置在Windows/Linux/Vxworks等平台上。
IData可通过鼠标点击的方式绘制点线、圆、矩形等图元[3],并能实时响应应用程序中的逻辑控制,它具有功能强大的图形用户界面编辑器,并且包含纹理渲染、深度渲染、模板遮挡等功能。因此,IData被广泛应用于飞机座舱仪表、飞机平显及交互式虚拟控制台中。
1.2 IData开发过程
IData人机交互软件可通过界面进行可视化的图形绘制,即系统建模[4],采用IData进行座舱仪表显示画面开发的流程如图1所示。首先按照图形显示要求在IData Modeler里完成图形建模,定义属性及控制变量。然后在IData Layout Editor里进行仪表组件建模,仪表组件建模完成后,通过相关变量为其设置逻辑控制及数据处理,为绘制的仪表组件设置驱动。仪表组件绘制完成后,通过合理的布局进行画面组合后,可添加纹理、字库等文件。在IData中可直接运行程序,在上位机中查看显示结果,可依据显示效果对画面进行修改。
采用了IData人机交互软件进行可视化的图形绘制,无需编写代码,在绘制过程中可随时查看显示效果,直观简便,对开发人员的要求也相对较低,可有效缩短项目的研制过程并可减少项目中的人工成本。
2 座舱图形显示软件开发
2.1 座舱图形显示软件开发流程
座舱仪表显示软件的开发可分为两部分,即仪表画面绘制及画面驱动。采用IData绘制仪表画面,而画面驱动部分由UDP/TCP或RS422/RS429/UART等数据传输方式完成。IData绘制仪表画面具有周期短、工作量小、移植性好、可扩展性好的特点,但其绘制的仪表显示画面如不经过处理则仅支持上位机运行,不能运行于嵌入式环境中,所以,IData生成的仪表画面不能直接运用于座舱显示类产品中。Vxworks是美国Wind River公司开发的高性能实时嵌入式操作系统,具有开放的体系结构,并能很好地支持各工业标准,可运用于多厂商平台。先通过代码生成器生成Open GL ES代码,再将代码运行于Vxworks嵌入式环境中生成目标代码,最后烧写进图形处理板中。
2.2 关键技术
2.2.1 直线旋转边缘失真问题
在仪表绘制中,刻度线有失真,失真表现为出现锯齿[5]。Open GL ES中通过直线平滑的方式解决锯齿,即通过GL_LINE_SMOOTH,但是在Open GL ES中该方式无法实现。OpenGL ES中解决锯齿的方式为采用多采样代替单采样,即2XAA,但是多采样会严重影响程序的执行效率,使显示画面的刷新率降低,试验显示采用单采样时画面刷新率为60帧,而采用2XAA时画面刷新率为25帧。
考虑画面运行实时性的要求,采用两种方式解决锯齿失真的问题:(1)在刻度线外加空心四边形作为陰影区域,该区域颜色设置为透明颜色。(2)将刻度线加粗,也能缓解刻度线出现锯齿的失真问题。当刻度线加粗后又引入了旋转失真问题,即旋转时刻度线边缘出现斜边。为解决旋转时边缘失真问题,在绘制旋转刻度线时采用填充的矩形代替加粗的直线,这种方式既能减轻刻度线锯齿的失真问题,也减轻了刻度线旋转时边缘失真的问题。
2.2.2 软件显示区域与液晶显示屏的匹配问题
在航空仪表中,液晶显示屏的分辨率有多种,例如480×480,300×300等,而同一个IData绘制的显示画面,画布大小固定,所以,在各液晶屏上的显示位置、大小可能存在偏差。在Open GL ES中有glScalef,glTranslatef,glRotatef等函数可实现画面的缩放、平移及旋转。同时,glOrthof函数可设置视窗大小,通过视窗大小的设置也可解决显示区域偏差问题。
2.2.3 驱动数据传输问题
在Vxworks系统中,可使用UDP/TCP或RS422/RS429/UART等数据传输方式,可通过网口或串口接收姿态及高度等数据,在座舱仪表显示画面中进行显示。当数据传输程序与图形显示程序在同一个任务中执行时,数据传输将占用显示程序时间,导致显示不流畅问题。解决办法是采用多任务的处理方式,将数据传输与显示程序分别置于两个任务中完成,则数据传输程序不会影响显示图形的流畅性。
3 飞行显示器画面开发
3.1 显示器画面开发
应用的飞行显示器主要显示飞行姿态(俯仰、横滚)、航向、气压高度、指示空速和升级速度等,包含主显示画面、全罗盘画面、上电自检等多个画面。该显示器要求显示画面清晰、流程、无像素缺失、无拖影,能进行画面切换、亮度和日夜调节,具有良好的人机交互功能并具有画面文字提示。该飞行显示器包含结构框架、母板组件、导光板、液晶显示模块、图形板、接口处理板、电源组件等单元。座舱图形显示软件运行于图形板中,通过图形板与接口板及液晶显示模块进行交联。接口板通过通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)将显示信息传递给图形板,图形板中的显示软件通过UART接收显示信息进行显示,图形板与液晶显示画面的通信采用RS422串口通信方式,液晶模塊以被动的方式工作,不主动向主机请求命令。导光板的按键信息由图形板进行采集,从而控制液晶模块显示信息及亮度。
本系统采用IData人机界面开发工具绘制显示画面图形,图形绘制后,通过代码生成器生成Open GL ES代码。通过Vxworks6.7创建Vxworks工程,添加UART及RS422通信、图形显示等任务代码,并将代码生成器生成的Open GL ES代码加入该工程中,进行必要的代码更改。图形显示软件通过UART接收航姿、高度、大气数据等显示信息,通过接收的信息驱动图形显示画面进行实时显示。通过RS422串口通信与液晶显示模块通信,设置屏幕亮度及背光灯状态,并读取背光源亮度、状态及温度、液晶屏温度、系统自检状态及加热状态。图形板通过采集导光板的按键信息控制画面的切换及数值的修改,同时,将值向接口板反馈。
3.2 运行结果
IData绘制的图形画面运用于嵌入式平台后,生成图形显示程序,运行于图形板上,图形画面生成时间较短,显示屏上正确显示画面,对比上位机IData人机交互软件中生成的画面,液晶显示屏线条、图形、图片、字符显示无走样,无色差,在显示屏上正确显示了航姿、大气等信息,并实现了多画面切换功能。当有大气数据、航姿数据及画面切换指令等激励数据时,显示屏显示画面上的天地球、速度带、高度带等均随输入数据实时改变,画面整体显示流畅、刷新及时,应用效果如图2所示。
4 结语
文章提供了一种基于IData人机界面开发工具及Vxworks嵌入式开发平台的座舱图形显示软件开发方式,并针对具体型号产品进行了测试。结果表明,该方法具有灵活性、继承性、移植性好的优势,并可跨平台、简单通用、开发周期短,对人员要求相对较低,明显优于传统的编程开发方式,更适用于未来产品画面复杂程度增加、显示信息量增大的座舱图形显示软件开发。
[参考文献]
[1]邓勇.虚拟座舱显示与视景仿真技术[D].西安:西安电子科技大学,2013.
[2]李劲.我国未来空天飞机综合电子信息系统的发展建议[J].电讯技术,2010(3):102-106.
[3]宋青,赵敏,周坚锋.IData在高级座舱显示系统快速开发中的应用[J].航空电子技术,2008(4):33-43.
[4]赵双双,孙旭东.基于IData的先进座舱多功能显示器的仿真研究[J].飞机设计,2011(3):55-70.
[5]RAFAEL C,GONZALE Z,RICHAR D,et al.Digital image processing[M].3nd.Beijing:Publishing House of Electronics Industry,2017.
Research on cockpit display technology based on IData and Vxworks
Zheng Yue, Huang Zishuo, Chen Kang, Zhang Meng
(Beijing Keeven Aviation Instrument Co., Ltd., Beijing 101300, China)
Abstract:With the development of aviation technology, the complexity of cockpit graphic picture and the amount of display information are increasing. The traditional programming development method can not meet the development requirements because of the long development period, poor portability, poor inheritance and poor flexibility. This paper proposes a method of software development based on IData human-compute interface development tool and Vxworks operating system, which is simple, general, standard and has good portability and inheritance. The paper introduces the development process and some key problems, and applies the method to develop a kind of cockpit display system. Test results show that the application of the research above on cockpit display delivers detailed visuals while keeping the framerate smooth and stable.
Key words:cockpit display; IData; Vxworks; human-computer interaction