他敲了几下键盘,调出一个波形分析界面,“我们彻底解决了1553B数据总线在高峰负载下的传输冲突问题。原来设计的系统,在模拟多传感器数据同时传输时,偶尔会出现丢包,特别是在火控雷达,惯导系统和电子战系统同时数据的时候。”
屏幕上显示着两段波形图对比。左边的波形参差不齐,脉冲间隔不均匀,有几个位置明显缺失,右边的波形整齐规律,脉冲如梳齿般均匀。
“我们重新设计了总线控制器协议栈,加入了一个动态优先级调整算法。”
陈致宁解释道,手指在屏幕上指点,“当多个子系统同时请求数据传输时,系统会根据数据的重要性和实时性自动分配带宽和时序。”
“比如,火控雷达的目标数据优先级最高,延时要求小于5毫秒,惯导系统次之,但数据量小,通讯系统再次之,可以容忍一定的延迟。”
他调出另一个界面,那是一张复杂的系统架构图,用不同颜色的方框表示不同的子系统,线条表示数据流。
“这是我们的航电系统总体架构。中央任务计算机采用双冗余设计,主备机之间通过高交叉通道实时同步,切换时间小于5o微秒。”
“六个主要子系统,雷达,惯导,火控,通讯,电子战,飞控,通过两条冗余的1553B总线连接,任何一条总线故障,系统都能自动切换到另一条,不影响功能。”
林默凑近屏幕,仔细看着架构图:“实时性测试结果如何?”
“从传感器数据采集,总线传输、中央处理到输出控制指令,端到端平均延迟小于1o毫秒。”
陈致宁推了推眼镜,镜片后的眼睛闪着专业的光芒,“最坏情况下不过2o毫秒,完全满足空战格斗的需求。”
“要知道,人的反应时间还要2oo毫秒呢。”
“操作系统是你们自己写的?”
秦怀民问,他也凑过来看屏幕。
“是的,完全自主开,基于微内核的实时操作系统。”
陈致宁语气中带着自豪,“我们参考了国际上几种主流RTos的设计理念,但架构完全重写了。内核只提供最基本的任务调度,内存管理和中断处理,其他功能都在用户态实现。”
“这样系统更稳定,一个应用崩溃不会导致整个系统宕机。”
他敲了几下键盘,调出代码统计界面:“目前代码总规模12万行,核心内核只有3万行,非常精简。”
“我们实现了内存保护,硬实时调度,优先级继承协议防止优先级反转,该有的都有了。”
“稳定性测试情况?”
林默问到了关键点。
陈致宁调出测试报告:“连续运行测试已经过1ooo小时,无死机,无内存泄漏,无任务饿死。”
“我们模拟了各种极端情况:电源波动测试,电压在22V到3oV之间波动,系统稳定;电磁干扰测试,在强电磁场环境下工作,误码率在可接受范围内;我们设计了错误检测与纠正和看门狗机制,能自动检测并恢复。”
秦怀民插话,脸上露出赞许的笑容:“致宁他们还有个创新,把一部分非关键但计算密集的任务放到了专门的可编程逻辑芯片上。”
“这样既减轻了主cpu的负担,又提高了处理度,还降低了功耗。”
陈致宁点头:“是的,秦老说得对,比如雷达信号的前端滤波、图像显示的几何变换、导航解算中的坐标转换,这些任务算法固定但计算量大,用硬件实现效率更高。”
“我们的Fpga芯片是和上海微电子所联合设计的,专门针对航电系统的需求优化,门电路规模15万门,运行频率1oomhz,功耗只有8瓦。”
林默听着,不时点头。他忽然问:“和飞控系统的接口测试过了吗?”
“初步测试通过,基本功能正常。”
陈致宁调出接口测试报告,但眉头微微皱起,“数据交换正常,时序匹配。不过……”
“不过什么?”
林默敏锐地捕捉到了他语气中的迟疑。
陈致宁犹豫了一下,推了推眼镜:“陈建军陈工那边反映,在某些极端飞行状态下,比如大迎角,大过载机动时,航电系统给出的目标信息和飞控系统的响应之间存在微小延迟。”
“他们认为可能需要调整控制律参数,或者优化数据交换的时序。”
林默沉吟片刻,手指无意识地在桌面上轻轻敲击。
“带我去看看吧。”
考虑一会儿,他说道。
飞控实验室在二楼另一侧,需要穿过整个走廊。
路上,林默问秦怀民:“建军那边压力大吗?”
秦怀民叹了口气:“有一点,大,飞控是三代机的灵魂,电传系统,静不稳定设计,高敏捷性……都是我们第一次搞。建军这半年瘦了十几斤,头白了一半。”
何建设补充道:“他爱人上个月还来找过我,说建军两个月没回家了,孩子想爸爸。我只能安慰她,说项目到了关键阶段。”
林默没说话,只是脚步加快了些。
推开飞控实验室的门,先看到的是一台庞大的设备,飞行模拟台。
它看起来像一个巨大的金属框架,主体是一个六自由度的运动平台,通过六个液压作动筒驱动,可以模拟飞机的俯仰,滚转,偏航以及三个方向的平移。
平台中间固定着一个战斗机座舱模型,有完整的仪表板,操纵杆和脚踏。周围是大屏幕,显示着虚拟的天空、地面和敌机。
陈建军正坐在模拟台旁边的控制室里,盯着面前的三块显示屏。