综显系统多功能显示器黑屏问题研究
扫描二维码
随时随地手机看文章
0引言
多功能显示器作为飞机航电系统的重要组成部分,主要负责为飞行员提供综合化信息显示和控制画面,实现飞行员与飞机系统的人机交互任务[1]。本文针对多功能显示器黑屏问题,介绍了问题定位、软件故障分析、采取的纠正措施及验证情况,可为后续产品排故提供参考。
1问题定位
1.1 工作原理
综合显示系统(Integrated Display System,IDS)由2台综合显示处理机(Integrated Display Processor,IDP)、5台多功能显示器 (Multi—Function Display,MFD)、1台综合控制单元(Integrated Control Unit,ICU)和1台 数据加载及视频记录设备 (Data Loading and Video Recording Equipment,DLVR)组成[2],其中多功能显示器为飞行员提供飞行和导航等各种参数信息。当处理机下线时,显示器通过接收的大气惯导数据,进行应急数据显示,显示必要的飞行数据。其中MFD5默认显示地图页面,具有正常和应急供电,直接与机电管理计算机交联,并可控制燃油系统的转输。通过位置识别线识别MFD5,增加机电参数显示器工作模式,在多功能显示器模式下,MFD5与其他4台显示器功能一致,可根据需求选择显示飞行页面、导航页面、气象页面、地图页面、机电页面等;在机电参数显示模式下,实现机电参数显示器功能,可对燃油系统转输进行控制。
位于5号位置的MFD5相较于其他4个位置的MFD,额外与大气数据计算机、惯导、机电管理计算机各2路交联,交联关系如图1所示。在飞行时,与MFD5交联的设备同时工作,RS—422、HDLC均以周期的形式与MFD5通信。MFD5在工作时,又可分为多功能显示和机电参数显示两种状态,对应的多功能显示器显示软件和机电参数显示软件切换运行。数据流如图2所示。
1.2 故障分析
多功能显示器液晶屏原屏为常黑屏(即在无视频画面时,液晶屏表现为黑屏),在显示器上电启动时,会黑18 s左右,其中3 s液晶屏启动,剩余15 s为图形生成时间。进一步确认,MFD5通常是在主机电和备份机电画面下发生重启故障。主机电为多功能显示软件实现的功能,而备份机电则由机电参数显示软件实现。通过视频回放发现,在多次机电画面重启前,并没有明确的特定条件。在重启前,画面会静止5 s左右,重启之后MFD5进入地图画面。在重启过程中,其他位置的显示器会报出5号位显示器故障。查看从MFD5下载的故障记录,发现MFD5内产生了离散的任务挂起。在多次重启前的各个记录中,挂起的任务名并不相同。
针对MFD5空中重启的故障进行分析:
1)MFD5没有在特定条件下重启:MFD5的软件没有明显的功能分支导致故障发生。
2)重启前画面保持5 s左右,说明图形数据处理模块还在正常工作,可保持向液晶屏模块持续输出 LVDS信号。
3)重启后进入地图画面,说明IDP工作正常。当综显系统识别到MFD5下电后再次上电的画面应为地图,说明IDP识别到MFD5下线,MFD5通信相关的程序也同时失能。
4)由数据处理软件可识别到挂起任务并在重启前生成故障记录可知,数据处理与显示模块没有发生强制断电、操作系统强行重启的情况,是由看门狗狗叫引发的外部复位。
根据上述分析,MFD5在发生黑屏重启现象的同时出现通信失能、任务挂起故障,且图形数据处理模块(FPGA)功能完好。据此,多功能显示器故障树如图3所示。
2 图形生成组件软件故障分析
2.1绘图任务对GPU有冗余的开销
为了提高绘图帧率,绘图任务在运行时,没有采用周期循环运行,而是在较低的优先级任务里使用 while(1)循环,并且为了保证可被其他任务抢占,增加了一个tick的延迟以让出CPU。当GPU被冗余的绘图指令操作时,不仅会使绘图任务长时间占用CPU,还会使GPU驱动对操作系统相关资源提高不必要的占用。
针对此问题,采用提高GPU频率的方法尝试减少绘图任务对GPU的占用率,将GPU频率由600 MHz提高到800 MHz,在同样的绘图任务和画面下进行对比,绘图任务在全周期的占用时长由80%降低为76%。
又经排查发现,MFD5中的多功能显示软件和机电参数显示软件绘图架构有一个明显差异:备份机电绘图任务中每次绘图时,都会调用GetCurrentContext 函数,该函数的功能为切换SCADE的OpenGL上下文,占用开销较大,在备份机电绘图软件中该函数的用时占比为5.56%。同时对比多功能显示软件的代码,发现在多功能显示软件的绘图框架中进行了首次切换判断,而机电参数显示软件中没有该逻辑。
由此,在对机电参数显示软件增加了首次切换后不再进行切换的逻辑后,占用率由5.56%降低到0.05%O但针对GPU的优化在机上调参后,依旧复现重启问题,排除绘图任务对GPU有冗余开销的故障。
2.2应用程序软件设计错误
由监控记录推断的情况,若发生数组越界也有可能使程序产生异常行为。通过代码审查,重点对 malloc、数组下标操作进行逐一推理,没有发现异常。同时检查边界处理条件,对数组下标是负值、超出数组长度的情况进行了必要的判断。 通过静态代码测试工具testbed、polyspace对代码进行扫描,也没有发现问题。同时对照vxworks的特性,一般数组越界的情况下操作系统会抛出对应任务的异常,与监控的现象不同,因此排除应用程序数组越界的可能。
2.3某一任务无法抢占CPU
经代码审查,HDLC周期处理函数具有较高优先级,两路HDLC各一个任务,没有用信号量,以前的方法是直接while(1)循环,其中调用了驱动层的接收函数,驱动的接收函数里加了2个tick的超时taskdelay等待,这样能保证不会任务卡死,超2个tick能继续执行。但还是怀疑消耗的资源太大,按照数据接收和处理优先原则,不能将其优先级调低。随后整改为由循环里的taskDelay(0)改成taskDelay(1),经长时间烤机没有发现延迟,加上接收函数的2个tick等待共为3个tick。通过验证周期处理没有超时导致数据阻塞,每3个循环有1个是空收数,证明接收周期短于数据源发送周期。但因为两个任务优先级相同,还是while(1)循环,还是有一个卡住会使另一个也卡住的风险,于是需要使用同优先级轮询调度方法。查手册和帮助文档,通过kernalTimeSlice函数确定之前的BSP没有开启轮询,返回了ERROR。
随即调整开机初始化参数,在创建任务前开启轮询调度,经过上述方法对CPU调度逻辑进行优化,并在机上调参后,仍然出现了重启问题。在排查过程中考虑了是否存在优先级反转的情况,但通过代码审查并未发现任务之间竞争使用同一信号量和资源的问题,各个任务之间也不存在互相影响的阻塞条件。因此,可以排除某一任务无法抢占CPU导致的故障。
2.4 临界区资源冲突导致死锁或异常
数据处理软件为机电参数显示软件提供RS—422数据接收和拼包功能。RS—422任务接收来自机电管理计算机的数据后,利用软件的FIFO队列将数据进行拼接。当机电参数显示软件调用特定的读取接口函数时,数据被复制到该软件的专用数组中。该FIFO 队列的核心实现方法是利用VxWorks系统的rnglib环形队列库。查阅环形队列库文档后得知,当同时有一个读取任务和一个写入任务操作时,采用独立的读写指针,这样读取和写入操作就不会发生冲突。为了提高可靠性,移除了数据处理软件的拼包功能,改由机电参数显示软件负责数据接收、拼包和处理,从而消除临界区,有效防止多任务并行执行。尽管经过上述优化方法处理了临界区冲突,但在机上调参后,仍出现了重启问题。经过排查,确认并非临界区资源冲突导致死锁或异常故障。
2.5机电参数显示软件故障
通过查看DLvR回放,可知MFD5在主机电和备份机电画面下都会发生重启故障。在非备份机电绘图状态下,机电参数显示软件的绘图和数据处理任务虽然不会挂起,但会依据不是备份机电的状态变量跳转到不处理的逻辑分支,不会出现后台运行的数据解析错误导致故障的情况,因此排除机电参数显示软件数据处理或绘图程序有BUG的故障。
2.6中断资源耗尽
MFD5与其他4个位置的区别为额外接收6路RS—422,由机电参数显示软件在进行备份机电画面显示时同时处理各路数据。通过硬件架构可知,MFD5在任何状态下,图形数据处理模块将保持接收数据状态,并由驱动程序进行数据处理。数据处理由PCIe 收到1个字节后进入中断状态,根据机上设备发送的周期、波特率和ICD规定的字长可知,MFD5在机上工作时,通过RS—422、RS—232、RS—HDLC触发的中断次数约为29 000次/s,1~4号位置触发的中断次数约为7 000次/s。因此,认为该中断产生过于频繁,CPU对中断处理开销很大,可能会使操作系统产生不确定的运行结果。调整触发中断字节长度的阈值为16字节,经测试,中断产生数量大幅减少,经机上飞行验证,软件故障不再复现。
3采取的纠正措施及验证情况
3.1 纠正措施
1)修改数据处理软件内的驱动,增加可对中断字节数调参的功能;
2)在数据处理软件的接口初始化中增加将每路UART端口设置为16字节中断阈值的初始化操作;
3)在机电参数显示软件绘图程序中增加只执行一次绘图上下文切换的逻辑;
4)增加数据处理软件上电后轮询调度设置;
5)去除数据处理软件拼包再转发给机电参数显示软件的功能,由机电参数显示软件直接负责数据收取、拼包、处理。
3.2 验证情况
经实验室烤机验证,产品工作正常;在机上调参后飞行验证4个架次,未出现黑屏重启现象。
4结论
综上所述,多功能显示器黑屏故障是中断过多导致系统资源耗尽,引起任务挂起后触发看门狗复位。因此,降低中断触发阈值,将1字节改为16字节,减少中断请求次数后,经充分试飞验证故障未再出现。以上故障原因定位准确,机理清楚,采取的措施有效可行,可避免后续同类产品发生黑屏故障。
[参考文献]
[1]孙凯革,王桂芳,郭涛,等.一起接触器失效导致飞机多功能显示器黑屏故障分析[J].航空维修与工程,2020(6): 81—83.
[2]朱慧丽,王康,王清.试飞中多功能显示器闪屏问题分析与解决方案[J].航空电子技术,2021,52(3):68—72.
2025年第1期第5篇